[cig-commits] r12475 - in long/3D/Gale/trunk: . input/examples src/Gale/Utils/src

walter at geodynamics.org walter at geodynamics.org
Thu Jul 24 14:44:14 PDT 2008


Author: walter
Date: 2008-07-24 14:44:14 -0700 (Thu, 24 Jul 2008)
New Revision: 12475

Added:
   long/3D/Gale/trunk/input/examples/rifting.xml
   long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.c
   long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.h
   long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.meta
Modified:
   long/3D/Gale/trunk/
   long/3D/Gale/trunk/src/Gale/Utils/src/Init.c
   long/3D/Gale/trunk/src/Gale/Utils/src/SConscript
   long/3D/Gale/trunk/src/Gale/Utils/src/Utils.h
   long/3D/Gale/trunk/src/Gale/Utils/src/types.h
Log:
 r2278 at earth:  boo | 2008-07-24 14:42:11 -0700
 Add a divergence force and an input file for an example



Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
   - 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2275
   + 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2278

Added: long/3D/Gale/trunk/input/examples/rifting.xml
===================================================================
--- long/3D/Gale/trunk/input/examples/rifting.xml	                        (rev 0)
+++ long/3D/Gale/trunk/input/examples/rifting.xml	2008-07-24 21:44:14 UTC (rev 12475)
@@ -0,0 +1,808 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <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-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="nodalPressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="nodalPressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="BaseVariables">
+        <param>nodalPressure</param>
+      </list>
+    </struct>
+    <struct name="NodalPressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">nodalPressureDofLayout</param>
+      <param name="LinkedDofInfo">nodalPressureLinkedDofs</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>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="originalParticleShape">bottomBoundaryShape</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">maxUzawaIterations</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">1e-2</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+<!--     <struct name="buoyancyForceTerm"> -->
+<!--       <param name="Type">BuoyancyForceTerm</param> -->
+<!--       <param name="ForceVector">mom_force</param> -->
+<!--       <param name="TemperatureField">TemperatureField</param> -->
+<!--       <param name="Swarm">picIntegrationPoints</param> -->
+<!--       <param name="gravity">9.81</param> -->
+<!--     </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="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dim">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <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>
+
+    <struct name="dikeBoxShape">
+      <param name="Type">Box</param>
+      <param name="startX">17500</param>
+      <param name="endX">22500</param>
+      <param name="startY">15000</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+
+
+    <struct name="nondikeShape">
+      <param name="Type">Box</param>
+      <param name="startX">18500</param>
+      <param name="endX">21500</param>
+      <param name="startY">16000</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+
+    <struct name="dikeShape">
+      <param name="Type">Intersection</param>
+      <list name="shapes">
+        <param>dikeBoxShape</param>
+<!--         <param>!nondikeShape</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>
+
+    <struct name="crustViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1e20</param>
+    </struct>	
+
+<!--     <struct name="crustViscosity"> -->
+<!--       <param name="Type">FrankKamenetskii</param> -->
+<!--       <param name="TemperatureField">TemperatureField</param> -->
+      <!-- at T=273, viscosity=1e25, at T=1273, viscosity=1e20 -->
+<!--       <param name="eta0">2.31739465e26</param> -->
+<!--       <param name="theta">0.011512925465</param> -->
+<!--     </struct>	 -->
+
+    <struct name="strainWeakening">
+      <param name="Type">StrainWeakening</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="softeningStrain">0.1</param>
+      <param name="initialDamageFraction">0.0</param>
+      <param name="initialDamageWavenumber">0.5</param>
+      <param name="initialDamageFactor">0.5</param>
+      <param name="healingRate">0.0</param>
+    </struct>
+    <struct name="yielding">
+      <param name="Type">MohrCoulomb</param>
+      <param name="PressureField">NodalPressureField</param>
+      <param name="VelocityGradientsField">VelocityGradientsField</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="Context">context</param>
+      <param name="StrainWeakening">strainWeakening</param>
+      <param name="cohesion">44e6</param>
+      <param name="cohesionAfterSoftening">4e6</param>
+      <param name="frictionCoefficient">0.57735026919</param>
+      <param name="frictionCoefficientAfterSoftening">0.57735026919</param>
+    </struct>
+
+    <struct name="crustViscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">boxShape</param>
+      <param name="density">2800</param>
+      <param name="alpha">3.0e-5</param>
+      <param name="diffusivity">1.0e-6</param>
+      <list name="heatingElements">
+        <struct>
+          <param name="Q">1.0e-12</param>
+          <param name="lambda">0.0</param>
+        </struct>
+      </list>
+      <list name="Rheology">
+        <param>crustViscosity</param>
+<!--         <param>yielding</param> -->
+        <param>storeViscosity</param>
+        <param>storeStress</param>
+      </list>
+    </struct>
+    
+    <struct name="divergenceForce">
+      <param name="Type">DivergenceForce</param>
+      <param name="ForceVector">cont_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="DomainShape">dikeShape</param>
+      <param name="GeometryMesh">mesh-linear</param>
+      <param name="force">-1.4e-13</param>
+    </struct>
+    
+
+
+
+    <!-- Temperature components -->
+    <struct name="temperature">
+      <param name="Type">MeshVariable</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+      <param name="mesh">mesh-linear</param>
+    </struct>
+    <struct name="temperatureBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="temperatureICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="temperatureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="BaseVariables">
+        <param>temperature</param>
+      </list>
+    </struct>
+    <struct name="TemperatureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">temperatureDofLayout</param>
+      <param name="BC">temperatureBCs</param>
+      <param name="IC">temperatureICs</param>
+      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
+    </struct>
+    <struct name="TemperatureGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">TemperatureField</param>
+    </struct>
+
+    <!-- Energy Equation -->
+
+<!--     <struct name="residual"> -->
+<!--       <param name="Type">ForceVector</param> -->
+<!--       <param name="FeVariable">TemperatureField</param> -->
+<!--     </struct> -->
+<!--     <struct name="massMatrix"> -->
+<!--       <param name="Type">ForceVector</param> -->
+<!--       <param name="FeVariable">TemperatureField</param> -->
+<!--     </struct> -->
+<!--     <struct name="predictorMulticorrector"> -->
+<!--       <param name="Type">AdvDiffMulticorrector</param> -->
+<!--     </struct> -->
+<!--     <struct name="EnergyEqn"> -->
+<!--       <param name="Type">AdvectionDiffusionSLE</param> -->
+<!--       <param name="SLE_Solver">predictorMulticorrector</param> -->
+<!--       <param name="Context">context</param> -->
+<!--       <param name="PhiField">TemperatureField</param> -->
+<!--       <param name="Residual">residual</param> -->
+<!--       <param name="MassMatrix">massMatrix</param> -->
+<!--       <param name="courantFactor">0.25</param> -->
+<!--     </struct> -->
+<!--     <struct name="lumpedMassMatrixForceTerm"> -->
+<!--       <param name="Type">LumpedMassMatrixForceTerm</param> -->
+<!--       <param name="Swarm">gaussSwarm</param> -->
+<!--       <param name="ForceVector">massMatrix</param> -->
+<!--     </struct> -->
+<!--     <struct name="defaultResidualForceTerm"> -->
+<!--       <param name="Type">AdvDiffResidualForceTerm</param> -->
+<!--       <param name="Swarm">gaussSwarm</param> -->
+<!--       <param name="ForceVector">residual</param> -->
+<!--       <param name="ExtraInfo">EnergyEqn</param> -->
+<!--       <param name="VelocityField">VelocityField</param> -->
+<!--       <param name="defaultDiffusivity">defaultDiffusivity</param> -->
+<!--       <param name="UpwindXiFunction">Exact</param> -->
+<!--     </struct> -->
+<!--     <struct name="internalHeatingTerm"> -->
+<!--       <param name="Type">RadiogenicHeatingTerm</param> -->
+<!--       <param name="ForceVector">residual</param> -->
+<!--       <param name="Swarm">picIntegrationPoints</param> -->
+<!--     </struct>	 -->
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_VTKOutput</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.rifting</param>
+  <param name="dim">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">40000.0f</param>
+  <param name="maxY">20000f</param>
+  <param name="maxZ">1000000f</param>
+  <param name="elementResI">40</param>
+  <param name="elementResJ">20</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <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>
+      <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>
+      <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">-4e-10</param>
+          </struct>
+        </list>
+      </struct>
+      <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>
+            <!-- 1 cm/yr -->
+            <param name="value">4e-10</param>
+          </struct>
+        </list>
+      </struct>
+
+      <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">0.0</param>
+          </struct>
+        </list>
+      </struct>
+
+      <struct>
+        <param name="type">ShapeVC</param>
+        <param name="Shape">dikeShape</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">func</param>
+            <param name="value">Velocity_Extension</param>
+          </struct>
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+
+
+    </list>
+  </struct>
+
+
+  <struct name="temperatureBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">top</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">double</param>
+            <param name="value">273</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">double</param>
+            <param name="value">1373</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">func</param>
+            <param name="value">TemperatureProfile</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">func</param>
+            <param name="value">TemperatureProfile</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">func</param>
+            <param name="value">TemperatureProfile</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">func</param>
+            <param name="value">TemperatureProfile</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+
+  <struct name="temperatureICs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">AllNodesVC</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">func</param>
+            <param name="value">TemperatureProfile</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+
+  <!-- These numbers have to be kept in sync with the top and bottom BC's.  The
+  parser can not read the variables and use them there, so they have
+  to be specified in two places. -->
+
+  <param name="TemperatureProfileTop">273</param>
+  <!-- Assume thermal conductivity of 3 W/m K and heat flux at 0.029 W/m^2 -->
+  <param name="TemperatureProfileLinearCoefficient">0.055</param>
+
+<!--   <param name="checkpointEvery">1</param> -->
+  <param name="dtFactor">1.0</param>
+
+  <param name="ExtensionFactor">1.4e-13</param>
+  <param name="ExtensionCentreX">20000</param>
+
+  <param name="linearTolerance">1e-5</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>


