base class for operator class associated with ImplicitTimeIntegrator More...
#include <TimeOperator.h>

Public Types | |
| typedef std::shared_ptr< AMP::Operator::Operator > | shared_ptr |
Protected Member Functions | |
| void | getBackendFromInput (std::shared_ptr< AMP::Database > db) |
| void | getFromInput (std::shared_ptr< AMP::Database > db) |
| virtual std::shared_ptr< OperatorParameters > | getJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >) |
| void | setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db) |
| TimeOperator () | |
Protected Attributes | |
| AMP::Utilities::Backend | d_backend = AMP::Utilities::Backend::Serial |
| bool | d_bAlgebraicComponent |
| bool | d_bLinearMassOperator |
| bool | d_bLinearRhsOperator |
| double | d_dCurrentDt |
| double | d_dGamma = 0.0 |
| int | d_iDebugPrintInfoLevel = 0 |
| int | d_iObject_id |
| AMP::Utilities::MemoryType | d_memory_location = AMP::Utilities::MemoryType::none |
| std::shared_ptr< AMP::Mesh::Mesh > | d_Mesh |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_pAlgebraicVariable |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_pFunctionScaling |
| std::shared_ptr< AMP::Operator::Operator > | d_pMassOperator |
| std::shared_ptr< AMP::Operator::Operator > | d_pRhsOperator |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_pScratchSolVector |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_pScratchVector |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_pSolutionScaling |
| std::shared_ptr< AMP::LinearAlgebra::Vector > | d_pSourceTerm |
Static Protected Attributes | |
| static int | d_iInstance_id |
base class for operator class associated with ImplicitTimeIntegrator
Class ImplicitTimeOperator is a base class derived from Operator. It is the operator class associated with a ImplicitTimeIntegrator. The solver associated with the ImplicitTimeIntegrator will register this object. For implicit time integrators solving a problem M(u_t) = f(u), at each time step a nonlinear or linear problem, F(u) = 0, where F(u) = M(u_t)-f(u) discretized, needs to be solved. The TimeOperator class is meant to represent this operator. Internally, two operators are used to represent F, a mass operator and a rhs operator. M corresponds to the mass operator and f() corresponds to the rhs operator. The mass operator is NULL in the case of FVM, FD discretizations.
Definition at line 32 of file TimeOperator.h.
|
inherited |
Definition at line 29 of file Operator.h.
|
explicit |
Main constructor meant for use by users.
| [in] | params | : parameter object that must be of type TimeOperatorParameters. The database object contained in the parameter object contains the following fields: |
|
virtual |
virtual destructor
|
protected |
|
override |
Note this form is not correct for IDA and has to be overriden
|
pure virtualinherited |
This base class can not give a meaningful definition of apply. See the derived classes for how they define apply. Each operator is free to define apply in a way that is appropriate for that operator.
| u | shared pointer to const input vector u |
| f | shared pointer to output vector storing result of applying this operator |
Implemented in AMP::Operator::RadDifOp, AMP::Operator::RadDifOpPJac, AMP::Operator::FunctionOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
|
virtual |
|
virtualinherited |
Get a input vector ( For \(\mathbf{A(x)}\), \(\mathbf{x}\) is a input vector )
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::LinearOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::BDFRadDifOpPJac, AMP::Operator::RadDifOp, and AMP::Operator::RadDifOpPJac.
|
virtualinherited |
Get a left vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::LinearOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
|
protectedinherited |
|
protected |
Get the scaling for implicit operators (at present not consistent with IDA interface)
Definition at line 160 of file TimeOperator.h.
References d_dGamma.
|
inlinevirtualinherited |
Return the input variable.
Reimplemented in AMP::Operator::DirichletMatrixCorrection, AMP::Operator::NeumannVectorCorrection, AMP::Operator::ColumnOperator, AMP::Operator::ConstraintsEliminationOperator, AMP::Operator::ContactResidualCorrection, AMP::Operator::DiffusionNonlinearFEOperator, AMP::Operator::FickSoretNonlinearFEOperator, AMP::Operator::GradientOperator, AMP::Operator::MassLinearFEOperator, AMP::Operator::NodeToGaussPointOperator, AMP::Operator::VolumeIntegralOperator, AMP::Operator::LinearBVPOperator, AMP::Operator::LinearOperator, AMP::Operator::AsyncMapOperator, AMP::Operator::Map1Dto3D, AMP::Operator::Map3Dto1D, AMP::Operator::MapSurface, AMP::Operator::MechanicsNonlinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::MoveMeshOperator, AMP::Operator::FirstOperator, AMP::Operator::SecondOperator, AMP::Operator::NonlinearBVPOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::CoupledChannelToCladMapOperator, AMP::Operator::CoupledFlowFrapconOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqNonlinearOperator, AMP::Operator::SubchannelToPointMap, AMP::Operator::SubchannelTwoEqNonlinearOperator, AMP::Operator::TrilinosMatrixShellOperator, AMP::Operator::VectorCopyOperator, and AMP::TimeIntegrator::LinearTimeOperator.
Definition at line 106 of file Operator.h.
|
inlineprotectedvirtualinherited |
This function returns a OperatorParameters object constructed by the operator which contains parameters from which new Jacobian operators can be created. Returning a parameter object instead of an Operator itself is meant to give users more flexibility.
Definition at line 180 of file Operator.h.
|
inline |
return a shared pointer to the mass operator
Definition at line 122 of file TimeOperator.h.
References d_pMassOperator.
|
inlineinherited |
Definition at line 89 of file Operator.h.
References AMP::Operator::Operator::d_memory_location.
|
inlineinherited |
Return the mesh.
Definition at line 149 of file Operator.h.
References AMP::Operator::Operator::d_Mesh.
|
inlineinherited |
Return the mesh.
Definition at line 152 of file Operator.h.
References AMP::Operator::Operator::d_Mesh.
|
inlineoverridevirtual |
returns a Variable object corresponding to the output variable for the TimeOperator. Currently this is the output variable associated with the rhs operator.
Reimplemented from AMP::Operator::Operator.
Definition at line 135 of file TimeOperator.h.
References d_pRhsOperator.
|
override |
|
virtualinherited |
This function returns a OperatorParameters object constructed by the operator which contains parameters from which new operators can be created. Returning a parameter object instead of an Operator itself is meant to give users more flexibility. Examples of how this functionality might be used would be the construction of Jacobian, frozen Jacobian, preconditioner approximations to the Jacobian, adjoint operators etc
| type | std:string specifying type of return operator parameters being requested. Currently the valid option is Jacobian |
| u | const pointer to current solution vector |
| params | pointer to additional parameters that might be required to construct the return parameters |
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
|
inline |
return a shared pointer to the rhs operator
Definition at line 117 of file TimeOperator.h.
References d_pRhsOperator.
|
inlineoverridevirtual |
given a vector return whether it is valid or not
Reimplemented from AMP::Operator::Operator.
Definition at line 190 of file TimeOperator.h.
References AMP_ASSERT, and d_pRhsOperator.
|
inlineoverridevirtual |
virtual interface used to make a vector consistent in an operator defined way. An example of where an operator is required to make a vector consistent is in the context of AMR where ghost values on coarse-fine interfaces are filled in an operator dependent way. The default implementation is to simply call the vector makeConsistent(SET)
Reimplemented from AMP::Operator::Operator.
Definition at line 177 of file TimeOperator.h.
References AMP_ASSERT, and d_pRhsOperator.
|
inline |
register a variable as being an algebraic component. Deprecated.
Definition at line 109 of file TimeOperator.h.
References d_pAlgebraicVariable.
|
inline |
This function registers a mass operator with the TimeOperator class. Not necessary for FD or FVM discretizations
| [in] | op | : shared pointer to Operator, cannot be another TimeOperator |
Definition at line 101 of file TimeOperator.h.
References d_pMassOperator.
|
inline |
This function registers a rhs operator with the TimeOperator class
| [in] | op | : shared pointer to Operator, cannot be another TimeOperator |
Definition at line 94 of file TimeOperator.h.
References d_pRhsOperator.
|
inlineoverridevirtual |
re-initialize a vector, e.g. after a regrid operation has happened. This is useful for example when numerical overshoots or undershoots have happened due to interpolation for example The default is a null op
Reimplemented from AMP::Operator::Operator.
Definition at line 183 of file TimeOperator.h.
References AMP_ASSERT, and d_pRhsOperator.
|
overridevirtual |
This function is useful for re-initializing an operator
| params | parameter object containing parameters to change |
Reimplemented from AMP::Operator::Operator.
|
overridevirtual |
Default base class implementation of the residual: f-L(u)
| f | shared pointer to const vector rhs |
| u | shared pointer to const vector u |
| r | shared pointer to vector residual |
Reimplemented from AMP::Operator::Operator.
|
virtualinherited |
Return the selector for input vectors.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqLinearOperator, and AMP::Operator::SubchannelFourEqNonlinearOperator.
|
virtualinherited |
Return the selector for output vectors.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqLinearOperator, and AMP::Operator::SubchannelFourEqNonlinearOperator.
|
inline |
for multiphysics problems it may be necessary to scale the solution
Definition at line 170 of file TimeOperator.h.
References d_pFunctionScaling, and d_pSolutionScaling.
Specify level of diagnostic information printed during iterations.
| level | zero prints none or minimal information, higher numbers provide increasingly verbose debugging information. |
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
Definition at line 97 of file Operator.h.
References AMP::Operator::Operator::d_iDebugPrintInfoLevel.
set the value of the current time step
| [in] | dt | : value of current timestep |
Definition at line 128 of file TimeOperator.h.
References d_dCurrentDt.
|
protectedinherited |
|
inlinevirtual |
Set the scaling for implicit operators (at present not consistent with IDA interface)
Definition at line 156 of file TimeOperator.h.
References d_dGamma.
|
inherited |
Subset input vector.
|
inherited |
Subset input vector.
|
inherited |
Subset output vector.
|
inherited |
Subset output vector.
|
inlineoverridevirtual |
Return the name of the operator.
Implements AMP::Operator::Operator.
Definition at line 81 of file TimeOperator.h.
|
protectedinherited |
Definition at line 197 of file Operator.h.
|
protected |
set to true if this operator corresponds to an algebraic component
Definition at line 208 of file TimeOperator.h.
|
protected |
Definition at line 201 of file TimeOperator.h.
|
protected |
Definition at line 203 of file TimeOperator.h.
|
protected |
Definition at line 210 of file TimeOperator.h.
Referenced by setDt().
|
protected |
Definition at line 245 of file TimeOperator.h.
Referenced by getGamma(), and setTimeOperatorScaling().
|
protectedinherited |
Definition at line 187 of file Operator.h.
Referenced by AMP::Operator::Operator::setDebugPrintInfoLevel().
|
staticprotectedinherited |
Definition at line 191 of file Operator.h.
|
protectedinherited |
Definition at line 189 of file Operator.h.
|
protectedinherited |
Definition at line 195 of file Operator.h.
Referenced by AMP::Operator::Operator::getMemoryLocation().
|
protectedinherited |
Definition at line 193 of file Operator.h.
Referenced by AMP::Operator::Operator::getMesh(), AMP::Operator::Operator::getMesh(), and AMP::Operator::ContactResidualCorrection::setMasterMesh().
|
protected |
algebraic variable
Definition at line 225 of file TimeOperator.h.
Referenced by registerAlgebraicVariable().
|
protected |
Definition at line 243 of file TimeOperator.h.
Referenced by setComponentScalings().
|
protected |
pointer to mass operator
Definition at line 220 of file TimeOperator.h.
Referenced by getMassOperator(), and registerMassOperator().
|
protected |
pointer to rhs operator
Definition at line 215 of file TimeOperator.h.
Referenced by getOutputVariable(), getRhsOperator(), isValidVector(), makeConsistent(), registerRhsOperator(), and reInitializeVector().
|
protected |
scratch vector for internal use
Definition at line 230 of file TimeOperator.h.
|
protected |
scratch vector for internal use
Definition at line 235 of file TimeOperator.h.
|
protected |
Definition at line 242 of file TimeOperator.h.
Referenced by setComponentScalings().
|
protected |
vector containing time independent source terms if any (for now)
Definition at line 240 of file TimeOperator.h.
Referenced by AMP::TimeIntegrator::IDATimeOperator::registerSourceTerm().
|
Advanced Multi-Physics (AMP) Oak Ridge National Laboratory Idaho National Laboratory Los Alamos National Laboratory |
This page automatically produced from the source code by Last updated: Tue Mar 10 2026 13:06:45. Comments on this page |