[cig-commits] r21152 - seismo/3D/SPECFEM3D/trunk
ampuero at geodynamics.org
ampuero at geodynamics.org
Thu Dec 13 18:16:53 PST 2012
Author: ampuero
Date: 2012-12-13 18:16:53 -0800 (Thu, 13 Dec 2012)
New Revision: 21152
Modified:
seismo/3D/SPECFEM3D/trunk/README_SPECFEM3D_FAULT
Log:
improved kelvin-voigt documentation
Modified: seismo/3D/SPECFEM3D/trunk/README_SPECFEM3D_FAULT
===================================================================
--- seismo/3D/SPECFEM3D/trunk/README_SPECFEM3D_FAULT 2012-12-14 02:04:35 UTC (rev 21151)
+++ seismo/3D/SPECFEM3D/trunk/README_SPECFEM3D_FAULT 2012-12-14 02:16:53 UTC (rev 21152)
@@ -397,31 +397,6 @@
sets a constant value (val) within a sphere with center (xc,yc,zc) and radius r.
-Note: How to set the Kelvin-Voigt damping parameter:
- The purpose of the Kelvin-Voigt viscosity is to damp spurious oscillations
- generated by the fault slip at frequencies that are too high to be resolved by the mesh.
- The viscosity "eta" (in seconds) depends on the size of the elements on the fault.
- Let "h_fault" be the average linear size of the elements on the fault plane (they usually have similar size).
- Eta must be a small fraction of the critical time step in an elastic medium
- for a (hypothetical) element of cubic shape with size equal to h_fault.
- This (hypothetical) timestep value "dtc_fault" must be computed before simulation
- using the matlab function utils/critical_timestep.m
- Note that in general the critical timestep "dtc_bulk" of the whole simulation is smaller,
- because elements off the fault might be smaller or more distorted than element faces on the fault.
- Set eta in Par_file_faults equal to (0.1 to 0.3)*critical_timestep(cp,h,ngll) .
- A larger eta damps high-frequencies more aggresively but also affects lower frequencies
- and affects rupture speed.
-
- Warning: viscosity degrades numerical stability:
- The critical timestep in a viscous simulation needs to be smaller than what
- you would usually expect in a purely elastic simulation.
- The critical timestep for a Kelvin-Voigt material is
- dtc_kv = eta*( sqrt(1+dtc_bulk^2/eta^2)-1 )
- where dtc_bulk is the critical timestep for a purely elastic medium.
- To get the value of dtc_bulk, first run a test simulation with eta=0,
- and look for the "maximum suggested time step" in OUTPUT_FILES/output_mesher.txt.
-
-
DATA/FAULT_STATIONS Stations in the fault plane.
Line 1: number of stations.
Line 2 to end: 5 columns: X, Y, Z (-depth), station name, fault-id
@@ -466,6 +441,38 @@
+HOW TO SET THE KELVIN-VOIGT DAMPING PARAMETER
+----------------------------------------------
+
+The purpose of the Kelvin-Voigt viscosity in the dynamic fault solver is to damp spurious oscillations
+generated by the fault slip at frequencies that are too high to be resolved by the mesh.
+The viscosity "eta" (in seconds) depends on the size of the elements on the fault.
+Here is how to set it:
+
+1. Determine the average linear size of the elements on the fault plane, "h_fault".
+ Usually this value is prescribed by the user during mesh generation.
+ Otherwise it can be found by inspection of the mesh inside the Cubit GUI.
+2. Use the matlab function utils/critical_timestep.m to compute
+ dtc_fault = critical_timestep(cp,h_fault,ngll)
+ This is the critical time step in an elastic medium for a hypothetical element of cubic shape
+ with size equal to h_fault.
+3. Set eta in Par_file_faults to (0.1 to 0.3)*dtc_fault.
+ A larger eta damps high-frequencies more aggresively but it might also affect lower frequencies
+ and rupture speed.
+
+Viscosity reduces numerical stability: the critical timestep in a simulation with Kelvin-Voigt damping
+needs to be smaller than that in a purely elastic simulation. Here is how to set the time step accordingly:
+4. Run a test simulation without viscosity (eta=0 and only a few time steps)
+5. Look for the "maximum suggested time step" in OUTPUT_FILES/output_mesher.txt
+ This is the critical timestep of a purely elastic simulation, "dtc_bulk".
+6. Reset the timestep of the simulation with a Kelvin-Voigt material to a value smaller than
+ dtc_kv = eta*( sqrt(1+dtc_bulk^2/eta^2)-1 )
+
+Note that in general dtc_bulk is smaller than dtc_fault,
+because elements off the fault might be smaller or more distorted than element faces on the fault.
+
+
+
OUTPUT FILES
-------------
More information about the CIG-COMMITS
mailing list