Opm::Elasticity Namespace Reference

Classes

class  ASMHandler
 Class handling finite element assembly. More...
 
class  BoundaryGrid
 A class describing a quad grid. More...
 
class  Elasticity
 Elasticity helper class. More...
 
class  ElasticityUpscale
 The main driver class. More...
 
class  HexGeometry
 Geometry class for general hexagons. More...
 
class  HexGeometry< 2, cdim, GridImp >
 Specialization for 2D quadrilaterals. More...
 
class  Isotropic
 Isotropic linear elastic material. More...
 
class  LagrangeCardinalFunction
 Represents a cardinal function on a line. More...
 
class  LinearShapeFunction
 Represents a linear shape function on a Q4/Q8 element. More...
 
struct  LinSolParams
 
class  Material
 This is a base class for linear elastic materials. More...
 
class  MatrixOps
 Helper class with some matrix operations. More...
 
class  MortarBlockEvaluator
 
class  MortarEvaluator
 
class  MortarSchurPre
 
class  MortarUtils
 
class  MPC
 A class for representing a general multi-point constraint equation. More...
 
struct  OperatorApplier
 Class abstracting a preconditioner or an inverse operator. More...
 
class  OrthotropicD
 Orthotropic linear elastic material with diagonal constitutive matrix. More...
 
class  OrthotropicSym
 Orthotropic linear elastic material with symmetric constitutive matrix. More...
 
class  P1ShapeFunctionSet
 Singleton handler for the set of LinearShapeFunction. More...
 
class  PNShapeFunctionSet
 
class  TensorProductFunction
 Represents a tensor-product of 1D functions. More...
 
class  UzawaSolver
 

Typedefs

typedef OperatorApplier
< Dune::InverseOperator
< Vector, Vector > > 
InverseApplier
 
typedef OperatorApplier
< Dune::Preconditioner< Vector,
Vector > > 
PreApplier
 
typedef Dune::BCRSMatrix
< Dune::FieldMatrix< double, 1, 1 > > 
Matrix
 A sparse matrix holding our operator. More...
 
typedef std::vector< std::set
< int > > 
AdjacencyPattern
 For storing matrix adjacency/sparsity patterns. More...
 
typedef Dune::BlockVector
< Dune::FieldVector< double, 1 > > 
Vector
 A vector holding our RHS. More...
 
typedef std::set< MPC
*, MPC::Less
MPCSet
 A set of MPCs. More...
 
typedef std::map< int, MPC * > MPCMap
 A mapping from dof to MPCs. More...
 

Enumerations

enum  Solver { DIRECT, ITERATIVE }
 An enumeration of available linear solver classes. More...
 
enum  Preconditioner {
  AMG, FASTAMG, SCHWARZ, TWOLEVEL,
  UNDETERMINED
}
 
enum  MultiplierPreconditioner {
  SIMPLE, SCHUR, SCHURAMG, SCHURSCHWARZ,
  SCHURTWOLEVEL
}
 An enumeration of the available preconditioners for multiplier block. More...
 
enum  Smoother { SMOOTH_SSOR = 0, SMOOTH_SCHWARZ = 1, SMOOTH_JACOBI = 2, SMOOTH_ILU = 4 }
 Smoother used in the AMG. More...
 
enum  Direction {
  NONE = 0, X = 1, Y = 2, Z = 4,
  XY = 1+2, XZ = 1+4, YZ = 2+4, XYZ = 1+2+4
}
 An enum for specification of global coordinate directions. More...
 

Functions

BoundaryGrid::Vertex minXminY (std::vector< BoundaryGrid::Vertex > &in)
 Find the vertex in the vector with minimum X and minimum Y. More...
 
BoundaryGrid::Vertex maxXminY (std::vector< BoundaryGrid::Vertex > &in)
 Find the vertex in the vector with maximum X and minimum Y. More...
 
BoundaryGrid::Vertex maxXmaxY (std::vector< BoundaryGrid::Vertex > &in)
 Find the vertex in the vector with maximum X and maximum Y. More...
 
BoundaryGrid::Vertex minXmaxY (std::vector< BoundaryGrid::Vertex > &in)
 Find the vertex in the vector with minimum X and maximum Y. More...
 
Dune::FieldVector< double, 3 > waveSpeeds (const Dune::FieldMatrix< double, 6, 6 > &C, double phi, double theta, double density)
 Compute the elastic wave velocities. More...
 
 IMPL_FUNC (std::vector< BoundaryGrid::Vertex >, extractFace(Direction dir, ctype coord))
 
 IMPL_FUNC (BoundaryGrid, extractMasterFace(Direction dir, ctype coord, SIDE side, bool dc))
 
master push_back (extractMasterFace(Y, min[1]))
 
master push_back (extractMasterFace(Z, min[2]))
 
slave push_back (extractFace(X, max[0]))
 
slave push_back (extractFace(Y, max[1]))
 
slave push_back (extractFace(Z, max[2]))
 
 for (LeafVertexIterator it=start;it!=itend;++it)
 
 IMPL_FUNC (void, addMPC(Direction dir, int slave, const BoundaryGrid::Vertex &m))
 
 IMPL_FUNC (void, periodicPlane(Direction plane, Direction dir, const std::vector< BoundaryGrid::Vertex > &slave, const BoundaryGrid &master))
 
static std::vector
< std::vector< int > > 
renumber (const BoundaryGrid &b, int n1, int n2, int &totalDOFs)
 Static helper to renumber a Q4 mesh to a P_1/P_N lag mesh. More...
 
 IMPL_FUNC (int, addBBlockMortar(const BoundaryGrid &b1, const BoundaryGrid &interface, int dir, int n1, int n2, int colofs))
 
 IMPL_FUNC (void, assembleBBlockMortar(const BoundaryGrid &b1, const BoundaryGrid &interface, int dir, int n1, int n2, int colofs, double alpha))
 
 IMPL_FUNC (void, fixPoint(Direction dir, GlobalCoordinate coord, const NodeValue &value))
 
 IMPL_FUNC (bool, isOnPlane(Direction plane, GlobalCoordinate coord, ctype value))
 
 IMPL_FUNC (void, fixLine(Direction dir, ctype x, ctype y, const NodeValue &value))
 
 IMPL_FUNC (bool, isOnLine(Direction dir, GlobalCoordinate coord, ctype x, ctype y))
 
 IMPL_FUNC (bool, isOnPoint(GlobalCoordinate coord, GlobalCoordinate point))
 
 if (loadcase >-1)
 
 if (matrix) A.getOperator()=0
 
 for (int i=0;i< 2;++i)
 
 IMPL_FUNC (template< int comp > void, averageStress(Dune::FieldVector< ctype, comp > &sigma, const Vector &u, int loadcase))
 
 if (file=="uniform")
 
Opm::DeckConstPtr deck (parser->parseFile(file, parseMode))
 
 if (deck->hasKeyword("YOUNGMOD")&&deck->hasKeyword("POISSONMOD"))
 
else if (deck->hasKeyword("LAMEMOD")&&deck->hasKeyword("SHEARMOD"))
 
else if (deck->hasKeyword("BULKMOD")&&deck->hasKeyword("SHEARMOD"))
 
else if (deck->hasKeyword("PERMX")&&deck->hasKeyword("PORO"))
 
 exit (1)
 
 if (deck->hasKeyword("SATNUM")) satnum
 
 if (deck->hasKeyword("RHO")) rho
 
 if (Escale > 0)
 
 if (satnum.empty())
 
 if (upscaledRho > 0)
 
 IMPL_FUNC (void, loadMaterialsFromRocklist(const std::string &file, const std::string &rocklist))
 
 determineSideFaces (min, max)
 
static std::cout<< "Xslave "
<< slave[0].size()
<< " "<< "Yslave "<< slave[1].size()
<< " "<< "Zslave "<< slave[2].size()
<< std::endl;std::cout
<< "Xmaster "<< master[0].size()
<< " "<< "Ymaster "<< master[1].size()
<< " "<< "Zmaster "<< master[2].size()
<< std::endl;periodicPlane(X,
XYZ, slave[0], master[0]);periodicPlane(Y,
XYZ, slave[1], master[1]);periodicPlane(Z,
XYZ, slave[2], master[2]);}IMPL_FUNC(void,
periodicBCsMortar(const double
*min, const double *max, int
n1, int n2, int p1, int p2)){fixCorners(min,
max);std::cout<< "\textracting
nodes on top face..."
<< std::endl;slave.push_back(extractFace(Z,
max[2]));std::cout
<< "\treconstructing bottom
face..."<< std::endl;BoundaryGrid
bottom=extractMasterFace(Z,
min[2]);std::cout
<< "\testablishing couplings
on top/bottom..."<< std::endl;periodicPlane(Z,
XYZ, slave[0], bottom);std::cout
<< "\tinitializing matrix..."
<< std::endl;A.initForAssembly();std::cout
<< "\treconstructing left
face..."<< std::endl;master.push_back(extractMasterFace(X,
min[0], LEFT, true));std::cout
<< "\treconstructing right
face..."<< std::endl;master.push_back(extractMasterFace(X,
max[0], RIGHT, true));std::cout
<< "\treconstructing front
face..."<< std::endl;master.push_back(extractMasterFace(Y,
min[1], LEFT, true));std::cout
<< "\treconstructing back
face..."<< std::endl;master.push_back(extractMasterFace(Y,
max[1], RIGHT, true));std::cout
<< "\testablished YZ
multiplier grid with "<< n2
<< "x1"<< " elements"
<< std::endl;BoundaryGrid::FaceCoord
fmin, fmax;fmin[0]=min[1];fmin[1]=min[2];fmax[0]=max[1];fmax[1]=max[2];BoundaryGrid
lambdax=BoundaryGrid::uniform(fmin,
fmax, n2, 1, true);fmin[0]=min[0];fmin[1]=min[2];fmax[0]=max[0];fmax[1]=max[2];std::cout
<< "\testablished XZ
multiplier grid with "<< n1
<< "x1"<< " elements"
<< std::endl;BoundaryGrid
lambday=BoundaryGrid::uniform(fmin,
fmax, n1, 1, true);addBBlockMortar(master[0],
lambdax, 0, 1, p2, 0);int eqns=addBBlockMortar(master[1],
lambdax, 0, 1, p2,
0);addBBlockMortar(master[2],
lambday, 1, 1, p1, eqns);int
eqns2=addBBlockMortar(master[3],
lambday, 1, 1, p1, eqns);MatrixOps::fromAdjacency(B,
Bpatt, A.getEqns(), eqns+eqns2);Bpatt.clear();std::cout
<< "\tassembling YZ mortar
matrix..."<< std::endl;assembleBBlockMortar(master[0],
lambdax, 0, 1, p2,
0);assembleBBlockMortar(master[1],
lambdax, 0, 1, p2,
0,-1.0);std::cout
<< "\tassembling XZ mortar
matrix..."<< std::endl;assembleBBlockMortar(master[2],
lambday, 1, 1, p1, eqns);assembleBBlockMortar(master[3],
lambday, 1, 1, p1, eqns,-1.0);master.clear();slave.clear();}template
< class M, class A > void 
applyMortarBlock (int i, const Matrix &B, M &T, A &upre)
 
 if (params.type==ITERATIVE)
 
