# esys.modellib.materials Package

## Classes

- `GravityForce`

- `MaterialTable`

- `Model`

- `ParameterSet`

- `SimpleEarthModel`

- `SimpleFluidMaterial`

- `SimpleSolidMaterial`

class esys.modellib.materials.GravityForce(**kwargs)

  Sets a gravity force of given direction in given domain:

  Note

    Instance variable domain - domain of interest (in).

  Note

    Instance variable domain - `esys.escript.Domain`

  Note

    Instance variable density - density, default 1 (in).

  Note

    Instance variable gravity - the gravity constant, default 9.81 (in).

  Note

    Instance variable direction - the direction of gravity, default [1.,0.,0.] (in).

  __init__(**kwargs)

    initializes the set

  gravity_force()

    return the gravity force as `density` * `gravity` * `direction`

class esys.modellib.materials.MaterialTable(**kwargs)

  A simple matrial table which allows setting physical ivar of a model

  Variables

    - density – density(in/out)

    - heat_capacity – heat_capacity(in/out)

    - thermal_permabilty – permabilty(in/out)

    - viscosity – viscosity(in/out)

    - radiation_coefficient – (in/out)

  __init__(**kwargs)

    Creates a ParameterSet with given parameters.

class esys.modellib.materials.Model(parameters=[], **kwargs)

  A Model object represents a process marching over time until a finalizing condition is fulfilled. At each time step an iterative process can be performed and the time step size can be controlled. A Model has the following work flow:

      doInitialization()
      while not terminateInitialIteration(): doInitialStep()
      doInitialPostprocessing()
      while not finalize():
          dt=getSafeTimeStepSize(dt)
          doStepPreprocessing(dt)
          while not terminateIteration(): doStep(dt)
          doStepPostprocessing(dt)
      doFinalization()

  where `doInitialization`, `finalize`, `getSafeTimeStepSize`, `doStepPreprocessing`, `terminateIteration`, `doStepPostprocessing`, `doFinalization` are methods of the particular instance of a Model. The default implementations of these methods have to be overwritten by the subclass implementing a Model.

  __init__(parameters=[], **kwargs)

    Creates a model.

    Just calls the parent constructor.

  UNDEF_DT = 1e+300
  doFinalization()

    Finalizes the time stepping.

    This function may be overwritten.

  doInitialPostprocessing()

    Finalises the initialization iteration process. This method is not called in case of a restart.

    This function may be overwritten.

  doInitialStep()

    Performs an iteration step in the initialization phase. This method is not called in case of a restart.

    This function may be overwritten.

  doInitialization()

    Initializes the time stepping scheme. This method is not called in case of a restart.

    This function may be overwritten.

  doStep(dt)

    Executes an iteration step at a time step.

    `dt` is the currently used time step size.

    This function may be overwritten.

  doStepPostprocessing(dt)

    Finalises the time step.

    dt is the currently used time step size.

    This function may be overwritten.

  doStepPreprocessing(dt)

    Sets up a time step of step size dt.

    This function may be overwritten.

  finalize()

    Returns False if the time stepping is finalized.

    This function may be overwritten.

  getSafeTimeStepSize(dt)

    Returns a time step size which can be safely used.

    `dt` gives the previously used step size.

    This function may be overwritten.

  setUp()

    Sets up the model.

    This function may be overwritten.

  terminateInitialIteration()

    Returns True if iteration at the inital phase is terminated.

  terminateIteration()

    Returns True if iteration on a time step is terminated.

  toDom(esysxml, node)

    `toDom` method of Model class.

class esys.modellib.materials.ParameterSet(parameters=[], **kwargs)

  A class which allows to emphasize attributes to be written and read to XML.

  Leaves of an ESySParameters object can be:

  > - a real number

  > - an integer number

  > - a string

  > - a boolean value

  > - a ParameterSet object

  > - a Simulation object

  > - a Model object

  > - a numpy object

  > - a list of booleans

  > - any other object (not considered by writeESySXML and writeXML)

  Example for how to create an ESySParameters object:

      p11=ParameterSet(gamma1=1.,gamma2=2.,gamma3=3.)
      p1=ParameterSet(dim=2,tol_v=0.001,output_file="/tmp/u.%3.3d.dx",runFlag=True,parm11=p11)
      parm=ParameterSet(parm1=p1,parm2=ParameterSet(alpha=Link(p11,"gamma1")))

  This can be accessed as:

      parm.parm1.gamma=0.
      parm.parm1.dim=2
      parm.parm1.tol_v=0.001
      parm.parm1.output_file="/tmp/u.%3.3d.dx"
      parm.parm1.runFlag=True
      parm.parm1.parm11.gamma1=1.
      parm.parm1.parm11.gamma2=2.
      parm.parm1.parm11.gamma3=3.
      parm.parm2.alpha=1. (value of parm.parm1.parm11.gamma1)

  __init__(parameters=[], **kwargs)

    Creates a ParameterSet with given parameters.

  checkLinkTargets(models, hash)

    Returns a set of tuples (“<self>(<name>)”, <target model>) if the parameter <name> is linked to model <target model> but <target model> is not in the list of models. If a parameter is linked to another parameter set which is not in the hash list the parameter set is checked for its models. hash gives the call history.

  declareParameter(**parameters)

    Declares one or more new parameters and their initial value.

  declareParameters(parameters)

    Declares a set of parameters. parameters can be a list, a dictionary or a ParameterSet.

  classmethod fromDom(esysxml, node)
  releaseParameters(name)

    Removes parameter name from the parameters.

  showParameters()

    Returns a description of the parameters.

  toDom(esysxml, node)

    `toDom` method of Model class.

  writeXML(ostream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)

    Writes the object as an XML object into an output stream.

class esys.modellib.materials.SimpleEarthModel(**kwargs)

  A simple matrial table run convection models:

      density=density0*(1-expansion_coefficient*(temperature-reference_temperature))
      viscocity=viscocity0*(exp(alpha*(1/reference_temperature - 1/temperature))

  Variables

    - gravity – gravity constants (9.81) (in)

    - reference_temperature – reference temperature (in)

    - density0 – density at reference temperature (in)

    - viscosity0 – viscosity0 at reference temperature (in)

    - alpha – viscosity contrast (in)

    - expansion_coefficient – Raleigh number (in)

    - heat_capacity – heat capacity (in)

    - thermal_permabilty – permabilty (in)

    - temperature – temperature (in)

    - viscosity – viscosity (out)

    - density – density (out)

  __init__(**kwargs)

    Creates a ParameterSet with given parameters.

  density()
  viscosity()

class esys.modellib.materials.SimpleFluidMaterial(**kwargs)

  A simple matrial table which allows setting physical ivar of a model.

  __init__(**kwargs)

    Creates a ParameterSet with given parameters.

class esys.modellib.materials.SimpleSolidMaterial(**kwargs)

  A simple matrial table which allows setting physical parameters of a model.

  __init__(**kwargs)

    Creates a ParameterSet with given parameters.

## Functions

esys.modellib.materials.exp(arg)

  Returns e to the power of argument `arg`.

  Parameters

    arg (`float`, `escript.Data`, `Symbol`, `numpy.ndarray`.) – argument

  Return type

    `float`, `escript.Data`, `Symbol`, `numpy.ndarray` depending on the type of arg

  Raises

    TypeError – if the type of the argument is not expected

## Others

## Packages