Meshing of planes fails in 3D bricks

When meshing a plane in a 3D model, the error “Cannot use 'Mesh Volume ’ to mesh a sheet body”. Then I followed the prompts and used the command "Mesh Surface "Although there is no error reminder, I found that this plane mesh does not exist when I use it.

Hi @xiongfen,
can you share the geometry please. Also which surface are you trying to mesh?

Here’s my grid command

${Units(‘si’)}
reset
create vertex x { 0.0km} y {0.0km} z {-4.50km} # 1
create vertex x { 200.0
km} y {0.0km} z {-4.50km} # 2
create vertex x { 0.0km} y {-147.9km} z {-62km} # 3
create vertex x { 200.0
km} y {-147.9km} z {-62km} #4
create curve vertex 1 2 # 1
create curve vertex 2 4 # 2
create curve vertex 4 3 # 3
create curve vertex 3 1 # 4
create surface curve 1 2 3 4 #1
surface 1 name “fault”
brick x 200000 y 200000 z 75500
move volume 2 x 100000 y -80000 z -42250 include_merged
imprint all with volume all
merge all
fault size 1000
volume all scheme tetmesh
mesh volume all
Error ‘Cannot use ‘Mesh volume’ to mesh a sheet body’ when running to mesh volume all Thank you in advance for your help.

To mesh the sheet body you can use mesh surface 1.
But first set the scheme for that surface to a trimesh with surface 1 scheme trimesh if you want to get a tetmesh.

reset
create vertex x 0 y 0 z -4500
create vertex x 200000 y 0 z -4500
create vertex x 0 y -147900 z -62000
create vertex x 200.0 y -147900 z -62000
create curve vertex 1 2
create curve vertex 2 4
create curve vertex 4 3
create curve vertex 3 1
create surface curve 1 2 3 4
surface 1 name "fault"
brick x 200000 y 200000 z 75500
move volume 2 x 100000 y -80000 z -42250 include_merged
imprint all with volume all
merge all
fault size 1000
surface 1 scheme trimesh
volume all scheme tetmesh
mesh surface 1
mesh volume 2

I noticed a couple of other things with your journal file. If you want to use the APREPRO si package, the correct syntax is of the form {45*km}. You have to do the units conversion via multiplication.

If you are doing a fault plane that is completely interior to the volume, imprint and merge won’t work because there are no surface-surface intersections. In that case, I like using the tetmesh respect option. First mesh the fault plane with triangles as Norbert explained above. Then issue the commands

volume 2 scheme tetmesh
volume 2 tetmesh respect tri in surface 1
mesh volume 2

This will tell the tetmesher to add the specified triangles into the tetmesh.

Karl

Thanks for your help. I tried to make improvements and adjusted the order

fault size 300
surface 1 scheme trimesh
mesh surface 1
volume 2 tetmesh scheme
volume 2 tetmesh respect tri in surface 1
mesh volume 2

but it reported an error

Command: mesh volume 2
ERROR: D:/trelis/Trelis 16.5/yang5.jou (75)
(-1005106): ERR 5106 : 288
ERROR: D:/trelis/Trelis 16.5/yang5.jou (75)
(-1005602): ERR 5602 : 16

I tried to perform subsequent operations using the generated model and found that only a part of the fault grid and nodes were read

Reading node set ‘fault’ with id 10 containing 986 nodes.

And actually, the number of nodes that should be on the fault is much greater than this.

I tried these methods but without exception, the generated mesh fault will only have the part that intersects with the surface when imported.


444.jou (4.4 KB)

Hi @xiongfen,
you did only put the surrounding volume into a block. When you export the mesh only the elements that are assigned to blocks will get exported.
Add

block 2 add body 1

and now the elements from the plane should get exported too.

Thank you for your reply. I followed your suggestion and found that the meshes were divided in body1, but there was still no mesh when adding it to block2. There were only lines that intersected with the surface. And after exporting, the fault still had no mesh on the plane.

Sorry my fault. We wanted a block with Shell elements.

Please use

block 2 add surface all in body 1