void _HKViscousCreep_AssignFromXML( void* rheology, Stg_ComponentFactory* cf, void* data ){
   HKViscousCreep*  self = (HKViscousCreep*)rheology;
   PpcManager *mgr=NULL;
   int sr, temp, press;

   /* Construct Parent */
   _Rheology_AssignFromXML( self, cf, data );

   mgr = self->mgr;

   sr = PpcManager_GetField( self->mgr, cf, (Stg_Component*)self, "StrainRateInvariantField", False );
   temp = PpcManager_GetField( self->mgr, cf, (Stg_Component*)self, "TemperatureField", False );
   press = PpcManager_GetField( self->mgr, cf, (Stg_Component*)self, "PressureField", False );

   _HKViscousCreep_Init(
         self,
         sr,
         temp,
         press,
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"StressExponent", 1.0 ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"DefaultStrainRateInvariant", 1.0e-13 ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"PreExponentialFactor", 1.0 ),
         PpcManager_GetPpcFromDict( mgr, cf, self->name, "GrainSize", "" ),
         PpcManager_GetPpcFromDict( mgr, cf, self->name, "WaterFugacity", "" ),
         PpcManager_GetPpcFromDict( mgr, cf, self->name, "MeltFraction", "" ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"GrainSizeExponent", 0.0 ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"WaterFugacityExponent", 0.0 ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"MeltFractionFactor", 1.0 ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"ActivationEnergy", 0.0 ),
         Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"ActivationVolume", 0.0 ) );
}
void _DruckerPrager_AssignFromXML( void* druckerPrager, Stg_ComponentFactory* cf, void* data ){
	DruckerPrager*          self           = (DruckerPrager*)druckerPrager;
   int pressure_id, velocityGradientsField_id;

	/* Construct Parent */
	_VonMises_AssignFromXML( self, cf, data );
	
   pressure_id = PpcManager_GetField( self->mgr, cf, (Stg_Component*)self, "PressureField", True );
   velocityGradientsField_id = PpcManager_GetField( self->mgr, cf, (Stg_Component*)self, "VelocityGradientsField", False );
			
	_DruckerPrager_Init( self, 
			pressure_id,
			velocityGradientsField_id,
			Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"minimumYieldStress", 0.0  ),
			Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"frictionCoefficient", 0.0  ),
			Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"frictionCoefficientAfterSoftening", 0.0 )  );
}
Example #3
0
void _VonMises_AssignFromXML( void* rheology, Stg_ComponentFactory* cf, void* data ){
   VonMises*    self           = (VonMises*)rheology;
   int          strainRate_id;

	/* Construct Parent */
	_YieldRheology_AssignFromXML( self, cf, data );
	
   /* PpcManager_GetField_TestForFeVariable */
   strainRate_id = PpcManager_GetField( self->mgr, cf, (Stg_Component*)self, "StrainRateField", True );

   _VonMises_Init( 
      self, 
      strainRate_id,
      Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"cohesion", 0.0 ),
      Stg_ComponentFactory_GetDouble( cf, self->name, (Dictionary_Entry_Key)"cohesionAfterSoftening", 0.0 ),
      Stg_ComponentFactory_GetBool( cf, self->name, (Dictionary_Entry_Key)"strainRateSoftening", False ) );
}