4#include <boost/container/flat_set.hpp>
36 for (Eigen::Index i = 0; i < coordinates.cols(); ++i) {
37 values.col(i) = localData.col(
index.getClosestVertex(coordinates.col(i)).index);
45 for (Eigen::Index i = 0; i < coordinates.cols(); ++i) {
46 target.col(
index.getClosestVertex(coordinates.col(i)).index) += source.col(i);
57 const int valueDimensions = inData.
dataDims;
59 Eigen::Map<const Eigen::MatrixXd> inMap(inData.
values.data(), valueDimensions,
input()->nVertices());
60 Eigen::Map<Eigen::MatrixXd> outMap(outData.data(), valueDimensions,
output()->nVertices());
63 for (Eigen::Index i = 0; i < inMap.cols(); ++i) {
76 const int valueDimensions = inData.
dataDims;
78 Eigen::Map<const Eigen::MatrixXd> inputMap(inData.
values.data(), valueDimensions,
input()->nVertices());
79 Eigen::Map<Eigen::MatrixXd> outputMap(outData.data(), valueDimensions,
output()->nVertices());
81 for (Eigen::Index i = 0; i < outputMap.cols(); ++i) {
90 return "nearest-neighbor";
#define PRECICE_DEBUG(...)
#define PRECICE_TRACE(...)
mesh::PtrMesh output() const
Returns pointer to output mesh.
Constraint
Specifies additional constraints for a mapping.
mesh::PtrMesh input() const
Returns pointer to input mesh.
bool isScaledConsistent() const
Returns true if mapping is a form of scaled consistent mapping.
void setInputRequirement(MeshRequirement requirement)
Sets the mesh requirement for the input mesh.
void setOutputRequirement(MeshRequirement requirement)
Sets the mesh requirement for the output mesh.
virtual bool hasConstraint(const Constraint &constraint) const
Checks whether the mapping has the given constraint or not.
std::string mappingNameShort
nn or nng
std::vector< int > _vertexIndices
Computed output vertex indices to map data from input vertices to.
void mapConservativeAt(const Eigen::Ref< const Eigen::MatrixXd > &coordinates, const Eigen::Ref< const Eigen::MatrixXd > &source, impl::MappingDataCache &cache, Eigen::Ref< Eigen::MatrixXd > target) final override
For writing data just-in-time (only conservative at the moment)
void mapConsistentAt(const Eigen::Ref< const Eigen::MatrixXd > &coordinates, const impl::MappingDataCache &cache, Eigen::Ref< Eigen::MatrixXd > values) final override
For reading data just-in-time (only consistent at the moment)
std::string getName() const final override
name of the nn mapping
void mapConsistent(const time::Sample &inData, Eigen::VectorXd &outData) final override
Maps data using a consistent constraint.
NearestNeighborMapping(Constraint constraint, int dimensions)
Constructor.
void mapConservative(const time::Sample &inData, Eigen::VectorXd &outData) final override
Maps data using a conservative constraint.
contains data mapping from points to meshes.
static constexpr SynchronizeTag Synchronize
Convenience instance of the SynchronizeTag.
const RangePreview< Iter > previewRange(Size n, const Range &range)
int getDataDimensions() const
Returns the number of data components.
int dataDims
The dimensionality of the data.