preCICE
Loading...
Searching...
No Matches
precice::mapping::CoarseGrainingMapping Class Reference

#include <CoarseGrainingMapping.hpp>

Inheritance diagram for precice::mapping::CoarseGrainingMapping:
[legend]
Collaboration diagram for precice::mapping::CoarseGrainingMapping:
[legend]

Public Member Functions

 CoarseGrainingMapping (Constraint constraint, int meshDimension, double functionRadius)
 Constructor.
 ~CoarseGrainingMapping ()
void computeMapping () final override
 Computes the mapping coefficients from the in- and output mesh.
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)
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 clear () final override
 Removes a computed mapping.
void tagMeshFirstRound () final override
 Method used by partition. Tags vertices that could be owned by this rank.
void tagMeshSecondRound () final override
 Method used by partition. Tags vertices that can be filtered out.
std::string getName () const final override
 name of the coarse-graining mapping
Public Member Functions inherited from precice::mapping::Mapping
 Mapping (Constraint constraint, int dimensions, bool requiresGradientData, InitialGuessRequirement initialGuessRequirement)
 Constructor, takes mapping constraint.
Mappingoperator= (Mapping &&)=delete
virtual ~Mapping ()=default
 Destructor, empty.
void setMeshes (const mesh::PtrMesh &input, const mesh::PtrMesh &output)
 Sets input and output meshes carrying data to be mapped.
const mesh::PtrMeshgetInputMesh () const
const mesh::PtrMeshgetOutputMesh () const
Constraint getConstraint () const
 Returns the constraint (consistent/conservative) of the mapping.
MeshRequirement getInputRequirement () const
 Returns the requirement on the input mesh.
MeshRequirement getOutputRequirement () const
 Returns the requirement on the output mesh.
bool hasComputedMapping () const
 Returns true, if the mapping has been computed.
virtual bool hasConstraint (const Constraint &constraint) const
 Checks whether the mapping has the given constraint or not.
bool isScaledConsistent () const
 Returns true if mapping is a form of scaled consistent mapping.
bool requiresInitialGuess () const
 Return true if the mapping requires an initial guess.
bool isJustInTimeMapping () const
const Eigen::VectorXd & initialGuess () const
 Return the provided initial guess of a mapping using an initialGuess.
Eigen::VectorXd & initialGuess ()
bool hasInitialGuess () const
 True if initialGuess().size() == 0.
void map (int inputDataID, int outputDataID)
void map (int inputDataID, int outputDataID, Eigen::VectorXd &initialGuess)
void map (const time::Sample &input, Eigen::VectorXd &output)
 Maps an input Sample to output data from input mesh to output mesh.
void map (const time::Sample &input, Eigen::VectorXd &output, Eigen::VectorXd &initialGuess)
 Maps an input Sample to output data from input mesh to output mesh, given an initialGuess.
virtual void scaleConsistentMapping (const Eigen::VectorXd &input, Eigen::VectorXd &output, Constraint type) const
 Scales the consistently mapped output data such that the surface integral of the values on input mesh and output mesh are equal.
bool requiresGradientData () const
 Returns whether the mapping requires gradient data.
virtual void updateMappingDataCache (impl::MappingDataCache &cache, const Eigen::Ref< const Eigen::VectorXd > &in)
 Allows updating a so-called MappingDataCache for more efficient just-in-time mappings.
virtual void initializeMappingDataCache (impl::MappingDataCache &cache)
 Allocates memory and sets up the data structures inside the MappingDataCache.
virtual void completeJustInTimeMapping (impl::MappingDataCache &cache, Eigen::Ref< Eigen::MatrixXd > result)
 Completes a just-in-time mapping for conservative constraints.

Private Member Functions

void mapConservative (const time::Sample &inData, Eigen::VectorXd &outData) override
 Maps data using a conservative constraint.
void mapConsistent (const time::Sample &inData, Eigen::VectorXd &outData) override
 Maps data using a consistent constraint.

Private Attributes

logging::Logger _log {"mapping::CoarseGraining"}
std::unique_ptr< impl::LucyKernelFunction_lucyFunction

Additional Inherited Members

Public Types inherited from precice::mapping::Mapping
enum  Constraint { CONSISTENT , CONSERVATIVE , SCALED_CONSISTENT_SURFACE , SCALED_CONSISTENT_VOLUME }
 Specifies additional constraints for a mapping. More...
enum class  MeshRequirement { UNDEFINED = 0 , VERTEX = 1 , FULL = 2 }
 Specifies requirements for the input and output meshes of a mapping. More...
enum class  InitialGuessRequirement : bool { Required = true , None = false }
 Specifies whether the mapping requires an initial guess. More...
Protected Member Functions inherited from precice::mapping::Mapping
mesh::PtrMesh input () const
 Returns pointer to input mesh.
mesh::PtrMesh output () const
 Returns pointer to output mesh.
void setInputRequirement (MeshRequirement requirement)
 Sets the mesh requirement for the input mesh.
void setOutputRequirement (MeshRequirement requirement)
 Sets the mesh requirement for the output mesh.
int getDimensions () const
Protected Attributes inherited from precice::mapping::Mapping
bool _hasComputedMapping = false
 Flag to indicate whether computeMapping() has been called.
