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

Class IncompressibleIsotropicKelvinFlow

     object --+    
              |    
pdetools.Defect --+
                  |
                 IncompressibleIsotropicKelvinFlow

This class implements the rheology of an isotropic Kelvin material.

Typical usage:

   sp = IncompressibleIsotropicKelvinFlow(domain, stress=0, v=0)
   sp.setTolerance()
   sp.initialize(...)
   v,p = sp.solve(v0, p0)

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]
 
__init__(self, domain, stress=0, v=0, p=0, t=0, numMaterials=1, useJaumannStress=True, **kwargs)
Initializes the model.
float
bilinearform(self, arg0, arg1)
Returns the inner product of x0 and x1
 
eval(self, arg)
Returns the value F of a given x.
 
evalEtaEff(self, tau, return_dash=False)
 
getDeviatoricStrain(self, velocity=None)
Returns strain.
 
getDeviatoricStress(self)
Returns current stress.
 
getDomain(self)
Returns the domain.
 
getEtaCharacteristic(self)
 
getEtaEff(self, strain, pressure)
 
getGammaDot(self, strain=None)
Returns current second stress deviatoric invariant.
 
getNewDeviatoricStress(self, D, eta_eff=None)
 
getPressure(self)
Returns current pressure.
positive float
getSmall(self)
Returns small value.
 
getTau(self, stress=None)
Returns current second stress deviatoric invariant.
 
getTime(self)
Returns current time.
positive float
getTolerance(self)
Returns the set tolerance.
 
getVelocity(self)
Returns current velocity.
 
setExternals(self, F=None, f=None, q=None, v_boundary=None)
Sets externals.
 
setSmall(self, small=1.49011611938e-08)
Sets a small value to be used.
 
setTolerance(self, tol=0.0001)
Sets the tolerance.
 
update(self, dt, iter_max=100, inner_iter_max=20, verbose=False)
Updates stress, velocity and pressure for time increment dt.
 
useJaumannStress(self)
Returns True if Jaumann stress is included.

Inherited from pdetools.Defect: __call__, derivative, getDerivativeIncrementLength, norm, setDerivativeIncrementLength

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, useJaumannStress=True, **kwargs)
(Constructor)

 

Initializes the model.

Parameters:
  • domain (domain) - problem domain
  • stress - initial deviatoric stress
  • v - initial velocity field
  • p - initial pressure
  • t - initial time
  • useJaumannStress - True if Jaumann stress is used (not supported yet)
Overrides: object.__init__

bilinearform(self, arg0, arg1)

 

Returns the inner product of x0 and x1

Parameters:
  • x0 - value for x0
  • x1 - value for x1
Returns: float
the inner product of x0 and x1
Overrides: pdetools.Defect.bilinearform
(inherited documentation)

eval(self, arg)

 

Returns the value F of a given x.

Parameters:
  • x - value for which the defect F is evaluated
Returns:
value of the defect at x
Overrides: pdetools.Defect.eval
(inherited documentation)

setExternals(self, F=None, f=None, q=None, v_boundary=None)

 

Sets externals.

Parameters:
  • F - external force
  • f - surface force
  • q - location of constraints

setSmall(self, small=1.49011611938e-08)

 

Sets a small value to be used.

Parameters:
  • small - positive small value

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

 

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