Advanced Multi-Physics (AMP)
On-Line Documentation
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
AMP::Operator::MechanicsNonlinearFEOperator Class Referenceabstract

#include <MechanicsNonlinearFEOperator.h>

Inheritance diagram for AMP::Operator::MechanicsNonlinearFEOperator:
Inheritance graph
[legend]

Public Types

typedef std::shared_ptr< AMP::Operator::Operatorshared_ptr
 

Public Member Functions

virtual void apply (AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override
 
virtual void apply (std::shared_ptr< const AMP::LinearAlgebra::Vector > u, std::shared_ptr< AMP::LinearAlgebra::Vector > f)=0
 
virtual std::shared_ptr< AMP::LinearAlgebra::VectorcreateInputVector () const
 Get a input vector ( For \(\mathbf{A(x)}\), \(\mathbf{x}\) is a input vector )
 
virtual std::shared_ptr< AMP::LinearAlgebra::VectorcreateOutputVector () const
 Get a left vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )
 
std::shared_ptr< AMP::LinearAlgebra::VariablegetInputVariable () const override
 
std::shared_ptr< MechanicsMaterialModelgetMaterialModel ()
 
AMP::Utilities::MemoryType getMemoryLocation () const
 
std::shared_ptr< AMP::Mesh::MeshgetMesh ()
 Return the mesh.
 
std::shared_ptr< const AMP::Mesh::MeshgetMesh () const
 Return the mesh.
 
std::shared_ptr< AMP::LinearAlgebra::VariablegetOutputVariable () const override
 
virtual std::shared_ptr< OperatorParametersgetParameters (const std::string &type, std::shared_ptr< const AMP::LinearAlgebra::Vector > u, std::shared_ptr< OperatorParameters > params=nullptr)
 
virtual bool isValidVector (std::shared_ptr< const AMP::LinearAlgebra::Vector >)
 given a vector return whether it is valid or not
 
virtual void makeConsistent (std::shared_ptr< AMP::LinearAlgebra::Vector > vec)
 
 MechanicsNonlinearFEOperator (std::shared_ptr< const OperatorParameters > params)
 
void printStressAndStrain (AMP::LinearAlgebra::Vector::const_shared_ptr u, const std::string &fname)
 
virtual void reInitializeVector (std::shared_ptr< AMP::LinearAlgebra::Vector >)
 
void reset (std::shared_ptr< const OperatorParameters >) override
 
virtual void residual (std::shared_ptr< const AMP::LinearAlgebra::Vector > f, std::shared_ptr< const AMP::LinearAlgebra::Vector > u, std::shared_ptr< AMP::LinearAlgebra::Vector > r)
 
virtual std::shared_ptr< AMP::LinearAlgebra::VectorSelectorselectInputVector () const
 Return the selector for input vectors.
 
virtual std::shared_ptr< AMP::LinearAlgebra::VectorSelectorselectOutputVector () const
 Return the selector for output vectors.
 
virtual void setDebugPrintInfoLevel (int level)
 
void setReferenceTemperature (AMP::LinearAlgebra::Vector::const_shared_ptr refTemp)
 
void setVector (unsigned int id, AMP::LinearAlgebra::Vector::const_shared_ptr frozenVec)
 
std::shared_ptr< AMP::LinearAlgebra::VectorsubsetInputVector (std::shared_ptr< AMP::LinearAlgebra::Vector > vec) const
 Subset input vector.
 
std::shared_ptr< const AMP::LinearAlgebra::VectorsubsetInputVector (std::shared_ptr< const AMP::LinearAlgebra::Vector > vec) const
 Subset input vector.
 
std::shared_ptr< AMP::LinearAlgebra::VectorsubsetOutputVector (std::shared_ptr< AMP::LinearAlgebra::Vector > vec) const
 Subset output vector.
 
std::shared_ptr< const AMP::LinearAlgebra::VectorsubsetOutputVector (std::shared_ptr< const AMP::LinearAlgebra::Vector > vec) const
 Subset output vector.
 
