Loading...
Searching...
No Matches
Opm::FvBaseDiscretizationFemAdapt< TypeTag > Class Template Reference

The base class for the finite volume discretization schemes. More...

`#include <fvbasediscretizationfemadapt.hh>`

Inheritance diagram for Opm::FvBaseDiscretizationFemAdapt< TypeTag >:

## Classes

struct | SerializeHelper

## Public Member Functions

| FvBaseDiscretizationFemAdapt (Simulator &simulator)
void | adaptGrid ()
AdaptationManager & | adaptationManager ()
Public Member Functions inherited from Opm::FvBaseDiscretization< TypeTag >
| FvBaseDiscretization (Simulator &simulator)
| FvBaseDiscretization (const FvBaseDiscretization &)=delete
void | finishInit ()
| Apply the initial conditions to the model.
bool | enableGridAdaptation () const
| Returns whether the grid ought to be adapted to the solution during the simulation.
void | applyInitialSolution ()
| Applies the initial solution for all degrees of freedom to which the model applies.
void | prefetch (const Element &) const
| Allows to improve the performance by prefetching all data which is associated with a given element.
NewtonMethod & | newtonMethod ()
| Returns the newton method object.
const NewtonMethod & | newtonMethod () const
| Returns the newton method object.
const IntensiveQuantities * | thermodynamicHint (unsigned globalIdx, unsigned timeIdx) const
| Return the thermodynamic hint for a entity on the grid at given time.
const IntensiveQuantities * | cachedIntensiveQuantities (unsigned globalIdx, unsigned timeIdx) const
| Return the cached intensive quantities for a entity on the grid at given time.
void | updateCachedIntensiveQuantities (const IntensiveQuantities &intQuants, unsigned globalIdx, unsigned timeIdx) const
| Update the intensive quantity cache for a entity on the grid at given time.
void | setIntensiveQuantitiesCacheEntryValidity (unsigned globalIdx, unsigned timeIdx, bool newValue) const
| Invalidate the cache for a given intensive quantities object.
unsigned | cachedIntensiveQuantityHistorySize () const
| Get the cached intensive quantity history size.
void | invalidateIntensiveQuantitiesCache (unsigned timeIdx) const
| Invalidate the whole intensive quantity cache for time index.
void | invalidateAndUpdateIntensiveQuantities (unsigned timeIdx) const
template<class GridViewType>
void | invalidateAndUpdateIntensiveQuantities (unsigned timeIdx, const GridViewType &gridView) const
void | shiftIntensiveQuantityCache (unsigned numSlots=1)
| Move the intensive quantities for a given time index to the back.
bool | enableStorageCache () const
| Returns true iff the storage term is cached.
void | setEnableStorageCache (bool enableStorageCache)
| Set the value of enable storage cache.
const EqVector & | cachedStorage (unsigned globalIdx, unsigned timeIdx) const
| Retrieve an entry of the cache for the storage term.
void | updateCachedStorage (unsigned globalIdx, unsigned timeIdx, const EqVector &value) const
| Set an entry of the cache for the storage term.
bool | storageCacheIsUpToDate (unsigned globalIdx, unsigned timeIdx) const
| Returns true if the storage cache entry for a given DOF and time index is up to date.
void | invalidateStorageCacheEntry (unsigned globalIdx, unsigned timeIdx) const
| Invalidate the storage cache for a given DOF and time index.
void | invalidateStorageCache (unsigned timeIdx) const
| Invalidate the whole storage cache for a given time index.
void | shiftStorageCache (unsigned numSlots=1) const
| Shift storage cache by a given number of time step slots.
Scalar | globalResidual (GlobalEqVector &dest, const SolutionVector &u) const
| Compute the global residual for an arbitrary solution vector.
Scalar | globalResidual (GlobalEqVector &dest) const
| Compute the global residual for the current solution vector.
void | globalStorage (EqVector &storage, unsigned timeIdx=0) const
| Compute the integral over the domain of the storage terms of all conservation quantities.
void | checkConservativeness (Scalar tolerance=-1, bool verbose=false) const
| Ensure that the difference between the storage terms of the last and of the current time step is consistent with the source and boundary terms.
Scalar | dofTotalVolume (unsigned globalIdx) const
| Returns the volume of a given control volume.
bool | isLocalDof (unsigned globalIdx) const
| Returns if the overlap of the volume ofa degree of freedom is non-zero.
Scalar | gridTotalVolume () const
| Returns the volume of the whole grid which represents the spatial domain.
const SolutionVector & | solution (unsigned timeIdx) const
| Reference to the solution at a given history index as a block vector.
SolutionVector & | solution (unsigned timeIdx)
const Linearizer & | linearizer () const
| Returns the operator linearizer for the global jacobian of the problem.
Linearizer & | linearizer ()
| Returns the object which linearizes the global system of equations at the current solution.
const LocalLinearizer & | localLinearizer (unsigned openMpThreadId) const
| Returns the local jacobian which calculates the local stiffness matrix for an arbitrary element.
LocalLinearizer & | localLinearizer (unsigned openMpThreadId)
const LocalResidual & | localResidual (unsigned openMpThreadId) const
| Returns the object to calculate the local residual function.
LocalResidual & | localResidual (unsigned openMpThreadId)
Scalar | primaryVarWeight (unsigned globalDofIdx, unsigned pvIdx) const
| Returns the relative weight of a primary variable for calculating relative errors.
Scalar | eqWeight (unsigned, unsigned) const
| Returns the relative weight of an equation.
Scalar | relativeDofError (unsigned vertexIdx, const PrimaryVariables &pv1, const PrimaryVariables &pv2) const
| Returns the relative error between two vectors of primary variables.
bool | update ()
| Try to progress the model to the next timestep.
void | syncOverlap ()
| Syncronize the values of the primary variables on the degrees of freedom that overlap with the neighboring processes.
void | updateBegin ()
| Called by the update() method before it tries to apply the newton method.
void | updateSuccessful ()
| Called by the update() method if it was successful.
void | adaptGrid ()
| Called by the update() method when the grid should be refined.
void | updateFailed ()
| Called by the update() method if it was unsuccessful.
void | advanceTimeLevel ()
| Called by the problem if a time integration was successful, post processing of the solution is done and the result has been written to disk.
template<class Restarter>
void | serialize (Restarter &)
| Serializes the current state of the model.
template<class Restarter>
void | deserialize (Restarter &)
| Deserializes the state of the model.
template<class DofEntity>
void | serializeEntity (std::ostream &outstream, const DofEntity &dof)
| Write the current solution for a degree of freedom to a restart file.
template<class DofEntity>
void | deserializeEntity (std::istream &instream, const DofEntity &dof)
| Reads the current solution variables for a degree of freedom from a restart file.
std::size_t | numGridDof () const
| Returns the number of degrees of freedom (DOFs) for the computational grid.
std::size_t | numAuxiliaryDof () const
| Returns the number of degrees of freedom (DOFs) of the auxiliary equations.
std::size_t | numTotalDof () const
| Returns the total number of degrees of freedom (i.e., grid plux auxiliary DOFs).
const DofMapper & | dofMapper () const
| Mapper to convert the Dune entities of the discretization's degrees of freedoms are to indices.
const VertexMapper & | vertexMapper () const
| Returns the mapper for vertices to indices.
const ElementMapper & | elementMapper () const
| Returns the mapper for elements to indices.
void | resetLinearizer ()
| Resets the Jacobian matrix linearizer, so that the boundary types can be altered.
std::string | primaryVarName (unsigned pvIdx) const
| Given an primary variable index, return a human readable name.
std::string | eqName (unsigned eqIdx) const
| Given an equation index, return a human readable name.
void | updatePVWeights (const ElementContext &) const
| Update the weights of all primary variables within an element given the complete set of intensive quantities.
void | addOutputModule (std::unique_ptr< BaseOutputModule< TypeTag > > newModule)
| Add an module for writing visualization output after a timestep.
template<class VtkMultiWriter>
void | addConvergenceVtkFields (VtkMultiWriter &writer, const SolutionVector &u, const GlobalEqVector &deltaU) const
| Add the vector fields for analysing the convergence of the newton method to the a VTK writer.
void | prepareOutputFields () const
| Prepare the quantities relevant for the current solution to be appended to the output writers.
void | appendOutputFields (BaseOutputWriter &writer) const
| Append the quantities relevant for the current solution to an output writer.
const GridView & | gridView () const
| Reference to the grid view of the spatial domain.
void | addAuxiliaryModule (BaseAuxiliaryModule< TypeTag > *auxMod)
| Add a module for an auxiliary equation.
void | clearAuxiliaryModules ()
| Causes the list of auxiliary equations to be cleared.
std::size_t | numAuxiliaryModules () const
| Returns the number of modules for auxiliary equations.
BaseAuxiliaryModule< TypeTag > * | auxiliaryModule (unsigned auxEqModIdx)
| Returns a given module for auxiliary equations.
const BaseAuxiliaryModule< TypeTag > * | auxiliaryModule (unsigned auxEqModIdx) const
| Returns a given module for auxiliary equations.
bool | storeIntensiveQuantities () const
| Returns true if the cache for intensive quantities is enabled.
const Timer & | prePostProcessTimer () const
const Timer & | linearizeTimer () const
const Timer & | solveTimer () const
const Timer & | updateTimer () const
template<class Serializer>
void | serializeOp (Serializer &serializer)
bool | operator== (const FvBaseDiscretization &rhs) const