Property changes on: long/3D/Gale/trunk/input/examples/rifting.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.c
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.c	                        (rev 0)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.c	2008-07-24 21:44:14 UTC (rev 12475)
@@ -0,0 +1,250 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**
+** Copyright (C), 2003-2006, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street,
+**	Melbourne, 3053, Australia.
+** Copyright (c) 2005-2006, Monash Cluster Computing, Building 28, Monash University Clayton Campus,
+**	Victoria, 3800, Australia
+**
+** Primary Contributing Organisations:
+**	Victorian Partnership for Advanced Computing Ltd, Computational Software Development - http://csd.vpac.org
+**	Australian Computational Earth Systems Simulator - http://www.access.edu.au
+**	Monash Cluster Computing - http://www.mcc.monash.edu.au
+**
+** Contributors:
+**	Robert Turnbull, Research Assistant, Monash University. (robert.turnbull at sci.monash.edu.au)
+**	Patrick D. Sunter, Software Engineer, VPAC. (patrick at vpac.org)
+**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
+**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
+**	David May, PhD Student, Monash University (david.may at sci.monash.edu.au)
+**	Vincent Lemiale, Postdoctoral Fellow, Monash University. (vincent.lemiale at sci.monash.edu.au)
+**	Julian Giordani, Research Assistant, Monash University. (julian.giordani at sci.monash.edu.au)
+**	Louis Moresi, Associate Professor, Monash University. (louis.moresi at sci.monash.edu.au)
+**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
+**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
+**	David Stegman, Postdoctoral Fellow, Monash University. (david.stegman at sci.monash.edu.au)
+**	Wendy Sharples, PhD Student, Monash University (wendy.sharples at sci.monash.edu.au)
+**
+** Copyright (C) 2008, California Institute of Technology
+** Modified for DivergenceForce by Walter Landry
+**
+**  This library is free software; you can redistribute it and/or
+**  modify it under the terms of the GNU Lesser General Public
+**  License as published by the Free Software Foundation; either
+**  version 2.1 of the License, or (at your option) any later version.
+**
+**  This library is distributed in the hope that it will be useful,
+**  but WITHOUT ANY WARRANTY; without even the implied warranty of
+**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+**  Lesser General Public License for more details.
+**
+**  You should have received a copy of the GNU Lesser General Public
+**  License along with this library; if not, write to the Free Software
+**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+**
+** $Id: /cig/src/Gale/Utils/src/DivergenceForce.c 1691 2007-03-13T18:13:42.248551Z boo  $
+**
+**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+
+#include <mpi.h>
+#include <StGermain/StGermain.h>
+#include <StgFEM/StgFEM.h>
+
+#include "types.h"
+#include "DivergenceForce.h"
+
+#include <assert.h>
+#include <string.h>
+
+/* Textual name of this class */
+const Type DivergenceForce_Type = "DivergenceForce";
+
+DivergenceForce* DivergenceForce_New(Name name,
+                                     ForceVector* forceVector,
+                                     Swarm* integrationSwarm,
+                                     Stg_Shape* domainShape,
+                                     FeMesh* geometryMesh,
+                                     double force)
+{
+	DivergenceForce* self = (DivergenceForce*) _DivergenceForce_DefaultNew( name );
+
+	DivergenceForce_InitAll( 
+			self,
+			forceVector,
+			integrationSwarm,
+                        domainShape,
+                        geometryMesh,
+                        force);
+
+	return self;
+}
+
+/* Creation implementation / Virtual constructor */
+DivergenceForce* _DivergenceForce_New( 
+		SizeT                                               sizeOfSelf,  
+		Type                                                type,
+		Stg_Class_DeleteFunction*                           _delete,
+		Stg_Class_PrintFunction*                            _print,
+		Stg_Class_CopyFunction*                             _copy, 
+		Stg_Component_DefaultConstructorFunction*           _defaultConstructor,
+		Stg_Component_ConstructFunction*                    _construct,
+		Stg_Component_BuildFunction*                        _build,
+		Stg_Component_InitialiseFunction*                   _initialise,
+		Stg_Component_ExecuteFunction*                      _execute,
+		Stg_Component_DestroyFunction*                      _destroy,
+		ForceTerm_AssembleElementFunction*                  _assembleElement,		
+		Name                                                name )
+{
+	DivergenceForce* self;
+	
+	/* Allocate memory */
+	assert( sizeOfSelf >= sizeof(DivergenceForce) );
+	self = (DivergenceForce*) _ForceTerm_New( 
+		sizeOfSelf, 
+		type, 
+		_delete, 
+		_print, 
+		_copy,
+		_defaultConstructor,
+		_construct,
+		_build, 
+		_initialise,
+		_execute,
+		_destroy,
+		_assembleElement,
+		name );
+	
+	return self;
+}
+
+void _DivergenceForce_Init(DivergenceForce* self,
+                           Stg_Shape* domainShape, FeMesh *geometryMesh,
+                           double force)
+{
+	self->domainShape=domainShape;
+        self->geometryMesh=geometryMesh;
+        self->force=force;
+}
+
+void DivergenceForce_InitAll( 
+		void*                                               forceTerm,
+		ForceVector*                                        forceVector,
+		Swarm*                                              integrationSwarm,
+                Stg_Shape* domainShape,
+                FeMesh* geometryMesh,
+                double force)
+{
+	DivergenceForce* self = (DivergenceForce*) forceTerm;
+
+	ForceTerm_InitAll( self, forceVector, integrationSwarm, NULL );
+	_DivergenceForce_Init( self, domainShape, geometryMesh, force );
+}
+
+void _DivergenceForce_Delete( void* forceTerm ) {
+	DivergenceForce* self = (DivergenceForce*)forceTerm;
+
+	_ForceTerm_Delete( self );
+}
+
+void _DivergenceForce_Print( void* forceTerm, Stream* stream ) {
+	DivergenceForce* self = (DivergenceForce*)forceTerm;
+	
+	_ForceTerm_Print( self, stream );
+
+	/* General info */
+}
+
+void* _DivergenceForce_DefaultNew( Name name ) {
+	return (void*)_DivergenceForce_New( 
+		sizeof(DivergenceForce), 
+		DivergenceForce_Type,
+		_DivergenceForce_Delete,
+		_DivergenceForce_Print,
+		NULL,
+		_DivergenceForce_DefaultNew,
+		_DivergenceForce_Construct,
+		_DivergenceForce_Build,
+		_DivergenceForce_Initialise,
+		_DivergenceForce_Execute,
+		_DivergenceForce_Destroy,
+		_DivergenceForce_AssembleElement,
+		name );
+}
+
+void _DivergenceForce_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) {
+	DivergenceForce*          self             = (DivergenceForce*)forceTerm;
+	Dictionary*		dict;
+        Stg_Shape* domainShape=NULL;
+        FeMesh* geometryMesh=NULL;
+        double force;
+
+	/* Construct Parent */
+	_ForceTerm_Construct( self, cf, data );
+
+	dict = Dictionary_Entry_Value_AsDictionary( Dictionary_Get( cf->componentDict, self->name ) );
+	domainShape =  Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "DomainShape", Stg_Shape,  True, data  ) ;
+        force = Stg_ComponentFactory_GetDouble( cf, self->name, "force", 0.0);
+        geometryMesh=Stg_ComponentFactory_ConstructByKey(  cf,  self->name,  "GeometryMesh", FeMesh,  True, data  ) ;
+
+	_DivergenceForce_Init( self, domainShape, geometryMesh, force );
+}
+
+void _DivergenceForce_Build( void* forceTerm, void* data ) {
+	DivergenceForce*               self               = (DivergenceForce*)forceTerm;
+	_ForceTerm_Build( self, data );
+}
+
+void _DivergenceForce_Initialise( void* forceTerm, void* data ) {
+	DivergenceForce*             self             = (DivergenceForce*)forceTerm;
+	_ForceTerm_Initialise( self, data );
+}
+
+void _DivergenceForce_Execute( void* forceTerm, void* data ) {
+	_ForceTerm_Execute( forceTerm, data );
+}
+
+void _DivergenceForce_Destroy( void* forceTerm, void* data ) {
+	_ForceTerm_Destroy( forceTerm, data );
+}
+
+
+void _DivergenceForce_AssembleElement( void* forceTerm,
+                                       ForceVector* forceVector, 
+                                       Element_LocalIndex lElement_I, 
+                                       double* elForceVec ) {
+  DivergenceForce* self=(DivergenceForce*) forceTerm;
+  FeMesh* mesh=forceVector->feVariable->feMesh;
+  Node_ElementLocalIndex           eNode_I;
+  ElementType*                     elementType;
+  Element_NodeIndex                elementNodeCount;
+
+  elementType       = FeMesh_GetElementType( mesh, lElement_I );
+  elementNodeCount  = elementType->nodeCount;
+
+  if(Stg_Shape_IsCoordInside
+     (self->domainShape,
+      Mesh_GetVertex(mesh,Mesh_DomainToGlobal(mesh, MT_VERTEX,lElement_I))))
+    {
+      double xi[3], factor;
+      ElementType* geometryElementType;
+
+      unsigned nInc, *inc;
+
+      Mesh_GetIncidence(mesh,forceVector->dim,lElement_I,MT_VERTEX,&nInc,&inc);
+
+      xi[0]=0;
+      xi[1]=0;
+      xi[2]=0;
+      geometryElementType=FeMesh_GetElementType(self->geometryMesh,lElement_I);
+      factor=ElementType_JacobianDeterminant( geometryElementType,
+                                              self->geometryMesh,
+                                              lElement_I,
+                                              xi, forceVector->dim );
+      /* Multiple by the local volume of the element */
+      factor*=pow(2.0,forceVector->dim);
+      for( eNode_I = 0 ; eNode_I < elementNodeCount; eNode_I++ ) {
+        elForceVec[ eNode_I] += self->force*factor;
+      }
+      
+    }
+}

