25#ifndef __BITPIT_VOLUME_MAPPER_HPP__
26#define __BITPIT_VOLUME_MAPPER_HPP__
33#include <unordered_map>
35#include "volume_kernel.hpp"
93 std::vector<long>
ids;
119 virtual void adaptionPrepare(
const std::vector<adaption::Info> &infoAdapt,
bool reference =
true) = 0;
120 virtual void adaptionAlter(
const std::vector<adaption::Info> &infoAdapt,
bool reference =
true,
bool fillInv =
false) = 0;
121 virtual void adaptionCleanup() = 0;
124 virtual bool checkPartition() = 0;
125 virtual std::unordered_map<int, std::vector<long> > getReceivedMappedIds()
const = 0;
126 virtual std::unordered_map<int, std::vector<long> > getSentMappedIds()
const = 0;
127 virtual std::unordered_map<int, std::vector<long> > getReceivedReferenceIds()
const = 0;
128 virtual std::unordered_map<int, std::vector<long> > getSentReferenceIds()
const = 0;
155 virtual void _mapMeshes(
bool fillInverse) = 0;
Metafunction for generating a pierced storage.
The VolumeKernel class provides an interface for defining volume patches.
The VolumeMapper is the class to map two meshes.
VolumeMapper(const VolumeKernel *referencePatch, const VolumeKernel *mappedPatch, MPI_Comm communicator)
const VolumeKernel * getMappedPatch() const
MPI_Comm getCommunicator() const
const VolumeKernel * m_mappedPatch
std::unordered_map< long, mapping::Info > m_previousMapping
void initialize(bool fillInv=false)
void initializeCommunicator(MPI_Comm communicator)
PiercedStorage< mapping::Info > m_inverseMapping
PiercedStorage< mapping::Info > m_mapping
void clearInverseMapping()
const bitpit::PiercedStorage< mapping::Info > & getInverseMapping() const
const bitpit::PiercedStorage< mapping::Info > & getMapping() const
const VolumeKernel * getReferencePatch() const
const VolumeKernel * m_referencePatch
bool isCommunicatorSet() const
The Info is the structure to store info about mapping between elements.
Info(Type user_type, Entity user_entity)