تنظیم یا اصلاح داده های مش

تنظیم یا اصلاح داده های مش

تنظیم یا اصلاح داده های مش
شما می توانید شی مش یک دنباله مش بندی را از طریق متد data() تغییر دهید . با استفاده از این روش به یک شی موقت ( MeshData ) که داده های مش را ذخیره می کند دسترسی پیدا می کنید. هنگامی که از متد data() برای اولین بار استفاده می کنید که شی MeshData خالی است. می‌توانید با استفاده از روش‌های مجموعه‌ای مختلف یا با انتقال داده‌های مش از مش توالی مش، آن را با داده‌های مش پر کنید. متد data().createMesh را فراخوانی کنید تا یک مش کامل از MeshData ساخته شودشی و آن را در دنباله مش بندی ذخیره کنید. اگر هندسه خالی نباشد، مش جدید بررسی می شود تا اطمینان حاصل شود که با هندسه مطابقت دارد. بنابراین، برای ایجاد یک مش دلخواه، باید یک دنباله هندسه خالی و یک دنباله مش بندی خالی متناظر ایجاد کنید و مش را روی دنباله مش بندی خالی بسازید.
برای تنظیم رئوس مش، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().setVertex(double[][]);
که در آن هر ستون از ماتریس ورودی شامل مختصات یک راس مش است.
برای تنظیم عناصر یک نوع خاص، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().setElem(type, int[][]);
که در آن هر ستون از ماتریس عنصر ورودی شامل شاخص های رأس مش گوشه های یک عنصر است.
اگر می خواهید عدد موجودیت هندسی را برای عناصر یک نوع خاص مشخص کنید، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().setElemEntity( type , int[]);
شی MeshData همان روش های دسترسی به دنباله مش بندی را دارد.
int model.component( <ctag> ).mesh( <tag> .data().getNumVertex();
double[][] model.component( <ctag> ).mesh( <tag> ).data().getVertex();
String[] model.component( <ctag> ).mesh( <tag> ).data().getTypes();
int model.component( <ctag> ).mesh( <tag> ).data().getNumElem( type );
int[][] model.component( <ctag> ).mesh( <tag> ).data().getElem( type );
int[] model.component( <ctag> ).mesh( <tag> ).data().getElemEntity( type );
 
همچنین می توان شی MeshData را با داده های مش از مش یک دنباله مش بندی پر کرد. برای انتقال مش از دنباله مش بندی فعلی به شی MeshData ، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().transferMesh();
برای انتقال مش از دنباله مش بندی دیگری، مشخص شده توسط mtag ، به شی MeshData ، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().transferMesh( mtag );
برای پاک کردن شی MeshData ، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().clearData();
برای ایجاد یک مش کامل از شی MeshData و ذخیره آن در ترتیب، از استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().createMesh();
این روش هنگام ایجاد یک مش کامل از داده های مش مشخص شده از چندین ویژگی استفاده می کند. برای تنظیم یک ویژگی، استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().set( خاصیت , <value> );
برای دریافت ملک استفاده کنید
model.component( <ctag> ).mesh( <tag> ).data().get Type ( خاصیت );
اجرای متد ()createMesh از داده‌های مش ارائه شده، احتمالاً ناقص، معادل وارد کردن داده‌های مش احتمالاً ناقص از فایل است. برای اطلاعات بیشتر وارد کردن داده های مش تولید شده خارجی را در کتابچه راهنمای مرجع Multiphysics COMSOL ببینید .
خواص زیر موجود است.
جدول 4-7: جفت‌های دارایی/مقدار معتبر
ویژگی
ارزش
پیش فرض
2D
سه بعدی
شرح
خارج کردن
دو برابر
0.6 درجه
حداکثر زاویه بین عنصر مرزی نرمال و صفحه اکستروژن که باعث می شود عنصر در صورت امکان بخشی از صفحه اکسترود شده باشد.
شکل دادن
دو برابر
360 درجه
حداکثر زاویه بین هر دو عنصر مرزی در یک وجه.
پاکسازی صورت
دو برابر
0.01
از ایجاد چهره های کوچک خودداری کنید. چهره هایی با مساحت کمتر از Facecleanup * ناحیه متوسط ​​صورت، با چهره های مجاور ادغام می شوند.
منحنی صورت
دو برابر
10 درجه
حداکثر انحراف زاویه نسبی بین هر دو عنصر مرزی در یک وجه.
minareacurv
دو برابر
1
حداقل مساحت نسبی صورت به عنوان صورت با انحنای ثابت در نظر گرفته شود.
minareaextr
دو برابر
0.05
حداقل سطح نسبی صورت که باید اکسترود شده در نظر گرفته شود.
استخراج هواپیما
دو برابر
0.005
حداقل ناحیه نسبی صورت که باید مسطح در نظر گرفته شود.
سینه زنی
دو برابر
20 درجه
حداکثر زاویه بین یک عنصر مرزی و یک همسایه که باعث می شود عناصر در صورت امکان بخشی از همان دامنه مرزی باشند.
مسطح
دو برابر
0.6 درجه
حداکثر زاویه بین عنصر مرزی معمولی و یک همسایه که باعث می شود عنصر در صورت امکان بخشی از صفحه مسطح باشد
نمونه هایی از تنظیم یا اصلاح داده های مش
مثال‌های زیر یک شبکه مثلثی شکل روی یک مربع ایجاد می‌کنند، رئوس و مثلث‌ها را استخراج می‌کنند. سپس رئوس تبدیل شده و در یک دنباله مش بندی جدید قرار می گیرند.
کد برای استفاده با جاوا
Model model = ModelUtil.create(“Model”);
model.component().create(“comp1”);
model.component(“comp1”).geom().create(“geom1”, 2);
MeshSequence m = model.component(“comp1”).mesh().create(“mesh1”, “geom1”);
// یک مستطیل و یک مش ایجاد کنید
model.component(“comp1”).geom(“geom1”).create(“r1″، “مستطیل”);
m.create(“ftri1″، “FreeTri”);
m.run();
double[][] vtx = m.getVertex();
int[][] tri = m.getElem(“tri”);
// تبدیل مختصات x
برای (int k=0; k<vtx[0].length; k++)
  vtx[0][k] *= 0.5;
// یک هندسه و مش جدید ایجاد کنید
model.component(“comp1”).geom().create(“geom2”, 2);
MeshSequence m2 = model.component(“comp1”).mesh().create(“mesh2”, “geom2”);
// رئوس و مثلث ها را وارد کنید و مش ایجاد کنید
m2.data().setElem(“tri”, tri);
m2.data().setVertex(vtx);
m2.data().createMesh();
کد برای استفاده با متلب
model = ModelUtil.create(‘Model’);
model.component.create(‘comp1’);
model.component(‘comp1’).geom.create(‘geom1’, 2);
m = model.component(‘comp1’).mesh.create(‘mesh1’, ‘geom1’);
% یک مستطیل و یک مش ایجاد کنید
model.component(‘comp1’).geom(‘geom1’).create(‘r1’, ‘Rectangle’);
m.create(‘ftri1’, ‘FreeTri’);
m.run;
vtx = m.getVertex;
tri = m.getElem(‘tri’);
% تبدیل مختصات x
vtx(1,:) = vtx(1,:)*0.5;
% یک هندسه و مش جدید ایجاد کنید
model.component(‘comp1’).geom.create(‘geom2’, 2);
m2 = model.component(‘comp1’).mesh.create(‘mesh2’, ‘geom2’);
% رئوس و مثلث ها را وارد کنید و مش ایجاد کنید
m2.data.setElem(‘tri’, tri);
m2.data.setVertex(vtx);
m2.data.createMesh;