preCICE
Loading...
Searching...
No Matches
CoarseGrainingMapping.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5#include "logging/Logger.hpp"
6#include "mapping/Mapping.hpp"
7
8namespace precice::mapping {
9
10// Forward declaration
11namespace impl {
13}
14
18public:
25 CoarseGrainingMapping(Constraint constraint, int meshDimension, double functionRadius);
26
28
30 void computeMapping() final override;
31
33 void mapConsistentAt(const Eigen::Ref<const Eigen::MatrixXd> &coordinates, const impl::MappingDataCache &cache, Eigen::Ref<Eigen::MatrixXd> values) final override;
34
36 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;
37
39 void clear() final override;
40
41 void tagMeshFirstRound() final override;
42
43 void tagMeshSecondRound() final override;
44
46 std::string getName() const final override;
47
48private:
49 mutable logging::Logger _log{"mapping::CoarseGraining"};
50
52 void mapConservative(const time::Sample &inData, Eigen::VectorXd &outData) override;
53
55 void mapConsistent(const time::Sample &inData, Eigen::VectorXd &outData) override;
56
57 std::unique_ptr<impl::LucyKernelFunction> _lucyFunction;
58};
59} // namespace precice::mapping
void mapConsistent(const time::Sample &inData, Eigen::VectorXd &outData) override
Maps data using a consistent constraint.
void clear() final override
Removes a computed mapping.
CoarseGrainingMapping(Constraint constraint, int meshDimension, double functionRadius)
Constructor.
void tagMeshFirstRound() final override
Method used by partition. Tags vertices that could be owned by this rank.
void mapConservative(const time::Sample &inData, Eigen::VectorXd &outData) override
Maps data using a conservative constraint.
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::unique_ptr< impl::LucyKernelFunction > _lucyFunction
std::string getName() const final override
name of the coarse-graining mapping
void computeMapping() final override
Computes the mapping coefficients from the in- and output mesh.
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 tagMeshSecondRound() final override
Method used by partition. Tags vertices that can be filtered out.
Constraint
Specifies additional constraints for a mapping.
Definition Mapping.hpp:30
Mapping(Constraint constraint, int dimensions, bool requiresGradientData, InitialGuessRequirement initialGuessRequirement)
Constructor, takes mapping constraint.
Definition Mapping.cpp:12
contains the logging framework.
contains data mapping from points to meshes.
STL namespace.