Added: long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.h
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.h	                        (rev 0)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.h	2008-07-24 21:44:14 UTC (rev 12475)
@@ -0,0 +1,106 @@
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**
+** Copyright (C), 2003-2006, Victorian Partnership for Advanced Computing (VPAC) Ltd, 110 Victoria Street,
+**	Melbourne, 3053, Australia.
+** Copyright (c) 2005-2006, Monash Cluster Computing, Building 28, Monash University Clayton Campus,
+**	Victoria, 3800, Australia
+**
+** Primary Contributing Organisations:
+**	Victorian Partnership for Advanced Computing Ltd, Computational Software Development - http://csd.vpac.org
+**	Australian Computational Earth Systems Simulator - http://www.access.edu.au
+**	Monash Cluster Computing - http://www.mcc.monash.edu.au
+**
+** Contributors:
+**	Robert Turnbull, Research Assistant, Monash University. (robert.turnbull at sci.monash.edu.au)
+**	Patrick D. Sunter, Software Engineer, VPAC. (patrick at vpac.org)
+**	Alan H. Lo, Computational Engineer, VPAC. (alan at vpac.org)
+**	Stevan M. Quenette, Senior Software Engineer, VPAC. (steve at vpac.org)
+**	David May, PhD Student, Monash University (david.may at sci.monash.edu.au)
+**	Vincent Lemiale, Postdoctoral Fellow, Monash University. (vincent.lemiale at sci.monash.edu.au)
+**	Julian Giordani, Research Assistant, Monash University. (julian.giordani at sci.monash.edu.au)
+**	Louis Moresi, Associate Professor, Monash University. (louis.moresi at sci.monash.edu.au)
+**	Luke J. Hodkinson, Computational Engineer, VPAC. (lhodkins at vpac.org)
+**	Raquibul Hassan, Computational Engineer, VPAC. (raq at vpac.org)
+**	David Stegman, Postdoctoral Fellow, Monash University. (david.stegman at sci.monash.edu.au)
+**	Wendy Sharples, PhD Student, Monash University (wendy.sharples at sci.monash.edu.au)
+**
+** Copyright (C) 2008, California Institute of Technology
+** Modified for DivergenceForce by Walter Landry
+**
+**  This library is free software; you can redistribute it and/or
+**  modify it under the terms of the GNU Lesser General Public
+**  License as published by the Free Software Foundation; either
+**  version 2.1 of the License, or (at your option) any later version.
+**
+**  This library is distributed in the hope that it will be useful,
+**  but WITHOUT ANY WARRANTY; without even the implied warranty of
+**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+**  Lesser General Public License for more details.
+**
+**  You should have received a copy of the GNU Lesser General Public
+**  License along with this library; if not, write to the Free Software
+**  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+**
+*/
+
+
+#ifndef __Gale_Utils_DivergenceForce_h__
+#define __Gale_Utils_DivergenceForce_h__
+
+	/** Textual name of this class */
+	extern const Type DivergenceForce_Type;
+
+	/** DivergenceForce class contents */
+	#define __DivergenceForce \
+		/* General info */ \
+		__ForceTerm \
+		Stg_Shape*                                 domainShape;    \
+                FeMesh*                                    geometryMesh; \
+                double                                     force; \
+
+	struct DivergenceForce { __DivergenceForce };
+
+	DivergenceForce* DivergenceForce_New( 
+		Name                                                name,
+		ForceVector*                                        forceVector,
+                Swarm* integrationSwarm,
+                Stg_Shape* domainShape,
+                FeMesh* geometryMesh,
+                double force);
+
+	DivergenceForce* _DivergenceForce_New( 
+		SizeT                                               sizeOfSelf,  
+		Type                                                type,
+		Stg_Class_DeleteFunction*                           _delete,
+		Stg_Class_PrintFunction*                            _print,
+		Stg_Class_CopyFunction*                             _copy, 
+		Stg_Component_DefaultConstructorFunction*           _defaultConstructor,
+		Stg_Component_ConstructFunction*                    _construct,
+		Stg_Component_BuildFunction*                        _build,
+		Stg_Component_InitialiseFunction*                   _initialise,
+		Stg_Component_ExecuteFunction*                      _execute,
+		Stg_Component_DestroyFunction*                      _destroy,
+		ForceTerm_AssembleElementFunction*                  _assembleElement,		
+		Name                                                name );
+	
+	void DivergenceForce_InitAll( 
+		void*                                               forceTerm,
+		ForceVector*                                        forceVector,
+		Swarm*                                              integrationSwarm,
+                Stg_Shape* domainShape,
+                FeMesh* geometryMesh,
+                double force);
+
+	void _DivergenceForce_Delete( void* forceTerm );
+	void _DivergenceForce_Print( void* forceTerm, Stream* stream );
+
+	void* _DivergenceForce_DefaultNew( Name name ) ;
+void _DivergenceForce_Construct( void* forceTerm, Stg_ComponentFactory* cf, void* data ) ;
+	void _DivergenceForce_Build( void* forceTerm, void* data ) ;
+	void _DivergenceForce_Initialise( void* forceTerm, void* data ) ;
+	void _DivergenceForce_Execute( void* forceTerm, void* data ) ;
+	void _DivergenceForce_Destroy( void* forceTerm, void* data ) ;
+
+	void _DivergenceForce_AssembleElement( void* forceTerm, ForceVector* forceVector, Element_LocalIndex lElement_I, double* elForceVec ) ;
+
+#endif