## Additional Inherited Members

Static Public Member Functions inherited from Opm::FvBaseDiscretization< TypeTag >
static void | registerParameters ()
| Register all run-time parameters for the model.
static std::string | discretizationName ()
| Returns a string of discretization's human-readable name.
Protected Member Functions inherited from Opm::FvBaseDiscretization< TypeTag >
SolutionVector & | mutableSolution (unsigned timeIdx) const
void | resizeAndResetIntensiveQuantitiesCache_ ()
template<class Context>
void | supplementInitialSolution_ (PrimaryVariables &, const Context &, unsigned, unsigned)
void | registerOutputModules_ ()
| Register all output modules which make sense for the model.
LocalResidual & | localResidual_ ()
| Reference to the local residal object.
bool | verbose_ () const
| Returns whether messages should be printed.
Implementation & | asImp_ ()
const Implementation & | asImp_ () const
Protected Attributes inherited from Opm::FvBaseDiscretization< TypeTag >
Simulator & | simulator_
GridView | gridView_
ElementMapper | elementMapper_
VertexMapper | vertexMapper_
std::vector< BaseAuxiliaryModule< TypeTag > * > | auxEqModules_
NewtonMethod | newtonMethod_
Timer | prePostProcessTimer_
Timer | linearizeTimer_
Timer | solveTimer_
Timer | updateTimer_
std::vector< LocalLinearizer > | localLinearizer_
std::unique_ptr< Linearizer > | linearizer_
std::vector< IntensiveQuantitiesVector > | intensiveQuantityCache_
std::vector< std::vector< unsigned char > > | intensiveQuantityCacheUpToDate_
std::array< std::unique_ptr< DiscreteFunction >, historySize > | solution_
std::list< std::unique_ptr< BaseOutputModule< TypeTag > > > | outputModules_
Scalar | gridTotalVolume_
std::vector< Scalar > | dofTotalVolume_
std::vector< bool > | isLocalDof_
std::array< GlobalEqVector, historySize > | storageCache_
std::array< std::vector< unsigned char >, historySize > | storageCacheUpToDate_
bool | enableGridAdaptation_
bool | enableIntensiveQuantityCache_
bool | enableStorageCache_
bool | enableThermodynamicHints_
unsigned | cachedIntensiveQuantityHistorySize_

## Detailed Description

template<class TypeTag>
class Opm::FvBaseDiscretizationFemAdapt< TypeTag >

The base class for the finite volume discretization schemes.

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

- opm/models/discretization/common/fvbasediscretizationfemadapt.hh