کار با اشیاء مدل

کار با اشیاء مدل

کار با اشیاء مدل
هنگام استفاده از Model Builder در رابط دسکتاپ COMSOL، یک مدل تعبیه شده با مدل نام متغیر به طور خودکار ایجاد می شود. مدل تعبیه شده از وضعیت خاصی برخوردار است. به عنوان مثال، ابزارهای تولید کد خودکار فقط مدل تعبیه شده را در نظر می گیرند. علاوه بر این، هنگامی که در یک فایل MPH ذخیره یا بارگیری می کنید، فقط مدل تعبیه شده ذخیره یا بارگذاری می شود. ابزارهای عمومی عبارتند از دستور Save Application As در Application Builder و File>Save As از منوی File محیط دسکتاپ COMSOL.
با این حال، در یک برنامه کاربردی مجاز به ایجاد و ویرایش چندین مدل هستید. ذخیره و بارگذاری چنین مدل هایی با استفاده از روش های داخلی saveModel و loadModel انجام می شود. یک فایل MPH فقط می تواند شامل یک شی مدل واحد باشد.
اگر نیاز به ایجاد اشیاء مدل دارید، علاوه بر مدل تعبیه شده، از روش داخلی createModel استفاده کنید .
برای ایجاد یک مدل جدید از:
Model extmodel = createModel();
یک تگ مدل منحصر به فرد به طور خودکار ایجاد می شود و به مدل اختصاص می یابد. اگر می خواهید تگ مدل را به صراحت کنترل کنید، از:
Model extmodel = createModel(“My_model_1”);
که در آن My_model_1 یک برچسب منحصر به فرد است. توصیه می‌شود از نام‌های Model1 ، Model2 ، Model3 و غیره استفاده نکنید، زیرا این نام‌ها توسط مکانیزمی استفاده می‌شوند که به طور خودکار برچسب‌های مدل را برای مدل تعبیه‌شده هنگام بارگیری و ذخیره فایل‌های MPH ایجاد می‌کند.
مثال زیر تگ مدل مدل تعبیه شده را بازیابی می کند:
String my_modeltag = model.tag();
با این حال، شما به ندرت نیاز به استفاده از تگ مدل شی مدل تعبیه شده دارید.
به جای ایجاد و ایجاد محتویات یک مدل از ابتدا، می توانید یک مدل موجود را بارگذاری کرده و آن را ویرایش کنید.
به عنوان مثال در سیستم عامل ویندوز، یک مدل my_model.mph را از پوشه C:\COMSOL_Work با استفاده از روش داخلی loadModel بارگیری کنید :
Model extmodel = loadModel(“C:\\COMSOL_Work\\my_model.mph”);
یک تگ مدل منحصر به فرد به صورت خودکار ایجاد می شود و پس از بارگذاری به مدل اختصاص داده می شود. به نحو بک اسلش در نام فایل توجه کنید. بک اسلش (\) یک کاراکتر خاص در جاوا است و در این مورد به بک اسلش دوگانه نیاز است.
برای قابل حمل کردن برنامه خود، می توانید از نحو طرح فایل موجود در Application Builder استفاده کنید. با فرض اینکه فایل MPH را در پوشه مشترک ذخیره کرده اید، فراخوانی به loadModel باید به صورت زیر باشد:
Model extmodel = loadModel(“My_Model_1”, “common:///my_model.mph”);
در این مثال، تگ My_Model_1 مهم است زیرا برای بازیابی مدل از روش های دیگر استفاده می شود. پس از بارگذاری، مدل extmodel در فضای کاری جلسه فعلی COMSOL Multiphysics یا COMSOL Server وجود دارد. توجه داشته باشید که یک فایل MPH فقط می تواند شامل یک شی مدل باشد، بنابراین هیچ ابهامی وجود ندارد که در هنگام بارگذاری یک فایل MPH به کدام مدل مراجعه کنید.
فرض کنید در یک روش، مدل extmodel را با تگ My_Model_1 بارگذاری کرده اید ، مانند مثال بالا. متغیر مدل extmodel در روش های دیگر موجود نیست. برای بازیابی مدل از روش دیگری از:
Model mymodel = getModel(“MyModel_1”);
محتویات mymodel و extmodel یکسان است، اما این متغیرها در فضای متغیر دو روش مختلف وجود دارند.
تگ My_Model_1 به طور منحصر به فرد شی مدل را از جلسه COMSOL Multiphysics یا COMSOL Server فعلی شناسایی و بازیابی کرد.
برای پاک کردن محتویات یک شی مدل، از روش داخلی clearModel استفاده کنید .
برای فهرستی از روش‌های کاربردی مدل، به «روش‌های کاربردی مدل» در صفحه 96 مراجعه کنید.
خاموش کردن و بازنشانی تاریخچه مدل
هنگام اجرای کد روش در برنامه‌ها یا به‌منظور خودکارسازی وظایف مدل‌سازی، تاریخچه مدل ذخیره‌شده ممکن است بیش از حد بزرگ شود. تاریخچه مدل برای مثال هنگام ذخیره در فایل Model M یا فایل Model Java استفاده می شود. به همین دلیل، بسته به ماهیت تکراری کد خود، ممکن است لازم باشد به طور موقت ضبط تاریخچه مدل را همانطور که در مثال زیر نشان داده شده است خاموش کنید:
model.hist().disable();
// some code
model.hist().enable();
اگر می‌خواهید تاریخچه مدل را به یک سری دستورات تقریباً حداقلی بازنشانی کنید که وضعیت فعلی شی مدل را ایجاد می‌کند، می‌توانید از موارد زیر استفاده کنید:
model.resetHist();
در منوی File ، این قابلیت به عنوان Compact History نامیده می شود .
محدودیت های بارگیری و ذخیره مدل ها
اگر از روش loadModel برای بارگذاری مدل دیگری در برنامه خود استفاده می کنید، عملکرد معمول برای نمایش هندسه، مش و نتایج برای مدل بارگذاری شده، مستقیماً در برنامه در دسترس نیست زیرا این عملکرد برای مدل تعبیه شده رزرو شده است. با این حال، می توانید از API برای فراخوانی هندسه، مش، مطالعه و عملکرد نتایج و استخراج نتایج عددی از مدل بارگذاری شده استفاده کنید. به عنوان مثال، می توانید مقدار پارامترها یا متغیرهای مدل بارگذاری شده را تغییر دهید، یک مطالعه را اجرا کنید و نتایج عددی را استخراج کنید.
توجه داشته باشید که متدهای loadModel و saveModel در برنامه‌های مستقلی که با کامپایلر COMSOL کامپایل شده‌اند پشتیبانی نمی‌شوند.