Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper > Class Template Reference

MSM_Driver provides the API to mapping from one mesh to another using particles. More...

#include <driver_mesh_swarm_mesh.h>

Public Member Functions

 MSM_Driver (SourceMesh_Wrapper const &source_mesh, SourceState_Wrapper const &source_state, TargetMesh_Wrapper const &target_mesh, TargetState_Wrapper &target_state, double smoothing_factor=1.25, double boundary_factor=0.5, Meshfree::Weight::Geometry geometry=Meshfree::Weight::TENSOR, Meshfree::Weight::Kernel kernel=Meshfree::Weight::B4, Meshfree::WeightCenter center=Meshfree::Gather, std::string part_field="NONE", double part_tolerance=std::numeric_limits< double >::infinity())
 Constructor for running the interpolation driver. More...
 
 MSM_Driver (const MSM_Driver &)=delete
 Copy constructor (disabled) More...
 
MSM_Driveroperator= (const MSM_Driver &)=delete
 Assignment operator (disabled) More...
 
 ~MSM_Driver ()=default
 Destructor. More...
 
void set_remap_var_names (std::vector< std::string > const &remap_var_names)
 Specify the names of the variables to be interpolated. More...
 
void set_remap_var_names (std::vector< std::string > const &source_vars, std::vector< std::string > const &target_vars, Meshfree::EstimateType const &estimator_type=Meshfree::LocalRegression, Meshfree::basis::Type const &basis_type=Meshfree::basis::Unitary, Meshfree::oper::Type operator_spec=Meshfree::oper::LastOperator, Portage::vector< Meshfree::oper::Domain > const &operator_domains={}, Portage::vector< std::vector< Point< dim >>> const &operator_data={})
 Specify the names of the variables to be interpolated. More...
 
std::vector< std::string > source_vars () const
 Get the names of the variables to be remapped from the source mesh. More...
 
std::vector< std::string > target_vars () const
 Get the names of the variables to be remapped to the target mesh. More...
 
int dimension () const
 Get the dimensionality of the meshes. More...
 
void run (Wonton::Executor_type const *executor=nullptr)
 Execute the remapping process. More...
 

Detailed Description

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper, class SourceState_Wrapper, class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
class Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >

MSM_Driver provides the API to mapping from one mesh to another using particles.

Template Parameters
Searchcompatible particle search class
AccumulateMeshfree accumulate class (performs particle sums)
EstimateMeshfree estimator class (performs calculus operations
dimSpatial dimension of the source and target meshes
SourceMesh_WrapperA lightweight wrapper to a specific input mesh implementation that provides certain functionality.
SourceState_WrapperA lightweight wrapper to a specific input state manager implementation that provides certain functionality.
TargetMesh_WrapperA lightweight wrapper to a specific target mesh implementation that provides certain functionality.
TargetState_WrapperA lightweight wrapper to a specific target state manager implementation that provides certain functionality.

Constructor & Destructor Documentation

◆ MSM_Driver() [1/2]

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::MSM_Driver ( SourceMesh_Wrapper const &  source_mesh,
SourceState_Wrapper const &  source_state,
TargetMesh_Wrapper const &  target_mesh,
TargetState_Wrapper &  target_state,
double  smoothing_factor = 1.25,
double  boundary_factor = 0.5,
Meshfree::Weight::Geometry  geometry = Meshfree::Weight::TENSOR,
Meshfree::Weight::Kernel  kernel = Meshfree::Weight::B4,
Meshfree::WeightCenter  center = Meshfree::Gather,
std::string  part_field = "NONE",
double  part_tolerance = std::numeric_limits<double>::infinity() 
)
inline

Constructor for running the interpolation driver.

Parameters
[in]source_meshA SourceMesh_Wrapper to the source mesh.
[in]source_stateA SourceState_Wrapperfor the data that lives on the source mesh.
[in]target_meshA TargetMesh_Wrapper to the target mesh.
[in,out]target_stateA TargetState_Wrapper for the data that will be mapped to the target mesh.
[in]smoothing_factormultiplies cell sizes to get smoothing lengths
[in]boundary_factorwith faceted weights only, multiplies center-to-face distance on boundary to get smoothing length
[in]geometryweight function geometric configuration
[in]kernelweight function kernel
[in]centerweight function centering (scatter for sources, gather for targets)
[in]part_fieldname of field to use for part assignments, with faceted weights only
[in]part_tolerancetolerance for determining if part assignment matches a neighbor's assignment

◆ MSM_Driver() [2/2]

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::MSM_Driver ( const MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper > &  )
delete

Copy constructor (disabled)

◆ ~MSM_Driver()

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::~MSM_Driver ( )
default

Destructor.

Member Function Documentation

◆ dimension()

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
int Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::dimension ( ) const
inline

Get the dimensionality of the meshes.

Returns
The dimensionality of the meshes.

◆ operator=()

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
MSM_Driver& Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::operator= ( const MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper > &  )
delete

Assignment operator (disabled)

◆ run()

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
void Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::run ( Wonton::Executor_type const *  executor = nullptr)
inline

Execute the remapping process.

◆ set_remap_var_names() [1/2]

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
void Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::set_remap_var_names ( std::vector< std::string > const &  remap_var_names)
inline

Specify the names of the variables to be interpolated.

Parameters
[in]remap_var_namesA list of variable names of the variables to interpolate from the source mesh to the target mesh. This variable must exist in both meshes' state manager

◆ set_remap_var_names() [2/2]

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
void Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::set_remap_var_names ( std::vector< std::string > const &  source_vars,
std::vector< std::string > const &  target_vars,
Meshfree::EstimateType const &  estimator_type = Meshfree::LocalRegression,
Meshfree::basis::Type const &  basis_type = Meshfree::basis::Unitary,
Meshfree::oper::Type  operator_spec = Meshfree::oper::LastOperator,
Portage::vector< Meshfree::oper::Domain > const &  operator_domains = {},
Portage::vector< std::vector< Point< dim >>> const &  operator_data = {} 
)
inline

Specify the names of the variables to be interpolated.

Parameters
[in]source_varsA list of the variables names of the variables to interpolate from the source mesh.
[in]target_varsA list of the variables names of the variables to interpolate to the target mesh.
[in]estimator_typeWhat type of estimator to apply in particle stage
[in]basis_typewhat regression basis to use
[in]operator_specwhat type of operator to use in regression, if any
[in]operator_domainsif using an integral operator, what domains of integration to use
[in]operator_datanode data for integral domains, if needed

◆ source_vars()

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
std::vector<std::string> Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::source_vars ( ) const
inline

Get the names of the variables to be remapped from the source mesh.

Returns
A vector of variable names to be remapped.

◆ target_vars()

template<template< int, class, class > class Search, template< int, class, class > class Accumulate, template< int, class > class Estimate, int dim, class SourceMesh_Wrapper , class SourceState_Wrapper , class TargetMesh_Wrapper = SourceMesh_Wrapper, class TargetState_Wrapper = SourceState_Wrapper>
std::vector<std::string> Portage::MSM_Driver< Search, Accumulate, Estimate, dim, SourceMesh_Wrapper, SourceState_Wrapper, TargetMesh_Wrapper, TargetState_Wrapper >::target_vars ( ) const
inline

Get the names of the variables to be remapped to the target mesh.

Returns
A vector of variable names to be remapped.

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