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

#include <DiffusionFD.h>

Inheritance diagram for AMP::Operator::DiffusionFDOperator:
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
 
std::shared_ptr< AMP::LinearAlgebra::VectorcreateInputVector () const override
 Get a input vector ( For \(\mathbf{A(x)}\), \(\mathbf{x}\) is a input vector )
 
std::shared_ptr< AMP::LinearAlgebra::VectorcreateOutputVector () const override
 Get an output vector ( For \(\mathbf{y=A(x)}\), \(\mathbf{y}\) is an output vector )
 
std::shared_ptr< AMP::LinearAlgebra::VectorcreateRHSVector (std::function< double(const AMP::Mesh::Point &)> PDESourceFun, std::function< double(const AMP::Mesh::Point &, int boundary_id)> boundaryFun)
 
 DiffusionFDOperator (std::shared_ptr< const AMP::Operator::OperatorParameters > params_)
 
void fillVectorWithFunction (std::shared_ptr< AMP::LinearAlgebra::Vector > u, std::function< double(const AMP::Mesh::Point &)> fun) const
 
std::shared_ptr< AMP::LinearAlgebra::VariablegetInputVariable () const override
 Return the input variable.
 
virtual std::shared_ptr< AMP::LinearAlgebra::MatrixgetMatrix ()
 
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.
 
const std::vector< double > & getMeshSize () const
 
std::shared_ptr< AMP::LinearAlgebra::VariablegetOutputVariable () const override
 Return the output variable.
 
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)
 
virtual void reInitializeVector (std::shared_ptr< AMP::LinearAlgebra::Vector >)
 
virtual void reset (std::shared_ptr< const OperatorParameters > params)
 
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)
 
virtual void setMatrix (std::shared_ptr< AMP::LinearAlgebra::Matrix > in_mat)
 
virtual void setVariables (std::shared_ptr< AMP::LinearAlgebra::Variable > in, std::shared_ptr< AMP::LinearAlgebra::Variable > out)
 
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 ~DiffusionFDOperator ()
 

Static Public Member Functions

static std::unique_ptr< AMP::Operator::Operatorcreate (std::shared_ptr< AMP::Operator::OperatorParameters > params)
 

Public Attributes

std::shared_ptr< AMP::Databased_db
 
std::shared_ptr< AMP::Discretization::boxMeshDOFManagerd_DOFMan
 

Protected Member Functions

void getBackendFromInput (std::shared_ptr< AMP::Database > db)
 
virtual std::shared_ptr< OperatorParametersgetJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >)
 
void setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db)
 

Protected Attributes

AMP::Utilities::Backend d_backend = AMP::Utilities::Backend::Serial
 
int d_iDebugPrintInfoLevel = 0
 
std::shared_ptr< AMP::LinearAlgebra::Variabled_inputVariable
 
int d_iObject_id
 
std::shared_ptr< AMP::LinearAlgebra::Matrixd_matrix
 
AMP::Utilities::MemoryType d_memory_location = AMP::Utilities::MemoryType::none
 
std::shared_ptr< AMP::Mesh::Meshd_Mesh
 
std::shared_ptr< AMP::LinearAlgebra::Variabled_outputVariable
 

Static Protected Attributes

static int d_iInstance_id
 

Private Member Functions

std::shared_ptr< AMP::LinearAlgebra::MatrixcreateDiscretizationMatrix ()
 
std::vector< doublecreateStencil () const
 
std::array< int, 3 > DOFToGridInds (size_t dof) const
 Get grid indices corresponding to the DOF.
 
void fillMatrixWithCSRData (std::shared_ptr< AMP::LinearAlgebra::Matrix > matrix)
 
void getCSRData (size_t row, std::vector< size_t > &cols, std::vector< double > &data)
 Pack cols+data vectors in given row.
 
void getCSRDataBoundary (size_t row, std::vector< size_t > &cols, std::vector< double > &data) const
 
void getCSRDataInterior (std::array< size_t, 5 > &ijkLocal, size_t rowLocal, std::vector< size_t > &cols, std::vector< double > &data) const
 
AMP::Mesh::BoxMesh::Box getGlobalNodeBox () const
 
AMP::Mesh::BoxMesh::Box getLocalNodeBox () const
 Convert a local element box to a local node box.
 
size_t gridIndsToDOF (std::array< int, 3 > ijk) const
 Map from grid index ijk to the corresponding DOF.
 
