Public Types |
Public Member Functions |
Static Public Member Functions |
Protected Attributes |
List of all members
Opm::MultiPhaseBaseProblem< TypeTag > Class Template Reference The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a porous medium. More...
Inheritance diagram for Opm::MultiPhaseBaseProblem< TypeTag >:
Detailed Descriptiontemplate<class TypeTag> class Opm::MultiPhaseBaseProblem< TypeTag > The base class for the problems of ECFV discretizations which deal with a multi-phase flow through a porous medium. Member Typedef Documentation◆ RestrictProlongOperator
template<class TypeTag >
Constructor & Destructor Documentation◆ MultiPhaseBaseProblem()
template<class TypeTag >
Member Function Documentation◆ advanceTimeLevel()
template<class TypeTag >
Called by the simulator after everything which can be done about the current time step is finished and the model should be prepared to do the next time integration. References Opm::FvBaseProblem< TypeTag >::model(). ◆ beginEpisode()
template<class TypeTag >
Called at the beginning of an simulation episode. ◆ beginIteration()
template<class TypeTag >
Called by the simulator before each Newton-Raphson iteration. ◆ beginTimeStep()
template<class TypeTag >
Called by the simulator before each time integration. ◆ boundary()
template<class TypeTag >
template<class Context >
Evaluate the boundary conditions for a boundary segment.
◆ boundingBoxMax()
template<class TypeTag >
The coordinate of the corner of the GridView's bounding box with the largest values. ◆ boundingBoxMin()
template<class TypeTag >
The coordinate of the corner of the GridView's bounding box with the smallest values. ◆ briefDescription()
template<class TypeTag >
Returns a human readable description of the problem for the help message. The problem description is printed as part of the –help message. It is optional and should not exceed one or two lines of text. ◆ constraints()
template<class TypeTag >
template<class Context >
Evaluate the constraints for a control volume.
◆ continueOnConvergenceError()
template<class TypeTag >
Returns if we should continue with a non-converged solution instead of giving up if we encounter a time step size smaller than the minimum time step size. Referenced by Opm::FvBaseProblem< TypeTag >::timeIntegration(). ◆ defaultVtkWriter()
template<class TypeTag >
Method to retrieve the VTK writer which should be used to write the default ouput after each time step to disk. ◆ deserialize()
template<class TypeTag >
template<class Restarter >
This method restores the complete state of the problem from disk. It is the inverse of the serialize() method.
References Opm::VtkMultiWriter< GridView, vtkFormat >::deserialize(). ◆ dispersivity()
template<class TypeTag >
template<class Context >
Define the dispersivity.
◆ elementMapper()
template<class TypeTag >
Returns the mapper for elements to indices. ◆ endEpisode()
template<class TypeTag >
Called when the end of an simulation episode is reached. Typically, a new episode is started in this method. References Opm::FvBaseProblem< TypeTag >::simulator(). ◆ endIteration()
template<class TypeTag >
Called by the simulator after each Newton-Raphson update. ◆ endTimeStep()
template<class TypeTag >
Called by the simulator after each time integration. This method is intended to do some post processing of the solution. (e.g., some additional output) ◆ extrusionFactor() [1/2]
template<class TypeTag >
◆ extrusionFactor() [2/2]
template<class TypeTag >
template<class Context >
Return how much the domain is extruded at a given sub-control volume. This means the factor by which a lower-dimensional (1D or 2D) entity needs to be expanded to get a full dimensional cell. The default is 1.0 which means that 1D problems are actually thought as pipes with a cross section of 1 m^2 and 2D problems are assumed to extend 1 m to the back.
◆ finalize()
template<class TypeTag >
Called after the simulation has been run sucessfully. References Opm::FvBaseProblem< TypeTag >::gridView(), Opm::Simulator< TypeTag >::humanReadableTime(), Opm::ThreadManager< TypeTag >::maxThreads(), and Opm::FvBaseProblem< TypeTag >::simulator(). ◆ finishInit()
template<class TypeTag >
Called by the Opm::Simulator in order to initialize the problem. If you overload this method don't forget to call ParentType::finishInit() ◆ gravity() [1/2]
template<class TypeTag >
Returns the acceleration due to gravity . This method is used for problems where the gravitational acceleration does not depend on the spatial position. The default behaviour is that if the References Opm::MultiPhaseBaseProblem< TypeTag >::gravity_. ◆ gravity() [2/2]
template<class TypeTag >
template<class Context >
Returns the acceleration due to gravity .
◆ gridChanged()
template<class TypeTag >
Handle changes of the grid. References Opm::VtkMultiWriter< GridView, vtkFormat >::gridChanged(). ◆ gridView()
template<class TypeTag >
The GridView which used by the problem. Referenced by Opm::FvBaseProblem< TypeTag >::finalize(), Opm::MultiPhaseBaseProblem< TypeTag >::markForGridAdaptation(), Opm::FvBaseProblem< TypeTag >::timeIntegration(), and Opm::FvBaseProblem< TypeTag >::writeOutput(). ◆ handlePositionalParameter()
template<class TypeTag >
Handles positional command line parameters. Positional parameters are parameters that are not prefixed by any parameter name.
◆ helpPreamble()
template<class TypeTag >
Returns the string that is printed before the list of command line parameters in the help message. If the returned string is empty, no help message will be generated. ◆ initial()
template<class TypeTag >
template<class Context >
Evaluate the initial value for a control volume.
◆ initialSolutionApplied()
template<class TypeTag >
Callback used by the model to indicate that the initial solution has been determined for all degrees of freedom. ◆ intersectionIntrinsicPermeability()
template<class TypeTag >
template<class Context >
Returns the intrinsic permeability of an intersection. This method is specific to the finite volume discretizations. If left unspecified, it calls the intrinsicPermeability() method for the intersection's interior and exterior finite volumes and averages them harmonically. Note that if this function is defined, the intrinsicPermeability() method does not need to be defined by the problem (if a finite-volume discretization is used). ◆ intrinsicPermeability()
template<class TypeTag >
template<class Context >
Returns the intrinsic permeability tensor at a given position.
◆ markForGridAdaptation()
template<class TypeTag >
Mark grid cells for refinement or coarsening.
References Opm::FvBaseProblem< TypeTag >::gridView(), and Opm::FvBaseProblem< TypeTag >::simulator(). ◆ materialLawParams()
template<class TypeTag >
template<class Context >
Returns the material law parameters within a control volume. If you get a compiler error at this method, you set the MaterialLaw property to something different than Opm::NullMaterialLaw. In this case, you have to overload the matererialLaw() method in the derived class!
◆ maxTimeIntegrationFailures()
template<class TypeTag >
Returns the maximum number of subsequent failures for the time integration before giving up. ◆ minTimeStepSize()
template<class TypeTag >
Returns the minimum allowable size of a time step. Referenced by Opm::FvBaseProblem< TypeTag >::timeIntegration(). ◆ model() [1/2]
template<class TypeTag >
Returns numerical model used for the problem. Referenced by Opm::FvBaseProblem< TypeTag >::advanceTimeLevel(), Opm::FvBaseProblem< TypeTag >::newtonMethod(), Opm::FvBaseProblem< TypeTag >::timeIntegration(), and Opm::FvBaseProblem< TypeTag >::writeOutput(). ◆ model() [2/2]
template<class TypeTag >
Returns numerical model used for the problem. ◆ name()
template<class TypeTag >
The problem name. This is used as a prefix for files generated by the simulation. It is highly recommend to overwrite this method in the concrete problem which is simulated. Referenced by Opm::FvBaseProblem< TypeTag >::FvBaseProblem(). ◆ newtonMethod() [1/2]
template<class TypeTag >
Returns object which implements the Newton method. References Opm::FvBaseProblem< TypeTag >::model(). Referenced by Opm::FvBaseProblem< TypeTag >::nextTimeStepSize(). ◆ newtonMethod() [2/2]
template<class TypeTag >
Returns object which implements the Newton method. References Opm::FvBaseProblem< TypeTag >::model(). ◆ nextTimeStepSize()
template<class TypeTag >
Called by Opm::Simulator whenever a solution for a time step has been computed and the simulation time has been updated. References Opm::Parameters::Get(), Opm::FvBaseProblem< TypeTag >::newtonMethod(), Opm::FvBaseProblem< TypeTag >::nextTimeStepSize_, and Opm::FvBaseProblem< TypeTag >::simulator(). ◆ outputDir()
template<class TypeTag >
Determine the directory for simulation output. The actual problem may chose to transform the value of the OutputDir parameter and it can e.g. choose to create the directory on demand if it does not exist. The default behaviour is to just return the OutputDir parameter and to throw an exception if no directory with this name exists. References Opm::FvBaseProblem< TypeTag >::outputDir(). Referenced by Opm::FvBaseProblem< TypeTag >::FvBaseProblem(), and Opm::FvBaseProblem< TypeTag >::outputDir(). ◆ porosity()
template<class TypeTag >
template<class Context >
Returns the porosity [] of the porous medium for a given control volume.
◆ prefetch()
template<class TypeTag >
Allows to improve the performance by prefetching all data which is associated with a given element. ◆ recycleFirstIterationStorage()
template<class TypeTag >
Return if the storage term of the first iteration is identical to the storage term for the solution of the previous time step. This is only relevant if the storage cache is enabled and is usually the case, i.e., this method only needs to be overwritten in rare corner cases. ◆ registerParameters()
template<class TypeTag >
Register all run-time parameters for the problem and the model. ◆ restrictProlongOperator()
template<class TypeTag >
return restriction and prolongation operator
◆ serialize()
template<class TypeTag >
template<class Restarter >
This method writes the complete state of the problem to the harddisk. The file will start with the prefix returned by the name() method, has the current time of the simulation clock in it's name and uses the extension
References Opm::VtkMultiWriter< GridView, vtkFormat >::serialize(). ◆ setNextTimeStepSize()
template<class TypeTag >
Impose the next time step size to be used externally. References Opm::FvBaseProblem< TypeTag >::nextTimeStepSize_. ◆ shouldWriteOutput()
template<class TypeTag >
Returns true if the current solution should be written to disk (i.e. as a VTK file) The default behavior is to write out the solution for every time step. This method is should be overwritten by the implementation if the default behavior is deemed insufficient. ◆ shouldWriteRestartFile()
template<class TypeTag >
Returns true if a restart file should be written to disk. The default behavior is to write one restart file every 10 time steps. This method should be overwritten by the implementation if the default behavior is deemed insufficient. References Opm::FvBaseProblem< TypeTag >::simulator(). ◆ simulator() [1/2]
template<class TypeTag >
Returns Simulator object used by the simulation. Referenced by Opm::FvBaseProblem< TypeTag >::endEpisode(), Opm::FvBaseProblem< TypeTag >::finalize(), Opm::MultiPhaseBaseProblem< TypeTag >::markForGridAdaptation(), Opm::FvBaseProblem< TypeTag >::nextTimeStepSize(), Opm::FvBaseProblem< TypeTag >::shouldWriteRestartFile(), Opm::FvBaseProblem< TypeTag >::timeIntegration(), and Opm::FvBaseProblem< TypeTag >::writeOutput(). ◆ simulator() [2/2]
template<class TypeTag >
Returns Simulator object used by the simulation. ◆ solidEnergyParams()
template<class TypeTag >
template<class Context >
Returns the parameter object for the energy storage law of the solid in a sub-control volume.
◆ source()
template<class TypeTag >
template<class Context >
Evaluate the source term for all phases within a given sub-control-volume.
◆ temperature() [1/2]
template<class TypeTag >
Returns the temperature for an isothermal problem. This is not specific to the discretization. By default it just throws an exception so it must be overloaded by the problem if no energy equation is to be used. ◆ temperature() [2/2]
template<class TypeTag >
template<class Context >
Returns the temperature within a control volume.
◆ thermalConductionParams()
template<class TypeTag >
template<class Context >
Returns the parameter object for the thermal conductivity law in a sub-control volume.
◆ timeIntegration()
template<class TypeTag >
Called by Opm::Simulator in order to do a time integration on the model. References Opm::FvBaseProblem< TypeTag >::continueOnConvergenceError(), Opm::FvBaseProblem< TypeTag >::gridView(), Opm::FvBaseProblem< TypeTag >::minTimeStepSize(), Opm::FvBaseProblem< TypeTag >::model(), and Opm::FvBaseProblem< TypeTag >::simulator(). ◆ toDimMatrix_()
template<class TypeTag >
Converts a Scalar value to an isotropic Tensor. This is convenient e.g. for specifying intrinsic permebilities: auto permTensor = this->toDimMatrix_(1e-12);
DimMatrix toDimMatrix_(Scalar val) const Converts a Scalar value to an isotropic Tensor. Definition: multiphasebaseproblem.hh:380
◆ tortuosity()
template<class TypeTag >
template<class Context >
Define the tortuosity.
◆ updateRelperms()
template<class TypeTag >
template<class FluidState >
◆ vertexMapper()
template<class TypeTag >
Returns the mapper for vertices to indices. ◆ writeOutput()
template<class TypeTag >
Write the relevant secondary variables of the current solution into an VTK output file.
References Opm::VtkMultiWriter< GridView, vtkFormat >::beginWrite(), Opm::VtkMultiWriter< GridView, vtkFormat >::endWrite(), Opm::FvBaseProblem< TypeTag >::gridView(), Opm::FvBaseProblem< TypeTag >::model(), and Opm::FvBaseProblem< TypeTag >::simulator(). Member Data Documentation◆ gravity_
template<class TypeTag >
Referenced by Opm::MultiPhaseBaseProblem< TypeTag >::gravity(). ◆ nextTimeStepSize_
template<class TypeTag >
The documentation for this class was generated from the following file: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||