Package esys :: Package escript :: Module rheologies :: Class IncompressibleIsotropicFlowCartesian
[hide private]
[frames] | no frames]

Class IncompressibleIsotropicFlowCartesian

object --+    
         |    
  PowerLaw --+
             |
object --+   |
         |   |
  Rheology --+
             |
            IncompressibleIsotropicFlowCartesian

This class implements the rheology of an isotropic Kelvin material.

Typical usage:

   sp = IncompressibleIsotropicFlow(domain, stress=0, v=0)
   sp.setTolerance()
   sp.initialize(...)
   v,p = sp.solve()

Note: This model has been used in the self-consistent plate-mantle model proposed in Hans-Bernd Muhlhaus and Klaus Regenauer-Lieb: Towards a self-consistent plate mantle model that includes elasticity: simple benchmarks and application to basic modes of convection, see doi: 10.1111/j.1365-246X.2005.02742.x

Instance Methods [hide private]
 
__getDeviatoricStrain(self, v)
Returns deviatoric strain of velocity v:
 
__init__(self, domain, stress=0, v=0, p=0, t=0, numMaterials=1, verbose=True, adaptSubTolerance=True)
Initializes the model.
 
getCurrentEtaEff(self)
returns the effective viscosity
float
getFlowTolerance(self)
Returns the relative tolerance for the flow solver
SolverOptions
getSolverOptionsDiv(self)
returns the solver options for solving the equation to project the divergence of the velocity onto the function space of presure in the incompressible solver, see StokesProblemCartesian.getSolverOptionsDiv for details..
SolverOptions
getSolverOptionsPressure(self)
returns the solver options used solve the equation for pressure in the incompressible solver, see StokesProblemCartesian.getSolverOptionsPressure for details.
SolverOptions
getSolverOptionsVelocity(self)
returns the solver options used solve the equation for velocity in the incompressible solver, see StokesProblemCartesian.getSolverOptionsVelocity for details.
 
setFlowTolerance(self, tol=0.0001)
Sets the relative tolerance for the flow solver.
 
setSolverOptionsDiv(self, options=None)
set the solver options for solving the equation to project the divergence of the velocity onto the function space of pressure in the incompressible solver, see StokesProblemCartesian.setSolverOptionsDiv for details.
 
setSolverOptionsPressure(self, options=None)
set the solver options for solving the equation for pressure in the incompressible solver, see StokesProblemCartesian.setSolverOptionsPressure for details.
 
setSolverOptionsVelocity(self, options=None)
set the solver options for solving the equation for velocity in the incompressible solver, see StokesProblemCartesian.setSolverOptionsVelocity for details.
 
update(self, dt, iter_max=100, inner_iter_max=20, verbose=False, usePCG=True)
Updates stress, velocity and pressure for time increment dt.

Inherited from PowerLaw: getElasticShearModulus, getEtaEff, getEtaN, getEtaTolerance, getFriction, getNumMaterials, getPower, getTauT, getTauY, setDruckerPragerLaw, setElasticShearModulus, setEtaTolerance, setPowerLaw, setPowerLaws, validMaterialId

Inherited from Rheology: checkVerbose, getDeviatoricStrain, getDeviatoricStress, getDomain, getForce, getGammaDot, getPressure, getStress, getSurfaceForce, getTau, getTime, getTolerance, getVelocity, getVelocityConstraint, setDeviatoricStrain, setDeviatoricStress, setExternals, setPressure, setTime, setTolerance, setVelocity

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, domain, stress=0, v=0, p=0, t=0, numMaterials=1, verbose=True, adaptSubTolerance=True)
(Constructor)

 

Initializes the model.

Parameters:
  • domain (Domain) - problem domain
  • stress (a tensor value/field of order 2) - initial (deviatoric) stress
  • v - initial velocity field
  • p (a scalar value/field) - initial pressure
  • t (float) - initial time
  • numMaterials (int) - number of materials
  • verbose (bool) - if True some informations are printed.
  • adaptSubTolerance (bool) - If True the tolerance for subproblem is set automatically.
Overrides: object.__init__

getFlowTolerance(self)

 

Returns the relative tolerance for the flow solver

Returns: float
tolerance of the flow solver
Overrides: Rheology.getFlowTolerance

setFlowTolerance(self, tol=0.0001)

 

Sets the relative tolerance for the flow solver. See StokesProblemCartesian.setTolerance for details.

Parameters:
  • tol (positive float) - desired relative tolerance for the flow solver
Overrides: Rheology.setFlowTolerance

setSolverOptionsDiv(self, options=None)

 

set the solver options for solving the equation to project the divergence of the velocity onto the function space of pressure in the incompressible solver, see StokesProblemCartesian.setSolverOptionsDiv for details.

Parameters:

setSolverOptionsPressure(self, options=None)

 

set the solver options for solving the equation for pressure in the incompressible solver, see StokesProblemCartesian.setSolverOptionsPressure for details.

Parameters:

setSolverOptionsVelocity(self, options=None)

 

set the solver options for solving the equation for velocity in the incompressible solver, see StokesProblemCartesian.setSolverOptionsVelocity for details.

Parameters:

update(self, dt, iter_max=100, inner_iter_max=20, verbose=False, usePCG=True)

 

Updates stress, velocity and pressure for time increment dt.

Parameters:
  • dt - time increment
  • inner_iter_max - maximum number of iteration steps in the incompressible solver
  • verbose - prints some infos in the incompressible solver