bool _requiresGradientData
 Flag if gradient data is required for the mapping.

Detailed Description

Mapping using nearest neighboring vertices and (eventually) their local gradient values. Base class for Nearest Neighbor Mapping and Nearest Neighbor Gradient

Definition at line 17 of file CoarseGrainingMapping.hpp.

Constructor & Destructor Documentation

◆ CoarseGrainingMapping()

precice::mapping::CoarseGrainingMapping::CoarseGrainingMapping ( Constraint constraint,
int meshDimension,
double functionRadius )

Constructor.

Parameters
[in]constraintSpecifies mapping to be consistent or conservative.
[in]meshDimensionDimension of the meshes

Definition at line 66 of file CoarseGrainingMapping.cpp.

Here is the call graph for this function:

◆ ~CoarseGrainingMapping()

precice::mapping::CoarseGrainingMapping::~CoarseGrainingMapping ( )
default
Here is the call graph for this function:

Member Function Documentation

◆ clear()

void precice::mapping::CoarseGrainingMapping::clear ( )
finaloverridevirtual

Removes a computed mapping.

Implements precice::mapping::Mapping.

Definition at line 132 of file CoarseGrainingMapping.cpp.

Here is the call graph for this function:

◆ computeMapping()

void precice::mapping::CoarseGrainingMapping::computeMapping ( )
finaloverridevirtual

Computes the mapping coefficients from the in- and output mesh.

Implements precice::mapping::Mapping.

Definition at line 104 of file CoarseGrainingMapping.cpp.

Here is the call graph for this function:

◆ getName()

std::string precice::mapping::CoarseGrainingMapping::getName ( ) const
finaloverridevirtual

name of the coarse-graining mapping

Implements precice::mapping::Mapping.

Definition at line 144 of file CoarseGrainingMapping.cpp.

◆ mapConservative()

void precice::mapping::CoarseGrainingMapping::mapConservative ( const time::Sample & inData,
Eigen::VectorXd & outData )
overrideprivatevirtual

Maps data using a conservative constraint.

Parameters
[in]inputSample to map data from
[in]outputValues to map to

If requiresInitialGuess(), then the initial guess is available via initialGuess(). Provide a new initial guess by overwriting it. The mapping has full control over its size.

See also
For mappings requiring an initialGuess: initialGuess() hasInitialGuess()

Implements precice::mapping::Mapping.

Definition at line 122 of file CoarseGrainingMapping.cpp.

◆ mapConservativeAt()

void precice::mapping::CoarseGrainingMapping::mapConservativeAt ( const Eigen::Ref< const Eigen::MatrixXd > & coordinates,
const Eigen::Ref< const Eigen::MatrixXd > & source,
impl::MappingDataCache & cache,
Eigen::Ref< Eigen::MatrixXd > target )
finaloverridevirtual

For writing data just-in-time (only conservative at the moment)

Reimplemented from precice::mapping::Mapping.

Definition at line 87 of file CoarseGrainingMapping.cpp.

Here is the call graph for this function:

◆ mapConsistent()

void precice::mapping::CoarseGrainingMapping::mapConsistent ( const time::Sample & inData,
Eigen::VectorXd & outData )
overrideprivatevirtual

Maps data using a consistent constraint.

Parameters
[in]inputSample to map data from
[in]outputValues to map to

If requiresInitialGuess(), then the initial guess is available via initialGuess(). Provide a new initial guess by overwriting it. The mapping has full control over its size.

See also
For mappings requiring an initialGuess: initialGuess() hasInitialGuess()

Implements precice::mapping::Mapping.

Definition at line 127 of file CoarseGrainingMapping.cpp.

◆ mapConsistentAt()

void precice::mapping::CoarseGrainingMapping::mapConsistentAt ( const Eigen::Ref< const Eigen::MatrixXd > & coordinates,
const impl::MappingDataCache & cache,
Eigen::Ref< Eigen::MatrixXd > values )
finaloverridevirtual

For reading data just-in-time (only consistent at the moment)

Reimplemented from precice::mapping::Mapping.

Definition at line 82 of file CoarseGrainingMapping.cpp.

◆ tagMeshFirstRound()

void precice::mapping::CoarseGrainingMapping::tagMeshFirstRound ( )
finaloverridevirtual

Method used by partition. Tags vertices that could be owned by this rank.

Implements precice::mapping::Mapping.

Definition at line 149 of file CoarseGrainingMapping.cpp.

Here is the call graph for this function:

◆ tagMeshSecondRound()

void precice::mapping::CoarseGrainingMapping::tagMeshSecondRound ( )
finaloverridevirtual

Method used by partition. Tags vertices that can be filtered out.

Implements precice::mapping::Mapping.

Definition at line 176 of file CoarseGrainingMapping.cpp.

Member Data Documentation

◆ _log

logging::Logger precice::mapping::CoarseGrainingMapping::_log {"mapping::CoarseGraining"}
mutableprivate

Definition at line 49 of file CoarseGrainingMapping.hpp.

◆ _lucyFunction

std::unique_ptr<impl::LucyKernelFunction> precice::mapping::CoarseGrainingMapping::_lucyFunction
private

Definition at line 57 of file CoarseGrainingMapping.hpp.


The documentation for this class was generated from the following files: