preCICE v3.2.0
Loading...
Searching...
No Matches
RadialGeoMultiscaleMapping.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include "logging/Logger.hpp"
5#include "mapping/Mapping.hpp"
6
7namespace precice::mapping {
8
11public:
18 enum struct MultiscaleType {
21 };
22 enum struct MultiscaleAxis {
23 X = 0,
24 Y = 1,
25 Z = 2
26 };
27
36 RadialGeoMultiscaleMapping(Constraint constraint, int dimensions, MultiscaleType type, MultiscaleAxis axis);
37
39 void computeMapping() override;
40
42 void clear() override;
43
44 void tagMeshFirstRound() override;
45 void tagMeshSecondRound() override;
46
48 std::string getName() const final override;
49
50protected:
52 void mapConservative(const time::Sample &inData, Eigen::VectorXd &outData) override;
53
55 void mapConsistent(const time::Sample &inData, Eigen::VectorXd &outData) override;
56
57private:
58 mutable logging::Logger _log{"mapping::RadialGeoMultiscaleMapping"};
59
62
65
69
72};
73
74} // namespace precice::mapping
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
MultiscaleType
Geometric multiscale type of the mapping (spread or collect).
RadialGeoMultiscaleMapping(Constraint constraint, int dimensions, MultiscaleType type, MultiscaleAxis axis)
Constructor.
std::vector< size_t > _vertexCounter
counts number of vertices between midpoints for averaging
MultiscaleAxis _axis
main axis along which radial geometric multiscale coupling happens
void tagMeshFirstRound() override
Method used by partition. Tags vertices that could be owned by this rank.
std::vector< size_t > _vertexIndicesSpread
computed vertex indices to map data from input vertices to output vertices and vice versa
std::string getName() const final override
Returns name of the mapping.
MultiscaleType _type
type of mapping, namely spread or collect
void clear() override
Removes a computed mapping.
void tagMeshSecondRound() override
Method used by partition. Tags vertices that can be filtered out.
void mapConservative(const time::Sample &inData, Eigen::VectorXd &outData) override
Maps data using a conservative constraint.
void computeMapping() override
Takes care of compute-heavy operations needed only once to set up the mapping.
void mapConsistent(const time::Sample &inData, Eigen::VectorXd &outData) override
Maps data using a consistent constraint.
contains the logging framework.
contains data mapping from points to meshes.
contains the time interpolation logic.
Definition Sample.hpp:8