void setDOFManager ()
 

Private Attributes

std::shared_ptr< AMP::Mesh::BoxMeshd_BoxMesh = nullptr
 Mesh.
 
size_t d_dim = static_cast<size_t>( -1 )
 Problem dimension.
 
std::shared_ptr< AMP::Mesh::BoxMesh::Boxd_globalBox = nullptr
 Global grid index box w/ zero ghosts.
 
std::vector< doubled_h
 Mesh sizes, hx, hy, hz. We compute these based on the incoming mesh.
 
std::array< size_t, 5 > d_ijk
 Placeholder array of grid indices.
 
std::shared_ptr< AMP::ArraySized_localArraySize = nullptr
 ArraySize of the local box.
 
std::shared_ptr< AMP::Mesh::BoxMesh::Boxd_localBox = nullptr
 Local grid index box w/ zero ghosts.
 
std::shared_ptr< std::vector< double > > d_stencil = nullptr
 FD coefficients.
 

Static Private Attributes

static constexpr auto VertexGeom = AMP::Mesh::GeomType::Vertex
 Convenience member.
 

Detailed Description

Definition at line 49 of file DiffusionFD.h.

Member Typedef Documentation

◆ shared_ptr

Definition at line 29 of file Operator.h.

Constructor & Destructor Documentation

◆ DiffusionFDOperator()

AMP::Operator::DiffusionFDOperator::DiffusionFDOperator ( std::shared_ptr< const AMP::Operator::OperatorParameters params_)

◆ ~DiffusionFDOperator()

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

Definition at line 75 of file DiffusionFD.h.

Member Function Documentation

◆ apply() [1/2]

virtual void AMP::Operator::LinearOperator::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) Here, A(u) is simply a Matrix-Vector multiplication.

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

Reimplemented in AMP::Operator::IdentityOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::TrilinosMatrixShellOperator, and AMP::Operator::BDFRadDifOpPJac.

◆ 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.

◆ create()

static std::unique_ptr< AMP::Operator::Operator > AMP::Operator::DiffusionFDOperator::create ( std::shared_ptr< AMP::Operator::OperatorParameters params)
inlinestatic

Definition at line 79 of file DiffusionFD.h.

◆ createDiscretizationMatrix()

std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::Operator::DiffusionFDOperator::createDiscretizationMatrix ( )
private

◆ createInputVector()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::LinearOperator::createInputVector ( ) const
overridevirtualinherited

Get a input vector ( For \(\mathbf{A(x)}\), \(\mathbf{x}\) is a input vector )

Returns
A newly created input vector

Reimplemented from AMP::Operator::Operator.

Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator, and AMP::Operator::RadDifOpPJac.

◆ createOutputVector()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::LinearOperator::createOutputVector ( ) const
overridevirtualinherited

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

Returns
A newly created output vector

Reimplemented from AMP::Operator::Operator.

Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator.

◆ createRHSVector()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Operator::DiffusionFDOperator::createRHSVector ( std::function< double(const AMP::Mesh::Point &)>  PDESourceFun,
std::function< double(const AMP::Mesh::Point &, int boundary_id)>  boundaryFun 
)

◆ createStencil()

std::vector< double > AMP::Operator::DiffusionFDOperator::createStencil ( ) const
private

◆ DOFToGridInds()

std::array< int, 3 > AMP::Operator::DiffusionFDOperator::DOFToGridInds ( size_t  dof) const
private

Get grid indices corresponding to the DOF.

◆ fillMatrixWithCSRData()

void AMP::Operator::DiffusionFDOperator::fillMatrixWithCSRData ( std::shared_ptr< AMP::LinearAlgebra::Matrix matrix)
private

◆ fillVectorWithFunction()

void AMP::Operator::DiffusionFDOperator::fillVectorWithFunction ( std::shared_ptr< AMP::LinearAlgebra::Vector u,
std::function< double(const AMP::Mesh::Point &)>  fun 
) const

◆ getBackendFromInput()

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

◆ getCSRData()

void AMP::Operator::DiffusionFDOperator::getCSRData ( size_t  row,
std::vector< size_t > &  cols,
std::vector< double > &  data 
)
private

Pack cols+data vectors in given row.

◆ getCSRDataBoundary()

void AMP::Operator::DiffusionFDOperator::getCSRDataBoundary ( size_t  row,
std::vector< size_t > &  cols,
std::vector< double > &  data 
) const
private