std::string type () const override
 Return the name of the operator.
 
virtual ~MechanicsNonlinearFEOperator ()
 

Protected Member Functions

void createLibMeshElementList ()
 
void destroyLibMeshElementList ()
 
void getBackendFromInput (std::shared_ptr< AMP::Database > db)
 
void getDofIndicesForCurrentElement (int varId, std::vector< std::vector< size_t > > &dofIds)
 
std::shared_ptr< OperatorParametersgetJacobianParameters (AMP::LinearAlgebra::Vector::const_shared_ptr) override
 
virtual std::shared_ptr< OperatorParametersgetJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >)
 
void init ()
 
 MechanicsNonlinearFEOperator (std::shared_ptr< const MechanicsNonlinearFEOperatorParameters >, bool)
 
AMP::LinearAlgebra::Vector::const_shared_ptr mySubsetVector (AMP::LinearAlgebra::Vector::const_shared_ptr vec, std::shared_ptr< AMP::LinearAlgebra::Variable > var)
 
AMP::LinearAlgebra::Vector::shared_ptr mySubsetVector (AMP::LinearAlgebra::Vector::shared_ptr vec, std::shared_ptr< AMP::LinearAlgebra::Variable > var)
 
void postAssembly () override
 
void postElementOperation () override
 
virtual void preAssembly (AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr r)=0
 
void preAssembly (AMP::LinearAlgebra::Vector::const_shared_ptr u, std::shared_ptr< AMP::LinearAlgebra::Vector > r) override
 
void preElementOperation (const AMP::Mesh::MeshElement &) override
 
void setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db)
 
void updateMaterialForElement (MechanicsNonlinearElement::MaterialUpdateType, const AMP::Mesh::MeshElement &)
 
void updateMaterialForElementCommonFunction (const AMP::Mesh::MeshElement &, std::vector< std::vector< double > > &, std::vector< std::vector< double > > &)
 
void updateMaterialForUpdatedLagrangianElement (MechanicsNonlinearElement::MaterialUpdateType, const AMP::Mesh::MeshElement &)
 

Protected Attributes

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::vector< std::vector< size_t > > d_dofIndices
 
std::shared_ptr< AMP::Discretization::DOFManagerd_dofMap [Mechanics::TOTAL_NUMBER_OF_VARIABLES]
 
std::vector< doubled_elementOutputVector
 
std::shared_ptr< ElementOperationd_elemOp
 
int d_iDebugPrintInfoLevel = 0
 
std::shared_ptr< AMP::LinearAlgebra::MultiVariabled_inpVariables
 
std::vector< AMP::LinearAlgebra::Vector::const_shared_ptrd_inVec
 
std::vector< AMP::LinearAlgebra::Vector::shared_ptrd_inVec_pre
 
int d_iObject_id
 
std::vector< boold_isActive
 
std::vector< boold_isFrozen
 
bool d_isInitialized
 
bool d_jacobianReusesRadialReturn
 
std::shared_ptr< MechanicsMaterialModeld_materialModel
 
std::shared_ptr< ElementOperationd_mechLinElem
 
std::shared_ptr< ElementOperationd_mechLULElem
 
std::shared_ptr< MechanicsNonlinearElementd_mechNonlinElem
 
std::shared_ptr< MechanicsNonlinearUpdatedLagrangianElementd_mechNULElem
 
AMP::Utilities::MemoryType d_memory_location = AMP::Utilities::MemoryType::none
 
std::shared_ptr< AMP::Mesh::Meshd_Mesh
 
std::shared_ptr< AMP::LinearAlgebra::Variabled_outVariable
 
AMP::LinearAlgebra::Vector::shared_ptr d_outVec
 
AMP::LinearAlgebra::Vector::const_shared_ptr d_referenceTemperature
 
AMP::LinearAlgebra::Vector::shared_ptr d_refXYZ
 
bool d_resetReusesRadialReturn
 
bool d_useUpdatedLagrangian
 

Static Protected Attributes

static int d_iInstance_id
 

Detailed Description

A class used for representing the nonlinear mechanics operator. This class can be used to compute the finite element (FE) residual vector corresponding to the mechanical equilibrium equations for a solid body. This class only deals with the volume integration, the boundary conditions are handled separately by the boundary operators.

Definition at line 27 of file MechanicsNonlinearFEOperator.h.

Member Typedef Documentation

◆ shared_ptr

Definition at line 29 of file Operator.h.

Constructor & Destructor Documentation

◆ MechanicsNonlinearFEOperator() [1/2]

AMP::Operator::MechanicsNonlinearFEOperator::MechanicsNonlinearFEOperator ( std::shared_ptr< const OperatorParameters params)
explicit

Constructor. This reads the values for the following keys from the database object contained in the parameter object, params: 1) RESET_REUSES_RADIAL_RETURN (true by default) - Can we assume that the apply() function is called before a call to the reset() function and can we reuse the results of the radial return algorithm computed in the apply() function in the reset() function? Note, this is typically true unless the reset() function is evaluated at a different state from the last call to apply(). 2) JACOBIAN_REUSES_RADIAL_RETURN (true by default) - Can we assume that the apply() function is called before a call to the getJacobianParameters() function and can we reuse the results of the radial return algorithm computed in the apply() function in the getJacobianParameters() function? Note, this is typically true unless the getJacobianParameters() function is evaluated at a different state from the last call to apply(). 3) ActiveInputVariables (No default value) - List of active input variables names. The supported variable types are: DISPLACEMENT, TEMPERATURE, BURNUP, OXYGEN_CONCENTRATION and LHGR. DISPLACEMENT must be active. 4) FREEZE_TEMPERATURE/FREEZE_BURNUP/FREEZE_OXYGEN_CONCENTRATION/FREEZE_LHGR (true by default)

  • Are these variables frozen? This will be ignored if the corresponding variable is not active. 5) OutputVariable (No default value) - Name of the output variable

◆ ~MechanicsNonlinearFEOperator()

virtual AMP::Operator::MechanicsNonlinearFEOperator::~MechanicsNonlinearFEOperator ( )
inlinevirtual

Destructor.

Definition at line 66 of file MechanicsNonlinearFEOperator.h.

◆ MechanicsNonlinearFEOperator() [2/2]

AMP::Operator::MechanicsNonlinearFEOperator::MechanicsNonlinearFEOperator ( std::shared_ptr< const MechanicsNonlinearFEOperatorParameters ,
bool   
)
protected

Member Function Documentation

◆ apply() [1/2]

virtual void AMP::Operator::NonlinearFEOperator::apply ( AMP::LinearAlgebra::Vector::const_shared_ptr  u,
AMP::LinearAlgebra::Vector::shared_ptr  f 
)
overridevirtualinherited

The apply function for this operator, A, performs the following operation: f = A(u)

Parameters
[in]uinput vector.
[out]fresidual/output vector.

◆ apply() [2/2]

virtual void AMP::Operator::Operator::apply ( std::shared_ptr< const AMP::LinearAlgebra::Vector u,
std::shared_ptr< AMP::LinearAlgebra::Vector f 
)
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.

Parameters
ushared pointer to const input vector u
fshared 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.

◆ createInputVector()

virtual std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::Operator::createInputVector ( ) const
virtualinherited

◆ createLibMeshElementList()

void AMP::Operator::NonlinearFEOperator::createLibMeshElementList ( )
protectedinherited

◆ createOutputVector()

virtual std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::Operator::createOutputVector ( ) const
virtualinherited

Get a left vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )

Returns
A newly created output vector

Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::LinearOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.

◆ destroyLibMeshElementList()

void AMP::Operator::NonlinearFEOperator::destroyLibMeshElementList ( )
protectedinherited

