A class for mapping a vector from one surface to another where the nodes are aligned. This routine is bi-directional. It will exchange data for the aligned nodes. More...
#include <NodeToNodeMap.h>

Classes | |
| class | Point |
Public Types | |
| typedef NodeToNodeMapParameters | Parameters |
| brief Typedef to identify the parameters class of this operator | |
| typedef std::shared_ptr< AMP::Operator::Operator > | shared_ptr |
Static Public Member Functions | |
| static bool | validMapType (const std::string &s) |
| Returns true if MapType = "NodeToNode". | |
Static Public Attributes | |
| static const int | CommTagBase = 10000 |
| The base tag used in communication. | |
Protected Member Functions | |
| std::vector< AMP_MPI::Request >::iterator | beginRequests () |
| Return an iterator to the first MPI_Request. | |
| void | clearRequests () |
| Clear requests. | |
| std::vector< AMP_MPI::Request >::iterator | endRequests () |
| Return an iterator to one past the end of the list of requests. | |
| void | getBackendFromInput (std::shared_ptr< AMP::Database > db) |
| template<typename T > | |
| const T * | getBufferToAvoidDebugVectorCrashing (const std::vector< T > &in) |
| Functions to allow std::vector to be used in MPI communications when empty. | |
| template<typename T > | |
| T * | getBufferToAvoidDebugVectorCrashing (std::vector< T > &in) |
| Functions to allow std::vector to be used in MPI communications when empty. | |
| virtual std::shared_ptr< OperatorParameters > | getJacobianParameters (std::shared_ptr< const AMP::LinearAlgebra::Vector >) |
| AMP_MPI::Request & | getRequest (size_t i) |
| Return a specific MPI_Request. | |
| void | reserveRequests (size_t i) |
| Reserve a number of MPI_Requests for use. | |
| void | setMemoryAndBackendParameters (std::shared_ptr< AMP::Database > db) |
| void | waitForAllRequests () |
| Wait for all requests to complete. | |
Protected Attributes | |
| AMP::Utilities::Backend | d_backend = AMP::Utilities::Backend::Serial |
| std::shared_ptr< AMP::Discretization::DOFManager > | d_DOFManager |
| int | d_iDebugPrintInfoLevel = 0 |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_inpVariable |
| int | d_iObject_id |
| AMP_MPI | d_MapComm |
| AMP::Utilities::MemoryType | d_memory_location = AMP::Utilities::MemoryType::none |
| std::shared_ptr< AMP::Mesh::Mesh > | d_Mesh |
| std::shared_ptr< AMP::Mesh::Mesh > | d_mesh1 |
| std::shared_ptr< AMP::Mesh::Mesh > | d_mesh2 |
| AMP::LinearAlgebra::Vector::shared_ptr | d_OutputVector |
| std::shared_ptr< AMP::LinearAlgebra::Variable > | d_outVariable |
| std::vector< AMP::Mesh::MeshElementID > | d_recvList |
| std::vector< AMP_MPI::Request > | d_RequestList |
| A list of MPI_Requests for use in derived classes. | |
| std::vector< AMP::Mesh::MeshElementID > | d_sendList |
| int | dim |
| int | DofsPerObj |
Static Protected Attributes | |
| static int | d_iInstance_id |
Private Member Functions | |
| void | buildSendRecvList () |
| std::vector< Point > | createOwnedPoints (const AMP::Mesh::MeshIterator &) |
| void | createPairs (bool requireAllPaired=true) |
Private Attributes | |
| bool | d_callMakeConsistentSet |
| int | d_commTag |
| std::vector< int > | d_count |
| std::vector< int > | d_displ |
| AMP::Mesh::MeshIterator | d_iterator1 |
| AMP::Mesh::MeshIterator | d_iterator2 |
| std::vector< std::pair< Point, Point > > | d_localPairsMesh1 |
| std::vector< std::pair< Point, Point > > | d_localPairsMesh2 |
| std::vector< double > | d_recvBuffer |
| std::vector< double > | d_sendBuffer |
A class for mapping a vector from one surface to another where the nodes are aligned. This routine is bi-directional. It will exchange data for the aligned nodes.
Definition at line 24 of file NodeToNodeMap.h.
brief Typedef to identify the parameters class of this operator
Definition at line 28 of file NodeToNodeMap.h.
|
inherited |
Definition at line 29 of file Operator.h.
|
explicit |
Constructor.
|
virtual |
Destructor.
|
overridevirtualinherited |
Apply operation.
The apply opertion for an asyncronous operator simply calls applyStart and applyFinish.
| [in] | u | An input vector |
| [out] | f | An output vector |
Reimplemented from AMP::Operator::AsynchronousOperator.
Reimplemented in AMP::Operator::StridedZAxisMap.
|
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.
|
overridevirtual |
Finish a communicative apply operation.
The specific meaning of applyFinish will vary depending on the operator, but the intended purpose is to finish non-blocking communication and any remaining operations for the vector
| [in] | u | An input vector |
| [out] | f | An output vector |
Implements AMP::Operator::AsynchronousOperator.
|
overridevirtual |
Start a communicative apply operation.
The specific meaning of applyStart will vary depending on the operator, but the intended purpose is to start non-blocking communication.
| [in] | u | An input vector |
| [out] | f | An output vector |
Implements AMP::Operator::AsynchronousOperator.
|
protectedinherited |
Return an iterator to the first MPI_Request.
|
private |
|
protectedinherited |
Clear requests.
|
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.
|
private |
|
protectedinherited |
Return an iterator to one past the end of the list of requests.
|
protectedinherited |
|
inlineprotectedinherited |
Functions to allow std::vector to be used in MPI communications when empty.
| T | The type of buffer to translate |
| [in] | in | Buffer in a std::vector |
Definition at line 73 of file AsynchronousOperator.h.
|
inlineprotectedinherited |
Functions to allow std::vector to be used in MPI communications when empty.
| T | The type of buffer to translate |
| [in] | in | Buffer in a std::vector |
Definition at line 59 of file AsynchronousOperator.h.
|
inlineoverridevirtualinherited |
Return the input variable.
Reimplemented from AMP::Operator::Operator.
Definition at line 47 of file AsyncMapOperator.h.
References AMP::Operator::AsyncMapOperator::d_inpVariable.
|
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.
|
inherited |
Get the meshes this map uses.
| [in] | which | 1 for d_mesh1 and 2 for d_mesh2 |
|
inlineoverridevirtualinherited |
Return the output variable.
Reimplemented from AMP::Operator::Operator.
Definition at line 51 of file AsyncMapOperator.h.
References AMP::Operator::AsyncMapOperator::d_outVariable.
|
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.
|
protectedinherited |
Return a specific MPI_Request.
|
virtual |
|
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.
|
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 |
Reimplemented from AMP::Operator::AsyncMapOperator.
Reserve a number of MPI_Requests for use.
| [in] | i | The number of MPI_Requests that will be used |
|
virtualinherited |
This function is useful for re-initializing/updating an operator
| params | parameter 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().
|
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.
|
protectedinherited |
|
overridevirtual |
Set a frozen vector for results of the apply operation.
| [in] | p | The vector to set |
Implements AMP::Operator::AsyncMapOperator.
|
inherited |
Subset input vector.
|
inherited |
Subset input vector.
|
inherited |
Subset output vector.
|
inherited |
Subset output vector.
|
inlineoverridevirtual |
Return the name of the operator.
Reimplemented from AMP::Operator::AsyncMapOperator.
Definition at line 31 of file NodeToNodeMap.h.
Returns true if MapType = "NodeToNode".
| [in] | s | A string extracted from the MapType line in a MeshToMeshMap db |
|
protectedinherited |
Wait for all requests to complete.
The base tag used in communication.
Definition at line 40 of file NodeToNodeMap.h.
|
protectedinherited |
Definition at line 197 of file Operator.h.
|
private |
Definition at line 96 of file NodeToNodeMap.h.
|
private |
Definition at line 89 of file NodeToNodeMap.h.
|
private |
Definition at line 90 of file NodeToNodeMap.h.
|
private |
Definition at line 91 of file NodeToNodeMap.h.
|
protectedinherited |
Definition at line 63 of file AsyncMapOperator.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 64 of file AsyncMapOperator.h.
Referenced by AMP::Operator::AsyncMapOperator::getInputVariable().
|
protectedinherited |
Definition at line 189 of file Operator.h.
|
private |
Definition at line 81 of file NodeToNodeMap.h.
|
private |
Definition at line 82 of file NodeToNodeMap.h.
Definition at line 85 of file NodeToNodeMap.h.
Definition at line 86 of file NodeToNodeMap.h.
|
protectedinherited |
Definition at line 58 of file AsyncMapOperator.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 61 of file AsyncMapOperator.h.
|
protectedinherited |
Definition at line 62 of file AsyncMapOperator.h.
|
protectedinherited |
Definition at line 68 of file AsyncMapOperator.h.
|
protectedinherited |
Definition at line 65 of file AsyncMapOperator.h.
Referenced by AMP::Operator::AsyncMapOperator::getOutputVariable().
|
private |
Definition at line 93 of file NodeToNodeMap.h.
|
protected |
Definition at line 115 of file NodeToNodeMap.h.
|
protectedinherited |
A list of MPI_Requests for use in derived classes.
Definition at line 22 of file AsynchronousOperator.h.
|
private |
Definition at line 92 of file NodeToNodeMap.h.
|
protected |
Definition at line 114 of file NodeToNodeMap.h.
|
protected |
Definition at line 109 of file NodeToNodeMap.h.
|
protected |
Definition at line 110 of file NodeToNodeMap.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 |