81 struct gslib::crystal *
cr;
107 struct gslib::crystal *
cr;
145 Vector &gsl_dist_l,
int npt);
151 Vector &gsl_dist_l,
int npt);
159 int nel,
int dof1dsol);
166 int nel,
int dof1dsol);
189 const int nel,
const int ncomp,
190 const int dof1dsol,
const int ordering);
213 void Setup(
Mesh &m,
const double bb_t = 0.1,
215 const int npt_max = 256);
241 const double bb_t = 0.1,
const double newt_tol = 1.0e-12,
242 const int npt_max = 256);
409 const double bb_t = 0.1,
const double newt_tol = 1.0e-12,
410 const int npt_max = 256);
462 struct gslib::crystal *
cr;
Rank 3 tensor (array of matrices)
FindPointsGSLIB can robustly evaluate a GridFunction on an arbitrary collection of points.
virtual void DistributePointInfoToOwningMPIRanks(Array< unsigned int > &recv_elem, Vector &recv_ref, Array< unsigned int > &recv_code)
struct mfem::FindPointsGSLIB::@24 DEV
virtual ~FindPointsGSLIB()
void FindPointsOnDevice(const Vector &point_pos, int point_pos_ordering=Ordering::byNODES)
Array< unsigned int > gsl_code
Array< Mesh * > mesh_split
virtual const Vector & GetDist() const
void InterpolateLocal2(const Vector &field_in, Array< int > &gsl_elem_dev_l, Vector &gsl_ref_l, Vector &field_out, int npt, int ncomp, int nel, int dof1dsol)
void FindPoints(const Vector &point_pos, int point_pos_ordering=Ordering::byNODES)
void GetAxisAlignedBoundingBoxes(Vector &aabb)
void FindPointsLocal3(const Vector &point_pos, int point_pos_ordering, Array< unsigned int > &gsl_code_dev_l, Array< unsigned int > &gsl_elem_dev_l, Vector &gsl_ref_l, Vector &gsl_dist_l, int npt)
virtual const Vector & GetReferencePosition() const
Return reference coordinates for each point found by FindPoints.
void Setup(Mesh &m, const double bb_t=0.1, const double newt_tol=1.0e-12, const int npt_max=256)
virtual void Interpolate(const GridFunction &field_in, Vector &field_out)
virtual void InterpolateH1(const GridFunction &field_in, Vector &field_out)
Use GSLIB for communication and interpolation.
Array< FiniteElementSpace * > fes_rst_map
virtual void SetGPUtoCPUFallback(bool mode)
virtual void GetNodalValues(const GridFunction *gf_in, Vector &node_vals)
Get GridFunction value at the points expected by GSLIB.
struct gslib::hash_data_3 * hash3
virtual const Array< unsigned int > & GetCode() const
Array< int > split_element_index
FiniteElementCollection * fec_map_lin
virtual const Array< unsigned int > & GetElem() const
Return element number for each point found by FindPoints.
virtual void DistributeInterpolatedValues(const Vector &int_vals, const int vdim, const int ordering, Vector &field_out) const
struct gslib::comm * gsl_comm
void InterpolateLocal3(const Vector &field_in, Array< int > &gsl_elem_dev_l, Vector &gsl_ref_l, Vector &field_out, int npt, int ncomp, int nel, int dof1dsol)
Array< unsigned int > gsl_elem
Array< unsigned int > recv_proc
virtual const Array< unsigned int > & GetGSLIBElem() const
Array< unsigned int > gsl_proc
virtual void SetupIntegrationRuleForSplitMesh(Mesh *mesh, IntegrationRule *irule, int order)
virtual const Vector & GetGSLIBReferencePosition() const
Array< unsigned int > gsl_mfem_elem
Array< IntegrationRule * > ir_split
Array< unsigned int > loc_hash_offset
double default_interp_value
virtual void SetupSplitMeshes()
virtual void MapRefPosAndElemIndices()
virtual void SetDefaultInterpolationValue(double interp_value_)
virtual void InterpolateGeneral(const GridFunction &field_in, Vector &field_out)
Array< GridFunction * > gf_rst_map
virtual void SetL2AvgType(AvgType avgtype_)
virtual const Array< unsigned int > & GetProc() const
Return MPI rank on which each point was found by FindPoints.
Array< int > split_element_map
void GetOrientedBoundingBoxes(DenseTensor &obbA, Vector &obbC, Vector &obbV)
void InterpolateOnDevice(const Vector &field_in_evec, Vector &field_out, const int nel, const int ncomp, const int dof1dsol, const int ordering)
struct gslib::hash_data_2 * hash2
Array< unsigned int > recv_index
void FindPointsLocal2(const Vector &point_pos, int point_pos_ordering, Array< unsigned int > &gsl_code_dev_l, Array< unsigned int > &gsl_elem_dev_l, Vector &gsl_ref_l, Vector &gsl_dist_l, int npt)
virtual void SetDistanceToleranceForPointsFoundOnBoundary(double bdr_tol_)
struct gslib::crystal * cr
Collection of finite elements from the same family in multiple dimensions. This class is used to matc...
Class for gather-scatter (gs) operations on Vectors based on corresponding global identifiers.
struct gslib::comm * gsl_comm
void GS(Vector &senddata, GSOp op)
GSOPGSLIB(Array< long long > &ids)
GSOp
Supported operation types. See class description.
struct gslib::crystal * cr
struct gslib::gs_data * gsl_data
void UpdateIdentifiers(const Array< long long > &ids)
Class for grid function - Vector with associated FE space.
Class for an integration rule - an Array of IntegrationPoint.
OversetFindPointsGSLIB enables use of findpts for arbitrary number of overlapping grids.
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)
void Interpolate(const Vector &point_pos, Array< unsigned int > &point_id, const GridFunction &field_in, Vector &field_out, int point_pos_ordering=Ordering::byNODES)
void FindPoints(const Vector &point_pos, Array< unsigned int > &point_id, int point_pos_ordering=Ordering::byNODES)
OversetFindPointsGSLIB(MPI_Comm comm_)