Material law describing a non viscous fluid.
Stresses are computed with
σij=sij+pδij
with sij=0 in a non viscous fluid.
The equation which associates pressure and volume is
dp=KdVV
where K is the bulk modulus.
Name | Metafor Code | Dependency |
---|---|---|
Density | MASS_DENSITY | |
Bulk Modulus | BULK_MODULUS |
Norton-Hoff law describing a viscous fluid.
Stresses are computed with σij=sij+pδij
where p is the hydrostatic pressure and sij the stress deviator tensor.
The stress deviator tensor (sij) is determined upon the strain rate deviator tensor (Dij) through the following equation
sij=2μDij(√3 √23Dwz.Dwz)m−1
Hydrostatic pressure is computed upon volume variation through the following eqation
dp=KdVV
where K is the bulk modulus and V the volume.
Name | Metafor Code | Dependency |
---|---|---|
Viscosity parameter | NORTON_MU | TM |
Bulk modulus | BULK_MODULUS | TM |
Parameter m | NORTON_M | TM |
Density | MASS_DENSITY | TM |
This law is identical to NortonHoffHypoMaterial but it can account for the variation of the bulk modulus and the viscosity parameter with the hydrostatic pressure p.
Name | Metafor Code | Dependency |
---|---|---|
Viscosity parameter | NORTON_MU | TM/IF_P |
Bulk modulus | BULK_MODULUS | TM/IF_P |
Parameter m | NORTON_M | TM |
Density | MASS_DENSITY | TM |
As mentionned above, the bulk modulus dependance with pressure must be linear.
K(p)=K0+dKdpp
Therefore two parameters must be provided by the user: the bulk modulus at atmospheric pressure and the derivative dKdp
The function K(p) is provided by the user through a PythonDirectorOneParameterFunction:
class MyBulkFunction(PythonDirectorOneParameterFunction): def __init__(self,_p): PythonDirectorOneParameterFunction.__init__(self) self.debugRefs() self.p = _p def __del__(self): print "MyBulkFunction : __del__ begin\n" print "callToDestructor of MyBulkFunction not allowed." print "Add MyBulkFunction.__disown__()" exit(1) def evaluate(self, pres): if pres>=0.0: # pression positive en traction ! return self.p['k0'] else : # pression négative en compression ! return self.p['k0']+self.p['dkdp']*pres def computeDerivation(self, pres): if pres>=0.0: return 0.0 else : return self.p['dkdp']
The user has more freedom for the viscosity evolution with pressure. The viscosity variation and its derivative have to be provided trough a class similar to the one below
class MyViscoPFunction(PythonDirectorOneParameterFunction): def __init__(self,_p): print "MyViscoPFunction : __init__" PythonDirectorOneParameterFunction.__init__(self) self.debugRefs() self.p = _p print "MyViscoPFunction : __init__ finished" def __del__(self): print "MyViscoPFunction : __del__ \n" print "callToDestructor of MyViscoPFunction not allowed. Add MyViscoPFunction.__disown__()" exit(1) def evaluate(self,pres): if pres>0.0: # pression positive en traction ! return self.p['mu0'] else : # pression négative en compression ! return self.p['mu0']*math.exp(-self.p['alpha']*pres) def computeDerivation(self,pres): if pres>0.0: return 0.0 else : return -self.p['mu0']*self.p['alpha']*math.exp(-self.p['alpha']*pres)
The instances of MyBulkFunction and MyViscoPFunction are passed to the Norton-Hoff material law through the commands below
bulkLaw = MyBulkFunction(p) # <-- p stands viscoLaw = MyViscoPFunction(p) # <- " " # for parameters dictionnary and not pressure materset = domain.getMaterialSet() materset.define(1,NortonHoffPHypoMaterial) materset(1).put (BULK_MODULUS , 1.0) materset(1).depend(BULK_MODULUS , bulkLaw , Field(IF_P)) materset(1).put (NORTON_MU , 1.0) materset(1).depend(NORTON_MU , viscoLaw , Field(IF_P)) materset(1).put (NORTON_M , 1.0 ) materset(1).put (MASS_DENSITY , p['rho'] )
Norton-Hoff law including thermal aspects.
Name | Metafor Code | Dependency |
---|---|---|
Density | MASS_DENSITY | |
Bulk modulus | BULK_MODULUS | |
Parameter m | NORTON_M | |
Viscosity parameter | NORTON_MU | |
Thermal expansion | THERM_EXPANSION | TO/TM |
Conductivity | CONDUCTIVITY | TO/TM |
Heat capacity | HEAT_CAPACITY | TO/TM |
Dissipated thermoelastic power fraction | DISSIP_TE | - |
Dissipated (visco)plastic power fraction (Taylor-Quinney factor) | DISSIP_TQ | - |