Loading...
Searching...
No Matches
Opm::Elasticity::Material Class Referenceabstract

This is a base class for linear elastic materials. More...

`#include <material.hh>`

Inheritance diagram for Opm::Elasticity::Material:

## Public Member Functions

virtual | ~Material ()
| Empty virtual destructor.
int | num () const
| Returns the external material id.
virtual int | numPar () const =0
| Returns the number of parameters describing this material.
virtual double | getPar (int=1) const
| Returns the ipar'th parameter describing this material.
virtual bool | getConstitutiveMatrix (Dune::FieldMatrix< double, 6, 6 > &C, bool invers=false) const =0
| Establishes the full constitutive matrix for this material.
virtual bool | getConstitutiveMatrix (Dune::FieldMatrix< double, 3, 3 > &C, bool invers=false) const =0
| Establishes the full constitutive matrix for this material.
double | getMassDensity () const
| Returns the mass density of this material.

## Static Public Member Functions

static Material * | create (int ID, const Dune::DynamicVector< double > &params)
| Creates a material object of a given type.
static Material * | create (int ID, const std::string &file)
| Creates a material object from a rocklist.

## Protected Member Functions

| Material (int ID=0, double density=0.0)
| Default constructor creating an empty material.
virtual std::ostream & | write (std::ostream &os) const
| Prints the material properties to a stream.

## Friends

std::ostream & | operator<< (std::ostream &os, const Material &m)
| Global stream operator printing a material properties object.

## Detailed Description

This is a base class for linear elastic materials.

It is an abstract class since some of the member functions are purely virtual.

## Member Function Documentation

## create() [1/2]

Material * Opm::Elasticity::Material::create | ( | int | ID,
|  | const Dune::DynamicVector< double > & | params )

static

Creates a material object of a given type.

The material type depends on the number of parameters provided.

Parameters

  [in] | ID | External number for this material
  [in] | params | Array of material parameters

## create() [2/2]

Material * Opm::Elasticity::Material::create | ( | int | ID,
|  | const std::string & | file )

static

Creates a material object from a rocklist.

Parameters

  [in] | ID | ID of the material
  [in] | file | The URL to the rocklist

## getConstitutiveMatrix() [1/2]

virtual bool Opm::Elasticity::Material::getConstitutiveMatrix | ( | Dune::FieldMatrix< double, 3, 3 > & | C,
|  | bool | invers = false ) const

pure virtual

Establishes the full constitutive matrix for this material.

Parameters

  [out] | C | The constitutive matrix
  [in] | invers | If true, set up the inverse matrix instead

Implemented in Opm::Elasticity::Isotropic, Opm::Elasticity::OrthotropicD, and Opm::Elasticity::OrthotropicSym.

## getConstitutiveMatrix() [2/2]

virtual bool Opm::Elasticity::Material::getConstitutiveMatrix | ( | Dune::FieldMatrix< double, 6, 6 > & | C,
|  | bool | invers = false ) const

pure virtual

Establishes the full constitutive matrix for this material.

Parameters

  [out] | C | The constitutive matrix
  [in] | invers | If true, set up the inverse matrix instead

Implemented in Opm::Elasticity::Isotropic, Opm::Elasticity::OrthotropicD, and Opm::Elasticity::OrthotropicSym.

## getPar()

virtual double Opm::Elasticity::Material::getPar | ( | int | = 1 | ) | const

inline virtual

Returns the ipar'th parameter describing this material.

Reimplemented in Opm::Elasticity::Isotropic, Opm::Elasticity::OrthotropicD, and Opm::Elasticity::OrthotropicSym.

## numPar()

virtual int Opm::Elasticity::Material::numPar | ( |  | ) | const

pure virtual

Returns the number of parameters describing this material.

Implemented in Opm::Elasticity::Isotropic, Opm::Elasticity::OrthotropicD, and Opm::Elasticity::OrthotropicSym.

## write()

virtual std::ostream & Opm::Elasticity::Material::write | ( | std::ostream & | os | ) | const

inline protected virtual

Prints the material properties to a stream.

Reimplemented in Opm::Elasticity::Isotropic, Opm::Elasticity::OrthotropicD, and Opm::Elasticity::OrthotropicSym.

The documentation for this class was generated from the following files:

- opm/elasticity/material.hh
- opm/elasticity/material.cpp