libMesh
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
libMesh::InverseDistanceInterpolation< KDDim > Class Template Reference

Inverse distance interpolation. More...

#include <meshfree_interpolation.h>

Inheritance diagram for libMesh::InverseDistanceInterpolation< KDDim >:
[legend]

Classes

class  PointListAdaptor
 This class adapts list of libMesh Point types for use in a nanoflann KD-Tree. More...
 

Public Types

enum  ParallelizationStrategy { SYNC_SOURCES = 0, INVALID_STRATEGY }
 "ParallelizationStrategy" to employ. More...
 

Public Member Functions

 InverseDistanceInterpolation (const libMesh::Parallel::Communicator &comm_in, const unsigned int n_interp_pts=8, const Real power=2)
 Constructor. More...
 
virtual void clear () override
 Clears all internal data structures and restores to a pristine state. More...
 
virtual void interpolate_field_data (const std::vector< std::string > &field_names, const std::vector< Point > &tgt_pts, std::vector< Number > &tgt_vals) const override
 Interpolate source data at target points. More...
 
void print_info (std::ostream &os=libMesh::out) const
 Prints information about this object, by default to libMesh::out. More...
 
unsigned int n_field_variables () const
 The number of field variables. More...
 
void set_field_variables (std::vector< std::string > names)
 Defines the field variable(s) we are responsible for, and importantly their assumed ordering. More...
 
const std::vector< std::string > & field_variables () const
 
std::vector< Point > & get_source_points ()
 
std::vector< Number > & get_source_vals ()
 
virtual void add_field_data (const std::vector< std::string > &field_names, const std::vector< Point > &pts, const std::vector< Number > &vals)
 Sets source data at specified points. More...
 
virtual void prepare_for_use ()
 Prepares data structures for use. More...
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Protected Types

typedef nanoflann::KDTreeSingleIndexAdaptor< nanoflann::L2_Simple_Adaptor< Real, PointListAdaptor< KDDim > >, PointListAdaptor< KDDim >, KDDim, std::size_t > kd_tree_t
 

Protected Member Functions

virtual void construct_kd_tree ()
 Build & initialize the KD tree, if needed. More...
 
virtual void interpolate (const Point &pt, const std::vector< size_t > &src_indices, const std::vector< Real > &src_dist_sqr, std::vector< Number >::iterator &out_it) const
 Performs inverse distance interpolation at the input point from the specified points. More...
 
virtual void gather_remote_data ()
 Gathers source points and values that have been added on other processors. More...
 

Protected Attributes

PointListAdaptor< KDDim > _point_list_adaptor
 
std::unique_ptr< kd_tree_t_kd_tree
 
const Real _half_power
 
const unsigned int _n_interp_pts
 
std::vector< Number_vals
 Temporary work array. More...
 
ParallelizationStrategy _parallelization_strategy
 
std::vector< std::string > _names
 
std::vector< Point_src_pts
 
std::vector< Number_src_vals
 
const Parallel::Communicator_communicator
 

Detailed Description

template<unsigned int KDDim>
class libMesh::InverseDistanceInterpolation< KDDim >

Inverse distance interpolation.

Definition at line 179 of file meshfree_interpolation.h.

Member Typedef Documentation

◆ kd_tree_t

template<unsigned int KDDim>
typedef nanoflann::KDTreeSingleIndexAdaptor<nanoflann::L2_Simple_Adaptor<Real, PointListAdaptor<KDDim> >, PointListAdaptor<KDDim>, KDDim, std::size_t> libMesh::InverseDistanceInterpolation< KDDim >::kd_tree_t
protected

Definition at line 297 of file meshfree_interpolation.h.

Member Enumeration Documentation

◆ ParallelizationStrategy

"ParallelizationStrategy" to employ.

SYNC_SOURCES assumes that the data added on each processor are independent and relatively small. Calling the prepare_for_use() method with this ParallelizationStrategy will copy remote data from other processors, so all interpolation can be performed locally.

Other ParallelizationStrategy techniques will be implemented as needed.

Enumerator
SYNC_SOURCES 
INVALID_STRATEGY 