◆ getBackendFromInput()

void AMP::Operator::Operator::getBackendFromInput ( std::shared_ptr< AMP::Database db)
protectedinherited

◆ getDofIndicesForCurrentElement()

void AMP::Operator::MechanicsNonlinearFEOperator::getDofIndicesForCurrentElement ( int  varId,
std::vector< std::vector< size_t > > &  dofIds 
)
protected

◆ getInputVariable()

std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::MechanicsNonlinearFEOperator::getInputVariable ( ) const
inlineoverridevirtual
Returns
The variable for the specified component of the input vector. If varId is equal to -1, it returns the multivariable for the entire vector.

Reimplemented from AMP::Operator::Operator.

Definition at line 95 of file MechanicsNonlinearFEOperator.h.

References d_inpVariables.

◆ getJacobianParameters() [1/2]

std::shared_ptr< OperatorParameters > AMP::Operator::MechanicsNonlinearFEOperator::getJacobianParameters ( AMP::LinearAlgebra::Vector::const_shared_ptr  )
overrideprotected

This is used to compute the information required to reset the corresponding Linear (Jacobian) operator

◆ getJacobianParameters() [2/2]

virtual std::shared_ptr< OperatorParameters > AMP::Operator::Operator::getJacobianParameters ( std::shared_ptr< const AMP::LinearAlgebra::Vector )
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.

◆ getMaterialModel()

std::shared_ptr< MechanicsMaterialModel > AMP::Operator::MechanicsNonlinearFEOperator::getMaterialModel ( )
inline

Definition at line 118 of file MechanicsNonlinearFEOperator.h.

References d_materialModel.

◆ getMemoryLocation()

AMP::Utilities::MemoryType AMP::Operator::Operator::getMemoryLocation ( ) const
inlineinherited

Definition at line 89 of file Operator.h.

References AMP::Operator::Operator::d_memory_location.

◆ getMesh() [1/2]

std::shared_ptr< AMP::Mesh::Mesh > AMP::Operator::Operator::getMesh ( )
inlineinherited

Return the mesh.

Definition at line 149 of file Operator.h.

References AMP::Operator::Operator::d_Mesh.

◆ getMesh() [2/2]

std::shared_ptr< const AMP::Mesh::Mesh > AMP::Operator::Operator::getMesh ( ) const
inlineinherited

Return the mesh.

Definition at line 152 of file Operator.h.

References AMP::Operator::Operator::d_Mesh.

◆ getOutputVariable()

std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::MechanicsNonlinearFEOperator::getOutputVariable ( ) const
inlineoverridevirtual
Returns
The variable for the output vector

Reimplemented from AMP::Operator::Operator.

Definition at line 103 of file MechanicsNonlinearFEOperator.h.

References d_outVariable.

◆ getParameters()

virtual std::shared_ptr< OperatorParameters > AMP::Operator::Operator::getParameters ( const std::string &  type,
std::shared_ptr< const AMP::LinearAlgebra::Vector u,
std::shared_ptr< OperatorParameters params = nullptr 
)
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

Parameters
typestd:string specifying type of return operator parameters being requested. Currently the valid option is Jacobian
uconst pointer to current solution vector
paramspointer to additional parameters that might be required to construct the return parameters

Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::MemorySpaceMigrationOperator.

◆ init()

void AMP::Operator::MechanicsNonlinearFEOperator::init ( )
protected

This performs a dummy loop over the elements and gauss points so that the mechanics material model classes can allocate memory and/or initialize their data as required.

◆ isValidVector()

virtual bool AMP::Operator::Operator::isValidVector ( std::shared_ptr< const AMP::LinearAlgebra::Vector )
inlinevirtualinherited

◆ makeConsistent()

virtual void AMP::Operator::Operator::makeConsistent ( std::shared_ptr< AMP::LinearAlgebra::Vector vec)
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.

◆ mySubsetVector() [1/2]

