15 #include "../config/config.hpp" 23 struct findpts_data_2;
24 struct findpts_data_3;
69 struct gslib::crystal *
cr;
130 void Setup(
Mesh &m,
const double bb_t = 0.1,
131 const double newt_tol = 1.0e-12,
132 const int npt_max = 256);
158 const double bb_t = 0.1,
159 const double newt_tol = 1.0e-12,
const int npt_max = 256);
270 const double bb_t = 0.1,
const double newt_tol = 1.0e-12,
271 const int npt_max = 256);
295 #endif // MFEM_USE_GSLIB virtual void Interpolate(const GridFunction &field_in, Vector &field_out)
virtual const Array< unsigned int > & GetProc() const
Return MPI rank on which each point was found by FindPoints.
Array< unsigned int > gsl_elem
Class for an integration rule - an Array of IntegrationPoint.
virtual const Array< unsigned int > & GetGSLIBElem() const
Class for grid function - Vector with associated FE space.
virtual ~FindPointsGSLIB()
void FindPoints(const Vector &point_pos, int point_pos_ordering=Ordering::byNODES)
Array< GridFunction * > gf_rst_map
Array< unsigned int > gsl_mfem_elem
virtual void SetupSplitMeshes()
void Interpolate(const Vector &point_pos, Array< unsigned int > &point_id, const GridFunction &field_in, Vector &field_out, int point_pos_ordering=Ordering::byNODES)
OversetFindPointsGSLIB(MPI_Comm comm_)
Array< unsigned int > gsl_proc
Array< Mesh * > mesh_split
virtual void SetL2AvgType(AvgType avgtype_)
virtual const Array< unsigned int > & GetElem() const
Return element number for each point found by FindPoints.
virtual void MapRefPosAndElemIndices()
struct gslib::findpts_data_3 * fdata3D
virtual void GetNodalValues(const GridFunction *gf_in, Vector &node_vals)
Get GridFunction value at the points expected by GSLIB.
Array< IntegrationRule * > ir_split
virtual const Vector & GetGSLIBReferencePosition() const
OversetFindPointsGSLIB enables use of findpts for arbitrary number of overlapping grids...
void Setup(Mesh &m, const double bb_t=0.1, const double newt_tol=1.0e-12, const int npt_max=256)
double default_interp_value
struct gslib::crystal * cr
Array< int > split_element_index
Array< FiniteElementSpace * > fes_rst_map
Array< unsigned int > gsl_code
Collection of finite elements from the same family in multiple dimensions. This class is used to matc...
virtual void InterpolateGeneral(const GridFunction &field_in, Vector &field_out)
virtual void SetupIntegrationRuleForSplitMesh(Mesh *mesh, IntegrationRule *irule, int order)
struct gslib::findpts_data_2 * fdata2D
virtual void SetDefaultInterpolationValue(double interp_value_)
virtual void SetDistanceToleranceForPointsFoundOnBoundary(double bdr_tol_)
Array< int > split_element_map
virtual const Vector & GetDist() const
struct gslib::comm * gsl_comm
FiniteElementCollection * fec_map_lin
FindPointsGSLIB can robustly evaluate a GridFunction on an arbitrary collection of points...
virtual const Array< unsigned int > & GetCode() const
void FindPoints(const Vector &point_pos, Array< unsigned int > &point_id, int point_pos_ordering=Ordering::byNODES)
void Setup(Mesh &m, const int meshid, GridFunction *gfmax=NULL, const double bb_t=0.1, const double newt_tol=1.0e-12, const int npt_max=256)
virtual void InterpolateH1(const GridFunction &field_in, Vector &field_out)
Use GSLIB for communication and interpolation.
virtual const Vector & GetReferencePosition() const
Return reference coordinates for each point found by FindPoints.