دسترسی به گره های المان محدود مرتبه بالاتر

دسترسی به گره های المان محدود مرتبه بالاتر

دسترسی به گره های المان محدود مرتبه بالاتر
ساختار داده مش بسط یافته حاوی اطلاعات مربوط به روش المان محدود است، از جمله، به عنوان مثال، قرار دادن گره های عنصر درجه بالاتر. اطلاعات مش توسعه یافته در کلاس XmeshInfo موجود است و اطلاعاتی در مورد شماره گذاری عناصر، گره ها و درجات آزادی (DOF) در مش توسعه یافته و در ماتریس های بازگردانده شده توسط ویژگی Assemble و حل کننده ها ارائه می دهد. برای اطلاعات دقیق در مورد XmeshInfo ، به راهنمای مرجع برنامه نویسی مراجعه کنید.
روش مثال زیر نحوه استفاده از اطلاعات مش توسعه یافته را برای رسم گره های مرتبه بالاتر در چند مورد خاص نشان می دهد. توجه داشته باشید که عملکرد کلی برای این هنگام ایجاد یک نمودار مش در زیر نتایج ، تعبیه شده است.
مثال زیر مواردی را با یک جزء مدل، یک هندسه و زیر مجموعه ای از ترکیبات فیزیک پوشش می دهد. اگر آن را در موارد دیگر اعمال کنید، یک پیغام خطا دریافت خواهید کرد.
// توجه داشته باشید که این روش فقط برای یک جزء و یک هندسه اجرا می شود و برای همه ترکیبات فیزیک کار نمی کند.
String stdTag = model.study().uniquetag(“stdfe”);
model.study().create(stdTag);
model.study(stdTag).label(“FE Nodes Study “+stdTag.substring(5));
model.study(stdTag).showAutoSequences(“sol”);
String solTag = model.sol().uniquetag(“sol”);
model.sol().create(solTag);
model.sol(solTag).create(“st1”, “StudyStep”);
model.sol(solTag).create(“v1”, “Variables”);
SolverFeature step = model.sol(solTag).feature(“v1”);
XmeshInfo xmi = step.xmeshInfo();
try {
  XmeshInfoNodes testnodes = xmi.nodes();
} catch (Exception e) {
  error(“Cannot access finite element data. Only implemented for one geometry and stationary studies.”);
}
XmeshInfoNodes mynodes = xmi.nodes();
double[][] coords = mynodes.gCoords();
int[] coordsize = matrixSize(coords);
int sdim = 0;
if (coordsize[0] == 3) {
  sdim = 3;
} else if (coordsize[0] == 2) {
  sdim = 2;
} else
  error(“The geometry of the first component is not 2D or 3D.”);
String mesh = “mesh”+stdTag;
model.result().dataset().create(mesh, “Mesh”);
String pgTag = model.result().uniquetag(“pgfe”);
ResultFeature pg = model.result().create(pgTag, sdim);
model.result(pgTag).label(“FE Nodes Plot “+pgTag.substring(4));
String nodes = pgTag;
model.result(nodes).create(“mesh”, “Mesh”);
if (sdim == 3) {
  with(model.result(nodes).feature(“mesh”));
    set(“data”, mesh);
    set(“meshdomain”, “volume”);
  endwith();
} else {
  with(model.result(nodes).feature(“mesh”));
    set(“data”, mesh);
    set(“meshdomain”, “surface”);
  endwith();
}
with(model.result(nodes).feature(“mesh”));
  set(“elemcolor”, “none”);
  set(“wireframecolor”, “gray”);
  set(“elemscale”, 0.999);
endwith();
with(model.result(nodes));
  set(“edges”, true);
  set(“data”, mesh);
endwith();
ResultFeature plot = pg.create(“pt1”, “PointData”);
plot.set(“pointdata”, coords)
  .set(“coloring”, “uniform”)
  .set(“color”, “red”);
plot.run();
selectNode(pg);
نظرات
چند خط اول روش یک مرحله شی گام حل کننده را تنظیم می کند که برای استخراج اطلاعات مش توسعه یافته استفاده می شود. اطلاعات مش توسعه یافته، که حاوی اطلاعات گره های مرتبه بالاتر است، در خط استخراج می شود
XmeshInfo xmi = step.xmeshInfo();
خطوط
XmeshInfoNodes mynodes = xmi.nodes();
double[][] coords = mynodes.gCoords();
int[] coordsize = matrixSize(coords);
مختصات گره المان محدود را در یک آرایه 2 با هم اندازه (2D) یا 3 با هم اندازه (3D) دسترسی و ذخیره کنید.
بخش های کد زیر یک مجموعه داده مش و یک نمودار مش مرتبط را تنظیم می کنند.
بخش آخر از نوع پلات PointData سطح پایین برای تجسم گره های المان محدود استفاده می کند. برای اطلاعات بیشتر در مورد این نوع نمودار، به “نقاط سه بعدی” در صفحه 159 مراجعه کنید.