[cig-commits] commit: Take out maxStrainRate and put back minimumViscosity in DruckerPrager
Mercurial
hg at geodynamics.org
Tue Jul 13 11:01:21 PDT 2010
changeset: 851:377d6be0734f
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Mon Jul 12 15:53:42 2010 -0700
files: Rheology/src/DruckerPrager.c Rheology/src/DruckerPrager.h
description:
Take out maxStrainRate and put back minimumViscosity in DruckerPrager
diff -r 3bcb1e10ea75 -r 377d6be0734f Rheology/src/DruckerPrager.c
--- a/Rheology/src/DruckerPrager.c Mon Jul 12 15:46:16 2010 -0700
+++ b/Rheology/src/DruckerPrager.c Mon Jul 12 15:53:42 2010 -0700
@@ -77,7 +77,7 @@ DruckerPrager* DruckerPrager_New(
FeVariable* pressureField,
SwarmVariable* swarmPressure,
double minimumYieldStress,
- double maxStrainRate,
+ double minimumViscosity,
double frictionCoefficient,
double frictionCoefficientAfterSoftening,
double boundaryCohesion,
@@ -112,7 +112,7 @@ DruckerPrager* DruckerPrager_New(
boundaryFront,
boundaryBack,
minimumYieldStress,
- maxStrainRate,
+ minimumViscosity,
hydrostaticTerm );
self->isConstructed = True;
return self;
@@ -150,7 +150,7 @@ void _DruckerPrager_Init(
Bool boundaryFront,
Bool boundaryBack,
double minimumYieldStress,
- double maxStrainRate,
+ double minimumViscosity,
HydrostaticTerm* hydrostaticTerm )
{
DruckerPrager_Particle* particleExt;
@@ -162,7 +162,7 @@ void _DruckerPrager_Init(
self->pressureField = pressureField;
self->frictionCoefficient = frictionCoefficient;
self->minimumYieldStress = minimumYieldStress;
- self->maxStrainRate = maxStrainRate;
+ self->minimumViscosity = minimumViscosity;
self->swarmPressure = swarmPressure;
/* Strain softening of Cohesion and friction - (linear
@@ -181,7 +181,7 @@ void _DruckerPrager_Init(
self->boundaryBack=boundaryBack;
self->minimumYieldStress = minimumYieldStress;
- self->maxStrainRate = maxStrainRate;
+ self->minimumViscosity = minimumViscosity;
self->hydrostaticTerm=hydrostaticTerm;
/* Update Drawing Parameters */
@@ -264,7 +264,7 @@ void _DruckerPrager_AssignFromXML( void*
Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"boundaryFront", False ),
Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"boundaryBack", False ),
Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"minimumYieldStress", 0.0 ),
- Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"maxStrainRate", 0.0),
+ Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"minimumViscosity", 0.0),
Stg_ComponentFactory_ConstructByKey( cf, self->name,
(Dictionary_Entry_Key)"HydrostaticTerm", HydrostaticTerm, False, data ) );
}
@@ -351,7 +351,7 @@ double _DruckerPrager_GetYieldCriterion(
double frictionCoefficient;
double frictionCoefficientAfterSoftening;
double minimumYieldStress;
- double maxStrainRate;
+ double minimumViscosity;
double effectiveCohesion;
double effectiveFrictionCoefficient;
double frictionalStrength;
@@ -371,7 +371,7 @@ double _DruckerPrager_GetYieldCriterion(
frictionCoefficient = self->frictionCoefficient;
frictionCoefficientAfterSoftening = self->frictionCoefficientAfterSoftening;
minimumYieldStress = self->minimumYieldStress;
- maxStrainRate = self->maxStrainRate;
+ minimumViscosity = self->minimumViscosity;
particleExt = ExtensionManager_Get( materialPointsSwarm->particleExtensionMgr, materialPoint, self->particleExtHandle );
@@ -481,18 +481,18 @@ void _DruckerPrager_HasYielded(
double yieldIndicator )
{
DruckerPrager* self = (DruckerPrager*)rheology;
- double strainRate=self->strainRateSecondInvariant;
- double viscosity;
+ double old_viscosity = ConstitutiveMatrix_GetIsotropicViscosity( constitutiveMatrix );
+ double viscosity = yieldCriterion/(2*self->strainRateSecondInvariant);
- if(self->maxStrainRate>0 && strainRate>self->maxStrainRate)
- strainRate=self->maxStrainRate;
- viscosity = yieldCriterion/(2*strainRate);
+ if(viscosity<self->minimumViscosity)
+ viscosity=self->minimumViscosity;
ConstitutiveMatrix_SetIsotropicViscosity( constitutiveMatrix, viscosity );
if( constitutiveMatrix->sle && constitutiveMatrix->sle->nlFormJacobian ) {
- double old_viscosity = ConstitutiveMatrix_GetIsotropicViscosity( constitutiveMatrix );
+
constitutiveMatrix->derivs[8] += old_viscosity * self->curFrictionCoef / yieldIndicator;
+
}
}
diff -r 3bcb1e10ea75 -r 377d6be0734f Rheology/src/DruckerPrager.h
--- a/Rheology/src/DruckerPrager.h Mon Jul 12 15:46:16 2010 -0700
+++ b/Rheology/src/DruckerPrager.h Mon Jul 12 15:53:42 2010 -0700
@@ -71,7 +71,7 @@
FeVariable* pressureField; \
SwarmVariable* swarmPressure; \
double minimumYieldStress; \
- double maxStrainRate; \
+ double minimumViscosity; \
double frictionCoefficient; \
double frictionCoefficientAfterSoftening; \
double boundaryCohesion; \
@@ -104,7 +104,7 @@
FeVariable* pressureField,
SwarmVariable* swarmPressure,
double minimumYieldStress,
- double maxStrainRate,
+ double minimumViscosity,
double frictionCoefficient,
double frictionCoefficientAfterSoftening,
double boundaryCohesion,
@@ -158,7 +158,7 @@
Bool boundaryFront,
Bool boundaryBack,
double minimumYieldStress,
- double maxStrainRate,
+ double minimumViscosity,
HydrostaticTerm* hydrostaticTerm );
More information about the CIG-COMMITS
mailing list