7
$\begingroup$

I realised that in the new version of mathematica (11.2.) there is a problem with boundary meshing. If I set the MeshOrder=2 the meshing procedure doesn't recognise the boundary elements between two phases. Somehow lot of elements are not considered as boundary elements. This is quite problematic when i have to apply plane forces to the boundaries.

Needs["NDSolve`FEM`"];
sphere = 
BoundaryDiscretizeRegion[
ImplicitRegion[(x - 5)^2 + (y - 5)^2 + (z - 5)^2 >= 7, {x, y, 
 z}], {{0, 10}, {0, 10}, {0, 10}}];
ym3D = ToElementMesh[sphere, "RegionHoles" -> None, 
"RegionMarker" -> {{5, 5, 5}, 1}]
Show[ym3D["Wireframe"[PlotRange -> {All, {1, 7}, All}]]]

enter image description here

If i set the MeshOrder=1 than everything works well.

ym3D1 = ToElementMesh[sphere, "RegionHoles" -> None, "MeshOrder" -> 1, 
"RegionMarker" -> {{5, 5, 5}, 1}]
Show[ym3D1["Wireframe"[PlotRange -> {All, {1, 7}, All}]]]

enter image description here

I didn't have this problem in the previous version of Mathematica (11.0.) Can anybody help me how to avoid this problem/bug?

FYI: The whole region have to be meshed

ym3D["Wireframe"[
"MeshElement" -> "MeshElements",
"MeshElementStyle" -> {Directive[FaceForm[Green]], 
Directive[FaceForm[Red]]}, PlotRange -> {All, {5, 10.1}, All}]]

enter image description here

$\endgroup$
4
  • 2
    $\begingroup$ 3Drm is not a valid symbol name. $\endgroup$ Commented Nov 16, 2017 at 13:22
  • $\begingroup$ How avoid: Use MMA 11 or MMA 11.2 with option: "MeshOrder" -> 1. Or wait for MMA 11.3. $\endgroup$ Commented Nov 16, 2017 at 14:30
  • $\begingroup$ @Mariusz Iwaniuk Just in MMA 11.2 i dont need to use boundaryMarkerFunction because program automatically number the interfaces while in MMA 11 every boundary has a marker 0. So if this meshing worked in MMA 11.2 my work would be much easier. $\endgroup$
    – Gergi
    Commented Nov 16, 2017 at 15:38
  • 3
    $\begingroup$ Yes, this is an unfortunate bug in 11.2 and I am sorry about that. It is fixed in current sources and will be available in the next release. What is even more unfortunate is that I can not think of a workaround for V11.2 - So your best bet in this case is to say with 11.1 if you can or use "MeshOrder"->1. I apologize for that! $\endgroup$
    – user21
    Commented Nov 24, 2017 at 1:11

1 Answer 1

5
$\begingroup$

This has been fixed in Version 11.3:

Needs["NDSolve`FEM`"];
sphere = BoundaryDiscretizeRegion[
   ImplicitRegion[(x - 5)^2 + (y - 5)^2 + (z - 5)^2 >= 7, {x, y, 
     z}], {{0, 10}, {0, 10}, {0, 10}}];
ym3D = ToElementMesh[sphere, "RegionHoles" -> None, 
   "RegionMarker" -> {{5, 5, 5}, 1}];
Show[ym3D["Wireframe"[PlotRange -> {All, {1, 8}, All}]]]

enter image description here

ym3D["Wireframe"["MeshElement" -> "MeshElements", 
  "MeshElementStyle" -> {Directive[FaceForm[Green]], 
    Directive[FaceForm[Red]]}, PlotRange -> {All, {5, 10.1}, All}]]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.