opm-simulators
Loading...
Searching...
No Matches
Opm::FvBaseDiscretizationNoAdapt< TypeTag > Class Template Reference

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

#include <fvbasediscretization.hh>

Inheritance diagram for Opm::FvBaseDiscretizationNoAdapt< TypeTag >:
Opm::FvBaseDiscretization< TypeTag >

Classes

struct  SerializeHelper

Public Member Functions

 FvBaseDiscretizationNoAdapt (Simulator &simulator)
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 $\mathrm{[m^3]}$ 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 $\mathrm{[m^3]}$ 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 TimerprePostProcessTimer () const
const TimerlinearizeTimer () const
const TimersolveTimer () const
const TimerupdateTimer () 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::FvBaseDiscretizationNoAdapt< TypeTag >

The base class for the finite volume discretization schemes without adaptation.


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