Added: long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.meta
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.meta	                        (rev 0)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/DivergenceForce.meta	2008-07-24 21:44:14 UTC (rev 12475)
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!DOCTYPE StGermainData SYSTEM "stgermain.dtd">
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+
+<param name="Name">DivergenceForce</param>
+<param name="Author">...</param>
+<param name="Organisation">CIG</param>
+<param name="Project">Gale</param>
+<param name="Location">./Gale/Utils/src/</param>
+<param name="Project Web">http://geodynamics.org</param>
+<param name="Copyright">Copyright (C) 2005 VPAC and Monash Cluster Computing, Copyright 2008 California Institute of Technology</param>
+<param name="Parent">ForceTerm</param>
+<param name="Reference">...</param>
+<param name="Summary">...</param>
+<param name="Description">This adds a force to allow a divergence in the velocity.</param>
+
+<!--Now the interesting stuff-->
+
+<list name="Params">
+</list>
+
+<list name="Dependencies">
+</list>
+<!-- Add an exmaple XML if possible -->
+<param name="Example">
+		<struct name="divergenceForce">
+			<param name="Type">DivergenceForce</param>
+			<param name="ForceVector">cont_force</param>
+			<param name="Swarm">materialPoints</param>
+			<param name="gravity">1.0</param>
+		</struct>
+</param>
+
+</StGermainData>

