Multiscale Universal Interface
2.0
A Concurrent Framework for Coupling Heterogeneous Solvers
|
#include <sampler_rbf.h>
Public Types | |
using | OTYPE = O_TP |
using | ITYPE = I_TP |
using | REAL = typename CONFIG::REAL |
using | INT = typename CONFIG::INT |
using | point_type = typename CONFIG::point_type |
using | EXCEPTION = typename CONFIG::EXCEPTION |
Public Member Functions | |
sampler_rbf (REAL r, const std::vector< point_type > &pts, INT basisFunc=0, bool conservative=false, bool smoothFunc=false, bool generateMatrix=true, const std::string &writeFileAddress=std::string(), REAL cutOff=1e-9, REAL cgSolveTol=1e-6, INT cgMaxIter=0, INT pouSize=50, INT precond=1, MPI_Comm local_comm=MPI_COMM_NULL) | |
template<template< typename, typename > class CONTAINER> | |
OTYPE | filter (point_type focus, const CONTAINER< ITYPE, CONFIG > &data_points) const |
geometry::any_shape< CONFIG > | support (point_type focus, REAL domain_mag) const |
void | preSetFetchPoints (std::vector< point_type > &pts) |
void | preSetFetchPointsExtend (std::vector< point_type > &pts) |
void | addFetchPoint (point_type pt) |
void | addFetchPointExtend (point_type pt) |
void | addFetchPointGhost (point_type pt) |
void | readRBFMatrix (const std::string &readFileAddress) const |
std::pair< point_type, point_type > | localBoundingBox (const std::vector< point_type > pt) const |
std::pair< point_type, point_type > | localExtendBoundingBox (std::pair< point_type, point_type > lbb, REAL r) const |
std::pair< std::vector< std::pair< INT, INT > >, std::vector< std::pair< INT, std::vector< point_type > > > > | getGhostPointsToSend (std::pair< point_type, point_type > lbbExtend, MPI_Comm local_world, int local_rank, int local_size) const |
std::vector< point_type > | distributeGhostPoints (std::vector< std::pair< INT, INT >> ghostPointsCountToSend, std::vector< std::pair< INT, std::vector< point_type >>> ghostPointsToSend, MPI_Comm local_world, int local_rank) const |
void | facilitateGhostPoints () const |
Static Public Attributes | |
static const bool | QUIET = CONFIG::QUIET |
static const bool | DEBUG = CONFIG::DEBUG |
Protected Attributes | |
REAL | r_ |
const std::vector< point_type > | pts_ |
const INT | basisFunc_ |
const bool | conservative_ |
const bool | consistent_ |
const bool | smoothFunc_ |
const bool | generateMatrix_ |
const std::string | writeFileAddress_ |
INT | precond_ |
bool | initialised_ |
MPI_Comm | local_mpi_comm_world_ |
INT | CABrow_ |
INT | CABcol_ |
INT | Hrow_ |
INT | Hcol_ |
bool | pouEnabled_ |
REAL | cgSolveTol_ |
INT | cgMaxIter_ |
size_t | N_sp_ |
size_t | M_ap_ |
int | local_rank_ |
int | local_size_ |
REAL | twor_ |
REAL | s_ |
INT | CAArow_ |
INT | CAAcol_ |
INT | remote_pts_num_ |
INT | remote_pts_dim_ |
std::vector< point_type > | ptsGhost_ |
std::vector< point_type > | ptsExtend_ |
std::vector< std::vector< INT > > | connectivityAB_ |
std::vector< std::vector< INT > > | connectivityAA_ |
linalg::sparse_matrix< INT, REAL > | H_ |
linalg::sparse_matrix< INT, REAL > | H_toSmooth_ |
std::vector< point_type > | remote_pts_ |
using mui::sampler_rbf< CONFIG, O_TP, I_TP >::EXCEPTION = typename CONFIG::EXCEPTION |
using mui::sampler_rbf< CONFIG, O_TP, I_TP >::INT = typename CONFIG::INT |
using mui::sampler_rbf< CONFIG, O_TP, I_TP >::ITYPE = I_TP |
using mui::sampler_rbf< CONFIG, O_TP, I_TP >::OTYPE = O_TP |
using mui::sampler_rbf< CONFIG, O_TP, I_TP >::point_type = typename CONFIG::point_type |
using mui::sampler_rbf< CONFIG, O_TP, I_TP >::REAL = typename CONFIG::REAL |
|
inline |
Input parameters:
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Check whether the order of the remote points coincides with the order when generating the coupling matrix [H] and fix it if not. This check and fix
is essential in the parallel condition as the order of the remote point will randomly mixed at the partition boundary and the result will show an randomly oscillating behaviour. The below code will ensure a correct match between the remote point and corresponding coupling matrix element.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
static |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
static |
|
protected |
|
mutableprotected |
|
mutableprotected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |