Classes |
Public Member Functions |
Static Public Member Functions |
Protected Member Functions |
Protected Attributes |
List of all members
Opm::FvBaseElementContext< TypeTag > Class Template Reference This class stores an array of IntensiveQuantities objects, one intensive quantities object for each of the element's vertices. More...
Detailed Descriptiontemplate<class TypeTag> class Opm::FvBaseElementContext< TypeTag > This class stores an array of IntensiveQuantities objects, one intensive quantities object for each of the element's vertices. Constructor & Destructor Documentation◆ FvBaseElementContext()
template<class TypeTag >
The constructor. References Opm::FvBaseElementContext< TypeTag >::enableStorageCache_, Opm::FvBaseElementContext< TypeTag >::focusDofIdx_, Opm::FvBaseElementContext< TypeTag >::simulator(), Opm::FvBaseElementContext< TypeTag >::simulatorPtr_, and Opm::FvBaseElementContext< TypeTag >::stashedDofIdx_. Member Function Documentation◆ dofTotalVolume()
template<class TypeTag >
Return the total volume associated with a degree of freedom. "Total" means the volume controlled by a degree of freedom disregarding the element. (For example in the vertex-centered finite volume method, a control volume typically encompasses parts of multiple elements.)
References Opm::FvBaseElementContext< TypeTag >::globalSpaceIndex(), and Opm::FvBaseElementContext< TypeTag >::model(). ◆ dofVolume()
template<class TypeTag >
Return the element-local volume associated with a degree of freedom. In the case of the vertex-centered finite volume method, this is different from the total volume because a finite volume usually spans multiple elements...
References Opm::FvBaseElementContext< TypeTag >::stencil(). ◆ element()
template<class TypeTag >
Return the current element. References Opm::FvBaseElementContext< TypeTag >::elemPtr_. Referenced by Opm::FvBaseElementContext< TypeTag >::onBoundary(). ◆ enableStorageCache()
template<class TypeTag >
Returns true iff the cache for the storage term ought to be used for this context. If it is used, intensive quantities can only be accessed for the most recent time index. (time index 0.) References Opm::FvBaseElementContext< TypeTag >::enableStorageCache_. ◆ extensiveQuantities()
template<class TypeTag >
Return a reference to the extensive quantities of a sub-control volume face.
References Opm::FvBaseElementContext< TypeTag >::extensiveQuantities_. ◆ focusDofIndex()
template<class TypeTag >
Returns the degree of freedom on which the simulator is currently "focused" on. References Opm::FvBaseElementContext< TypeTag >::focusDofIdx_. ◆ globalSpaceIndex()
template<class TypeTag >
Return the global spatial index for a sub-control volume.
References Opm::FvBaseElementContext< TypeTag >::stencil(). Referenced by Opm::FvBaseElementContext< TypeTag >::dofTotalVolume(), and Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(). ◆ gradientCalculator()
template<class TypeTag >
Return a reference to the gradient calculation class of the chosen spatial discretization. References Opm::FvBaseElementContext< TypeTag >::gradientCalculator_. ◆ gridView()
template<class TypeTag >
Return a reference to the grid view. References Opm::FvBaseElementContext< TypeTag >::gridView_. ◆ haveStashedIntensiveQuantities()
template<class TypeTag >
Returns true if no intensive quanties are stashed. In most cases quantities are stashed only if a partial derivative is to be calculated via finite difference methods. References Opm::FvBaseElementContext< TypeTag >::stashedDofIdx_. ◆ intensiveQuantities() [1/2]
template<class TypeTag >
Return a reference to the intensive quantities of a sub-control volume at a given time. If the time step index is not given, return the volume variables for the current time.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, and Opm::FvBaseElementContext< TypeTag >::numDof(). ◆ intensiveQuantities() [2/2]
template<class TypeTag >
Return a reference to the intensive quantities of a sub-control volume at a given time. If the time step index is not given, return the volume variables for the current time.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, Opm::FvBaseElementContext< TypeTag >::enableStorageCache_, Opm::FvBaseElementContext< TypeTag >::numDof(), and Opm::FvBaseElementContext< TypeTag >::problem(). Referenced by Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(). ◆ linearizationType()
template<class TypeTag >
Returns the linearization type. References Opm::FvBaseElementContext< TypeTag >::model(). ◆ model()
template<class TypeTag >
Return a reference to the model. References Opm::FvBaseElementContext< TypeTag >::simulatorPtr_. Referenced by Opm::FvBaseElementContext< TypeTag >::dofTotalVolume(), Opm::FvBaseElementContext< TypeTag >::linearizationType(), and Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(). ◆ numBoundaryFaces()
template<class TypeTag >
Return the number of boundary faces which need to be considered for the flux apporixmation. References Opm::FvBaseElementContext< TypeTag >::stencil(). ◆ numDof()
template<class TypeTag >
Return the number of sub-control volumes of the current element. References Opm::FvBaseElementContext< TypeTag >::stencil(). Referenced by Opm::FvBaseElementContext< TypeTag >::intensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::primaryVars(), Opm::FvBaseElementContext< TypeTag >::stashIntensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::thermodynamicHint(), Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities(), and Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(). ◆ numInteriorFaces()
template<class TypeTag >
Return the number of non-boundary faces which need to be considered for the flux apporixmation. References Opm::FvBaseElementContext< TypeTag >::stencil(). Referenced by Opm::FvBaseElementContext< TypeTag >::updateExtensiveQuantities(). ◆ numPrimaryDof()
template<class TypeTag >
Return the number of primary degrees of freedom of the current element. References Opm::FvBaseElementContext< TypeTag >::stencil(). Referenced by Opm::FvBaseElementContext< TypeTag >::updatePrimaryIntensiveQuantities(). ◆ onBoundary()
template<class TypeTag >
Returns whether the current element is on the domain's boundary. References Opm::FvBaseElementContext< TypeTag >::element(). ◆ operator delete()
template<class TypeTag >
References Opm::aligned_free(). ◆ operator new()
template<class TypeTag >
References Opm::aligned_alloc(). ◆ pos()
template<class TypeTag >
Return the position of a local entities in global coordinates.
References Opm::FvBaseElementContext< TypeTag >::stencil_. ◆ primaryVars()
template<class TypeTag >
Return the primary variables for a given local index.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, and Opm::FvBaseElementContext< TypeTag >::numDof(). ◆ problem()
template<class TypeTag >
Return a reference to the problem. References Opm::FvBaseElementContext< TypeTag >::simulatorPtr_. Referenced by Opm::FvBaseElementContext< TypeTag >::intensiveQuantities(), and Opm::FvBaseElementContext< TypeTag >::updateSingleIntQuants_(). ◆ restoreIntensiveQuantities()
template<class TypeTag >
Restores the intensive quantities for a degree of freedom from internal memory.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, Opm::FvBaseElementContext< TypeTag >::intensiveQuantitiesStashed_, Opm::FvBaseElementContext< TypeTag >::priVarsStashed_, and Opm::FvBaseElementContext< TypeTag >::stashedDofIdx_. ◆ setEnableStorageCache()
template<class TypeTag >
Specifies if the cache for the storage term ought to be used for this context. References Opm::FvBaseElementContext< TypeTag >::enableStorageCache_. ◆ setFocusDofIndex()
template<class TypeTag >
Sets the degree of freedom on which the simulator is currently "focused" on. I.e., in the case of automatic differentiation, all derivatives are with regard to the primary variables of that degree of freedom. Only "primary" DOFs can be focused on. References Opm::FvBaseElementContext< TypeTag >::focusDofIdx_. ◆ simulator()
template<class TypeTag >
Return a reference to the simulator. References Opm::FvBaseElementContext< TypeTag >::simulatorPtr_. Referenced by Opm::FvBaseElementContext< TypeTag >::FvBaseElementContext(). ◆ stashedDofIdx()
template<class TypeTag >
Return the (local) index of the DOF for which the primary variables were stashed. If none, then this returns -1. References Opm::FvBaseElementContext< TypeTag >::stashedDofIdx_. ◆ stashIntensiveQuantities()
template<class TypeTag >
Stash the intensive quantities for a degree of freedom on internal memory.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, Opm::FvBaseElementContext< TypeTag >::intensiveQuantitiesStashed_, Opm::FvBaseElementContext< TypeTag >::numDof(), Opm::FvBaseElementContext< TypeTag >::priVarsStashed_, and Opm::FvBaseElementContext< TypeTag >::stashedDofIdx_. ◆ stencil()
template<class TypeTag >
Return the current finite element geometry.
References Opm::FvBaseElementContext< TypeTag >::stencil_. Referenced by Opm::FvBaseElementContext< TypeTag >::dofVolume(), Opm::FvBaseElementContext< TypeTag >::globalSpaceIndex(), Opm::FvBaseElementContext< TypeTag >::numBoundaryFaces(), Opm::FvBaseElementContext< TypeTag >::numDof(), Opm::FvBaseElementContext< TypeTag >::numInteriorFaces(), and Opm::FvBaseElementContext< TypeTag >::numPrimaryDof(). ◆ thermodynamicHint()
template<class TypeTag >
Return the thermodynamic hint for a given local index.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, and Opm::FvBaseElementContext< TypeTag >::numDof(). ◆ updateAll()
template<class TypeTag >
Construct all volume and extensive quantities of an element from scratch.
◆ updateAllExtensiveQuantities()
template<class TypeTag >
Compute the extensive quantities of all sub-control volume faces of the current element for all time indices. ◆ updateAllIntensiveQuantities()
template<class TypeTag >
Compute the intensive quantities of all sub-control volumes of the current element for all time indices. References Opm::FvBaseElementContext< TypeTag >::enableStorageCache_. ◆ updateExtensiveQuantities()
template<class TypeTag >
Compute the extensive quantities of all sub-control volume faces of the current element for a single time index.
References Opm::FvBaseElementContext< TypeTag >::extensiveQuantities_, Opm::FvBaseElementContext< TypeTag >::gradientCalculator_, and Opm::FvBaseElementContext< TypeTag >::numInteriorFaces(). ◆ updateIntensiveQuantities() [1/2]
template<class TypeTag >
Compute the intensive quantities of a single sub-control volume of the current element for a single time index.
◆ updateIntensiveQuantities() [2/2]
template<class TypeTag >
Compute the intensive quantities of all sub-control volumes of the current element for a single time index.
References Opm::FvBaseElementContext< TypeTag >::numDof(), and Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(). ◆ updateIntensiveQuantities_()
template<class TypeTag >
Update the first 'n' intensive quantities objects from the primary variables. This method considers the intensive quantities cache. References Opm::FvBaseElementContext< TypeTag >::dofVars_, Opm::FvBaseElementContext< TypeTag >::globalSpaceIndex(), Opm::FvBaseElementContext< TypeTag >::intensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::model(), Opm::FvBaseElementContext< TypeTag >::numDof(), and Opm::FvBaseElementContext< TypeTag >::updateSingleIntQuants_(). Referenced by Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities(), and Opm::FvBaseElementContext< TypeTag >::updatePrimaryIntensiveQuantities(). ◆ updatePrimaryIntensiveQuantities()
template<class TypeTag >
Compute the intensive quantities of all sub-control volumes of the current element for a single time index.
References Opm::FvBaseElementContext< TypeTag >::numPrimaryDof(), and Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(). ◆ updatePrimaryStencil()
template<class TypeTag >
Update the primary topological part of the stencil, but nothing else.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, Opm::FvBaseElementContext< TypeTag >::elemPtr_, and Opm::FvBaseElementContext< TypeTag >::stencil_. ◆ updateSingleIntQuants_()
template<class TypeTag >
◆ updateStencil()
template<class TypeTag >
Compute the finite volume geometry for an element.
References Opm::FvBaseElementContext< TypeTag >::dofVars_, Opm::FvBaseElementContext< TypeTag >::elemPtr_, Opm::FvBaseElementContext< TypeTag >::extensiveQuantities_, and Opm::FvBaseElementContext< TypeTag >::stencil_. ◆ updateStencilTopology()
template<class TypeTag >
Update the topological part of the stencil, but nothing else.
References Opm::FvBaseElementContext< TypeTag >::elemPtr_, and Opm::FvBaseElementContext< TypeTag >::stencil_. Member Data Documentation◆ dofVars_
template<class TypeTag >
Referenced by Opm::FvBaseElementContext< TypeTag >::intensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::primaryVars(), Opm::FvBaseElementContext< TypeTag >::restoreIntensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::stashIntensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::thermodynamicHint(), Opm::FvBaseElementContext< TypeTag >::updateIntensiveQuantities_(), Opm::FvBaseElementContext< TypeTag >::updatePrimaryStencil(), Opm::FvBaseElementContext< TypeTag >::updateSingleIntQuants_(), and Opm::FvBaseElementContext< TypeTag >::updateStencil(). ◆ elemPtr_
template<class TypeTag >
◆ enableStorageCache_
template<class TypeTag >
Referenced by Opm::FvBaseElementContext< TypeTag >::enableStorageCache(), Opm::FvBaseElementContext< TypeTag >::FvBaseElementContext(), Opm::FvBaseElementContext< TypeTag >::intensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::setEnableStorageCache(), Opm::FvBaseElementContext< TypeTag >::updateAllIntensiveQuantities(), and Opm::FvBaseElementContext< TypeTag >::updateSingleIntQuants_(). ◆ extensiveQuantities_
template<class TypeTag >
◆ focusDofIdx_
template<class TypeTag >
◆ gradientCalculator_
template<class TypeTag >
◆ gridView_
template<class TypeTag >
Referenced by Opm::FvBaseElementContext< TypeTag >::gridView(). ◆ intensiveQuantitiesStashed_
template<class TypeTag >
◆ priVarsStashed_
template<class TypeTag >
◆ simulatorPtr_
template<class TypeTag >
◆ stashedDofIdx_
template<class TypeTag >
Referenced by Opm::FvBaseElementContext< TypeTag >::FvBaseElementContext(), Opm::FvBaseElementContext< TypeTag >::haveStashedIntensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::restoreIntensiveQuantities(), Opm::FvBaseElementContext< TypeTag >::stashedDofIdx(), and Opm::FvBaseElementContext< TypeTag >::stashIntensiveQuantities(). ◆ stencil_
template<class TypeTag >
The documentation for this class was generated from the following file: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||