15 #include "../config/config.hpp"
23 struct findpts_data_2;
24 struct findpts_data_3;
62 struct gslib::crystal *
cr;
121 void Setup(
Mesh &m,
const double bb_t = 0.1,
122 const double newt_tol = 1.0e-12,
123 const int npt_max = 256);
149 const double bb_t = 0.1,
150 const double newt_tol = 1.0e-12,
const int npt_max = 256);
253 const double bb_t = 0.1,
const double newt_tol = 1.0e-12,
254 const int npt_max = 256);
278 #endif // MFEM_USE_GSLIB
virtual void Interpolate(const GridFunction &field_in, Vector &field_out)
Array< unsigned int > gsl_elem
Class for an integration rule - an Array of IntegrationPoint.
Class for grid function - Vector with associated FE space.
virtual const Vector & GetDist() const
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()
virtual const Vector & GetReferencePosition() const
Return reference coordinates for each point found by FindPoints.
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 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
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)
virtual const Array< unsigned int > & GetProc() const
Return MPI rank on which each point was found by FindPoints.
struct gslib::findpts_data_2 * fdata2D
virtual void SetDefaultInterpolationValue(double interp_value_)
virtual const Array< unsigned int > & GetElem() const
Return element number for each point found by FindPoints.
Array< int > split_element_map
virtual const Array< unsigned int > & GetCode() 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 > & GetGSLIBElem() 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 const Vector & GetGSLIBReferencePosition() const
virtual void InterpolateH1(const GridFunction &field_in, Vector &field_out)
Use GSLIB for communication and interpolation.