[CIG-SHORT] How to determine the value of Up direction

tu xiang tuxiang2016 at outlook.com
Tue Aug 29 16:30:51 PDT 2017


I use next jou file to construct the model
# -*- 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
# ----------------------------------------------------------------------
# Block is 100 km x 100 km x 50 km
${blockLength=40.0*km}
${blockWidth=24.0*km}
${blockHeight=16.0*km}

brick x {blockLength} y {blockWidth} z {blockHeight}
${idVol=Id("volume")}

# Translate block so the top is at z=0
volume {idVol} move x {domain_x} y {domain_y} z {-0.5*blockHeight}

# ----------------------------------------------------------------------
# Create interface surfaces
# ----------------------------------------------------------------------
create planar surface with plane yplane offset 0
${idFault=Id("surface")}
surface {idFault} name "fault_surface"
create planar surface with plane zplane offset {-10.0*km}
${idMoho=Id("surface")}
surface {idMoho} name "material_interface"

# ----------------------------------------------------------------------
# Divide volumes using interface surfaces
# ----------------------------------------------------------------------
webcut volume 1 with plane surface material_interface
webcut volume 1 with plane surface fault_surface
volume 1 name "elastic_xpos"
volume 5 name "elastic_xneg"
volume 4 name "viscoelastic"

# ----------------------------------------------------------------------
# Imprint all volumes, merging surfaces
# ----------------------------------------------------------------------
delete body 2 3
imprint all with volume all
merge all
compress ids all

# End of file

# -*- Python -*- (syntax highlighting)
# ----------------------------------------------------------------------
# Generate geometry
# ----------------------------------------------------------------------
playback 'geometry.jou'

# ----------------------------------------------------------------------
# Create tet4 mesh at 4.0 km resolution.
# ----------------------------------------------------------------------

${dx=1.0*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 elastic_xpos
block 1 name "crust_pos"

block 2 volume elastic_xneg
block 2 name "crust_neg"

block 3 volume viscoelastic
block 3 name "mantle"

# ----------------------------------------------------------------------
# Create nodesets for faults and boundary conditions.
# ----------------------------------------------------------------------
group "fault_edge" add node in curve 17
nodeset 30 group fault_edge
nodeset 30 name "fault_edge"

group "front_bd" add node in surface 3
group "front_bd" add node in surface 5
nodeset 50 group front_bd
nodeset 50 name "front_bd"

group "back_bd" add node in surface 2
group "back_bd" add node in surface 7
nodeset 51 group back_bd
nodeset 51 name "back_bd"

group "left_bd" add node in surface 12
group "left_bd" add node in surface 6
group "left_bd" add node in surface 13
nodeset 52 group left_bd
nodeset 52 name "left_bd"

group "right_bd" add node in surface 10
group "right_bd" add node in surface 4
group "right_bd" add node in surface 16
nodeset 53 group right_bd
nodeset 53 name "right_bd"

group "bottom_bd" add node in surface 1
nodeset 54 group bottom_bd
nodeset 54 name "bottom_bd"

group "demo_fault" add node in surface 8
nodeset 60 group demo_fault
nodeset 60 name "demo_fault"


# ----------------------------------------------------------------------
# Export exodus file
# ----------------------------------------------------------------------
set large exodus off
# Create one block so all sizing function information is in one block.
#block 1 volume all
export mesh "mesh_cellsize.exo" dimension 3 overwrite


# End of file

It is a simple model (Figure 1) with strike fault.
[cid:dc2dee20-b72a-49ba-af35-dec9d9d5428d]
Figure 1 The fault mesh model with strike fault.

From the .jou file, I marked the buried edges (the orange line) of the fault (Figure 2).
[cid:5b84f78b-8e0f-41f4-b211-3c103103cd90]

Figure 2 The buried edge.


The cfg file about fault
[pylithapp.problem]
interfaces = [fault]

[pylithapp.problem.interfaces]
fault = pylith.faults.FaultCohesiveDyn

[pylithapp.problem.interfaces.fault]
label = demo_fault
edge  = fault_edge
id    = 100
#up_dir =[-0.1,0,0.9]

quadrature.cell = pylith.feassemble.FIATSimplex
quadrature.cell.dimension = 2

[pylithapp.problem.interfaces.fault]
# Specify zero tolerance for detecting slip. Must be larger than the
# KSP absolute tolerance.
open_free_surface = True
zero_tolerance = 1.0e-10
#friction.force_healing = True

friction = pylith.friction.SlipWeakening
friction.label = Slip weakening
friction.db_properties = spatialdata.spatialdb.SimpleDB
friction.db_properties.label = Slip weakening
friction.db_properties.iohandler.filename = spatialdb/fault_friction.spatialdb
friction.db_properties.query_type = linear

traction_perturbation = pylith.faults.TractPerturbation
traction_perturbation.db_initial.label = Initial fault tractions
traction_perturbation.db_initial = spatialdata.spatialdb.SimpleDB
traction_perturbation.db_initial.iohandler.filename = spatialdb/fault_traction.spatialdb
traction_perturbation.db_initial.query_type = linear



I have tried many values of up direction, But all of them output the same errors which have been attached in former email. I have attached the cfg files, I have checked the whole procedure again and again, but I cannot locate where the errors happened. I do not know why. But I can run the examples provided by Pylith successfully and can view the result.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/cig-short/attachments/20170829/6b405b2b/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImagefile.png
Type: image/png
Size: 16313 bytes
Desc: pastedImagefile.png
URL: <http://lists.geodynamics.org/pipermail/cig-short/attachments/20170829/6b405b2b/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImagefile.png
Type: image/png
Size: 20384 bytes
Desc: pastedImagefile.png
URL: <http://lists.geodynamics.org/pipermail/cig-short/attachments/20170829/6b405b2b/attachment-0003.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: demo.cfg
Type: application/octet-stream
Size: 2551 bytes
Desc: demo.cfg
URL: <http://lists.geodynamics.org/pipermail/cig-short/attachments/20170829/6b405b2b/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pylithapp.cfg
Type: application/octet-stream
Size: 4312 bytes
Desc: pylithapp.cfg
URL: <http://lists.geodynamics.org/pipermail/cig-short/attachments/20170829/6b405b2b/attachment-0003.obj>


More information about the CIG-SHORT mailing list