version 3.11-dev
Loading...
Searching...
No Matches
Dumux::ElasticLocalResidual< TypeTag > Class Template Reference

Element-wise calculation of the local residual for problems using the elastic model considering linear elasticity. More...

#include <dumux/solidmechanics/elastic/localresidual.hh>

Inheritance diagram for Dumux::ElasticLocalResidual< TypeTag >:

Description

template<class TypeTag>
class Dumux::ElasticLocalResidual< TypeTag >

Two assembly interfaces are supported, chosen by the grid variables. With FVGridVariables (FVAssembler), the residual uses the volume variables, the stress type and the problem's neumann/dirichlet interface. With Experimental::GridVariables (Experimental::Assembler), it is written in terms of local degrees of freedom: degrees of freedom with a control volume are tested with its indicator function, all others with their basis function. The problem then provides the body force as source(elemDisc, elemVars, ipData), boundary terms as boundaryFlux(elemDisc, elemVars, ipData) and Dirichlet conditions as constraints, and the spatial parameters provide lameParams(elemDisc, ipData).

Public Member Functions

template<class SubControlVolume, class VolumeVariables>
NumEqVector computeStorage (const Problem &problem, const SubControlVolume &scv, const VolumeVariables &volVars) const
 For the elastic model the storage term is zero since we neglect inertia forces.
template<class ElementVolumeVariables, class SubControlVolumeFace, class ElementFluxVariablesCache>
NumEqVector computeFlux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf, const ElementFluxVariablesCache &elemFluxVarsCache) const
 Evaluates the force in all grid directions acting on a face of a sub-control volume.
template<class ElementVolumeVariables, class SubControlVolume>
NumEqVector computeSource (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolume &scv) const
 Calculate the source term of the equation.
template<class ElementDiscretization, class ElementVariables, class Scv>
NumEqVector storageIntegral (const ElementDiscretization &, const ElementVariables &, const Scv &, bool) const
 The storage term is zero for quasi-static elasticity (assembly with local degrees of freedom).
template<class ElementDiscretization, class ElementVariables, class Scv>
NumEqVector sourceIntegral (const ElementDiscretization &elemDisc, const ElementVariables &elemVars, const Scv &scv) const
 The body force \( \int \mathbf{f} \) over a control volume (assembly with local degrees of freedom).
template<class ElementDiscretization, class ElementVariables, class Scvf>
NumEqVector fluxIntegral (const ElementDiscretization &elemDisc, const ElementVariables &elemVars, const Scvf &scvf) const
 The stress flux \( -\int \boldsymbol{\sigma}\mathbf{n} \) over a control volume face (assembly with local degrees of freedom).
template<class ElementResidualVector, class ElementDiscretization, class ElementVariables>
void addToElementFluxAndSourceResidual (ElementResidualVector &residual, const Problem &problem, const Element &element, const ElementDiscretization &elemDisc, const ElementVariables &elemVars) const
 The Galerkin terms \( \int \boldsymbol{\sigma} : \nabla \mathbf{w} - \mathbf{f} \cdot \mathbf{w} \) of the degrees of freedom without control volume (assembly with local degrees of freedom).

Member Function Documentation

◆ addToElementFluxAndSourceResidual()

template<class TypeTag>
template<class ElementResidualVector, class ElementDiscretization, class ElementVariables>
void Dumux::ElasticLocalResidual< TypeTag >::addToElementFluxAndSourceResidual ( ElementResidualVector & residual,
const Problem & problem,
const Element & element,
const ElementDiscretization & elemDisc,
const ElementVariables & elemVars ) const
inline

◆ computeFlux()

template<class TypeTag>
template<class ElementVolumeVariables, class SubControlVolumeFace, class ElementFluxVariablesCache>
NumEqVector Dumux::ElasticLocalResidual< TypeTag >::computeFlux ( const Problem & problem,
const Element & element,
const FVElementGeometry & fvGeometry,
const ElementVolumeVariables & elemVolVars,
const SubControlVolumeFace & scvf,
const ElementFluxVariablesCache & elemFluxVarsCache ) const
inline
Parameters
problemThe problem
elementThe current element.
fvGeometryThe finite-volume geometry
elemVolVarsThe volume variables of the current element
scvfThe sub control volume face to compute the flux on
elemFluxVarsCacheThe cache related to flux computation

◆ computeSource()

template<class TypeTag>
template<class ElementVolumeVariables, class SubControlVolume>
NumEqVector Dumux::ElasticLocalResidual< TypeTag >::computeSource ( const Problem & problem,
const Element & element,
const FVElementGeometry & fvGeometry,
const ElementVolumeVariables & elemVolVars,
const SubControlVolume & scv ) const
inline
Parameters
problemThe problem to solve
elementThe DUNE Codim<0> entity for which the residual ought to be calculated
fvGeometryThe finite-volume geometry of the element
elemVolVarsThe volume variables associated with the element stencil
scvThe sub-control volume over which we integrate the source term
Note
This is the default implementation for geomechanical models adding to the user defined sources the source stemming from the gravitational acceleration.

◆ computeStorage()

template<class TypeTag>
template<class SubControlVolume, class VolumeVariables>
NumEqVector Dumux::ElasticLocalResidual< TypeTag >::computeStorage ( const Problem & problem,
const SubControlVolume & scv,
const VolumeVariables & volVars ) const
inline
Parameters
problemThe problem
scvThe sub control volume
volVarsThe current or previous volVars

◆ fluxIntegral()

template<class TypeTag>
template<class ElementDiscretization, class ElementVariables, class Scvf>
NumEqVector Dumux::ElasticLocalResidual< TypeTag >::fluxIntegral ( const ElementDiscretization & elemDisc,
const ElementVariables & elemVars,
const Scvf & scvf ) const
inline

◆ sourceIntegral()

template<class TypeTag>
template<class ElementDiscretization, class ElementVariables, class Scv>
NumEqVector Dumux::ElasticLocalResidual< TypeTag >::sourceIntegral ( const ElementDiscretization & elemDisc,
const ElementVariables & elemVars,
const Scv & scv ) const
inline

◆ storageIntegral()

template<class TypeTag>
template<class ElementDiscretization, class ElementVariables, class Scv>
NumEqVector Dumux::ElasticLocalResidual< TypeTag >::storageIntegral ( const ElementDiscretization & ,
const ElementVariables & ,
const Scv & ,
bool  ) const
inline

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