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

Class IncompressibleIsotropicFlowCartesian

                                object --+    
                                         |    
                                  PowerLaw --+
                                             |
                                object --+   |
                                         |   |
                                  Rheology --+
                                             |
                            object --+       |
                                     |       |
pdetools.HomogeneousSaddlePointProblem --+   |
                                         |   |
              flows.StokesProblemCartesian --+
                                             |
                                            IncompressibleIsotropicFlowCartesian

This class implements the rheology of an isotropic Kelvin material.

Typical usage:

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

Note: This model has been used in the self-consistent plate-mantle model proposed in U{Hans-Bernd Muhlhaus<emailto:h.muhlhaus@uq.edu.au>} and U{Klaus Regenauer-Lieb<mailto:klaus.regenauer-lieb@csiro.au>}: I{Towards a self-consistent plate mantle model that includes elasticity: simple benchmarks and application to basic modes of convection}, see U{doi: 10.1111/j.1365-246X.2005.02742.x<http://www3.interscience.wiley.com/journal/118661486/abstract>}

Instance Methods [hide private]
 
__init__(self, domain, stress=0, v=0, p=0, t=0, numMaterials=1, verbose=True)
Initializes the model.
 
getCurrentEtaEff(self)
returns the effective viscosity used in the last iteration step of the last time step.
 
initialize(self, F=None, f=None, fixed_v_mask=None, v_boundary=None, restoration_factor=None)
sets external forces and velocity constraints
 
update(self, dt, iter_max=10, eta_iter_max=20, verbose=False, usePCG=True, max_correction_steps=50)
Updates stress, velocity and pressure for time increment dt.
 
updateStokesEquation(self, v, p)
updates the underlying Stokes equation to consider dependencies from v and p

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, getRestorationFactor, getStress, getSurfaceForce, getTau, getTime, getVelocity, getVelocityConstraint, setDeviatoricStrain, setDeviatoricStress, setExternals, setGammaDot, setPressure, setStatus, setTime, setVelocity

Inherited from flows.StokesProblemCartesian: Bv, getDV, getSolverOptionsDiv, getSolverOptionsPressure, getSolverOptionsVelocity, inner_p, inner_pBv, norm_Bv, norm_v, setSolverOptionsDiv, setSolverOptionsPressure, setSolverOptionsVelocity, setStokesEquation, solve_AinvBt, solve_prec

Inherited from pdetools.HomogeneousSaddlePointProblem: getAbsoluteTolerance, getTolerance, norm_p, resetControlParameters, setAbsoluteTolerance, setControlParameter, setTolerance, solve

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

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)
(Constructor)

 
Initializes the model.
Parameters:
  • domain (Domain) - problem domain
  • stress (a tensor value/field of order 2) - initial (deviatoric) stress
  • v (a vector value/field) - 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.
Overrides: object.__init__

initialize(self, F=None, f=None, fixed_v_mask=None, v_boundary=None, restoration_factor=None)

 
sets external forces and velocity constraints
Parameters:
  • F (vector value/field) - external force
  • f (vector value/field on boundary) - surface force
  • fixed_v_mask (vector value/field) - location of constraints maked by positive values
  • v_boundary (vector value/field) - value of velocity at location of constraints
  • restoration_factor (scalar values/field) - factor for normal restoration force
Overrides: flows.StokesProblemCartesian.initialize

Note: Only changing parameters need to be specified.

update(self, dt, iter_max=10, eta_iter_max=20, verbose=False, usePCG=True, max_correction_steps=50)

 
Updates stress, velocity and pressure for time increment dt.
Parameters:
  • dt - time increment
  • iter_max - maximum number of iteration steps in the incompressible solver
  • eta_iter_max - maximum number of iteration steps in the incompressible solver
  • verbose - prints some infos in the incompressible solver

updateStokesEquation(self, v, p)

 
updates the underlying Stokes equation to consider dependencies from v and p
Overrides: flows.StokesProblemCartesian.updateStokesEquation