![]() |
v0.15.0 |
Implementation of operators, problem and finite elements for unsaturated flow. More...
#include "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. | |
| MoFEMErrorCode | getBcOnValues (const EntityHandle ent, const int gg, const double x, const double y, const double z, double &value) |
| Get value on boundary. | |
| MoFEMErrorCode | getBcOnFluxes (const EntityHandle ent, const double x, const double y, const double z, double &flux) |
| essential (Neumann) boundary condition (set fluxes) | |
| MoFEMErrorCode | addFields (const std::string &values, const std::string &fluxes, const int order) |
| add fields | |
| MoFEMErrorCode | addFiniteElements (const std::string &fluxes_name, const std::string &values_name) |
| add finite elements | |
| MoFEMErrorCode | buildProblem (Range zero_flux_ents, BitRefLevel ref_level=BitRefLevel().set(0)) |
| Build problem. | |
| MoFEMErrorCode | setFiniteElements (ForcesAndSourcesCore::RuleHookFun vol_rule=VolRule(), ForcesAndSourcesCore::RuleHookFun face_rule=FaceRule()) |
| Create finite element instances. | |
| MoFEMErrorCode | createMatrices () |
| Create vectors and matrices. | |
| MoFEMErrorCode | destroyMatrices () |
| Delete matrices and vector when no longer needed. | |
| MoFEMErrorCode | calculateEssentialBc () |
| Calculate boundary conditions for fluxes. | |
| MoFEMErrorCode | calculateInitialPc () |
| Calculate inital pressure head distribution. | |
| MoFEMErrorCode | solveProblem (bool set_initial_pc=true) |
| solve problem | |
Public Member Functions inherited from MixTransport::MixTransportElement | |
| MixTransportElement (MoFEM::Interface &m_field) | |
| construction of this data structure | |
| virtual | ~MixTransportElement () |
| destructor | |
| MoFEMErrorCode | getDirichletBCIndices (IS *is) |
| get dof indices where essential boundary conditions are applied | |
| virtual MoFEMErrorCode | getSource (const EntityHandle ent, const double x, const double y, const double z, double &flux) |
| set source term | |
| virtual MoFEMErrorCode | getResistivity (const EntityHandle ent, const double x, const double y, const double z, MatrixDouble3by3 &inv_k) |
| natural (Dirichlet) boundary conditions (set values) | |
| MoFEMErrorCode | addFields (const std::string &values, const std::string &fluxes, const int order) |
| Add fields to database. | |
| MoFEMErrorCode | addFiniteElements (const std::string &fluxes_name, const std::string &values_name) |
| add finite elements | |
| MoFEMErrorCode | buildProblem (BitRefLevel &ref_level) |
| Build problem. | |
| MoFEMErrorCode | postProc (const string out_file) |
| Post process results. | |
| MoFEMErrorCode | createMatrices () |
| create matrices | |
| MoFEMErrorCode | solveLinearProblem () |
| solve problem | |
| MoFEMErrorCode | calculateResidual () |
| calculate residual | |
| MoFEMErrorCode | evaluateError () |
| Calculate error on elements. | |
| MoFEMErrorCode | destroyMatrices () |
| destroy matrices | |
Public Attributes | |
| DM | dM |
| Discrete manager for unsaturated flow problem. | |
| MaterialsDoubleMap | dMatMap |
| materials database | |
| BcMap | bcValueMap |
| Store boundary condition for head capillary pressure. | |
| EntityHandle | lastEvalBcValEnt |
| int | lastEvalBcBlockValId |
| BcMap | bcFluxMap |
| EntityHandle | lastEvalBcFluxEnt |
| int | lastEvalBcBlockFluxId |
| boost::shared_ptr< ForcesAndSourcesCore > | feFaceBc |
| Elemnet to calculate essential bc. | |
| boost::shared_ptr< ForcesAndSourcesCore > | feFaceRhs |
| Face element apply natural bc. | |
| boost::shared_ptr< ForcesAndSourcesCore > | feVolInitialPc |
| Calculate inital boundary conditions. | |
| boost::shared_ptr< ForcesAndSourcesCore > | feVolRhs |
| Assemble residual vector. | |
| boost::shared_ptr< ForcesAndSourcesCore > | feVolLhs |
| Assemble tangent matrix. | |
| boost::shared_ptr< MethodForForceScaling > | scaleMethodFlux |
| Method scaling fluxes. | |
| boost::shared_ptr< MethodForForceScaling > | scaleMethodValue |
| Method scaling values. | |
| boost::shared_ptr< FEMethod > | tsMonitor |
| boost::shared_ptr< VectorDouble > | headRateAtGaussPts |
| Vector keeps head rate. | |
| std::vector< int > | bcVecIds |
| VectorDouble | bcVecVals |
| VectorDouble | vecValsOnBc |
| Vec | D1 |
| Vector with inital head capillary pressure. | |
| Vec | ghostFlux |
| Ghost Vector of integrated fluxes. | |
Public Attributes inherited from MixTransport::MixTransportElement | |
| MoFEM::Interface & | mField |
| MyVolumeFE | feVol |
| Instance of volume element. | |
| MyTriFE | feTri |
| Instance of surface element. | |
| VectorDouble | valuesAtGaussPts |
| values at integration points on element | |
| MatrixDouble | valuesGradientAtGaussPts |
| gradients at integration points on element | |
| VectorDouble | divergenceAtGaussPts |
| divergence at integration points on element | |
| MatrixDouble | fluxesAtGaussPts |
| fluxes at integration points on element | |
| set< int > | bcIndices |
| std::map< int, BlockData > | setOfBlocks |
| maps block set id with appropriate BlockData | |
| 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 1649 of file UnsaturatedFlow.hpp.
|
inline |
Calculate inital pressure head distribution.
Definition at line 1674 of file UnsaturatedFlow.hpp.
|
inline |
Create vectors and matrices.
Definition at line 1615 of file UnsaturatedFlow.hpp.
|
inline |
Delete matrices and vector when no longer needed.
Definition at line 1634 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 1699 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 1608 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 |
materials database
Definition at line 119 of file UnsaturatedFlow.hpp.
| 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 1609 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.