#include <MechanicsLinearFEOperator.h>

Public Types | |
| typedef std::shared_ptr< AMP::Operator::Operator > | shared_ptr |
Protected Member Functions | |
| void | createCurrentLibMeshElement () |
| void | destroyCurrentLibMeshElement () |
| void | getBackendFromInput (std::shared_ptr< AMP::Database > db) |
| void | getDofIndicesForCurrentElement () |
| virtual std::shared_ptr< OperatorParameters > | getJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >) |
| MechanicsLinearFEOperator (std::shared_ptr< const MechanicsLinearFEOperatorParameters >, bool) | |
| void | setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db) |
Static Protected Attributes | |
| static int | d_iInstance_id |
A class for representing the linear operator for linear/nonlinear mechanics. In the case of nonlinear mechanics, this operator will result from the linearization (or some approximate linearization) of the nonlinear operator. This class can be used to compute the finite element (FE) stiffness matrix 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 26 of file MechanicsLinearFEOperator.h.
|
inherited |
Definition at line 29 of file Operator.h.
|
explicit |
Constructor. This allocates memory for the stiffness matrix. This also computes the entries of the stiffness matrix unless (a) this operator is the jacobian of the nonlinear mechanics operator and (b) the nonlinear mechanics operator is not already initialized at the time of construction of this operator. This reads the values for the following keys from the database object contained in the parameter object, params: 1) isAttachedToNonlinearOperator (false by default) - Is this a jacobian of the nonlinear mechanics operator? 2) isNonlinearOperatorInitialized (false by default) - If this is a jacobian of the nonlinear mechanics operator, is the nonlinear mechanics operator already initialized at the time of construction of this operator? 3) InputVariable (No default value) - Name of the input variable 4) OutputVariable (No default value) - Name of the output variable
|
inlinevirtual |
Destructor
Definition at line 54 of file MechanicsLinearFEOperator.h.
|
protected |
|
overridevirtualinherited |
The apply function for this operator, A, performs the following operation: f = A(u) Here, A(u) is simply a Matrix-Vector multiplication.
| [in] | u | input vector. |
| [out] | f | residual/output vector. |
Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::Operator::BDFRadDifOpPJac.
|
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.
|
protectedinherited |
|
overridevirtualinherited |
Get a input vector ( For \(\mathbf{A(x)}\), \(\mathbf{x}\) is a input vector )
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::RadDifOpPJac.
|
overridevirtualinherited |
Get an output vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator.
|
protectedinherited |
|
protectedinherited |
|
protected |
|
inlineoverridevirtualinherited |
Return the input variable.
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MassLinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::TimeIntegrator::LinearTimeOperator.
Definition at line 63 of file LinearOperator.h.
References AMP::Operator::LinearOperator::d_inputVariable.
|
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 |
Definition at line 92 of file MechanicsLinearFEOperator.h.
References d_materialModel.
|
virtualinherited |
Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator.
|
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.
|
inlineoverridevirtualinherited |
Return the output variable.
Reimplemented from AMP::Operator::Operator.
Reimplemented in AMP::Operator::MassLinearFEOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::TimeIntegrator::LinearTimeOperator.
Definition at line 67 of file LinearOperator.h.
References AMP::Operator::LinearOperator::d_outputVariable.
|
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.
|
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.
|
overridevirtual |
This is called at the end of the FE assembly. The entries of the matrix corresponding to nodes that are shared between two or more processors are made consistent.
Implements AMP::Operator::LinearFEOperator.
|
overridevirtual |
This function will be called once for each element, just after performing the element operation. The element stiffness matrix is added to the global stiffness matrix in this function.
Implements AMP::Operator::LinearFEOperator.
|
overridevirtual |
This is called at the start of the FE assembly. The matrix is set to 0.
Implements AMP::Operator::LinearFEOperator.
|
overridevirtual |
This function will be called once for each element, just before performing the element operation. This function extracts the local information from the global mesh objects (DOFMap, global vectors and matrices) and passes them to the element operation.
Implements AMP::Operator::LinearFEOperator.
| void AMP::Operator::MechanicsLinearFEOperator::printStressAndStrain | ( | AMP::LinearAlgebra::Vector::shared_ptr | disp, |
| 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.
| [in] | disp | Displacement vector |
| [in] | fname | Name of the output file |
|
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.
|
overridevirtualinherited |
This function creates the stiffness matrix and uses virtual function calls for setting values into the matrix.
Reimplemented from AMP::Operator::Operator.
|
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.
|
virtualinherited |
Copies the shared pointer for the matrix representation of this linear operator.
| [in] | in_mat | The matrix representation of this linear operator. |
Reimplemented in AMP::Operator::IdentityOperator.
Referenced by AMP::Solver::AMG::coarse_operator< Config >::coarse_operator(), and AMP::Operator::EpetraMatrixOperator::EpetraMatrixOperator().
|
protectedinherited |
|
inlinevirtualinherited |
Definition at line 56 of file LinearOperator.h.
References AMP::Operator::LinearOperator::d_inputVariable, and AMP::Operator::LinearOperator::d_outputVariable.
Referenced by AMP::Solver::AMG::coarse_operator< Config >::coarse_operator().
|
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::MassLinearFEOperator.
Definition at line 38 of file LinearFEOperator.h.
|
protectedinherited |
Definition at line 197 of file Operator.h.
|
protectedinherited |
Definition at line 88 of file LinearFEOperator.h.
|
protectedinherited |
Definition at line 86 of file LinearFEOperator.h.
|
protected |
Definition at line 112 of file MechanicsLinearFEOperator.h.
|
protected |
DOF indices
Definition at line 99 of file MechanicsLinearFEOperator.h.
|
protected |
Element stiffness matrix.
Definition at line 101 of file MechanicsLinearFEOperator.h.
|
protectedinherited |
Definition at line 90 of file LinearFEOperator.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.
|
protectedinherited |
Definition at line 91 of file LinearFEOperator.h.
|
protectedinherited |
Definition at line 88 of file LinearOperator.h.
Referenced by AMP::Operator::LinearOperator::getInputVariable(), AMP::Operator::IdentityOperator::setInputVariable(), and AMP::Operator::LinearOperator::setVariables().
|
protectedinherited |
Definition at line 189 of file Operator.h.
|
protected |
Material model.
Definition at line 108 of file MechanicsLinearFEOperator.h.
Referenced by getMaterialModel().
|
protectedinherited |
Definition at line 92 of file LinearOperator.h.
|
protected |
Element operation.
Definition at line 103 of file MechanicsLinearFEOperator.h.
|
protected |
Linear Updated Lagrangian Element operation.
Definition at line 106 of file MechanicsLinearFEOperator.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().
|
protectedinherited |
Definition at line 92 of file LinearFEOperator.h.
|
protectedinherited |
Definition at line 90 of file LinearOperator.h.
Referenced by AMP::Operator::LinearOperator::getOutputVariable(), AMP::Operator::IdentityOperator::setOutputVariable(), and AMP::Operator::LinearOperator::setVariables().
|
protected |
Reference x, y and z coordinates.
Definition at line 110 of file MechanicsLinearFEOperator.h.
|
protected |
Definition at line 114 of file MechanicsLinearFEOperator.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 |