In step 5, we defined a fault surface (named s_f
) intersecting the mesh. In
this section, we are going to refine the mesh where the fault intersects it.
The LaGriT command intersect_elements
takes two meshes and creates an
element-based attribute in mesh1 that contains the number of elements in mesh2
that intersected the respective element in mesh1.
Performing the intersection between the mesh MONAME
and fault s_f
, storing
the intersection count in attribute if_inter
:
cmo / select / MONAME
intersect_elements / MONAME / s_f / if_inter
The attribute if_inter
will be non-zero everywhere there is an intersection,
and zero where there was not intersection. Taking advantage of this fact,
we can create an eltset to refine:
eltset / e_refine / if_inter / gt / 0
refine / eltset / eltset get e_refine
cmo / DELATT / MONAME / if_inter
The element density has now increased where the mesh intersects s_f
.
We can then run this step again, further refining elements along that intersection:
intersect_elements / MONAME / s_f / if_inter
eltset / e_refine / if_inter / gt / 0
refine/ eltset / eltset get e_refine
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
And finally, remove the attribute if_inter
, as it is no longer needed:
cmo / DELATT / MONAME / if_inter
At this point, many different mesh objects and surfaces still exist in memory from previous steps. Let’s deallocate them and verify with the memory
command:
cmo / status / brief
cmo / status / MONAME
memory / verify
memory / print
cmo / delete / s_bndry
cmo / delete / mo_fence
cmo / delete / mo_bndry
cmo / delete / s_f
cmo / delete / s_2_fp
cmo / delete / s_1_fp
cmo / delete / s_2_fm
cmo / delete / s_1_fm
cmo / delete / s_2
cmo / delete / s_1
memory / verify
memory / print