I have this square region and I want to generate a mesh it using quadrilateral elements for it and get the coordinates and incidents
3 Answers
Here is something to get you started:
r1 = Rectangle[{0, 0}, {30, 30}];
r2 = Rectangle[{10, 10}, {20, 20}];
reg = DiscretizeRegion@RegionDifference[r1, r2]
MeshCoordinates @ reg
How about:
Needs["NDSolve`FEM`"]
mesh = ToElementMesh[
RegionDifference[Rectangle[{-15, -15}, {15, 15}],
Rectangle[{-5, -5}, {5, 5}]], "MeshOrder" -> 1]
mesh["Wireframe"]
mesh["Coordinates"]
{{5., -5.}, {5., -3.33333},...}
ElementIncidents[mesh["MeshElements"]]
{{{265, 303, 87}, {25, 57, 176}, ....
Update:
If you want quad elements you can get those with the FEMAddOns Paclet.
Install the current paclet with:
ResourceFunction["FEMAddOnsInstall"][]
The load the paclet:
Needs["FEMAddOns`"]
Convert the triangle mesh to a quad mesh:
quadMesh = ToQuadMesh[mesh]
quadMesh["Wireframe"]
-
$\begingroup$ thank you that is great but I want to use quadrilateral element instead or triangular one $\endgroup$ May 1, 2018 at 15:45
-
$\begingroup$ @AmrSaleh, see update for quad element mesh. $\endgroup$– user21Oct 5, 2018 at 11:01
DiscretizeRegion[LaminaData["FilledSquareWithSquareHole", "Region"][30, 10]]
Use the option MeshCellStyle -> {2 -> None, 1->Black}
in DiscretizeRegion
to get
LaminaData["FilledSquareWithSquareHole", "Diagram"]
-
$\begingroup$ may I ask a question, how can we install FEMAddOns in windows? I give a try, however, i have no idea how to install FEMAddOns.paclet, I never find such FEMAddOns.paclet folder... $\endgroup$– ABCDEMMMMar 16, 2019 at 21:39
-
$\begingroup$ @ABCDEMMM, you can find installation instructions in the link given in user21's answer: GitHub FEMAAddOns package $\endgroup$– kglrMar 16, 2019 at 21:43
-
$\begingroup$ thanks! but the form of a .paclet file??? $\endgroup$– ABCDEMMMMar 16, 2019 at 21:44
-