[CIG-SHORT] How to construct a fault model

Brad Aagaard baagaard at usgs.gov
Mon Aug 28 09:24:15 PDT 2017


Tu Xiang,

I suggest you review the PyLith tutorials that include discussions of 
meshing available online from any of of our recent PyLith tutorials 
(https://wiki.geodynamics.org/software:pylith:start). They provide more 
detail about how we do the meshing for PyLith using CUBIT/Trelis than 
the PyLith manual itself. In the tutorials we use surfaces that extend 
all of the way through a volume to separate the volumes into smaller 
chunks and create faults.

Recent versions of CUBIT and Trelis can generate meshes that use 
interior surfaces that do not extend all of the way through a volume. We 
have not updated the examples to reflect this new approach.

In your script do divide volume 1 into 2 with a surface that extends all 
the way through the domain use the webcut command:

webcut volume 1 sheet extended from surface 7

Alternatively, if you have a recent enough version of CUBIT or Trelis, 
you can use the following command to create an interior surface that 
will be honored in the meshing:

subtract volume 2 from volume 1

NOTE: cubit at sandia.gov is for support of CUBIT users (in most cases 
these are users at US federal government agencies). Trelis users should 
seek support through csimsoft.

Regards,
Brad



On 8/26/17 5:02 PM, tu xiang wrote:
> Hello,
> I am Tu Xiang, majoring in seismology and geology. I am a new user of
> CUBIT.  I want to use CUBIT to construct a fault model, that is,
> embedding a surface into a volume.
>
> I construct a cuboid and a surface which is small than the cuboid
> (Figure 1).
>
> Figure 1 a cuboid and a surface
>
> I want to use the surface to cut a fault in the cuboid.
> but I do not know how to deal with this problem, because the webcut
> command seems cannot satisfy the demand.
>
> I attach my .jou file here. And hope someone would help me.
>
> The mesh model generating files:
> geometry.jou   and  mesh.jou
>
> geometry.jou
> # -*- Python -*- (syntax highlighting)
> # ----------------------------------------------------------------------
> # Set units to SI.
> # ----------------------------------------------------------------------
> # {Units('si')}
> #
> # ----------------------------------------------------------------------
> # Reset geometry.
> # ----------------------------------------------------------------------
> reset
>
> # Make sure undo is off to prevent errors in stitching volumes.
> undo off
>
> # ----------------------------------------------------------------------
> # Create block
> # ----------------------------------------------------------------------
> #{blockLength=40.0*km}
> #{blockWidth=24.0*km}
> #{blockHeight=16.0*km}
>
> brick x {blockWidth} y {blockLength} z {blockHeight}
> #{idVol=Id("volume")}
> volume {idVol} name "v_domain"
>
> # Translate block so the top is at z=0
> volume {idVol} move x {domain_x} y {domain_y} z {-0.5*blockHeight}
>
> # ----------------------------------------------------------------------
> # Create fault comprised of multiple planar segments
> # ----------------------------------------------------------------------
> #{flen=36.0*km}
> #{fdep=10.0*km}
>
> create vertex x 0.0 y {-flen/2} z 0.0
> #{idL1=Id("vertex")}
> create vertex x 0.0 y {-flen/2} z {-fdep}
> #{idL2=Id("vertex")}
>
> create vertex x 0.0 y {flen/2} z 0.0
> #{idMb1=Id("vertex")}
> create vertex x 0.0 y {flen/2} z {-fdep}
> #{idMb2=Id("vertex")}
>
> # Create planar surfaces
> create surface vertex {idL1} {idMb1} {idMb2} {idL2}
>
> #
> #  web cut ???????
> #
>
> # ----------------------------------------------------------------------
> # Imprint all volumes, merging surfaces
> # ----------------------------------------------------------------------
> imprint all with volume all
> merge all
>
> # End of file
>
>
> mesh.jou
> # -*- Python -*- (syntax highlighting)
> # ----------------------------------------------------------------------
> # Generate geometry
> # ----------------------------------------------------------------------
> playback 'geometry.jou'
>
> # ----------------------------------------------------------------------
> # Create tet4 mesh at 5.0 km resolution.
> # ----------------------------------------------------------------------
>
> #{dx=0.5*km}
> volume all size {dx}
> volume all scheme tetmesh
>
> # ----------------------------------------------------------------------
> # Generate the mesh
> # ----------------------------------------------------------------------
> mesh surface all
> mesh volume all
>
> # ----------------------------------------------------------------------
> # Create blocks for materials
> # ----------------------------------------------------------------------
> block 1 volume v_domain
> block 1 name "crust"
>
> # ----------------------------------------------------------------------
> # Create nodesets for faults and boundary conditions.
> # ----------------------------------------------------------------------
> group "fault_edge" add node in curve 14
> group "fault_edge" add node in curve 15
> group "fault_edge" add node in curve 16
> nodeset 30 group fault_edge
> nodeset 30 name "fault_edge"
>
> group "front_bd" add node in surface 6
> nodeset 50 group front_bd
> nodeset 50 name "front_bd"
>
> group "back_bd" add node in surface 4
> nodeset 51 group back_bd
> nodeset 51 name "back_bd"
>
> group "left_bd" add node in surface 3
> nodeset 52 group left_bd
> nodeset 52 name "left_bd"
>
> group "right_bd" add node in surface 5
> nodeset 53 group right_bd
> nodeset 53 name "right_bd"
>
> group "bottom_bd" add node in surface 2
> nodeset 54 group bottom_bd
> nodeset 54 name "bottom_bd"
>
> group "demo_fault" add node in surface 7
> nodeset 60 group demo_fault
> nodeset 60 name "demo_fault"
>
> # ----------------------------------------------------------------------
> # Export exodus file
> # ----------------------------------------------------------------------
> export mesh "mesh.exo" dimension 3 overwrite
>
>
> # End of file
>
> Best regards
> Tu Xiang
>
>
>
>
>



More information about the CIG-SHORT mailing list