AMP::LinearAlgebra::Vector::const_shared_ptr AMP::Operator::MechanicsNonlinearFEOperator::mySubsetVector ( AMP::LinearAlgebra::Vector::const_shared_ptr  vec,
std::shared_ptr< AMP::LinearAlgebra::Variable var 
)
protected

◆ mySubsetVector() [2/2]

AMP::LinearAlgebra::Vector::shared_ptr AMP::Operator::MechanicsNonlinearFEOperator::mySubsetVector ( AMP::LinearAlgebra::Vector::shared_ptr  vec,
std::shared_ptr< AMP::LinearAlgebra::Variable var 
)
protected

◆ postAssembly()

void AMP::Operator::MechanicsNonlinearFEOperator::postAssembly ( )
overrideprotectedvirtual

This function is called at the end of the FE assembly. The values of the output vector on the nodes shared between two or more processors are made consistent.

Implements AMP::Operator::NonlinearFEOperator.

◆ postElementOperation()

void AMP::Operator::MechanicsNonlinearFEOperator::postElementOperation ( )
overrideprotectedvirtual

This function is called at the end of the element computation. The entries of the element output vector are added to the corresponding entries of the global output vector.

Implements AMP::Operator::NonlinearFEOperator.

◆ preAssembly() [1/2]

virtual void AMP::Operator::NonlinearFEOperator::preAssembly ( AMP::LinearAlgebra::Vector::const_shared_ptr  u,
AMP::LinearAlgebra::Vector::shared_ptr  r 
)
protectedpure virtualinherited

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.

Parameters
[in]uInput vector
[out]rOutput vector

Implemented in AMP::Operator::DiffusionNonlinearFEOperator, and AMP::Operator::VolumeIntegralOperator.

◆ preAssembly() [2/2]

void AMP::Operator::MechanicsNonlinearFEOperator::preAssembly ( AMP::LinearAlgebra::Vector::const_shared_ptr  u,
std::shared_ptr< AMP::LinearAlgebra::Vector r 
)
overrideprotected

This function is called at the beginning of the FE assembly. The output vector, r, is set to 0. The values of the input vector, u, on the nodes shared between two or more processors are made consistent.

Parameters
[in]uinput vector
[out]routput vector

◆ preElementOperation()

void AMP::Operator::MechanicsNonlinearFEOperator::preElementOperation ( const AMP::Mesh::MeshElement )
overrideprotectedvirtual

This function is called at the beginning of the element computation. The part of the input vector that is relevant for the computation in the current element is extracted and passed to MechanicsNonlinearElement.

Implements AMP::Operator::NonlinearFEOperator.

◆ printStressAndStrain()

void AMP::Operator::MechanicsNonlinearFEOperator::printStressAndStrain ( AMP::LinearAlgebra::Vector::const_shared_ptr  u,
const std::string &  fname 
)

Writes the stress and strain at each Gauss point to a file. The 6 components of stress and strain at each Gauss point are arranged in the order: xx, yy, zz, yz, xz and xy.

Parameters
[in]uInput vector
[in]fnameName of the output file

◆ reInitializeVector()

virtual void AMP::Operator::Operator::reInitializeVector ( std::shared_ptr< AMP::LinearAlgebra::Vector )
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.

◆ reset()

void AMP::Operator::MechanicsNonlinearFEOperator::reset ( std::shared_ptr< const OperatorParameters )
overridevirtual

This is used to update the operator between successive solves with the operator.

Reimplemented from AMP::Operator::Operator.

◆ residual()

virtual void AMP::Operator::Operator::residual ( std::shared_ptr< const AMP::LinearAlgebra::Vector f,
std::shared_ptr< const AMP::LinearAlgebra::Vector u,
std::shared_ptr< AMP::LinearAlgebra::Vector r 
)
virtualinherited

Default base class implementation of the residual: f-L(u)

Parameters
fshared pointer to const vector rhs
ushared pointer to const vector u
rshared 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.

