My Project
|
The base class for the finite volume discretization schemes without adaptation. More...
#include <fvbasediscretization.hh>
Classes | |
struct | SerializeHelper |
Public Member Functions | |
FvBaseDiscretizationNoAdapt (Simulator &simulator) | |
![]() | |
FvBaseDiscretization (Simulator &simulator) | |
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. | |
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. | |
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 ![]() | |
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 ![]() | |
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. | |
size_t | numGridDof () const |
Returns the number of degrees of freedom (DOFs) for the computational grid. | |
size_t | numAuxiliaryDof () const |
Returns the number of degrees of freedom (DOFs) of the auxiliary equations. | |
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 (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. | |
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 void | registerParameters () |
Register all run-time parameters for the model. | |
static std::string | discretizationName () |
Returns a string of discretization's human-readable name. | |
![]() | |
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 |
![]() | |
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_ |
Linearizer * | linearizer_ |
IntensiveQuantitiesVector | intensiveQuantityCache_ [historySize] |
std::vector< unsigned char > | intensiveQuantityCacheUpToDate_ [historySize] |
std::array< std::unique_ptr< DiscreteFunction >, historySize > | solution_ |
std::list< BaseOutputModule< TypeTag > * > | outputModules_ |
Scalar | gridTotalVolume_ |
std::vector< Scalar > | dofTotalVolume_ |
std::vector< bool > | isLocalDof_ |
GlobalEqVector | storageCache_ [historySize] |
bool | enableGridAdaptation_ |
bool | enableIntensiveQuantityCache_ |
bool | enableStorageCache_ |
bool | enableThermodynamicHints_ |
The base class for the finite volume discretization schemes without adaptation.