[CIG-LONG] Convergence issues with long-term extension models
John Naliboff
jbnaliboff at ucdavis.edu
Tue Mar 16 09:51:29 PDT 2010
Hi Walter,
Thanks for the fix/tip and I also found that the model did behave somewhat better with the applied vertical basal velocity (apologies for missing that in the tibet example).
I still did not convergence past 2 Myr, so I'll play around with the basal vertical velocity (or basal stress boundary condition) and a surface weak/compressible layer to see what combination leads to the best long-term convergence.
Thanks again for the input.
Cheers,
John
On Mar 15, 2010, at 4:23 PM, Walter Landry wrote:
> Hi John,
>
> Sorry it took a while to get back to you.
>
> John Naliboff <jbnaliboff at ucdavis.edu> wrote:
>> Hello all,
>>
>> I'm hoping to get some input on convergence problems I'm having with
>> 2D long-term extension models.
>>
>> The models are designed following Wijns et al. 2005 (EPSL), who
>> modeled extension of a brittle upper crust overlying a viscous lower
>> crust using Underworld. The initial geometry is 160 km (width) x 60
>> km (depth) and the upper crust follows a yielding law similar to the
>> DruckerPrager yield criterion. The boundary conditions are
>> free-slip on all sides, although a weak, low-density layer is
>> present above the upper crust (i.e. top of lithosphere should behave
>> in a similar fashion to a true free-surface). Extension is driven
>> by a fixed velocity of 3 cm/yr applied to the right side of the 2D
>> box. The models in the paper are run up to roughly 80% extension (~
>> 4 Myr).
>
> I think it may be because the hydrostatic term you are using assumes
> that the density profile stays more or less constant through time. In
> your case, the whole region gets thinner as the material extends, so
> the StressBC is trying to pull up the material. But the StressBC can
> not, because the bottom boundary does not move vertically. This can,
> unfortunately, cause a numerical instability.
>
> Since you have a prescribed horizontal velocity, the easiest way to
> solve this is to have the bottom move up as the material thins. Then
> the StressBC will not be trying to pull as much on an immovable
> object. Getting it to compensate exactly is not needed. An
> approximate solution will work.
>
> This is implemented in input/examples/tibet.xml. I have implemented
> it in your input file (see attached, it is a one line change), and it
> seems to work better.
>
> Cheers,
> Walter Landry
> walter at geodynamics.org
> <?xml version="1.0"?> <!-- Declaring version of xml to use -->
>
> <!-- wijns05epsl_fig2_res0.5_ppc60_dtf1_030210.xml -->
>
> <!-- Name index -->
> <!-- wijns05epsl = Wijns et al. 2005 EPSL paper -->
> <!-- fig2 = input file tries to reproduce figure 2 from Wijns et al. 2005 -->
> <!-- res0.5 => 0.5 resolution in x and y directions -->
> <!-- ppc60 = 60 particles per cell -->
> <!-- dtf1 = time step scaled by 1 (unscaled) -->
> <!-- 030210 = Mar 02, 2010 -->
>
> <!-- Basic model setup -->
> <!-- - Geometry: 160 km wide, 60 km deep, unspecified resolution -->
> <!-- - Velocity Boundary Conditions: free-slip (left + bottom), free-surface -->
> <!-- - on top, velocity of 3.1 cm/yr on right side -->
> <!-- - Density structure: upper crust 2700 kg/m3 (20 km thick), lower crust -->
> <!-- 3300 kg/m3 (40 km thick) -->
> <!-- - Rheology structure: plastic yield law with strain weakening in upper -->
> <!-- crust, fixed viscosity in lower crust -->
> <!-- - Gravity: 10 m/s2 -->
>
> <!-- In the input file units are in SI, but but seconds have been scaled by -->
> <!-- 1e25 and kg have been scaled by 1e50 (after scaling a viscosity of -->
> <!-- 1e25 becomes 1) => velocities get large, viscosities get small. -->
>
> <!-- Regarding plastic yielding rheology: -->
> <!-- 1) In this model I am using a Ducker-Prager yielding rheology that is -->
> <!-- not identical to the yielding rheology used in the Wijns paper. I -->
> <!-- will need to eventually add in a new rheology to Gale that duplicates-->
> <!-- their yielding law -->
> <!-- 2) In this input file the cohesion and coefficient of friction decrease -->
> <!-- by 0.8 after yielding(corresponds roughly to a = 0.8 for fig 2) -->
> <!-- 3) The integrated strength ratio in figure 2 of Wijns is 0.53. This -->
> <!-- translates to a lower crustal viscosity of 1.4384e+22 which scales -->
> <!-- 0.0014384. -->
> <!-- 4) Note that the upper crustal viscosity is rather arbitrary (10^24) -->
> <!-- and just really needs to be an order of magnitude or more higher -->
> <!-- than the lower crustal viscosity -->
>
> <!-- ###################################################################### -->
>
> <!-- Declaring that input file is placed within StGermain data structure-->
> <StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
>
> <!-- Components Section -->
> <struct name="components">
>
> <!-- Defining standard condition functions (functions used to specify -->
> <!-- initial and boundary conditions -->
> <struct name="conditionFunctions">
> <param name="Type">StgFEM_StandardConditionFunctions</param>
> </struct>
>
> <!-- Begin basic components (rarely need to modify these) -->
> <struct name="mesh-linear">
> <param name="Type">FeMesh</param>
> <param name="elementType">linear</param>
> </struct>
> <!-- -->
> <struct name="linearMesh-generator">
> <param name="Type">CartesianGenerator</param>
> <param name="mesh">mesh-linear</param>
> <param name="dim">dim</param>
> <param name="shadowDepth">shadowDepth</param>
> <list name="size">
> <param>elementResI</param>
> <param>elementResJ</param>
> <param>elementResK</param>
> </list>
> <list name="minCoord">
> <param>minX</param>
> <param>minY</param>
> <param>minZ</param>
> </list>
> <list name="maxCoord">
> <param>maxX</param>
> <param>maxY</param>
> <param>maxZ</param>
> </list>
> </struct>
> <!-- -->
> <struct name="velocity">
> <param name="Type">MeshVariable</param>
> <param name="mesh">mesh-linear</param>
> <param name="Rank">Vector</param>
> <param name="DataType">Double</param>
> <param name="VectorComponentCount">dim</param>
> <list name="names">
> <param>vx</param>
> <param>vy</param>
> <param>vz</param>
> </list>
> </struct>
> <!-- -->
> <struct name="velocityBCs">
> <param name="Type">CompositeVC</param>
> <param name="Data">mesh-linear</param>
> </struct>
> <!-- -->
> <struct name="velocityICs">
> <param name="Type">CompositeVC</param>
> <param name="Data">mesh-linear</param>
> </struct>
> <!-- -->
> <struct name="velocityDofLayout">
> <param name="Type">DofLayout</param>
> <param name="mesh">mesh-linear</param>
> <param name="BaseVariableCount">dim</param>
> <list name="BaseVariables">
> <param>vx</param>
> <param>vy</param>
> <param>vz</param>
> </list>
> </struct>
> <!-- -->
> <struct name="VelocityField">
> <param name="Type">FeVariable</param>
> <param name="FEMesh">mesh-linear</param>
> <param name="DofLayout">velocityDofLayout</param>
> <param name="BC">velocityBCs</param>
> <param name="IC">velocityICs</param>
> <param name="LinkedDofInfo">velocityLinkedDofs</param>
> </struct>
> <!-- -->
> <struct name="VelocityMagnitudeField">
> <param name="Type">OperatorFeVariable</param>
> <param name="Operator">Magnitude</param>
> <param name="FeVariable">VelocityField</param>
> </struct>
> <!-- -->
> <struct name="VelocityGradientsField">
> <param name="Type">OperatorFeVariable</param>
> <param name="Operator">Gradient</param>
> <param name="FeVariable">VelocityField</param>
> </struct>
> <!-- -->
> <struct name="VelocityGradientsInvariantField">
> <param name="Type">OperatorFeVariable</param>
> <param name="Operator">TensorInvariant</param>
> <param name="FeVariable">VelocityGradientsField</param>
> </struct>
> <!-- -->
> <struct name="StrainRateField">
> <param name="Type">OperatorFeVariable</param>
> <param name="Operator">TensorSymmetricPart</param>
> <param name="FeVariable">VelocityGradientsField</param>
> </struct>
> <!-- -->
> <struct name="VorticityField">
> <param name="Type">OperatorFeVariable</param>
> <param name="Operator">TensorAntisymmetricPart</param>
> <param name="FeVariable">VelocityGradientsField</param>
> </struct>
> <!-- -->
> <struct name="StrainRateInvariantField">
> <param name="Type">OperatorFeVariable</param>
> <param name="Operator">SymmetricTensor_Invariant</param>
> <param name="FeVariable">StrainRateField</param>
> </struct>
> <!-- -->
> <struct name="pressure">
> <param name="Type">MeshVariable</param>
> <param name="mesh">mesh-linear</param>
> <param name="Rank">Scalar</param>
> <param name="DataType">Double</param>
> </struct>
> <!-- -->
> <struct name="pressureDofLayout">
> <param name="Type">DofLayout</param>
> <param name="mesh">mesh-linear</param>
> <list name="BaseVariables">
> <param>pressure</param>
> </list>
> </struct>
> <!-- -->
> <struct name="PressureField">
> <param name="Type">FeVariable</param>
> <param name="FEMesh">mesh-linear</param>
> <param name="DofLayout">pressureDofLayout</param>
> <param name="LinkedDofInfo">pressureLinkedDofs</param>
> </struct>
> <!-- -->
> <struct name="StressField">
> <param name="Type">StressField</param>
> <param name="StrainRateField">StrainRateField</param>
> <param name="Context">context</param>
> <param name="ConstitutiveMatrix">constitutiveMatrix</param>
> <param name="Swarm">picIntegrationPoints</param>
> <param name="Mesh">mesh-linear</param>
> <param name="IC">stressICs</param>
> </struct>
> <!-- -->
> <struct name="ViscosityField">
> <param name="Type">ViscosityField</param>
> <param name="Context">context</param>
> <param name="Swarm">picIntegrationPoints</param>
> <param name="Mesh">mesh-linear</param>
> <param name="ConstitutiveMatrix">constitutiveMatrix</param>
> </struct>
> <!-- -->
> <struct name="cellLayout">
> <param name="Type">SingleCellLayout</param>
> </struct>
> <!-- -->
> <struct name="particleLayout">
> <param name="Type">GaussParticleLayout</param>
> </struct>
> <!-- -->
> <struct name="gaussSwarm">
> <param name="Type">IntegrationPointsSwarm</param>
> <param name="CellLayout">cellLayout</param>
> <param name="ParticleLayout">particleLayout</param>
> <param name="FeMesh">mesh-linear</param>
> <param name="TimeIntegrator">timeIntegrator</param>
> <param name="IntegrationPointMapper">gaussMapper</param>
> </struct>
> <!-- -->
> <struct name="gaussMapper">
> <param name="Type">GaussMapper</param>
> <param name="IntegrationPointsSwarm">gaussSwarm</param>
> <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
> </struct>
> <!-- -->
> <struct name="backgroundLayout">
> <param name="Type">BackgroundParticleLayout</param>
> </struct>
> <!-- -->
> <struct name="gaussMaterialSwarm">
> <param name="Type">MaterialPointsSwarm</param>
> <param name="CellLayout">cellLayout</param>
> <param name="ParticleLayout">backgroundLayout</param>
> <param name="FeMesh">mesh-linear</param>
> </struct>
> <!-- -->
> <struct name="timeIntegrator">
> <param name="Type">TimeIntegrator</param>
> <param name="order">1</param>
> <param name="simultaneous">t</param>
> <param name="Context">context</param>
> </struct>
> <!-- -->
> <struct name="elementCellLayout">
> <param name="Type">ElementCellLayout</param>
> <param name="Mesh">mesh-linear</param>
> </struct>
> <!-- -->
> <struct name="weights">
> <param name="Type">PCDVC</param>
> <param name="resolutionX">10</param>
> <param name="resolutionY">10</param>
> <param name="resolutionZ">10</param>
> <param name="lowerT">0.6</param>
> <param name="upperT">25</param>
> <param name="maxDeletions">3</param>
> <param name="maxSplits">3</param>
> <param name="MaterialPointsSwarm">materialSwarm</param>
> </struct>
> <!-- -->
> <struct name="localLayout">
> <param name="Type">MappedParticleLayout</param>
> </struct>
> <!-- -->
> <struct name="picIntegrationPoints">
> <param name="Type">IntegrationPointsSwarm</param>
> <param name="CellLayout">elementCellLayout</param>
> <param name="ParticleLayout">localLayout</param>
> <param name="FeMesh">mesh-linear</param>
> <param name="WeightsCalculator">weights</param>
> <param name="TimeIntegrator">timeIntegrator</param>
> <param name="IntegrationPointMapper">mapper</param>
> </struct>
> <!-- -->
> <struct name="mapper">
> <param name="Type">CoincidentMapper</param>
> <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
> <param name="MaterialPointsSwarm">materialSwarm</param>
> </struct>
> <!-- -->
> <struct name="materialSwarmParticleLayout">
> <param name="Type">MeshParticleLayout</param>
> <param name="mesh">mesh-linear</param>
> <param name="cellParticleCount">particlesPerCell</param>
> </struct>
> <!-- -->
> <struct name="materialSwarm">
> <param name="Type">MaterialPointsSwarm</param>
> <param name="CellLayout">elementCellLayout</param>
> <param name="ParticleLayout">materialSwarmParticleLayout</param>
> <param name="FeMesh">mesh-linear</param>
> <param name="SplittingRoutine">splittingRoutine</param>
> <param name="RemovalRoutine">removalRoutine</param>
> <param name="EscapedRoutine">escapedRoutine</param>
> </struct>
> <!-- -->
> <struct name="materialSwarmAdvector">
> <param name="Type">SwarmAdvector</param>
> <param name="Swarm">materialSwarm</param>
> <param name="TimeIntegrator">timeIntegrator</param>
> <param name="VelocityField">VelocityField</param>
> <param name="PeriodicBCsManager">periodicBCsManager</param>
> <param name="allowFallbackToFirstOrder">True</param>
> </struct>
> <!-- Particle splitting routine needs to be modified if user specifies -->
> <!-- specific areas where new particles will be created (properties of -->
> <!-- new particles don't depend on neighboring particles-->
> <struct name="splittingRoutine">
> <param name="Type">ReseedSplitting</param>
> <param name="idealParticleCount">particlesPerCell</param>
> </struct>
> <!-- -->
> <struct name="solutionVelocity">
> <param name="Type">SolutionVector</param>
> <param name="FeVariable">VelocityField</param>
> </struct>
> <!-- -->
> <struct name="solutionPressure">
> <param name="Type">SolutionVector</param>
> <param name="FeVariable">PressureField</param>
> </struct>
> <!-- -->
> <struct name="mom_force">
> <param name="Type">ForceVector</param>
> <param name="FeVariable">VelocityField</param>
> <param name="ExtraInfo">context</param>
> </struct>
> <!-- -->
> <struct name="cont_force">
> <param name="Type">ForceVector</param>
> <param name="FeVariable">PressureField</param>
> <param name="ExtraInfo">context</param>
> </struct>
> <!-- -->
> <struct name="k_matrix">
> <param name="Type">StiffnessMatrix</param>
> <param name="RowVariable">VelocityField</param>
> <param name="ColumnVariable">VelocityField</param>
> <param name="RHS">mom_force</param>
> <param name="allowZeroElementContributions">False</param>
> </struct>
> <!-- -->
> <struct name="constitutiveMatrix">
> <param name="Type">ConstitutiveMatrixCartesian</param>
> <param name="Swarm">picIntegrationPoints</param>
> <param name="StiffnessMatrix">k_matrix</param>
> </struct>
> <!-- -->
> <struct name="g_matrix">
> <param name="Type">StiffnessMatrix</param>
> <param name="RowVariable">VelocityField</param>
> <param name="ColumnVariable">PressureField</param>
> <param name="RHS">cont_force</param>
> <param name="allowZeroElementContributions">False</param>
> </struct>
> <!-- -->
> <struct name="gradientStiffnessMatrixTerm">
> <param name="Type">GradientStiffnessMatrixTerm</param>
> <param name="Swarm">gaussSwarm</param>
> <param name="StiffnessMatrix">g_matrix</param>
> </struct>
> <!-- -->
> <struct name="preconditioner">
> <param name="Type">StiffnessMatrix</param>
> <param name="RowVariable">PressureField</param>
> <param name="ColumnVariable">PressureField</param>
> <param name="RHS">cont_force</param>
> <param name="allowZeroElementContributions">True</param>
> </struct>
> <!-- -->
> <struct name="preconditionerTerm">
> <param name="Type">UzawaPreconditionerTerm</param>
> <param name="Swarm">picIntegrationPoints</param>
> <param name="StiffnessMatrix">preconditioner</param>
> </struct>
> <!-- -->
> <struct name="uzawa">
> <param name="Type">Stokes_SLE_UzawaSolver</param>
> <param name="Preconditioner">preconditioner</param>
> <param name="tolerance">linearTolerance</param>
> <param name="maxIterations">5000</param>
> </struct>
> <!-- -->
> <struct name="stokesEqn">
> <param name="Type">Stokes_SLE</param>
> <param name="SLE_Solver">uzawa</param>
> <param name="Context">context</param>
> <param name="StressTensorMatrix">k_matrix</param>
> <param name="GradientMatrix">g_matrix</param>
> <param name="DivergenceMatrix"></param>
> <param name="CompressibilityMatrix">c_matrix</param>
> <param name="VelocityVector">solutionVelocity</param>
> <param name="PressureVector">solutionPressure</param>
> <param name="ForceVector">mom_force</param>
> <param name="ContinuityForceVector">cont_force</param>
> <param name="killNonConvergent">false</param>
> <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
> <param name="nonLinearTolerance">nonLinearTolerance</param>
> <param name="makeConvergenceFile">false</param>
> </struct>
> <!-- -->
> <struct name="c_matrix">
> <param name="Type">StiffnessMatrix</param>
> <param name="RowVariable">PressureField</param>
> <param name="ColumnVariable">PressureField</param>
> <param name="RHS">cont_force</param>
> <param name="allowZeroElementContributions">True</param>
> </struct>
> <!-- -->
> <struct name="mixedStabiliser">
> <param name="Type">MixedStabiliserTerm</param>
> <param name="Swarm">gaussSwarm</param>
> <param name="picSwarm">picIntegrationPoints</param>
> <param name="storeVisc">storeViscosity</param>
> <param name="StiffnessMatrix">c_matrix</param>
> </struct>
> <!-- Add hydrostatic term and define its components -->
> <struct name="hydrostaticTerm">
> <param name="Type">HydrostaticTerm</param>
> <param name="upperDensity">2700</param>
> <!-- upper crust density -->
> <param name="lowerDensity">3300</param>
> <!-- lower crust density -->
> <param name="height">maxY</param>
> <param name="materialBoundary">40000</param>
> <!-- upper-lower crust boundary -->
> <param name="gravity">gravity</param>
> </struct>
> <!-- Define stress bc related to hydrostatic term -->
> <struct name="stressBC">
> <param name="Type">StressBC</param>
> <param name="ForceVector">mom_force</param>
> <param name="Swarm">picIntegrationPoints</param>
> <param name="wall">top</param>
> <param name="y_type">HydrostaticTerm</param>
> <param name="y_value">hydrostaticTerm</param>
> </struct>
> <!-- bouyancy force term will be modified when adding temperature -->
> <!-- dependent buoynacy or a hydrostatic sterm -->
> <struct name="buoyancyForceTerm">
> <param name="Type">BuoyancyForceTerm</param>
> <param name="ForceVector">mom_force</param>
> <param name="Swarm">picIntegrationPoints</param>
> <param name="gravity">gravity</param>
> <param name="HydrostaticTerm">hydrostaticTerm</param>
> <!-- specify that buoyancy force depends on hydrostatic term -->
> </struct>
> <!-- -->
> <struct name="background">
> <param name="Type">Everywhere</param>
> </struct>
> <!-- -->
> <struct name="escapedRoutine">
> <param name="Type">EscapedRoutine</param>
> <param name="idealParticleCount">0</param>
> </struct>
> <!-- -->
> <struct name="velocityRemesher">
> <param name="Type">StripRemesher</param>
> <param name="mesh">mesh-linear</param>
> <param name="meshType">regular</param>
> <list name="dim">
> <param>true</param>
> <param>true</param>
> <param>true</param>
> </list>
> </struct>
> <!-- -->
> <struct name="storeViscosity">
> <param name="Type">StoreVisc</param>
> <param name="MaterialPointsSwarm">materialSwarm</param>
> </struct>
> <!-- -->
> <struct name="storeStress">
> <param name="Type">StoreStress</param>
> <param name="MaterialPointsSwarm">materialSwarm</param>
> </struct>
> <!-- -->
> <!-- End of basic components -->
>
> <!-- Create box that covers entire domain -->
> <struct name="boxShape">
> <param name="Type">Box</param>
> <param name="startX">minX</param>
> <param name="endX">maxX</param>
> <param name="startY">minY</param>
> <param name="endY">maxY</param>
> <param name="startZ">minZ</param>
> <param name="endZ">maxZ</param>
> </struct>
>
> <!-- Upper crust components section -->
> <!-- Create box that defines upper crust shape -->
> <struct name="upperShape">
> <param name="Type">Box</param>
> <param name="startX">minX</param>
> <param name="endX">maxX</param>
> <param name="startY">40000.0</param>
> <param name="endY">60000.0</param>
> <param name="startZ">minZ</param>
> <param name="endZ">maxZ</param>
> </struct>
> <!-- Upper crust viscosity of 10^24 (scales to 0.1) -->
> <struct name="upperViscous">
> <param name="Type">MaterialViscosity</param>
> <param name="eta0">0.1</param>
> </struct>
> <!-- Upper crust strain weakening rheology parameters -->
> <struct name="strainWeakening">
> <param name="Type">StrainWeakening</param>
> <param name="TimeIntegrator">timeIntegrator</param>
> <param name="MaterialPointsSwarm">materialSwarm</param>
> <param name="finalSofteningStrain">0.5</param>
> <param name="initialDamageFraction">0.0</param>
> <param name="initialDamageWavenumber">0.00000625</param>
> <!-- Inverse of box length (see manual)-->
> <param name="initialDamageFactor">0.5</param>
> <param name="healingRate">0.0</param>
> </struct>
> <!-- Upper crust yielding rheology parameters -->
> <struct name="yielding">
> <param name="Type">DruckerPrager</param>
> <param name="PressureField">PressureField</param>
> <param name="VelocityGradientsField">VelocityGradientsField</param>
> <param name="MaterialPointsSwarm">materialSwarm</param>
> <param name="Context">context</param>
> <param name="StrainWeakening">strainWeakening</param>
> <param name="cohesion">16.e6</param>
> <param name="cohesionAfterSoftening">3.2e6</param>
> <param name="frictionCoefficient">0.44</param>
> <param name="frictionCoefficientAfterSoftening">0.088</param>
> <param name="HydrostaticTerm">hydrostaticTerm</param>
> </struct>
> <!-- Assign upper crust rheology to upper crust shape and define density -->
> <struct name="upperCrust">
> <param name="Type">RheologyMaterial</param>
> <param name="Shape">upperShape</param>
> <param name="density">2700</param>
> <list name="Rheology">
> <param>upperViscous</param>
> <param>yielding</param>
> <param>storeViscosity</param>
> <param>storeStress</param>
> </list>
> </struct>
>
> <!-- Lower crust components section -->
> <!-- Create shape that defines lower crust region -->
> <struct name="lowerShape">
> <param name="Type">Intersection</param>
> <list name="shapes">
> <param>boxShape</param>
> <param>!upperShape</param>
> </list>
> </struct>
> <!-- Lower crust viscosity -->
> <struct name="lowerViscous">
> <param name="Type">MaterialViscosity</param>
> <param name="eta0">0.0014384</param>
> </struct>
> <!-- Assign lower crust rheology to lower crust shape and define density -->
> <struct name="lowerCrust">
> <param name="Type">RheologyMaterial</param>
> <param name="Shape">lowerShape</param>
> <param name="density">3300.0</param>
> <list name="Rheology">
> <param>lowerViscous</param>
> <param>storeViscosity</param>
> <param>storeStress</param>
> </list>
> </struct>
>
> </struct>
> <!-- End of Components -->
>
> <!-- Define which built-in plugins Gale should use -->
> <list name="plugins">
> <param>Underworld_EulerDeform</param>
> <param>Underworld_VTKOutput</param>
> </list>
>
> <!-- Defining key parameters -->
> <param name="maxTimeSteps">500</param>
> <!-- # time steps -->
> <param name="outputEvery">1</param>
> <!-- output frequency -->
> <param name="dumpEvery">1</param>
> <param name="outputPath">output</param>
> <!-- location output folder -->
> <param name="dim">2</param>
> <!-- 2 = 2d model, 3 = 3d model -->
> <param name="shadowDepth">1</param>
> <param name="minX">0.0f</param>
> <!-- min x coordinate -->
> <param name="minY">0.0f</param>
> <!-- min y coordinate -->
> <param name="minZ">0.0f</param>
> <!-- min z coordinate -->
> <param name="maxX">160000.0f</param>
> <!-- max x coordinate -->
> <param name="maxY">60000.0f</param>
> <!-- max y coordinate -->
> <param name="maxZ">1000.0f</param>
> <!-- max z coordinate -->
> <param name="elementResI">320</param>
> <!-- # elements x direction -->
> <param name="elementResJ">120</param>
> <!-- # elements y direction -->
> <param name="elementResK">10</param>
> <!-- # elements z direction -->
> <param name="allowUnbalancing">True</param>
> <param name="buildNodeNeighbourTbl">True</param>
> <param name="buildElementNeighbourTbl">True</param>
> <param name="particlesPerCell">60</param>
> <!-- ideal # particles per element -->
> <param name="seed">13</param>
> <!-- no need to ever change this variable -->
> <param name="gaussParticlesX">2</param>
> <!-- no need to ever change this variable -->
> <param name="gaussParticlesY">2</param>
> <!-- no need to ever change this variable -->
> <param name="gaussParticlesZ">2</param>
> <!-- no need to ever change this variable -->
>
> <!-- EulerDeform plugin allows upper surface to move freely or stay in place -->
> <struct name="EulerDeform">
> <list name="systems">
> <struct>
> <param name="mesh">mesh-linear</param>
> <param name="remesher">velocityRemesher</param>
> <param name="velocityField">VelocityField</param>
> <param name="wrapTop">True</param>
> <!-- Makes top surface conform to simulation -->
> <list name="fields">
> <!-- Fields to interpolate onto new mesh -->
> <struct>
> <param name="field">VelocityField</param>
> <param name="variable">velocity</param>
> </struct>
> <struct>
> <param name="field">PressureField</param>
> <param name="variable">pressure</param>
> </struct>
> </list>
> </struct>
> </list>
> </struct>
>
> <!-- Velocity boundary conditions -->
> <struct name="velocityBCs">
> <param name="type">CompositeVC</param>
> <!-- List of different locations (front,...) for velocity bc's -->
> <list name="vcList">
> <!-- Front side of simulation -->
> <!-- back wall is free slip -->
> <struct>
> <param name="type">WallVC</param>
> <param name="wall">front</param>
> <list name="variables">
> <struct>
> <param name="name">vz</param>
> <param name="type">double</param>
> <param name="value">0</param>
> </struct>
> </list>
> </struct>
> <!-- Back side of simulation -->
> <!-- back wall is free slip -->
> <struct>
> <param name="type">WallVC</param>
> <param name="wall">back</param>
> <list name="variables">
> <struct>
> <param name="name">vz</param>
> <param name="type">double</param>
> <param name="value">0</param>
> </struct>
> </list>
> </struct>
> <!-- Left side of simulation -->
> <!-- left wall is free slip -->
> <struct>
> <param name="type">WallVC</param>
> <param name="wall">left</param>
> <list name="variables">
> <struct>
> <param name="name">vx</param>
> <param name="type">double</param>
> <param name="value">0.0</param>
> </struct>
> </list>
> </struct>
> <!-- Right side of simulation -->
> <!-- right wall has velocity of 3.1 cm/yr -->
> <struct>
> <param name="type">WallVC</param>
> <param name="wall">right</param>
> <list name="variables">
> <struct>
> <param name="name">vx</param>
> <param name="type">double</param>
> <param name="value">9823517030777968.0</param>
> </struct>
> </list>
> </struct>
> <!-- Bottom side of simulation -->
> <!-- bottom wall is free slip -->
> <struct>
> <param name="type">WallVC</param>
> <param name="wall">bottom</param>
> <list name="variables">
> <struct>
> <param name="name">vy</param>
> <param name="type">double</param>
> <param name="value">1.84190944327e15</param>
> </struct>
> </list>
> </struct>
> <!-- -->
> </list>
> </struct>
>
> <!-- Output frequency for .dat files -->
> <param name="checkpointEvery">50</param>
>
> <!-- Scaling factor for time-step (default is 1.0 = no scaling) -->
> <param name="dtFactor">1.0</param>
>
> <!-- wijns05epsl_notemp: gravity is 10 m/s2 -->
> <param name="gravity">10.0</param>
>
> <param name="journal.info">True</param>
> <param name="journal.debug">True</param>
> <param name="journal-level.info">2</param>
> <param name="journal-level.debug">2</param>
>
> </StGermainData>
> _______________________________________________
> CIG-LONG mailing list
> CIG-LONG at geodynamics.org
> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-long
More information about the CIG-LONG
mailing list