![]() |
v0.14.0 |
Implementation of operators, problem and finite elements for unsaturated flow. More...
#include <users_modules/tutorials/cor-0to1/src/UnsaturatedFlow.hpp>
Classes | |
struct | BcData |
Class storing information about boundary condition. More... | |
struct | FaceRule |
Set integration rule to boundary elements. More... | |
struct | MonitorPostProc |
struct | OpDivTauU_HdivL2 |
struct | OpEvaluateInitiallHead |
struct | OpIntegrateFluxes |
struct | OpPostProcMaterial |
struct | OpResidualFlux |
Assemble flux residual. More... | |
struct | OpResidualMass |
struct | OpRhsBcOnValues |
Evaluate boundary condition at the boundary. More... | |
struct | OpTauDotSigma_HdivHdiv |
struct | OpVDivSigma_L2Hdiv |
struct | OpVU_L2L2 |
struct | postProcessVol |
Post proces method for volume element Assemble vectors and matrices and apply essential boundary conditions. More... | |
struct | preProcessVol |
Pre-peprocessing Set head pressure rate and get inital essential boundary conditions. More... | |
struct | VolRule |
Set integration rule to volume elements. More... | |
Public Types | |
typedef std::map< int, boost::shared_ptr< GenericMaterial > > | MaterialsDoubleMap |
typedef map< int, boost::shared_ptr< BcData > > | BcMap |
Public Member Functions | |
UnsaturatedFlowElement (MoFEM::Interface &m_field) | |
~UnsaturatedFlowElement () | |
virtual MoFEMErrorCode | getMaterial (const EntityHandle ent, int &block_id) const |
For given element handle get material block Id. More... | |
MoFEMErrorCode | getBcOnValues (const EntityHandle ent, const int gg, const double x, const double y, const double z, double &value) |
Get value on boundary. More... | |
MoFEMErrorCode | getBcOnFluxes (const EntityHandle ent, const double x, const double y, const double z, double &flux) |
essential (Neumann) boundary condition (set fluxes) More... | |
MoFEMErrorCode | addFields (const std::string &values, const std::string &fluxes, const int order) |
add fields More... | |
MoFEMErrorCode | addFiniteElements (const std::string &fluxes_name, const std::string &values_name) |
add finite elements More... | |
MoFEMErrorCode | buildProblem (Range zero_flux_ents, BitRefLevel ref_level=BitRefLevel().set(0)) |
Build problem. More... | |
MoFEMErrorCode | setFiniteElements (ForcesAndSourcesCore::RuleHookFun vol_rule=VolRule(), ForcesAndSourcesCore::RuleHookFun face_rule=FaceRule()) |
Create finite element instances. More... | |
MoFEMErrorCode | createMatrices () |
Create vectors and matrices. More... | |
MoFEMErrorCode | destroyMatrices () |
Delete matrices and vector when no longer needed. More... | |
MoFEMErrorCode | calculateEssentialBc () |
Calculate boundary conditions for fluxes. More... | |
MoFEMErrorCode | calculateInitialPc () |
Calculate inital pressure head distribution. More... | |
MoFEMErrorCode | solveProblem (bool set_initial_pc=true) |
solve problem More... | |
![]() | |
MixTransportElement (MoFEM::Interface &m_field) | |
construction of this data structure More... | |
virtual | ~MixTransportElement () |
destructor More... | |
MoFEMErrorCode | getDirichletBCIndices (IS *is) |
get dof indices where essential boundary conditions are applied More... | |
virtual MoFEMErrorCode | getSource (const EntityHandle ent, const double x, const double y, const double z, double &flux) |
set source term More... | |
virtual MoFEMErrorCode | getResistivity (const EntityHandle ent, const double x, const double y, const double z, MatrixDouble3by3 &inv_k) |
natural (Dirichlet) boundary conditions (set values) More... | |
virtual MoFEMErrorCode | getBcOnValues (const EntityHandle ent, const int gg, const double x, const double y, const double z, double &value) |
evaluate natural (Dirichlet) boundary conditions More... | |
virtual MoFEMErrorCode | getBcOnFluxes (const EntityHandle ent, const double x, const double y, const double z, double &flux) |
essential (Neumann) boundary condition (set fluxes) More... | |
MoFEMErrorCode | addFields (const std::string &values, const std::string &fluxes, const int order) |
Add fields to database. More... | |
MoFEMErrorCode | addFiniteElements (const std::string &fluxes_name, const std::string &values_name) |
add finite elements More... | |
MoFEMErrorCode | buildProblem (BitRefLevel &ref_level) |
Build problem. More... | |
MoFEMErrorCode | postProc (const string out_file) |
Post process results. More... | |
MoFEMErrorCode | createMatrices () |
create matrices More... | |
MoFEMErrorCode | solveLinearProblem () |
solve problem More... | |
MoFEMErrorCode | calculateResidual () |
calculate residual More... | |
MoFEMErrorCode | evaluateError () |
Calculate error on elements. More... | |
MoFEMErrorCode | destroyMatrices () |
destroy matrices More... | |
Public Attributes | |
DM | dM |
Discrete manager for unsaturated flow problem. More... | |
MaterialsDoubleMap | dMatMap |
materials database More... | |
BcMap | bcValueMap |
Store boundary condition for head capillary pressure. More... | |
EntityHandle | lastEvalBcValEnt |
int | lastEvalBcBlockValId |
BcMap | bcFluxMap |
EntityHandle | lastEvalBcFluxEnt |
int | lastEvalBcBlockFluxId |
boost::shared_ptr< ForcesAndSourcesCore > | feFaceBc |
Elemnet to calculate essential bc. More... | |
boost::shared_ptr< ForcesAndSourcesCore > | feFaceRhs |
Face element apply natural bc. More... | |
boost::shared_ptr< ForcesAndSourcesCore > | feVolInitialPc |
Calculate inital boundary conditions. More... | |
boost::shared_ptr< ForcesAndSourcesCore > | feVolRhs |
Assemble residual vector. More... | |
boost::shared_ptr< ForcesAndSourcesCore > | feVolLhs |
Assemble tangent matrix. More... | |
boost::shared_ptr< MethodForForceScaling > | scaleMethodFlux |
Method scaling fluxes. More... | |
boost::shared_ptr< MethodForForceScaling > | scaleMethodValue |
Method scaling values. More... | |
boost::shared_ptr< FEMethod > | tsMonitor |
boost::shared_ptr< VectorDouble > | headRateAtGaussPts |
Vector keeps head rate. More... | |
std::vector< int > | bcVecIds |
VectorDouble | bcVecVals |
VectorDouble | vecValsOnBc |
Vec | D1 |
Vector with inital head capillary pressure. More... | |
Vec | ghostFlux |
Ghost Vector of integrated fluxes. More... | |
![]() | |
MoFEM::Interface & | mField |
MyVolumeFE | feVol |
Instance of volume element. More... | |
MyTriFE | feTri |
Instance of surface element. More... | |
VectorDouble | valuesAtGaussPts |
values at integration points on element More... | |
MatrixDouble | valuesGradientAtGaussPts |
gradients at integration points on element More... | |
VectorDouble | divergenceAtGaussPts |
divergence at integration points on element More... | |
MatrixDouble | fluxesAtGaussPts |
fluxes at integration points on element More... | |
set< int > | bcIndices |
std::map< int, BlockData > | setOfBlocks |
maps block set id with appropriate BlockData More... | |
Vec | D |
Vec | D0 |
Vec | F |
Mat | Aij |
map< double, EntityHandle > | errorMap |
double | sumErrorFlux |
double | sumErrorDiv |
double | sumErrorJump |
Implementation of operators, problem and finite elements for unsaturated flow.
Definition at line 102 of file UnsaturatedFlow.hpp.
typedef map<int, boost::shared_ptr<BcData> > MixTransport::UnsaturatedFlowElement::BcMap |
Definition at line 152 of file UnsaturatedFlow.hpp.
typedef std::map<int, boost::shared_ptr<GenericMaterial> > MixTransport::UnsaturatedFlowElement::MaterialsDoubleMap |
Definition at line 118 of file UnsaturatedFlow.hpp.
|
inline |
Definition at line 106 of file UnsaturatedFlow.hpp.
|
inline |
Definition at line 111 of file UnsaturatedFlow.hpp.
|
inline |
add fields
Definition at line 1136 of file UnsaturatedFlow.hpp.
|
inline |
add finite elements
Definition at line 1172 of file UnsaturatedFlow.hpp.
|
inline |
Build problem.
ref_level | mesh refinement on which mesh problem you like to built. |
Definition at line 1241 of file UnsaturatedFlow.hpp.
|
inline |
Calculate boundary conditions for fluxes.
Definition at line 1650 of file UnsaturatedFlow.hpp.
|
inline |
Calculate inital pressure head distribution.
Definition at line 1675 of file UnsaturatedFlow.hpp.
|
inline |
Create vectors and matrices.
Definition at line 1616 of file UnsaturatedFlow.hpp.
|
inline |
Delete matrices and vector when no longer needed.
Definition at line 1635 of file UnsaturatedFlow.hpp.
|
inlinevirtual |
essential (Neumann) boundary condition (set fluxes)
ent | handle to finite element entity |
x | coord |
y | coord |
z | coord |
flux | reference to flux which is set by function |
Reimplemented from MixTransport::MixTransportElement.
Definition at line 210 of file UnsaturatedFlow.hpp.
|
inlinevirtual |
Get value on boundary.
ent | entity handle |
gg | number of integration point |
x | x-coordinate |
y | y-coordinate |
z | z-coordinate |
value | returned value |
Reimplemented from MixTransport::MixTransportElement.
Definition at line 168 of file UnsaturatedFlow.hpp.
|
inlinevirtual |
For given element handle get material block Id.
ent | finite element entity handle |
block_id | reference to returned block id |
Definition at line 127 of file UnsaturatedFlow.hpp.
|
inline |
Create finite element instances.
vol_rule | integration rule for volume element |
face_rule | integration rule for boundary element |
Definition at line 1446 of file UnsaturatedFlow.hpp.
|
inline |
solve problem
Definition at line 1700 of file UnsaturatedFlow.hpp.
BcMap MixTransport::UnsaturatedFlowElement::bcFluxMap |
Definition at line 197 of file UnsaturatedFlow.hpp.
BcMap MixTransport::UnsaturatedFlowElement::bcValueMap |
Store boundary condition for head capillary pressure.
Definition at line 153 of file UnsaturatedFlow.hpp.
std::vector<int> MixTransport::UnsaturatedFlowElement::bcVecIds |
Definition at line 1323 of file UnsaturatedFlow.hpp.
VectorDouble MixTransport::UnsaturatedFlowElement::bcVecVals |
Definition at line 1324 of file UnsaturatedFlow.hpp.
Vec MixTransport::UnsaturatedFlowElement::D1 |
Vector with inital head capillary pressure.
Definition at line 1609 of file UnsaturatedFlow.hpp.
DM MixTransport::UnsaturatedFlowElement::dM |
Discrete manager for unsaturated flow problem.
Definition at line 104 of file UnsaturatedFlow.hpp.
MaterialsDoubleMap MixTransport::UnsaturatedFlowElement::dMatMap |
boost::shared_ptr<ForcesAndSourcesCore> MixTransport::UnsaturatedFlowElement::feFaceBc |
Elemnet to calculate essential bc.
Definition at line 1287 of file UnsaturatedFlow.hpp.
boost::shared_ptr<ForcesAndSourcesCore> MixTransport::UnsaturatedFlowElement::feFaceRhs |
Face element apply natural bc.
Definition at line 1289 of file UnsaturatedFlow.hpp.
boost::shared_ptr<ForcesAndSourcesCore> MixTransport::UnsaturatedFlowElement::feVolInitialPc |
Calculate inital boundary conditions.
Definition at line 1291 of file UnsaturatedFlow.hpp.
boost::shared_ptr<ForcesAndSourcesCore> MixTransport::UnsaturatedFlowElement::feVolLhs |
Assemble tangent matrix.
Definition at line 1294 of file UnsaturatedFlow.hpp.
boost::shared_ptr<ForcesAndSourcesCore> MixTransport::UnsaturatedFlowElement::feVolRhs |
Assemble residual vector.
Definition at line 1293 of file UnsaturatedFlow.hpp.
Vec MixTransport::UnsaturatedFlowElement::ghostFlux |
Ghost Vector of integrated fluxes.
Definition at line 1610 of file UnsaturatedFlow.hpp.
boost::shared_ptr<VectorDouble> MixTransport::UnsaturatedFlowElement::headRateAtGaussPts |
Vector keeps head rate.
Definition at line 1303 of file UnsaturatedFlow.hpp.
int MixTransport::UnsaturatedFlowElement::lastEvalBcBlockFluxId |
Definition at line 199 of file UnsaturatedFlow.hpp.
int MixTransport::UnsaturatedFlowElement::lastEvalBcBlockValId |
Definition at line 156 of file UnsaturatedFlow.hpp.
EntityHandle MixTransport::UnsaturatedFlowElement::lastEvalBcFluxEnt |
Definition at line 198 of file UnsaturatedFlow.hpp.
EntityHandle MixTransport::UnsaturatedFlowElement::lastEvalBcValEnt |
Definition at line 155 of file UnsaturatedFlow.hpp.
boost::shared_ptr<MethodForForceScaling> MixTransport::UnsaturatedFlowElement::scaleMethodFlux |
Method scaling fluxes.
Definition at line 1296 of file UnsaturatedFlow.hpp.
boost::shared_ptr<MethodForForceScaling> MixTransport::UnsaturatedFlowElement::scaleMethodValue |
Method scaling values.
Definition at line 1298 of file UnsaturatedFlow.hpp.
boost::shared_ptr<FEMethod> MixTransport::UnsaturatedFlowElement::tsMonitor |
Element used by TS monitor to postprocess results at time step
Definition at line 1299 of file UnsaturatedFlow.hpp.
VectorDouble MixTransport::UnsaturatedFlowElement::vecValsOnBc |
Definition at line 1324 of file UnsaturatedFlow.hpp.