◆ selectInputVector()

virtual std::shared_ptr< AMP::LinearAlgebra::VectorSelector > AMP::Operator::Operator::selectInputVector ( ) const
virtualinherited

◆ selectOutputVector()

virtual std::shared_ptr< AMP::LinearAlgebra::VectorSelector > AMP::Operator::Operator::selectOutputVector ( ) const
virtualinherited

◆ setDebugPrintInfoLevel()

virtual void AMP::Operator::Operator::setDebugPrintInfoLevel ( int  level)
inlinevirtualinherited

Specify level of diagnostic information printed during iterations.

Parameters
levelzero 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.

◆ setMemoryAndBackendParameters()

void AMP::Operator::Operator::setMemoryAndBackendParameters ( std::shared_ptr< AMP::Database db)
protectedinherited

◆ setReferenceTemperature()

void AMP::Operator::MechanicsNonlinearFEOperator::setReferenceTemperature ( AMP::LinearAlgebra::Vector::const_shared_ptr  refTemp)

This function is used to set the reference temperature when using temperature dependent material models.

Parameters
[in]refTempReference temperature

◆ setVector()

void AMP::Operator::MechanicsNonlinearFEOperator::setVector ( unsigned int  id,
AMP::LinearAlgebra::Vector::const_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.

Parameters
[in]idVariable Identifier - One of AMP::Mechanics::DISPLACEMENT/TEMPERATURE/BURNUP/OXYGEN_CONCENTRATION/LHGR
[in]frozenVecFrozen vector
See also
MechanicsConstants.h

◆ subsetInputVector() [1/2]

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::Operator::subsetInputVector ( std::shared_ptr< AMP::LinearAlgebra::Vector vec) const
inherited

Subset input vector.

◆ subsetInputVector() [2/2]

std::shared_ptr< const AMP::LinearAlgebra::Vector > AMP::Operator::Operator::subsetInputVector ( std::shared_ptr< const AMP::LinearAlgebra::Vector vec) const
inherited

Subset input vector.

◆ subsetOutputVector() [1/2]

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::Operator::subsetOutputVector ( std::shared_ptr< AMP::LinearAlgebra::Vector vec) const
inherited

Subset output vector.

◆ subsetOutputVector() [2/2]

std::shared_ptr< const AMP::LinearAlgebra::Vector > AMP::Operator::Operator::subsetOutputVector ( std::shared_ptr< const AMP::LinearAlgebra::Vector vec) const
inherited

Subset output vector.

◆ type()

std::string AMP::Operator::NonlinearFEOperator::type ( ) const
inlineoverridevirtualinherited

Return the name of the operator.

Implements AMP::Operator::Operator.

Reimplemented in AMP::Operator::VolumeIntegralOperator.

Definition at line 39 of file NonlinearFEOperator.h.

◆ updateMaterialForElement()

void AMP::Operator::MechanicsNonlinearFEOperator::updateMaterialForElement ( MechanicsNonlinearElement::MaterialUpdateType  ,
const AMP::Mesh::MeshElement  
)
protected

◆ updateMaterialForElementCommonFunction()

void AMP::Operator::MechanicsNonlinearFEOperator::updateMaterialForElementCommonFunction ( const AMP::Mesh::MeshElement ,
std::vector< std::vector< double > > &  ,
std::vector< std::vector< double > > &   
)
protected

◆ updateMaterialForUpdatedLagrangianElement()

void AMP::Operator::MechanicsNonlinearFEOperator::updateMaterialForUpdatedLagrangianElement ( MechanicsNonlinearElement::MaterialUpdateType  ,
const AMP::Mesh::MeshElement  
)
protected

Member Data Documentation

◆ d_backend

AMP::Utilities::Backend AMP::Operator::Operator::d_backend = AMP::Utilities::Backend::Serial
protectedinherited

Definition at line 197 of file Operator.h.

◆ d_currElemIdx

size_t AMP::Operator::NonlinearFEOperator::d_currElemIdx
protectedinherited

Definition at line 98 of file NonlinearFEOperator.h.

◆ d_currElemPtrs

std::vector<libMesh::Elem *> AMP::Operator::NonlinearFEOperator::d_currElemPtrs
protectedinherited

Definition at line 96 of file NonlinearFEOperator.h.

◆ d_currNodes

AMP::Mesh::MeshElementVectorPtr AMP::Operator::MechanicsNonlinearFEOperator::d_currNodes
protected

Definition at line 243 of file MechanicsNonlinearFEOperator.h.

◆ d_dofIndices

std::vector<std::vector<size_t> > AMP::Operator::MechanicsNonlinearFEOperator::d_dofIndices
protected

Primary DOF indices

Definition at line 245 of file MechanicsNonlinearFEOperator.h.

◆ d_dofMap

std::shared_ptr<AMP::Discretization::DOFManager> AMP::Operator::MechanicsNonlinearFEOperator::d_dofMap[Mechanics::TOTAL_NUMBER_OF_VARIABLES]
protected

Definition at line 241 of file MechanicsNonlinearFEOperator.h.

◆ d_elementOutputVector

std::vector<double> AMP::Operator::MechanicsNonlinearFEOperator::d_elementOutputVector
protected

Element output vector.

Definition at line 191 of file MechanicsNonlinearFEOperator.h.

◆ d_elemOp

std::shared_ptr<ElementOperation> AMP::Operator::NonlinearFEOperator::d_elemOp
protectedinherited

Shared pointer to the element operation

Definition at line 100 of file NonlinearFEOperator.h.

◆ d_iDebugPrintInfoLevel

int AMP::Operator::Operator::d_iDebugPrintInfoLevel = 0
protectedinherited

Definition at line 187 of file Operator.h.

Referenced by AMP::Operator::Operator::setDebugPrintInfoLevel().

◆ d_iInstance_id

int AMP::Operator::Operator::d_iInstance_id
staticprotectedinherited

Definition at line 191 of file Operator.h.

◆ d_inpVariables

std::shared_ptr<AMP::LinearAlgebra::MultiVariable> AMP::Operator::MechanicsNonlinearFEOperator::d_inpVariables
protected

Input variables.

Definition at line 237 of file MechanicsNonlinearFEOperator.h.

Referenced by getInputVariable().

◆ d_inVec

std::vector<AMP::LinearAlgebra::Vector::const_shared_ptr> AMP::Operator::MechanicsNonlinearFEOperator::d_inVec
protected

Input vector.

Definition at line 205 of file MechanicsNonlinearFEOperator.h.

◆ d_inVec_pre

std::vector<AMP::LinearAlgebra::Vector::shared_ptr> AMP::Operator::MechanicsNonlinearFEOperator::d_inVec_pre
protected

Input vector. at nth (previous) configuration

Definition at line 208 of file MechanicsNonlinearFEOperator.h.

◆ d_iObject_id

int AMP::Operator::Operator::d_iObject_id
protectedinherited

Definition at line 189 of file Operator.h.

◆ d_isActive

std::vector<bool> AMP::Operator::MechanicsNonlinearFEOperator::d_isActive
protected

A list of flags to determine which variables are active.

Definition at line 228 of file MechanicsNonlinearFEOperator.h.

◆ d_isFrozen

std::vector<bool> AMP::Operator::MechanicsNonlinearFEOperator::d_isFrozen
protected

A list of flags to determine which variables are frozen.

Definition at line 230 of file MechanicsNonlinearFEOperator.h.

◆ d_isInitialized

bool AMP::Operator::MechanicsNonlinearFEOperator::d_isInitialized
protected

A flag that is true if init() has been called and false otherwsie.

Definition at line 235 of file MechanicsNonlinearFEOperator.h.

◆ d_jacobianReusesRadialReturn

bool AMP::Operator::MechanicsNonlinearFEOperator::d_jacobianReusesRadialReturn
protected

A flag that is true if the getJacobianParameters() function can reuse the results from the radial return computation in the last call to the apply() function and false otherwise.

Definition at line 222 of file MechanicsNonlinearFEOperator.h.

◆ d_materialModel

std::shared_ptr<MechanicsMaterialModel> AMP::Operator::MechanicsNonlinearFEOperator::d_materialModel
protected

Material model.

Definition at line 203 of file MechanicsNonlinearFEOperator.h.

Referenced by getMaterialModel().

◆ d_mechLinElem

std::shared_ptr<ElementOperation> AMP::Operator::MechanicsNonlinearFEOperator::d_mechLinElem
protected

Element operation.

Definition at line 195 of file MechanicsNonlinearFEOperator.h.

◆ d_mechLULElem

std::shared_ptr<ElementOperation> AMP::Operator::MechanicsNonlinearFEOperator::d_mechLULElem
protected

Linear Updated Lagrangian Element operation.

Definition at line 201 of file MechanicsNonlinearFEOperator.h.

◆ d_mechNonlinElem

std::shared_ptr<MechanicsNonlinearElement> AMP::Operator::MechanicsNonlinearFEOperator::d_mechNonlinElem
protected

Element operation.

Definition at line 193 of file MechanicsNonlinearFEOperator.h.

◆ d_mechNULElem

std::shared_ptr<MechanicsNonlinearUpdatedLagrangianElement> AMP::Operator::MechanicsNonlinearFEOperator::d_mechNULElem
protected

Nonlinear Updated Lagrangian Element operation.

Definition at line 198 of file MechanicsNonlinearFEOperator.h.

◆ d_memory_location

AMP::Utilities::MemoryType AMP::Operator::Operator::d_memory_location = AMP::Utilities::MemoryType::none
protectedinherited

Definition at line 195 of file Operator.h.

Referenced by AMP::Operator::Operator::getMemoryLocation().

◆ d_Mesh

std::shared_ptr<AMP::Mesh::Mesh> AMP::Operator::Operator::d_Mesh
protectedinherited

◆ d_outVariable

std::shared_ptr<AMP::LinearAlgebra::Variable> AMP::Operator::MechanicsNonlinearFEOperator::d_outVariable
protected

Output variable

Definition at line 239 of file MechanicsNonlinearFEOperator.h.

Referenced by getOutputVariable().

◆ d_outVec

AMP::LinearAlgebra::Vector::shared_ptr AMP::Operator::MechanicsNonlinearFEOperator::d_outVec
protected

Output vector.

Definition at line 215 of file MechanicsNonlinearFEOperator.h.

◆ d_referenceTemperature

AMP::LinearAlgebra::Vector::const_shared_ptr AMP::Operator::MechanicsNonlinearFEOperator::d_referenceTemperature
protected

Reference temperature.

Definition at line 213 of file MechanicsNonlinearFEOperator.h.

◆ d_refXYZ

AMP::LinearAlgebra::Vector::shared_ptr AMP::Operator::MechanicsNonlinearFEOperator::d_refXYZ
protected

Reference x, y and z coordinates.

Definition at line 210 of file MechanicsNonlinearFEOperator.h.

◆ d_resetReusesRadialReturn

bool AMP::Operator::MechanicsNonlinearFEOperator::d_resetReusesRadialReturn
protected

A flag that is true if the reset() function can reuse the results from the radial return computation in the last call to the apply() function and false otherwise.

Definition at line 217 of file MechanicsNonlinearFEOperator.h.

◆ d_useUpdatedLagrangian

bool AMP::Operator::MechanicsNonlinearFEOperator::d_useUpdatedLagrangian
protected

A flag that checks whether to use Updated Lagrangian formulation or not.

Definition at line 232 of file MechanicsNonlinearFEOperator.h.


The documentation for this class was generated from the following file:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:44.
Comments on this page