[cig-commits] r13648 - in long/3D/Gale/trunk: . input/examples src/StgFEM/plugins/StandardConditionFunctions src/Underworld/Rheology/src
walter at geodynamics.org
walter at geodynamics.org
Thu Dec 11 03:21:10 PST 2008
Author: walter
Date: 2008-12-11 03:21:10 -0800 (Thu, 11 Dec 2008)
New Revision: 13648
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/input/examples/tibet.xml
long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h
long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c
long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.h
Log:
r2412 at dante: boo | 2008-12-11 02:04:14 -0800
Remove background pressure stuff
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2409
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2412
Modified: long/3D/Gale/trunk/input/examples/tibet.xml
===================================================================
--- long/3D/Gale/trunk/input/examples/tibet.xml 2008-12-11 09:30:01 UTC (rev 13647)
+++ long/3D/Gale/trunk/input/examples/tibet.xml 2008-12-11 11:21:10 UTC (rev 13648)
@@ -117,31 +117,6 @@
<param name="LinkedDofInfo">pressureLinkedDofs</param>
</struct>
- <struct name="backgroundPressure">
- <param name="Type">MeshVariable</param>
- <param name="mesh">mesh-linear</param>
- <param name="Rank">Scalar</param>
- <param name="DataType">Double</param>
- </struct>
- <struct name="backgroundPressureICs">
- <param name="Type">CompositeVC</param>
- <param name="Data">mesh-linear</param>
- </struct>
- <struct name="backgroundPressureDofLayout">
- <param name="Type">DofLayout</param>
- <param name="mesh">mesh-linear</param>
- <list name="BaseVariables">
- <param>backgroundPressure</param>
- </list>
- </struct>
- <struct name="BackgroundPressureField">
- <param name="Type">FeVariable</param>
- <param name="FEMesh">mesh-linear</param>
- <param name="DofLayout">backgroundPressureDofLayout</param>
- <param name="LinkedDofInfo">backgroundPressureLinkedDofs</param>
- <param name="IC">backgroundPressureICs</param>
- </struct>
-
<struct name="StressField">
<param name="Type">StressField</param>
<param name="StrainRateField">StrainRateField</param>
@@ -499,7 +474,6 @@
<struct name="yielding">
<param name="Type">MohrCoulomb</param>
<param name="PressureField">PressureField</param>
- <param name="BackgroundPressureField">BackgroundPressureField</param>
<param name="VelocityGradientsField">VelocityGradientsField</param>
<param name="MaterialPointsSwarm">materialSwarm</param>
<param name="Context">context</param>
@@ -876,22 +850,6 @@
</list>
</struct>
- <struct name="backgroundPressureICs">
- <param name="type">CompositeVC</param>
- <list name="vcList">
- <struct>
- <param name="type">AllNodesVC</param>
- <list name="variables">
- <struct>
- <param name="name">backgroundPressure</param>
- <param name="type">func</param>
- <param name="value">PressureProfile</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. -->
Modified: long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c 2008-12-11 09:30:01 UTC (rev 13647)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.c 2008-12-11 11:21:10 UTC (rev 13648)
@@ -131,9 +131,6 @@
condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_TemperatureProfile, "TemperatureProfile");
ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
- condFunc = ConditionFunction_New( StgFEM_StandardConditionFunctions_PressureProfile, "PressureProfile");
- ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
-
condFunc = ConditionFunction_New( StG_FEM_StandardConditionFunctions_Gaussian, "Gaussian");
ConditionFunction_Register_Add( context->condFunc_Register, condFunc );
@@ -1469,67 +1466,6 @@
}
}
-double PressureProfile_Analytic(double density, double gravity, double h,
- double alpha, double T_0, double A,
- double B, double C)
-{
- return density*gravity*h*(1-alpha*(T_0 + A*h/2 + B*(1+exp(-C*h)/(C*h))));
-}
-
-void StgFEM_StandardConditionFunctions_PressureProfile( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
- FiniteElementContext * context = (FiniteElementContext*)_context;
- FeVariable* feVariable = NULL;
- FeMesh* mesh = NULL;
- Dictionary* dictionary = context->dictionary;
- double* result = (double*) _result;
- double* coord;
- double T_0, A, B, C;
- double upper_density, lower_density, upper_alpha, lower_alpha, y_max,
- material_boundary;
- double gravity;
-
- feVariable = (FeVariable*)FieldVariable_Register_GetByName( context->fieldVariable_Register, "VelocityField" );
- mesh = feVariable->feMesh;
- coord = Mesh_GetVertex( mesh, node_lI );
-
- T_0 = Dictionary_GetDouble( dictionary, "TemperatureProfileTop");
- A = Dictionary_GetDouble( dictionary, "TemperatureProfileLinearCoefficient");
- B = Dictionary_GetDouble( dictionary,
- "TemperatureProfileExponentialCoefficient1");
- C = Dictionary_GetDouble( dictionary,
- "TemperatureProfileExponentialCoefficient2");
- y_max = Dictionary_GetDouble( dictionary, "maxY");
- upper_density=Dictionary_GetDouble(dictionary,"upperDensity");
- lower_density=Dictionary_GetDouble(dictionary,"lowerDensity");
- upper_alpha=Dictionary_GetDouble( dictionary, "upperAlpha");
- lower_alpha=Dictionary_GetDouble( dictionary, "lowerAlpha");
- material_boundary=Dictionary_GetDouble(dictionary, "materialBoundary");
- gravity=Dictionary_GetDouble( dictionary, "gravity" );
- if(coord[1]>=y_max)
- {
- *result=0;
- }
- else
- {
- double h=y_max-coord[1];
- if(coord[1]>material_boundary)
- {
- *result=PressureProfile_Analytic(upper_density, gravity, h,
- upper_alpha, T_0, A, B, C);
- }
- else
- {
- *result=
- PressureProfile_Analytic(upper_density, gravity, material_boundary,
- upper_alpha, T_0, A, B, C)
- - PressureProfile_Analytic(lower_density, gravity,material_boundary,
- lower_alpha, T_0, A, B, C)
- + PressureProfile_Analytic(lower_density, gravity,h,
- lower_alpha, T_0, A, B, C);
- }
- }
-}
-
void StgFEM_StandardConditionFunctions_ERF( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) {
FiniteElementContext * context = (FiniteElementContext*)_context;
FeVariable* feVariable = NULL;
Modified: long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h
===================================================================
--- long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h 2008-12-11 09:30:01 UTC (rev 13647)
+++ long/3D/Gale/trunk/src/StgFEM/plugins/StandardConditionFunctions/StandardConditionFunctions.h 2008-12-11 11:21:10 UTC (rev 13648)
@@ -88,7 +88,6 @@
void StG_FEM_StandardConditionFunctions_StepFunctionProduct3( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StG_FEM_StandardConditionFunctions_StepFunctionProduct4( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_TemperatureProfile( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
-void StgFEM_StandardConditionFunctions_PressureProfile( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StG_FEM_StandardConditionFunctions_Gaussian( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
void StgFEM_StandardConditionFunctions_ConvectionBenchmark( Node_LocalIndex node_lI, Variable_Index var_I, void* _context, void* _result ) ;
Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c 2008-12-11 09:30:01 UTC (rev 13647)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c 2008-12-11 11:21:10 UTC (rev 13648)
@@ -110,7 +110,6 @@
void _MohrCoulomb_Init(
MohrCoulomb* self,
FeVariable* pressureField,
- FeVariable* backgroundPressureField,
FeVariable* velocityGradientsField,
MaterialPointsSwarm* materialPointsSwarm,
double cohesion,
@@ -121,7 +120,6 @@
{
self->materialPointsSwarm = materialPointsSwarm;
self->pressureField = pressureField;
- self->backgroundPressureField = backgroundPressureField;
self->velocityGradientsField = velocityGradientsField;
self->cohesion = cohesion;
@@ -162,7 +160,6 @@
void *data ){
MohrCoulomb* self = (MohrCoulomb*)rheology;
FeVariable* pressureField;
- FeVariable* backgroundPressureField;
MaterialPointsSwarm* materialPointsSwarm;
FeVariable* velocityGradientsField;
@@ -180,15 +177,12 @@
"MaterialPointsSwarm", MaterialPointsSwarm, True, data );
pressureField = Stg_ComponentFactory_ConstructByKey( cf, self->name,
"PressureField", FeVariable, True, data );
- backgroundPressureField = Stg_ComponentFactory_ConstructByKey( cf, self->name,
- "BackgroundPressureField", FeVariable, False, data );
velocityGradientsField = Stg_ComponentFactory_ConstructByKey( cf, self->name,
"VelocityGradientsField", FeVariable, True, data );
_MohrCoulomb_Init(
self,
pressureField,
- backgroundPressureField,
velocityGradientsField,
materialPointsSwarm,
Stg_ComponentFactory_GetDouble( cf, self->name, "cohesion", 0.0 ),
@@ -203,8 +197,6 @@
/* Build parent */
_YieldRheology_Build( self, data );
- if ( self->backgroundPressureField )
- Stg_Component_Build( self->backgroundPressureField, data, False );
}
void _MohrCoulomb_Initialise( void* rheology, void* data ) {
@@ -215,9 +207,6 @@
_YieldRheology_Initialise( self, data );
- if ( self->backgroundPressureField )
- Stg_Component_Initialise( self->backgroundPressureField, data, False );
-
/* Initialise these components now just in case this function is called before their own _Initialise function */
Stg_Component_Initialise( self->materialPointsSwarm, data, False );
Stg_Component_Initialise( self->strainWeakening, data, False );
@@ -307,19 +296,12 @@
double effectiveFrictionCoefficient;
double frictionalStrength;
- FeVariable* pressureField = self->pressureField;
- FeVariable* backgroundPressureField = self->backgroundPressureField;
- double pressure, backgroundPressure;
+ FeVariable* pressureField = self->pressureField;
+ double pressure;
double theta;
double factor;
FeVariable_InterpolateWithinElement( pressureField, lElement_I, xi, &pressure );
- if(backgroundPressureField)
- {
- FeVariable_InterpolateWithinElement( backgroundPressureField, lElement_I, xi,
- &backgroundPressure );
- pressure+=backgroundPressure;
- }
/* Calculate frictional strength. We modify the friction and
cohesion because we have grouped terms from the normal
@@ -406,15 +388,10 @@
Dimension_Index dim = constitutiveMatrix->dim;
Eigenvector evectors[3];
double e0, e1, e2;
- double trace, p;
+ double trace;
int i;
FeVariable_InterpolateWithinElement( self->pressureField, lElement_I, xi, &self->currentPressure );
- if(self->backgroundPressureField)
- {
- FeVariable_InterpolateWithinElement( self->backgroundPressureField, lElement_I, xi, &p );
- self->currentPressure+=p;
- }
FeVariable_InterpolateWithinElement( self->velocityGradientsField, lElement_I, xi, self->currentVelocityGradient );
TensorArray_GetSymmetricPart( self->currentVelocityGradient, dim, strainRate );
Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.h
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.h 2008-12-11 09:30:01 UTC (rev 13647)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.h 2008-12-11 11:21:10 UTC (rev 13648)
@@ -59,7 +59,6 @@
/* Param passed in */ \
MaterialPointsSwarm* materialPointsSwarm; \
FeVariable* pressureField; \
- FeVariable* backgroundPressureField; \
FeVariable* velocityGradientsField; \
/* Director component is used to update the normal */\
Director* director; \
More information about the CIG-COMMITS
mailing list