#include <DiffusionNonlinearFEOperator.h>

Classes | |
| struct | InputVectorStruct |
Public Types | |
| typedef std::shared_ptr< AMP::Operator::Operator > | shared_ptr |
Protected Member Functions | |
| void | createLibMeshElementList () |
| void | destroyLibMeshElementList () |
| void | getBackendFromInput (std::shared_ptr< AMP::Database > db) |
| std::shared_ptr< OperatorParameters > | getJacobianParameters (AMP::LinearAlgebra::Vector::const_shared_ptr u) override |
| virtual std::shared_ptr< OperatorParameters > | getJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >) |
| void | init (std::shared_ptr< const DiffusionNonlinearFEOperatorParameters > params) |
| void | postAssembly () override |
| void | postElementOperation () override |
| void | preAssembly (AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr r) override |
| void | preElementOperation (const AMP::Mesh::MeshElement &) override |
| void | setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db) |
Protected Attributes | |
| std::map< std::string, InputVectorStruct > | d_active |
| AMP::Utilities::Backend | d_backend = AMP::Utilities::Backend::Serial |
| size_t | d_currElemIdx |
| std::vector< libMesh::Elem * > | d_currElemPtrs |
| AMP::Mesh::MeshElementVectorPtr | d_currNodes |
| std::shared_ptr< DiffusionNonlinearElement > | d_diffNonlinElem |
| std::vector< double > | d_elementOutputVector |
| std::shared_ptr< ElementOperation > | d_elemOp |
| 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 |
| AMP::LinearAlgebra::Vector::shared_ptr | d_outVec |
| std::shared_ptr< std::vector< double > > | d_TransportGauss |
| std::shared_ptr< DiffusionTransportModel > | d_transportModel |
| AMP::LinearAlgebra::Vector::shared_ptr | d_TransportNodal |
Static Protected Attributes | |
| static int | d_iInstance_id |
Private Member Functions | |
| DiffusionNonlinearFEOperator (std::shared_ptr< const DiffusionNonlinearFEOperatorParameters > params, bool) | |
| void | resetFrozen (std::shared_ptr< const DiffusionNonlinearFEOperatorParameters > params) |
Private Attributes | |
| std::shared_ptr< AMP::LinearAlgebra::MultiVariable > | d_inpVariables |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_outVariable |
| std::string | d_PrincipalVariable |
Definition at line 14 of file DiffusionNonlinearFEOperator.h.
|
inherited |
Definition at line 29 of file Operator.h.
|
explicit |
|
inlinevirtual |
Definition at line 19 of file DiffusionNonlinearFEOperator.h.
|
explicitprivate |
|
overridevirtualinherited |
The apply function for this operator, A, performs the following operation: f = A(u)
| [in] | u | input vector. |
| [out] | f | residual/output vector. |
|
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.
| std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::DiffusionNonlinearFEOperator::createInputVariable | ( | const std::string & | name, |
| int | varId = -1 |
||
| ) |
|
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.
|
protectedinherited |
| std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::DiffusionNonlinearFEOperator::createOutputVariable | ( | const std::string & | name, |
| int | varId = -1 |
||
| ) |
|
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 |
|
protectedinherited |
| std::map< std::string, AMP::LinearAlgebra::Vector::shared_ptr > AMP::Operator::DiffusionNonlinearFEOperator::getFrozen | ( | ) |
|
overridevirtual |
Return the input variable.
Reimplemented from AMP::Operator::Operator.
|
overrideprotected |
|
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.
|
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.
| std::vector< std::string > AMP::Operator::DiffusionNonlinearFEOperator::getNonPrincipalVariableIds | ( | ) |
|
overridevirtual |
Return the output variable.
Reimplemented from AMP::Operator::Operator.
|
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.
Definition at line 41 of file DiffusionNonlinearFEOperator.h.
References d_PrincipalVariable.
| std::shared_ptr< DiffusionTransportModel > AMP::Operator::DiffusionNonlinearFEOperator::getTransportModel | ( | ) |
| std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::DiffusionNonlinearFEOperator::getVariableForDOFMap | ( | unsigned int | id | ) |
|
protected |
|
override |
checks input to apply operator for satisfaction of range conditions
|
inlinevirtualinherited |
given a vector return whether it is valid or not
Reimplemented in AMP::Operator::BDFRadDifOp, AMP::Operator::RadDifOp, AMP::Operator::ColumnOperator, AMP::Operator::CoupledOperator, AMP::TimeIntegrator::TimeOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
Definition at line 146 of file Operator.h.
|
virtualinherited |
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 in AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, and AMP::TimeIntegrator::TimeOperator.
Definition at line 37 of file DiffusionNonlinearFEOperator.h.
|
overrideprotectedvirtual |
This function will be called just after looping over all the elements to form the residual vector, so if the derived classes need to perform any operations such as freeing any temporary memory allocations they can do so by implementing these operations in this function.
Implements AMP::Operator::NonlinearFEOperator.
|
overrideprotectedvirtual |
This function will be called once for each element, just after performing the element operation. Typically, the result of the element operation is added to the global output vector in this function.
Implements AMP::Operator::NonlinearFEOperator.
|
overrideprotectedvirtual |
This function will be called just before looping over the elements to form the residual vector, so if the derived classes need to perform some initialization operations just before looping over the elements they can do so by implementing these operations in this function. Also, the derived classes can access the input (u) and output (r) vectors passed to the apply function by implementing this function.
| [in] | u | Input vector |
| [out] | r | Output vector |
Implements AMP::Operator::NonlinearFEOperator.
|
overrideprotectedvirtual |
This function will be called once for each element, just before performing the element operation. Ideally, the element operation should not deal with global mesh related information such as DOFMap and global vectors and matrices. This function typically extracts the local information from these global objects and passes them to the element operation.
Implements AMP::Operator::NonlinearFEOperator.
|
inlinevirtualinherited |
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 in AMP::TimeIntegrator::TimeOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.
Definition at line 167 of file Operator.h.
|
overridevirtual |
This function is useful for re-initializing/updating an operator
| params | parameter object containing parameters to change |
Reimplemented from AMP::Operator::Operator.
|
private |
|
virtualinherited |
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 in AMP::Solver::AMG::HasDeferConsistency< AMP::Operator::LinearOperator >, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::TimeIntegrator::IDATimeOperator, and AMP::TimeIntegrator::TimeOperator.
|
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.
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.
| void AMP::Operator::DiffusionNonlinearFEOperator::setInputVariableName | ( | const std::string & | name, |
| int | varId = -1 |
||
| ) |
|
protectedinherited |
| void AMP::Operator::DiffusionNonlinearFEOperator::setOutputVariableName | ( | const std::string & | name, |
| int | varId = -1 |
||
| ) |
| void AMP::Operator::DiffusionNonlinearFEOperator::setVector | ( | const std::string & | name, |
| AMP::LinearAlgebra::Vector::shared_ptr | frozenVec | ||
| ) |
This function is used to set frozen vectors in this operator. This is used when some of the variables are solved for in an uncoupled manner.
| [in] | name | Variable Identifier |
| [in] | frozenVec | Frozen vector |
|
inherited |
Subset input vector.
|
inherited |
Subset input vector.
|
inherited |
Subset output vector.
|
inherited |
Subset output vector.
|
inlineoverridevirtualinherited |
Return the name of the operator.
Implements AMP::Operator::Operator.
Reimplemented in AMP::Operator::VolumeIntegralOperator.
Definition at line 39 of file NonlinearFEOperator.h.
|
protected |
Definition at line 96 of file DiffusionNonlinearFEOperator.h.
|
protectedinherited |
Definition at line 197 of file Operator.h.
|
protectedinherited |
Definition at line 98 of file NonlinearFEOperator.h.
|
protectedinherited |
Definition at line 96 of file NonlinearFEOperator.h.
|
protected |
Definition at line 83 of file DiffusionNonlinearFEOperator.h.
|
protected |
Definition at line 79 of file DiffusionNonlinearFEOperator.h.
|
protected |
Definition at line 77 of file DiffusionNonlinearFEOperator.h.
|
protectedinherited |
Shared pointer to the element operation
Definition at line 100 of file NonlinearFEOperator.h.
|
protectedinherited |
Definition at line 187 of file Operator.h.
Referenced by AMP::Operator::Operator::setDebugPrintInfoLevel().
|
staticprotectedinherited |
Definition at line 191 of file Operator.h.
|
private |
Definition at line 99 of file DiffusionNonlinearFEOperator.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().
|
private |
Definition at line 101 of file DiffusionNonlinearFEOperator.h.
|
protected |
Definition at line 85 of file DiffusionNonlinearFEOperator.h.
|
private |
Definition at line 103 of file DiffusionNonlinearFEOperator.h.
Referenced by getPrincipalVariable().
|
protected |
Definition at line 87 of file DiffusionNonlinearFEOperator.h.
|
protected |
Definition at line 81 of file DiffusionNonlinearFEOperator.h.
|
protected |
Definition at line 88 of file DiffusionNonlinearFEOperator.h.
|
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:44. Comments on this page |