1#ifndef included_AMP_NodeToNodeMap
2#define included_AMP_NodeToNodeMap
8#include "AMP/operators/map/AsyncMapOperator.h"
9#include "AMP/operators/map/NodeToNodeMapParameters.h"
11#include "AMP/discretization/DOF_Manager.h"
12#include "AMP/mesh/Mesh.h"
13#include "AMP/utils/AMP_MPI.h"
14#include "AMP/vectors/Vector.h"
31 std::string
type()
const override {
return "NodeToNodeMap"; }
43 explicit NodeToNodeMap( std::shared_ptr<const AMP::Operator::OperatorParameters> params );
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
A class used to iterate over elements in a Mesh.
A base class for asynchronous map operations between meshes. A map operation involves two meshes and ...
AMP::Mesh::MeshElementID id
bool operator<=(const Point &rhs) const
Point & operator=(const Point &rhs)=default
bool operator>=(const Point &rhs) const
bool operator!=(const Point &rhs) const
bool operator<(const Point &rhs) const
bool operator>(const Point &rhs) const
Point(const Point &rhs)=default
bool operator==(const Point &rhs) const
A class for mapping a vector from one surface to another where the nodes are aligned....
std::string type() const override
Return the name of the operator.
std::vector< AMP::Mesh::MeshElementID > d_recvList
void applyStart(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override
Start a communicative apply operation.
NodeToNodeMap(std::shared_ptr< const AMP::Operator::OperatorParameters > params)
Constructor.
static const int CommTagBase
The base tag used in communication.
NodeToNodeMapParameters Parameters
brief Typedef to identify the parameters class of this operator
bool requiresMakeConsistentSet() override
void createPairs(bool requireAllPaired=true)
virtual ~NodeToNodeMap()
Destructor.
AMP::Mesh::MeshIterator d_iterator1
std::vector< AMP::Mesh::MeshElementID > d_sendList
void setVector(AMP::LinearAlgebra::Vector::shared_ptr p) override
Set a frozen vector for results of the apply operation.
bool d_callMakeConsistentSet
std::vector< int > d_count
std::vector< int > d_displ
static bool validMapType(const std::string &s)
Returns true if MapType = "NodeToNode".
void applyFinish(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override
Finish a communicative apply operation.
AMP::Mesh::MeshIterator d_iterator2
std::vector< double > d_recvBuffer
std::vector< std::pair< Point, Point > > d_localPairsMesh2
std::vector< Point > createOwnedPoints(const AMP::Mesh::MeshIterator &)
std::vector< double > d_sendBuffer
std::vector< std::pair< Point, Point > > d_localPairsMesh1
virtual AMP::LinearAlgebra::Vector::shared_ptr getVector()
std::shared_ptr< AMP::Operator::Operator > shared_ptr
A structure used to identify the mesh element.