Pack cols+data vectors in given row. Note that, despite the name, this function works for any global row, not just those on the a (physical or processor) boundary, but for a DOF on the interior of a process it's less efficient than "getCSRDataInterior"

◆ getCSRDataInterior()

void AMP::Operator::DiffusionFDOperator::getCSRDataInterior ( std::array< size_t, 5 > &  ijkLocal,
size_t  rowLocal,
std::vector< size_t > &  cols,
std::vector< double > &  data 
) const
private

Pack cols+data for the given row, which is a local row index, corresponding to a local DOF that's on the interior of the current process. The corresponding local ijk mesh indices are in ijkLocal

◆ getGlobalNodeBox()

AMP::Mesh::BoxMesh::Box AMP::Operator::DiffusionFDOperator::getGlobalNodeBox ( ) const
private

Convert a global element box to a global node box. Modified from src/mesh/test/test_BoxMeshIndex.cpp by removing the possibility of any of the grid dimensions being periodic.

◆ getInputVariable()

std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::LinearOperator::getInputVariable ( ) const
inlineoverridevirtualinherited

◆ getJacobianParameters()

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.

◆ getLocalNodeBox()

AMP::Mesh::BoxMesh::Box AMP::Operator::DiffusionFDOperator::getLocalNodeBox ( ) const
private

Convert a local element box to a local node box.

◆ getMatrix()

virtual std::shared_ptr< AMP::LinearAlgebra::Matrix > AMP::Operator::LinearOperator::getMatrix ( )
virtualinherited
Returns
The matrix representation of this linear operator.

Reimplemented in AMP::Operator::MemorySpaceMigrationLinearOperator.

◆ 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.

◆ getMeshSize()

const std::vector< double > & AMP::Operator::DiffusionFDOperator::getMeshSize ( ) const

◆ getOutputVariable()

std::shared_ptr< AMP::LinearAlgebra::Variable > AMP::Operator::LinearOperator::getOutputVariable ( ) const
inlineoverridevirtualinherited

◆ 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.

◆ gridIndsToDOF()

size_t AMP::Operator::DiffusionFDOperator::gridIndsToDOF ( std::array< int, 3 >  ijk) const
private

Map from grid index ijk to the corresponding DOF.

◆ 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.

◆ 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()

virtual void AMP::Operator::Operator::reset ( std::shared_ptr< const OperatorParameters params)
virtualinherited

This function is useful for re-initializing/updating an operator

Parameters
paramsparameter object containing parameters to change

Reimplemented in AMP::TimeIntegrator::ColumnTimeOperator, AMP::TimeIntegrator::LinearTimeOperator, AMP::TimeIntegrator::TimeOperator, AMP::Operator::PowerShape, AMP::Operator::NeutronicsRhs, AMP::Operator::WeldOperator, AMP::Operator::ColumnBoundaryOperator, AMP::Operator::DirichletVectorCorrection, AMP::Operator::NeumannVectorCorrection, AMP::Operator::RobinMatrixCorrection, AMP::Operator::RobinVectorCorrection, AMP::Operator::ColumnOperator, AMP::Operator::FickSoretNonlinearFEOperator, AMP::Operator::IdentityOperator, AMP::Operator::GradientOperator, AMP::Operator::PelletStackOperator, AMP::Operator::MapOperator, AMP::Operator::MemorySpaceMigrationLinearOperator, AMP::Operator::MemorySpaceMigrationOperator, AMP::Operator::MoveMeshOperator, AMP::Operator::NonlinearBVPOperator, AMP::Operator::PetscMatrixShellOperator, AMP::Operator::CoupledFlowFrapconOperator, AMP::Operator::FlowFrapconJacobian, AMP::Operator::FlowFrapconOperator, AMP::Operator::SubchannelFourEqLinearOperator, AMP::Operator::SubchannelFourEqNonlinearOperator, AMP::Operator::SubchannelTwoEqLinearOperator, AMP::Operator::SubchannelTwoEqNonlinearOperator, AMP::Operator::TrilinosMatrixShellOperator, AMP::Operator::DirichletMatrixCorrection, AMP::Operator::MassMatrixCorrection, AMP::Operator::DiffusionNonlinearFEOperator, AMP::Operator::LinearFEOperator, AMP::Operator::VolumeIntegralOperator, AMP::Operator::LinearBVPOperator, AMP::Operator::Map1Dto3D, AMP::Operator::Map3Dto1D, and AMP::Operator::MechanicsNonlinearFEOperator.