Definition at line 72 of file meshfree_interpolation.h.

Constructor & Destructor Documentation

◆ InverseDistanceInterpolation()

template<unsigned int KDDim>
libMesh::InverseDistanceInterpolation< KDDim >::InverseDistanceInterpolation ( const libMesh::Parallel::Communicator comm_in,
const unsigned int  n_interp_pts = 8,
const Real  power = 2 
)
inline

Constructor.

Takes the inverse distance power, which defaults to 2.

Definition at line 331 of file meshfree_interpolation.h.

333  :
334  MeshfreeInterpolation(comm_in),
335 #if LIBMESH_HAVE_NANOFLANN
337 #endif
338  _half_power(power/2.0),
339  _n_interp_pts(n_interp_pts)
340  {}
MeshfreeInterpolation(const libMesh::Parallel::Communicator &comm_in)
Constructor.

Member Function Documentation

◆ add_field_data()

void libMesh::MeshfreeInterpolation::add_field_data ( const std::vector< std::string > &  field_names,
const std::vector< Point > &  pts,
const std::vector< Number > &  vals 
)
virtualinherited

Sets source data at specified points.

Definition at line 74 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::_names, libMesh::MeshfreeInterpolation::_src_pts, libMesh::MeshfreeInterpolation::_src_vals, libMesh::index_range(), and libMesh::MeshfreeInterpolation::n_field_variables().

77 {
78  libmesh_experimental();
79  libmesh_assert_equal_to (field_names.size()*pts.size(), vals.size());
80 
81  // If we already have field variables, we assume we are appending.
82  // that means the names and ordering better be identical!
83  if (!_names.empty())
84  {
85  libmesh_error_msg_if(_names.size() != field_names.size(),
86  "ERROR: when adding field data to an existing list the \nvariable list must be the same!");
87 
88  for (auto v : index_range(_names))
89  libmesh_error_msg_if(_names[v] != field_names[v],
90  "ERROR: when adding field data to an existing list the \nvariable list must be the same!");
91  }
92 
93  // otherwise copy the names
94  else
95  _names = field_names;
96 
97  // append the data
98  _src_pts.insert (_src_pts.end(),
99  pts.begin(),
100  pts.end());
101 
102  _src_vals.insert (_src_vals.end(),
103  vals.begin(),
104  vals.end());
105 
106  libmesh_assert_equal_to (_src_vals.size(),
107  _src_pts.size()*this->n_field_variables());
108 }
unsigned int n_field_variables() const
The number of field variables.
std::vector< std::string > _names
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:111

◆ clear()

template<unsigned int KDDim>
void libMesh::InverseDistanceInterpolation< KDDim >::clear ( )
overridevirtual

Clears all internal data structures and restores to a pristine state.

Reimplemented from libMesh::MeshfreeInterpolation.

Reimplemented in libMesh::RadialBasisInterpolation< KDDim, RBF >.

Definition at line 178 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::clear().

Referenced by libMesh::RadialBasisInterpolation< KDDim, RBF >::clear().

179 {
180 #ifdef LIBMESH_HAVE_NANOFLANN
181  // Delete the KD Tree and start fresh
182  if (_kd_tree.get())
183  _kd_tree.reset (nullptr);
184 #endif
185 
186  // Call base class clear method
188 }
virtual void clear()
Clears all internal data structures and restores to a pristine state.

◆ comm()

const Parallel::Communicator& libMesh::ParallelObject::comm ( ) const
inlineinherited
Returns
A reference to the Parallel::Communicator object used by this mesh.

Definition at line 97 of file parallel_object.h.

References libMesh::ParallelObject::_communicator.

Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::DofMap::add_constraints_to_send_list(), add_cube_convex_hull_to_mesh(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_data(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< libMesh::Number >::create_submatrix_nosort(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::RBEIMEvaluation::distribute_bfs(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::RBEIMEvaluation::get_eim_basis_function_node_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_side_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_value(), libMesh::MeshBase::get_info(), libMesh::System::get_info(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::RBEIMEvaluation::get_parametrized_function_node_value(), libMesh::RBEIMEvaluation::get_parametrized_function_side_value(), libMesh::RBEIMEvaluation::get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_recalculate_monitor(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::DofMap::n_constrained_dofs(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), ConstraintOperatorTest::testCoreform(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::VTKIO::write_nodal_data(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().

98  { return _communicator; }
const Parallel::Communicator & _communicator

◆ construct_kd_tree()

template<unsigned int KDDim>
void libMesh::InverseDistanceInterpolation< KDDim >::construct_kd_tree ( )
protectedvirtual

Build & initialize the KD tree, if needed.

Definition at line 156 of file meshfree_interpolation.C.

References libMesh::libmesh_assert().

Referenced by libMesh::InverseDistanceInterpolation< KDDim >::interpolate_field_data(), and libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use().

157 {
158 #ifdef LIBMESH_HAVE_NANOFLANN
159 
160  LOG_SCOPE ("construct_kd_tree()", "InverseDistanceInterpolation<>");
161 
162  // Initialize underlying KD tree
163  if (_kd_tree.get() == nullptr)
164  _kd_tree = std::make_unique<kd_tree_t>
165  (KDDim,
167  nanoflann::KDTreeSingleIndexAdaptorParams(10 /* max leaf */));
168 
169  libmesh_assert (_kd_tree.get() != nullptr);
170 
171  _kd_tree->buildIndex();
172 #endif
173 }
libmesh_assert(ctx)

◆ field_variables()

const std::vector<std::string>& libMesh::MeshfreeInterpolation::field_variables ( ) const
inlineinherited
Returns
The field variables as a read-only reference.

Definition at line 116 of file meshfree_interpolation.h.

References libMesh::MeshfreeInterpolation::_names.

Referenced by libMesh::MeshlessInterpolationFunction::operator()().

117  { return _names; }
std::vector< std::string > _names

◆ gather_remote_data()

void libMesh::MeshfreeInterpolation::gather_remote_data ( )
protectedvirtualinherited

Gathers source points and values that have been added on other processors.

Note
The user is responsible for adding points only once per processor if this method is called. No attempt is made to identify duplicate points.

This method is virtual so that it can be overwritten or extended as required in derived classes.

Definition at line 131 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::_src_pts, libMesh::MeshfreeInterpolation::_src_vals, TIMPI::Communicator::allgather(), and libMesh::ParallelObject::comm().

Referenced by libMesh::MeshfreeInterpolation::prepare_for_use().

132 {
133 #ifndef LIBMESH_HAVE_MPI
134 
135  // no MPI -- no-op
136  return;
137 
138 #else
139 
140  // This function must be run on all processors at once
141  parallel_object_only();
142 
143  LOG_SCOPE ("gather_remote_data()", "MeshfreeInterpolation");
144 
145  this->comm().allgather(_src_pts);
146  this->comm().allgather(_src_vals);
147 
148 #endif // LIBMESH_HAVE_MPI
149 }
void allgather(const T &send_data, std::vector< T, A > &recv_data) const
const Parallel::Communicator & comm() const

◆ get_source_points()

std::vector<Point>& libMesh::MeshfreeInterpolation::get_source_points ( )
inlineinherited
Returns
A writable reference to the point list.

Definition at line 122 of file meshfree_interpolation.h.

References libMesh::MeshfreeInterpolation::_src_pts.

123  { return _src_pts; }

◆ get_source_vals()

std::vector<Number>& libMesh::MeshfreeInterpolation::get_source_vals ( )
inlineinherited
Returns
A writable reference to the point list.

Definition at line 128 of file meshfree_interpolation.h.

References libMesh::MeshfreeInterpolation::_src_vals.

129  { return _src_vals; }

◆ interpolate()

template<unsigned int KDDim>
void libMesh::InverseDistanceInterpolation< KDDim >::interpolate ( const Point pt,
const std::vector< size_t > &  src_indices,
const std::vector< Real > &  src_dist_sqr,
std::vector< Number >::iterator &  out_it 
) const
protectedvirtual

Performs inverse distance interpolation at the input point from the specified points.

Definition at line 257 of file meshfree_interpolation.C.

References libMesh::Utility::pow(), libMesh::Real, and libMesh::MeshTools::weight().

261 {
262  // We explicitly assume that the input source points are sorted from closest to
263  // farthest. assert that assumption in DEBUG mode.
264 #ifdef DEBUG
265  if (!src_dist_sqr.empty())
266  {
267  Real min_dist = src_dist_sqr.front();
268 
269  for (auto i : src_dist_sqr)
270  {
271  libmesh_error_msg_if(i < min_dist, i << " was less than min_dist = " << min_dist);
272 
273  min_dist = i;
274  }
275  }
276 #endif
277 
278 
279  libmesh_assert_equal_to (src_dist_sqr.size(), src_indices.size());
280 
281 
282  // Compute the interpolation weights & interpolated value
283  const unsigned int n_fv = this->n_field_variables();
284  _vals.resize(n_fv); std::fill (_vals.begin(), _vals.end(), Number(0.));
285 
286  Real tot_weight = 0.;
287 
288  std::vector<Real>::const_iterator src_dist_sqr_it=src_dist_sqr.begin();
289  std::vector<size_t>::const_iterator src_idx_it=src_indices.begin();
290 
291  // Loop over source points
292  while ((src_dist_sqr_it != src_dist_sqr.end()) &&
293  (src_idx_it != src_indices.end()))
294  {
295  libmesh_assert_greater_equal (*src_dist_sqr_it, 0.);
296 
297  const Real
298  dist_sq = std::max(*src_dist_sqr_it, std::numeric_limits<Real>::epsilon()),
299  weight = 1./std::pow(dist_sq, _half_power);
300 
301  tot_weight += weight;
302 
303  const std::size_t src_idx = *src_idx_it;
304 
305  // loop over field variables
306  for (unsigned int v=0; v<n_fv; v++)
307  {
308  libmesh_assert_less (src_idx*n_fv+v, _src_vals.size());
309  _vals[v] += _src_vals[src_idx*n_fv+v]*weight;
310  }
311 
312  ++src_dist_sqr_it;
313  ++src_idx_it;
314  }
315 
316  // don't forget normalizing term & set the output buffer!
317  for (unsigned int v=0; v<n_fv; v++, ++out_it)
318  {
319  _vals[v] /= tot_weight;
320 
321  *out_it = _vals[v];
322  }
323 }
unsigned int n_field_variables() const
The number of field variables.
std::vector< Number > _vals
Temporary work array.
T pow(const T &x)
Definition: utility.h:328
dof_id_type weight(const MeshBase &mesh, const processor_id_type pid)
Definition: mesh_tools.C:436
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ interpolate_field_data()

template<unsigned int KDDim>
void libMesh::InverseDistanceInterpolation< KDDim >::interpolate_field_data ( const std::vector< std::string > &  field_names,
const std::vector< Point > &  tgt_pts,
std::vector< Number > &  tgt_vals 
) const
overridevirtual

Interpolate source data at target points.

Pure virtual, must be overridden in derived classes.

Implements libMesh::MeshfreeInterpolation.

Reimplemented in libMesh::RadialBasisInterpolation< KDDim, RBF >.

Definition at line 193 of file meshfree_interpolation.C.

References libMesh::InverseDistanceInterpolation< KDDim >::construct_kd_tree(), libMesh::index_range(), and libMesh::Real.

196 {
197  libmesh_experimental();
198 
199  // forcibly initialize, if needed
200 #ifdef LIBMESH_HAVE_NANOFLANN
201  if (_kd_tree.get() == nullptr)
202  const_cast<InverseDistanceInterpolation<KDDim> *>(this)->construct_kd_tree();
203 #endif
204 
205  LOG_SCOPE ("interpolate_field_data()", "InverseDistanceInterpolation<>");
206 
207  libmesh_assert_equal_to (field_names.size(), this->n_field_variables());
208 
209  // If we already have field variables, we assume we are appending.
210  // that means the names and ordering better be identical!
211  libmesh_error_msg_if(_names.size() != field_names.size(),
212  "ERROR: when adding field data to an existing list the \nvariable list must be the same!");
213 
214  for (auto v : index_range(_names))
215  libmesh_error_msg_if(_names[v] != field_names[v],
216  "ERROR: when adding field data to an existing list the \nvariable list must be the same!");
217 
218  tgt_vals.resize (tgt_pts.size()*this->n_field_variables());
219 
220 #ifdef LIBMESH_HAVE_NANOFLANN
221  {
222  std::vector<Number>::iterator out_it = tgt_vals.begin();
223 
224  const size_t num_results = std::min((size_t) _n_interp_pts, _src_pts.size());
225 
226  std::vector<size_t> ret_index(num_results);
227  std::vector<Real> ret_dist_sqr(num_results);
228 
229  for (const auto & tgt : tgt_pts)
230  {
231  const Real query_pt[] = { tgt(0), tgt(1), tgt(2) };
232 
233  _kd_tree->knnSearch(query_pt, num_results, ret_index.data(), ret_dist_sqr.data());
234 
235  this->interpolate (tgt, ret_index, ret_dist_sqr, out_it);
236 
237  // libMesh::out << "knnSearch(): num_results=" << num_results << "\n";
238  // for (size_t i=0;i<num_results;i++)
239  // libMesh::out << "idx[" << i << "]="
240  // << std::setw(6) << ret_index[i]
241  // << "\t dist["<< i << "]=" << ret_dist_sqr[i]
242  // << "\t val[" << std::setw(6) << ret_index[i] << "]=" << _src_vals[ret_index[i]]
243  // << std::endl;
244  // libMesh::out << "\n";
245 
246  // libMesh::out << "ival=" << _vals[0] << '\n';
247  }
248  }
249 #else
250 
251  libmesh_error_msg("ERROR: This functionality requires the library to be configured with nanoflann support!");
252 
253 #endif
254 }
unsigned int n_field_variables() const
The number of field variables.
virtual void interpolate(const Point &pt, const std::vector< size_t > &src_indices, const std::vector< Real > &src_dist_sqr, std::vector< Number >::iterator &out_it) const
Performs inverse distance interpolation at the input point from the specified points.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< std::string > _names
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:111

◆ n_field_variables()

unsigned int libMesh::MeshfreeInterpolation::n_field_variables ( ) const
inlineinherited

The number of field variables.

Definition at line 103 of file meshfree_interpolation.h.

References libMesh::MeshfreeInterpolation::_names.

Referenced by libMesh::MeshfreeInterpolation::add_field_data(), and libMesh::MeshfreeInterpolation::print_info().

104  { return cast_int<unsigned int>(_names.size()); }
std::vector< std::string > _names

◆ n_processors()

processor_id_type libMesh::ParallelObject::n_processors ( ) const
inlineinherited
Returns
The number of processors in the group.

Definition at line 103 of file parallel_object.h.

References libMesh::ParallelObject::_communicator, libMesh::libmesh_assert(), and TIMPI::Communicator::size().

Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::prepare_send_list(), libMesh::DofMap::print_dof_constraints(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().

104  {
105  processor_id_type returnval =
106  cast_int<processor_id_type>(_communicator.size());
107  libmesh_assert(returnval); // We never have an empty comm
108  return returnval;
109  }
const Parallel::Communicator & _communicator
processor_id_type size() const
uint8_t processor_id_type
libmesh_assert(ctx)

◆ prepare_for_use()

void libMesh::MeshfreeInterpolation::prepare_for_use ( )
virtualinherited

Prepares data structures for use.

This method is virtual so that it can be overwritten or extended as required in derived classes.

Reimplemented in libMesh::RadialBasisInterpolation< KDDim, RBF >.

Definition at line 112 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::_parallelization_strategy, libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::MeshfreeInterpolation::INVALID_STRATEGY, and libMesh::MeshfreeInterpolation::SYNC_SOURCES.

Referenced by libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use().

113 {
115  {
116  case SYNC_SOURCES:
117  this->gather_remote_data();
118  break;
119 
120  case INVALID_STRATEGY:
121  libmesh_error_msg("Invalid _parallelization_strategy = " << _parallelization_strategy);
122 
123  default:
124  // no preparation required for other strategies
125  break;
126  }
127 }
ParallelizationStrategy _parallelization_strategy
virtual void gather_remote_data()
Gathers source points and values that have been added on other processors.

◆ print_info()

void libMesh::MeshfreeInterpolation::print_info ( std::ostream &  os = libMesh::out) const
inherited

Prints information about this object, by default to libMesh::out.

Definition at line 38 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::_names, libMesh::MeshfreeInterpolation::_src_pts, libMesh::make_range(), and libMesh::MeshfreeInterpolation::n_field_variables().

Referenced by libMesh::operator<<().

39 {
40  os << "MeshfreeInterpolation"
41  << "\n n_source_points()=" << _src_pts.size()
42  << "\n n_field_variables()=" << this->n_field_variables()
43  << "\n";
44 
45  if (this->n_field_variables())
46  {
47  os << " variables = ";
48  for (auto v : make_range(this->n_field_variables()))
49  os << _names[v] << " ";
50  os << std::endl;
51  }
52 
53 }
unsigned int n_field_variables() const
The number of field variables.
std::vector< std::string > _names
IntRange< T > make_range(T beg, T end)
The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of...
Definition: int_range.h:134

◆ processor_id()

processor_id_type libMesh::ParallelObject::processor_id ( ) const
inlineinherited
Returns
The rank of this processor in the group.

Definition at line 114 of file parallel_object.h.

References libMesh::ParallelObject::_communicator, and TIMPI::Communicator::rank().

Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DofMap::local_variable_indices(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMap::n_local_dofs(), libMesh::System::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().

115  { return cast_int<processor_id_type>(_communicator.rank()); }
processor_id_type rank() const
const Parallel::Communicator & _communicator

◆ set_field_variables()

void libMesh::MeshfreeInterpolation::set_field_variables ( std::vector< std::string >  names)
inlineinherited

Defines the field variable(s) we are responsible for, and importantly their assumed ordering.

Definition at line 110 of file meshfree_interpolation.h.

References libMesh::MeshfreeInterpolation::_names.

Referenced by main(), and libMesh::MeshfreeSolutionTransfer::transfer().

111  { _names = std::move(names); }
std::vector< std::string > _names

Member Data Documentation

◆ _communicator

const Parallel::Communicator& libMesh::ParallelObject::_communicator
protectedinherited

◆ _half_power

template<unsigned int KDDim>
const Real libMesh::InverseDistanceInterpolation< KDDim >::_half_power
protected

Definition at line 317 of file meshfree_interpolation.h.

◆ _kd_tree

template<unsigned int KDDim>
std::unique_ptr<kd_tree_t> libMesh::InverseDistanceInterpolation< KDDim >::_kd_tree
mutableprotected

Definition at line 299 of file meshfree_interpolation.h.

◆ _n_interp_pts

template<unsigned int KDDim>
const unsigned int libMesh::InverseDistanceInterpolation< KDDim >::_n_interp_pts
protected

Definition at line 318 of file meshfree_interpolation.h.

◆ _names

std::vector<std::string> libMesh::MeshfreeInterpolation::_names
protectedinherited

◆ _parallelization_strategy

ParallelizationStrategy libMesh::MeshfreeInterpolation::_parallelization_strategy
protectedinherited

◆ _point_list_adaptor

template<unsigned int KDDim>
PointListAdaptor<KDDim> libMesh::InverseDistanceInterpolation< KDDim >::_point_list_adaptor
protected

Definition at line 287 of file meshfree_interpolation.h.

◆ _src_pts

std::vector<Point> libMesh::MeshfreeInterpolation::_src_pts
protectedinherited

◆ _src_vals

std::vector<Number> libMesh::MeshfreeInterpolation::_src_vals
protectedinherited

◆ _vals

template<unsigned int KDDim>
std::vector<Number> libMesh::InverseDistanceInterpolation< KDDim >::_vals
mutableprotected

Temporary work array.

Object level scope to avoid cache thrashing.

Definition at line 323 of file meshfree_interpolation.h.


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