Modified: long/3D/Gale/trunk/src/Gale/Utils/src/Init.c
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/Init.c	2008-07-24 18:42:45 UTC (rev 12474)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/Init.c	2008-07-24 21:44:14 UTC (rev 12475)
@@ -73,6 +73,10 @@
                                    "0", _KineticFriction_DefaultNew );
 
 	RegisterParent( KineticFriction_Type,     ForceTerm_Type );
+	Stg_ComponentRegister_Add( componentRegister, DivergenceForce_Type,
+                                   "0", _DivergenceForce_DefaultNew );
 
+	RegisterParent( DivergenceForce_Type,     ForceTerm_Type );
+
 	return True;
 }

Modified: long/3D/Gale/trunk/src/Gale/Utils/src/SConscript
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/SConscript	2008-07-24 18:42:45 UTC (rev 12474)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/SConscript	2008-07-24 21:44:14 UTC (rev 12475)
@@ -20,6 +20,7 @@
 local_env=env.Copy()
 
 header_groups['Gale/Utils']=Split("""GaleContext.h
+DivergenceForce.h
 Finalise.h
 StaticFrictionVC.h
 Init.h
@@ -30,6 +31,7 @@
 
 
 c_files=Split("""GaleContext.c
+DivergenceForce.c
 Finalise.c
 StaticFrictionVC.c
 Init.c
@@ -40,6 +42,7 @@
 
 
 meta_files=Split("""GaleContext.meta
+DivergenceForce.meta
 StaticFrictionVC.meta
 KineticFriction.meta
 StressBC.meta""")

Modified: long/3D/Gale/trunk/src/Gale/Utils/src/Utils.h
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/Utils.h	2008-07-24 18:42:45 UTC (rev 12474)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/Utils.h	2008-07-24 21:44:14 UTC (rev 12475)
@@ -53,5 +53,6 @@
 	#include "StaticFrictionVC.h"
 	#include "KineticFriction.h"
 	#include "StressBC.h"
+        #include "DivergenceForce.h"
 	
 #endif 

Modified: long/3D/Gale/trunk/src/Gale/Utils/src/types.h
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/types.h	2008-07-24 18:42:45 UTC (rev 12474)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/types.h	2008-07-24 21:44:14 UTC (rev 12475)
@@ -50,6 +50,7 @@
 typedef struct _StaticFrictionVC			StaticFrictionVC;
 typedef struct KineticFriction                  KineticFriction;
 typedef struct StressBC                         StressBC;
+typedef struct DivergenceForce DivergenceForce;
 
 typedef enum
   {



More information about the cig-commits mailing list