std::cerr<< "No direct solver
available"<< std::endl;exit(1);siz=A.getOperator().N();}for(int
i=0;i< 6;++i) b[i].resize(siz);}{try{Dune::InverseOperatorResult
r;u[loadcase].resize(b[loadcase].size(),
false);u[loadcase]=0;int
solver=0;tsolver[solver]-> 
apply (u[loadcase], b[loadcase], r)
 

Variables

 min [0] = min[1] = min[2] = 1e5
 
const LeafVertexIterator itend = gv.leafGridView().template end<dim>()
 
LeafVertexIterator start = gv.leafGridView().template begin<dim>()
 
static const int bfunc = 4+(dim-2)*4
 
Dune::FieldVector< ctype, comp > eps0 = 0
 
MaterialMap cache
 
std::vector< double > Emod
 
std::vector< double > Poiss
 
std::vector< int > satnum
 
std::vector< double > rho
 
 upscaledRho = -1
 
 else
 
Opm::ParseMode parseMode
 
std::vector< int > cells = gv.globalCell()
 
int j =0
 
std::map< Material *, double > volume
 
std::cout<< "Number of
materials: "<< cache.size()
<< std::endl;double
totalvolume=0;for(std::map
< Material *, double >
::iterator it=volume.begin();it!=volume.end();++it)
totalvolume+=it-> 
second
 
int numsolvers = 1
 

Typedef Documentation

typedef std::vector< std::set<int> > Opm::Elasticity::AdjacencyPattern

For storing matrix adjacency/sparsity patterns.

typedef OperatorApplier<Dune::InverseOperator<Vector, Vector> > Opm::Elasticity::InverseApplier
typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1> > Opm::Elasticity::Matrix

A sparse matrix holding our operator.

typedef std::map<int,MPC*> Opm::Elasticity::MPCMap

A mapping from dof to MPCs.

A set of MPCs.

typedef OperatorApplier<Dune::Preconditioner<Vector, Vector> > Opm::Elasticity::PreApplier
typedef Dune::BlockVector<Dune::FieldVector<double,1> > Opm::Elasticity::Vector

A vector holding our RHS.

Enumeration Type Documentation

An enum for specification of global coordinate directions.

Enumerator
NONE 
XY 
XZ 
YZ 
XYZ 

An enumeration of the available preconditioners for multiplier block.

Enumerator
SIMPLE 

diagonal approximation of A

SCHUR 

schur + primary preconditioner

SCHURAMG 

schur + amg

SCHURSCHWARZ 

schur + schwarz+lu

SCHURTWOLEVEL 

schur + twolevel

Enumerator
AMG 
FASTAMG 
SCHWARZ 
TWOLEVEL 
UNDETERMINED 

Smoother used in the AMG.

Enumerator
SMOOTH_SSOR 
SMOOTH_SCHWARZ 
SMOOTH_JACOBI 
SMOOTH_ILU 

An enumeration of available linear solver classes.

Enumerator
DIRECT 
ITERATIVE 

Function Documentation

std::cerr<< "No direct solver available" << std::endl; exit(1); siz = A.getOperator().N(); } for (int i=0;i<6;++i) b[i].resize(siz);}{ try { Dune::InverseOperatorResult r; u[loadcase].resize(b[loadcase].size(), false); u[loadcase] = 0; int solver=0; tsolver[solver]-> Opm::Elasticity::apply ( [loadcase],
[loadcase],
 
)
static std::cout<< "Xslave " << slave[0].size() << " " << "Yslave " << slave[1].size() << " " << "Zslave " << slave[2].size() << std::endl; std::cout << "Xmaster " << master[0].size() << " " << "Ymaster " << master[1].size() << " " << "Zmaster " << master[2].size() << std::endl; periodicPlane(X,XYZ,slave[0],master[0]); periodicPlane(Y,XYZ,slave[1],master[1]); periodicPlane(Z,XYZ,slave[2],master[2]);}IMPL_FUNC(void, periodicBCsMortar(const double* min, const double* max, int n1, int n2, int p1, int p2)){ fixCorners(min,max); std::cout << "\textracting nodes on top face..." << std::endl; slave.push_back(extractFace(Z,max[2])); std::cout << "\treconstructing bottom face..." << std::endl; BoundaryGrid bottom = extractMasterFace(Z,min[2]); std::cout << "\testablishing couplings on top/bottom..." << std::endl; periodicPlane(Z,XYZ,slave[0],bottom); std::cout << "\tinitializing matrix..." << std::endl; A.initForAssembly(); std::cout << "\treconstructing left face..." << std::endl; master.push_back(extractMasterFace(X, min[0], LEFT, true)); std::cout << "\treconstructing right face..." << std::endl; master.push_back(extractMasterFace(X, max[0], RIGHT, true)); std::cout << "\treconstructing front face..." << std::endl; master.push_back(extractMasterFace(Y, min[1], LEFT, true)); std::cout << "\treconstructing back face..." << std::endl; master.push_back(extractMasterFace(Y, max[1], RIGHT, true)); std::cout << "\testablished YZ multiplier grid with " << n2 << "x1" << " elements" << std::endl; BoundaryGrid::FaceCoord fmin,fmax; fmin[0] = min[1]; fmin[1] = min[2]; fmax[0] = max[1]; fmax[1] = max[2]; BoundaryGrid lambdax = BoundaryGrid::uniform(fmin, fmax, n2, 1, true); fmin[0] = min[0]; fmin[1] = min[2]; fmax[0] = max[0]; fmax[1] = max[2]; std::cout << "\testablished XZ multiplier grid with " << n1 << "x1" << " elements" << std::endl; BoundaryGrid lambday = BoundaryGrid::uniform(fmin, fmax, n1, 1, true); addBBlockMortar(master[0], lambdax, 0, 1, p2, 0); int eqns = addBBlockMortar(master[1], lambdax, 0, 1, p2, 0); addBBlockMortar(master[2], lambday, 1, 1, p1, eqns); int eqns2 = addBBlockMortar(master[3], lambday, 1, 1, p1, eqns); MatrixOps::fromAdjacency(B, Bpatt, A.getEqns(), eqns+eqns2); Bpatt.clear(); std::cout << "\tassembling YZ mortar matrix..." << std::endl; assembleBBlockMortar(master[0], lambdax, 0, 1, p2, 0); assembleBBlockMortar(master[1], lambdax, 0, 1, p2, 0, -1.0); std::cout << "\tassembling XZ mortar matrix..." << std::endl; assembleBBlockMortar(master[2], lambday, 1, 1, p1, eqns); assembleBBlockMortar(master[3], lambday, 1, 1, p1, eqns, -1.0); master.clear(); slave.clear();} template<class M, class A> void Opm::Elasticity::applyMortarBlock ( int  i,
const Matrix &  B,
M &  T,
A &  upre 
)
static
Opm::DeckConstPtr Opm::Elasticity::deck ( parser->  parseFilefile, parseMode)

Referenced by if(), and IMPL_FUNC().

Opm::Elasticity::determineSideFaces ( min  ,
max   
)
Opm::Elasticity::exit ( )

Referenced by if(), and IMPL_FUNC().

Opm::Elasticity::for ( LeafVertexIterator  it = start; it != itend; ++it)

References min.

Opm::Elasticity::for ( )
Initial value:
{
ctype c[8][3] = {{min[0],min[1],min[2]},
{max[0],min[1],min[2]},
{min[0],max[1],min[2]},
{max[0],max[1],min[2]},
{min[0],min[1],max[2]},
{max[0],min[1],max[2]},
{min[0],max[1],max[2]},
{max[0],max[1],max[2]}}
min[0]
Definition: elasticity_upscale_impl.hpp:144

References j.

Opm::Elasticity::if ( loadcase  ,
1 
)
Opm::Elasticity::if ( matrix  )
pure virtual
Opm::Elasticity::if ( file  = = "uniform")

References cells.

Opm::Elasticity::if ( deck->  hasKeyword"YOUNGMOD")&&deck->hasKeyword("POISSONMOD")

References deck(), and exit().

else Opm::Elasticity::if ( deck->  hasKeyword"LAMEMOD")&&deck->hasKeyword("SHEARMOD")
else Opm::Elasticity::if ( deck->  hasKeyword"BULKMOD")&&deck->hasKeyword("SHEARMOD")
else Opm::Elasticity::if ( deck->  hasKeyword"PERMX")&&deck->hasKeyword("PORO")
Opm::Elasticity::if ( deck->  hasKeyword"SATNUM")
Opm::Elasticity::if ( deck->  hasKeyword"RHO")
Opm::Elasticity::if ( Escale  ,
 
)
Opm::Elasticity::if ( satnum.  empty())
Opm::Elasticity::if ( upscaledRho  ,
 
)

References upscaledRho.

Opm::Elasticity::IMPL_FUNC ( std::vector< BoundaryGrid::Vertex >  ,
extractFace(Direction dir, ctype coord)   
)
Opm::Elasticity::IMPL_FUNC ( void  ,
periodicPlane(Direction plane,Direction dir,const std::vector< BoundaryGrid::Vertex > &slave,const BoundaryGrid &master)   
)
Opm::Elasticity::IMPL_FUNC ( void  ,
fixPoint(Direction dir,GlobalCoordinate coord,const NodeValue &value)   
)

References itend.

Opm::Elasticity::IMPL_FUNC ( bool  ,
isOnPlane(Direction plane,GlobalCoordinate coord,ctype value)   
)

References Z.

Opm::Elasticity::IMPL_FUNC ( void  ,
fixLine(Direction dir,ctype x, ctype y,const NodeValue &value)   
)

References itend, and XYZ.

Opm::Elasticity::IMPL_FUNC ( bool  ,
isOnLine(Direction dir,GlobalCoordinate coord,ctype x, ctype y)   
)

References Z.

Opm::Elasticity::IMPL_FUNC ( bool  ,
isOnPoint(GlobalCoordinate coord,GlobalCoordinate point)   
)
Opm::Elasticity::IMPL_FUNC ( template< int comp >  void,
averageStress(Dune::FieldVector< ctype, comp > &sigma,const Vector &u, int loadcase)   
)

References eps0, itend, and volume.

Opm::Elasticity::IMPL_FUNC ( void  ,
loadMaterialsFromRocklist(const std::string &file,const std::string &rocklist)   
)
BoundaryGrid::Vertex Opm::Elasticity::maxXmaxY ( std::vector< BoundaryGrid::Vertex > &  in)

Find the vertex in the vector with maximum X and maximum Y.

Returns
The requested vertex

Referenced by IMPL_FUNC().

BoundaryGrid::Vertex Opm::Elasticity::maxXminY ( std::vector< BoundaryGrid::Vertex > &  in)

Find the vertex in the vector with maximum X and minimum Y.

Returns
The requested vertex

Referenced by IMPL_FUNC().

BoundaryGrid::Vertex Opm::Elasticity::minXmaxY ( std::vector< BoundaryGrid::Vertex > &  in)

Find the vertex in the vector with minimum X and maximum Y.

Returns
The requested vertex

Referenced by IMPL_FUNC().

BoundaryGrid::Vertex Opm::Elasticity::minXminY ( std::vector< BoundaryGrid::Vertex > &  in)

Find the vertex in the vector with minimum X and minimum Y.

Returns
The requested vertex

Referenced by IMPL_FUNC().

master Opm::Elasticity::push_back ( extractMasterFace(Y, min[1])  )
master Opm::Elasticity::push_back ( extractMasterFace(Z, min[2])  )
slave Opm::Elasticity::push_back ( extractFace(X, max[0])  )
slave Opm::Elasticity::push_back ( extractFace(Y, max[1])  )
slave Opm::Elasticity::push_back ( extractFace(Z, max[2])  )
static std::vector< std::vector<int> > Opm::Elasticity::renumber ( const BoundaryGrid &  b,
int  n1,
int  n2,
int &  totalDOFs 
)
static

Static helper to renumber a Q4 mesh to a P_1/P_N lag mesh.

Parameters
[in]bThe boundary grid describing the Q4 mesh
[in]n1Number of DOFS in the first direction for each element
[in]n2Number of DOFS in the first direction for each element
[out]totalDOFsThe total number of free DOFs

References push_back(), and Opm::Elasticity::BoundaryGrid::size().

Referenced by IMPL_FUNC().

Dune::FieldVector< double, 3 > Opm::Elasticity::waveSpeeds ( const Dune::FieldMatrix< double, 6, 6 > &  C,
double  phi,
double  theta,
double  density 
)

Compute the elastic wave velocities.

C The elastic tensor phi dip angle theta Azimuth angle density Density of material

References j.

Variable Documentation

const int Opm::Elasticity::bfunc = 4+(dim-2)*4
static
MaterialMap Opm::Elasticity::cache
Initial value:
{
typedef std::map<std::pair<double,double>,
std::shared_ptr<Material> > MaterialMap

Referenced by IMPL_FUNC().

std::vector<int> Opm::Elasticity::cells = gv.globalCell()

Referenced by if().

Opm::Elasticity::else
Initial value:
{
Opm::ParserPtr parser(new Opm::Parser())
std::vector<double> Opm::Elasticity::Emod
Opm::Elasticity::eps0 = 0

Referenced by IMPL_FUNC().

const LeafVertexIterator Opm::Elasticity::itend = gv.leafGridView().template end<dim>()
int Opm::Elasticity::numsolvers = 1

Referenced by if().

Opm::ParseMode Opm::Elasticity::parseMode

Referenced by IMPL_FUNC().

std::vector<double> Opm::Elasticity::Poiss
std::vector<double> Opm::Elasticity::rho
std::vector<int> Opm::Elasticity::satnum
std::cout<< "Number of materials: " << cache.size() << std::endl; double totalvolume=0; for (std::map<Material*,double>::iterator it = volume.begin(); it != volume.end(); ++it) totalvolume += it-> Opm::Elasticity::second
LeafVertexIterator Opm::Elasticity::start = gv.leafGridView().template begin<dim>()
Opm::Elasticity::upscaledRho = -1

Referenced by if().

std::map<Material*,double> Opm::Elasticity::volume

Referenced by IMPL_FUNC().