# hollow square plate mesh [duplicate]

I have this square region and I want to generate a mesh it using quadrilateral elements for it and get the coordinates and incidents

• Have you tried anything? Mesh+F1 can get you quite far. Notice that your question could be migrated to any related site and no one would know it had anything to do with Mathematica.
– Kuba
Apr 30, 2018 at 19:38

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


Needs["NDSolveFEM"]
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"][]


Needs["FEMAddOns"]


Convert the triangle mesh to a quad mesh:

quadMesh = ToQuadMesh[mesh]


• thank you that is great but I want to use quadrilateral element instead or triangular one May 1, 2018 at 15:45
• @AmrSaleh, see update for quad element mesh. Oct 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"]
`

• 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... Mar 16, 2019 at 21:39
• @ABCDEMMM, you can find installation instructions in the link given in user21's answer: GitHub FEMAAddOns package
– kglr
Mar 16, 2019 at 21:43
• thanks! but the form of a .paclet file??? Mar 16, 2019 at 21:44
• okay, I find paclet file! thanks! Mar 16, 2019 at 21:47