Referenced by AMP::Operator::FirstOperator::FirstOperator(), and AMP::Operator::SecondOperator::SecondOperator().

◆ 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.

◆ setDOFManager()

void AMP::Operator::DiffusionFDOperator::setDOFManager ( )
private

◆ setMatrix()

virtual void AMP::Operator::LinearOperator::setMatrix ( std::shared_ptr< AMP::LinearAlgebra::Matrix in_mat)
virtualinherited

Copies the shared pointer for the matrix representation of this linear operator.

Parameters
[in]in_matThe 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().

◆ setMemoryAndBackendParameters()

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

◆ setVariables()

virtual void AMP::Operator::LinearOperator::setVariables ( std::shared_ptr< AMP::LinearAlgebra::Variable in,
std::shared_ptr< AMP::LinearAlgebra::Variable out 
)
inlinevirtualinherited

◆ 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::DiffusionFDOperator::type ( ) const
inlineoverridevirtual

Return the name of the operator.

Implements AMP::Operator::Operator.

Definition at line 85 of file DiffusionFD.h.

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_BoxMesh

std::shared_ptr<AMP::Mesh::BoxMesh> AMP::Operator::DiffusionFDOperator::d_BoxMesh = nullptr
private

Mesh.

Definition at line 58 of file DiffusionFD.h.

◆ d_db

std::shared_ptr<AMP::Database> AMP::Operator::DiffusionFDOperator::d_db

Definition at line 68 of file DiffusionFD.h.

◆ d_dim

size_t AMP::Operator::DiffusionFDOperator::d_dim = static_cast<size_t>( -1 )
private

Problem dimension.

Definition at line 55 of file DiffusionFD.h.

◆ d_DOFMan

std::shared_ptr<AMP::Discretization::boxMeshDOFManager> AMP::Operator::DiffusionFDOperator::d_DOFMan

Definition at line 69 of file DiffusionFD.h.

◆ d_globalBox

std::shared_ptr<AMP::Mesh::BoxMesh::Box> AMP::Operator::DiffusionFDOperator::d_globalBox = nullptr
private

Global grid index box w/ zero ghosts.

Definition at line 112 of file DiffusionFD.h.

◆ d_h

std::vector<double> AMP::Operator::DiffusionFDOperator::d_h
private

Mesh sizes, hx, hy, hz. We compute these based on the incoming mesh.

Definition at line 64 of file DiffusionFD.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_ijk

std::array<size_t, 5> AMP::Operator::DiffusionFDOperator::d_ijk
private

Placeholder array of grid indices.

Definition at line 118 of file DiffusionFD.h.

◆ d_inputVariable

std::shared_ptr<AMP::LinearAlgebra::Variable> AMP::Operator::LinearOperator::d_inputVariable
protectedinherited

◆ d_iObject_id

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

Definition at line 189 of file Operator.h.

◆ d_localArraySize

std::shared_ptr<AMP::ArraySize> AMP::Operator::DiffusionFDOperator::d_localArraySize = nullptr
private

ArraySize of the local box.

Definition at line 115 of file DiffusionFD.h.

◆ d_localBox

std::shared_ptr<AMP::Mesh::BoxMesh::Box> AMP::Operator::DiffusionFDOperator::d_localBox = nullptr
private

Local grid index box w/ zero ghosts.

Definition at line 109 of file DiffusionFD.h.

◆ d_matrix

std::shared_ptr<AMP::LinearAlgebra::Matrix> AMP::Operator::LinearOperator::d_matrix
protectedinherited

Definition at line 92 of file LinearOperator.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_outputVariable

std::shared_ptr<AMP::LinearAlgebra::Variable> AMP::Operator::LinearOperator::d_outputVariable
protectedinherited

◆ d_stencil

std::shared_ptr<std::vector<double> > AMP::Operator::DiffusionFDOperator::d_stencil = nullptr
private

FD coefficients.

Definition at line 106 of file DiffusionFD.h.

◆ VertexGeom

constexpr auto AMP::Operator::DiffusionFDOperator::VertexGeom = AMP::Mesh::GeomType::Vertex
staticconstexprprivate

Convenience member.

Definition at line 61 of file DiffusionFD.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