libMesh
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
libMesh::RadialBasisInterpolation< KDDim, RBF > Class Template Reference

Radial Basis Function interpolation. More...

#include <radial_basis_interpolation.h>

Inheritance diagram for libMesh::RadialBasisInterpolation< KDDim, RBF >:
[legend]

Public Types

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

Public Member Functions

 RadialBasisInterpolation (const libMesh::Parallel::Communicator &comm_in, Real radius=-1)
 Constructor. More...
 
virtual void clear () override
 Clears all internal data structures and restores to a pristine state. More...
 
virtual void prepare_for_use () override
 Prepares data structures for use. 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 (const 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...
 
const Parallel::Communicator & comm () 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 > 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

BoundingBox _src_bbox
 Bounding box for our source points. More...
 
std::vector< Number_weights
 basis coefficients. More...
 
Real _r_bbox
 Diagonal of the bounding box. More...
 
Real _r_override
 Diagonal override. More...
 
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 RBF = WendlandRBF<KDDim, 2>>
class libMesh::RadialBasisInterpolation< KDDim, RBF >

Radial Basis Function interpolation.

Author
Benjamin S. Kirk
Date
2013

Does radial basis function interpolation using Nanoflann.

Definition at line 43 of file radial_basis_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> libMesh::InverseDistanceInterpolation< KDDim >::kd_tree_t
protectedinherited

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.

72  {SYNC_SOURCES = 0,

Constructor & Destructor Documentation

◆ RadialBasisInterpolation()

template<unsigned int KDDim, class RBF = WendlandRBF<KDDim, 2>>
libMesh::RadialBasisInterpolation< KDDim, RBF >::RadialBasisInterpolation ( const libMesh::Parallel::Communicator &  comm_in,
Real  radius = -1 
)
inline

Constructor.

Definition at line 79 of file radial_basis_interpolation.h.

80  :
81  InverseDistanceInterpolation<KDDim> (comm_in,8,2),
82  _r_bbox(0.),
84  { libmesh_experimental(); }

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 72 of file meshfree_interpolation.C.

75 {
76  libmesh_experimental();
77  libmesh_assert_equal_to (field_names.size()*pts.size(), vals.size());
78 
79  // If we already have field variables, we assume we are appending.
80  // that means the names and ordering better be identical!
81  if (!_names.empty())
82  {
83  if (_names.size() != field_names.size())
84  libmesh_error_msg("ERROR: when adding field data to an existing list the \nvariable list must be the same!");
85 
86  for (std::size_t v=0; v<_names.size(); v++)
87  if (_names[v] != field_names[v])
88  libmesh_error_msg("ERROR: when adding field data to an existing list the \nvariable list must be the same!");
89  }
90 
91  // otherwise copy the names
92  else
93  _names = field_names;
94 
95  // append the data
96  _src_pts.insert (_src_pts.end(),
97  pts.begin(),
98  pts.end());
99 
100  _src_vals.insert (_src_vals.end(),
101  vals.begin(),
102  vals.end());
103 
104  libmesh_assert_equal_to (_src_vals.size(),
105  _src_pts.size()*this->n_field_variables());
106 }

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

◆ clear()

template<unsigned int KDDim, class RBF >
void libMesh::RadialBasisInterpolation< KDDim, RBF >::clear ( )
overridevirtual

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

Reimplemented from libMesh::InverseDistanceInterpolation< KDDim >.

Definition at line 42 of file radial_basis_interpolation.C.

43 {
44  // Call base class clear method
46 }

References libMesh::InverseDistanceInterpolation< KDDim >::clear().

◆ comm()

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

Definition at line 94 of file parallel_object.h.

95  { return _communicator; }

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::BoundaryInfo::_find_id_maps(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::EquationSystems::_read_impl(), 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::ImplicitSystem::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::DynaIO::add_spline_constraints(), libMesh::System::add_vector(), libMesh::UnstructuredMesh::all_second_order(), 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::MeshCommunication::assign_global_indices(), libMesh::DofMap::attach_matrix(), 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::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::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ExodusII_IO::copy_elemental_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::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::RBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::RBEIMConstruction::evaluate_mesh_function(), 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::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::EigenSystem::init_matrices(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_rb_construction(), 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_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_preconditioner_apply(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), 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(), 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_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(), 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(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), 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::MeshTools::paranoid_n_levels(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::print_dof_constraints(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), 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::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::RBEIMConstruction::set_explicit_sys_subvector(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::split_mesh(), libMesh::BoundaryInfo::sync(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), SystemsTest::testBlockRestrictedVarNDofs(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), SystemsTest::testProjectCubeWithMeshFunction(), CheckpointIOTest::testSplitter(), libMesh::MeshTools::total_weight(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::RBEIMConstruction::update_RB_system_matrices(), 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::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().

◆ construct_kd_tree()

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

Build & initialize the KD tree, if needed.

Definition at line 154 of file meshfree_interpolation.C.

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

References libMesh::libmesh_assert().

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

◆ 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.

117  { return _names; }

References libMesh::MeshfreeInterpolation::_names.

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

◆ 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 129 of file meshfree_interpolation.C.

130 {
131 #ifndef LIBMESH_HAVE_MPI
132 
133  // no MPI -- no-op
134  return;
135 
136 #else
137 
138  // This function must be run on all processors at once
139  parallel_object_only();
140 
141  LOG_SCOPE ("gather_remote_data()", "MeshfreeInterpolation");
142 
143  this->comm().allgather(_src_pts);
144  this->comm().allgather(_src_vals);
145 
146 #endif // LIBMESH_HAVE_MPI
147 }

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

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

◆ 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.

123  { return _src_pts; }

References libMesh::MeshfreeInterpolation::_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.

129  { return _src_vals; }

References libMesh::MeshfreeInterpolation::_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
protectedvirtualinherited

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

Definition at line 255 of file meshfree_interpolation.C.

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

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

◆ interpolate_field_data()

template<unsigned int KDDim, class RBF >
void libMesh::RadialBasisInterpolation< KDDim, RBF >::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.

Reimplemented from libMesh::InverseDistanceInterpolation< KDDim >.

Definition at line 154 of file radial_basis_interpolation.C.

157 {
158  LOG_SCOPE ("interpolate_field_data()", "RadialBasisInterpolation<>");
159 
160  libmesh_experimental();
161 
162  const unsigned int
163  n_vars = this->n_field_variables();
164 
165  const std::size_t
166  n_src_pts = this->_src_pts.size(),
167  n_tgt_pts = tgt_pts.size();
168 
169  libmesh_assert_equal_to (_weights.size(), this->_src_vals.size());
170  libmesh_assert_equal_to (field_names.size(), this->n_field_variables());
171 
172  // If we already have field variables, we assume we are appending.
173  // that means the names and ordering better be identical!
174  if (this->_names.size() != field_names.size())
175  libmesh_error_msg("ERROR: when adding field data to an existing list the \nvariable list must be the same!");
176 
177  for (std::size_t v=0; v<this->_names.size(); v++)
178  if (_names[v] != field_names[v])
179  libmesh_error_msg("ERROR: when adding field data to an existing list the \nvariable list must be the same!");
180 
181 
182  RBF rbf(_r_bbox);
183 
184  tgt_vals.resize (n_tgt_pts*n_vars); std::fill (tgt_vals.begin(), tgt_vals.end(), Number(0.));
185 
186  for (std::size_t tgt=0; tgt<n_tgt_pts; tgt++)
187  {
188  const Point & p (tgt_pts[tgt]);
189 
190  for (std::size_t i=0; i<n_src_pts; i++)
191  {
192  const Point & x_i(_src_pts[i]);
193  const Real
194  r_i = (p - x_i).norm(),
195  phi_i = rbf(r_i);
196 
197  for (unsigned int var=0; var<n_vars; var++)
198  tgt_vals[tgt*n_vars + var] += _weights[i*n_vars + var]*phi_i;
199  }
200  }
201 }

References n_vars, std::norm(), and libMesh::Real.

◆ 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.

104  { return cast_int<unsigned int>(_names.size()); }

References libMesh::MeshfreeInterpolation::_names.

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

◆ n_processors()

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

Definition at line 100 of file parallel_object.h.

101  { return cast_int<processor_id_type>(_communicator.size()); }

References libMesh::ParallelObject::_communicator.

Referenced by 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::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::EnsightIO::EnsightIO(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_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::partition(), 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(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), CheckpointIOTest::testSplitter(), WriteVecAndScalar::testWrite(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::VTKIO::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().

◆ prepare_for_use()

template<unsigned int KDDim, class RBF >
void libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use ( )
overridevirtual

Prepares data structures for use.

Reimplemented from libMesh::MeshfreeInterpolation.

Definition at line 51 of file radial_basis_interpolation.C.

52 {
53  // Call base class methods for prep
56 
57 #ifndef LIBMESH_HAVE_EIGEN
58 
59  libmesh_error_msg("ERROR: this functionality presently requires Eigen!");
60 
61 #else
62  LOG_SCOPE ("prepare_for_use()", "RadialBasisInterpolation<>");
63 
64  // Construct a bounding box for our source points
66 
67  const std::size_t n_src_pts = this->_src_pts.size();
68  const unsigned int n_vars = this->n_field_variables();
69  libmesh_assert_equal_to (this->_src_vals.size(), n_src_pts*this->n_field_variables());
70 
71  {
72  Point
73  &p_min(_src_bbox.min()),
74  &p_max(_src_bbox.max());
75 
76  for (std::size_t p=0; p<n_src_pts; p++)
77  {
78  const Point & p_src(_src_pts[p]);
79 
80  for (unsigned int d=0; d<LIBMESH_DIM; d++)
81  {
82  p_min(d) = std::min(p_min(d), p_src(d));
83  p_max(d) = std::max(p_max(d), p_src(d));
84  }
85  }
86  }
87 
88  libMesh::out << "bounding box is \n"
89  << _src_bbox.min() << '\n'
90  << _src_bbox.max() << std::endl;
91 
92 
93  // Construct the Radial Basis Function, giving it the size of the domain
94  if (_r_override < 0)
95  _r_bbox = (_src_bbox.max() - _src_bbox.min()).norm();
96  else
98 
99  RBF rbf(_r_bbox);
100 
101  libMesh::out << "bounding box is \n"
102  << _src_bbox.min() << '\n'
103  << _src_bbox.max() << '\n'
104  << "r_bbox = " << _r_bbox << '\n'
105  << "rbf(r_bbox/2) = " << rbf(_r_bbox/2) << std::endl;
106 
107 
108  // Construct the projection Matrix
109  typedef Eigen::Matrix<Number, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> DynamicMatrix;
110  //typedef Eigen::Matrix<Number, Eigen::Dynamic, 1, Eigen::ColMajor> DynamicVector;
111 
112  DynamicMatrix A(n_src_pts, n_src_pts), x(n_src_pts,n_vars), b(n_src_pts,n_vars);
113 
114  for (std::size_t i=0; i<n_src_pts; i++)
115  {
116  const Point & x_i (_src_pts[i]);
117 
118  // Diagonal
119  A(i,i) = rbf(0.);
120 
121  for (std::size_t j=i+1; j<n_src_pts; j++)
122  {
123  const Point & x_j (_src_pts[j]);
124 
125  const Real r_ij = (x_j - x_i).norm();
126 
127  A(i,j) = A(j,i) = rbf(r_ij);
128  }
129 
130  // set source data
131  for (unsigned int var=0; var<n_vars; var++)
132  b(i,var) = _src_vals[i*n_vars + var];
133  }
134 
135 
136  // Solve the linear system
137  x = A.ldlt().solve(b);
138  //x = A.fullPivLu().solve(b);
139 
140  // save the weights for each variable
141  _weights.resize (this->_src_vals.size());
142 
143  for (std::size_t i=0; i<n_src_pts; i++)
144  for (unsigned int var=0; var<n_vars; var++)
145  _weights[i*n_vars + var] = x(i,var);
146 
147 #endif
148 
149 }

References A, libMesh::InverseDistanceInterpolation< KDDim >::construct_kd_tree(), n_vars, std::norm(), libMesh::out, libMesh::MeshfreeInterpolation::prepare_for_use(), and libMesh::Real.

◆ 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 36 of file meshfree_interpolation.C.

37 {
38  os << "MeshfreeInterpolation"
39  << "\n n_source_points()=" << _src_pts.size()
40  << "\n n_field_variables()=" << this->n_field_variables()
41  << "\n";
42 
43  if (this->n_field_variables())
44  {
45  os << " variables = ";
46  for (unsigned int v=0; v<this->n_field_variables(); v++)
47  os << _names[v] << " ";
48  os << std::endl;
49  }
50 
51 }

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

Referenced by libMesh::operator<<().

◆ processor_id()

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

Definition at line 106 of file parallel_object.h.

107  { return cast_int<processor_id_type>(_communicator.rank()); }

References libMesh::ParallelObject::_communicator.

Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::EquationSystems::_read_impl(), 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::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), 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_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMConstruction::evaluate_mesh_function(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), 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::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::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::DofMap::last_dof(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEIMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEIMEvaluation::legacy_write_out_interpolation_points_elem(), 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::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::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::print_dof_constraints(), 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::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), 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::DistributedMesh::renumber_dof_objects(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::LaplaceMeshSmoother::smooth(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusCopyElementSolution(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), CheckpointIOTest::testSplitter(), WriteVecAndScalar::testWrite(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::Parallel::Packing< Elem * >::unpack(), 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::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::VTKIO::write_nodal_data(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEvaluation::write_out_vectors(), 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().

◆ set_field_variables()

void libMesh::MeshfreeInterpolation::set_field_variables ( const 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.

111  { _names = names; }

References libMesh::MeshfreeInterpolation::_names.

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

Member Data Documentation

◆ _communicator

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

◆ _half_power

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

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
mutableprotectedinherited

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
protectedinherited

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
protectedinherited

Definition at line 287 of file meshfree_interpolation.h.

◆ _r_bbox

template<unsigned int KDDim, class RBF = WendlandRBF<KDDim, 2>>
Real libMesh::RadialBasisInterpolation< KDDim, RBF >::_r_bbox
protected

Diagonal of the bounding box.

Definition at line 67 of file radial_basis_interpolation.h.

◆ _r_override

template<unsigned int KDDim, class RBF = WendlandRBF<KDDim, 2>>
Real libMesh::RadialBasisInterpolation< KDDim, RBF >::_r_override
protected

Diagonal override.

Definition at line 72 of file radial_basis_interpolation.h.

◆ _src_bbox

template<unsigned int KDDim, class RBF = WendlandRBF<KDDim, 2>>
BoundingBox libMesh::RadialBasisInterpolation< KDDim, RBF >::_src_bbox
protected

Bounding box for our source points.

Definition at line 57 of file radial_basis_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
mutableprotectedinherited

Temporary work array.

Object level scope to avoid cache thrashing.

Definition at line 323 of file meshfree_interpolation.h.

◆ _weights

template<unsigned int KDDim, class RBF = WendlandRBF<KDDim, 2>>
std::vector<Number> libMesh::RadialBasisInterpolation< KDDim, RBF >::_weights
protected

basis coefficients.

Definition at line 62 of file radial_basis_interpolation.h.


The documentation for this class was generated from the following files:
libMesh::MeshfreeInterpolation::_names
std::vector< std::string > _names
Definition: meshfree_interpolation.h:168
libMesh::Number
Real Number
Definition: libmesh_common.h:195
libMesh::RadialBasisInterpolation::_r_override
Real _r_override
Diagonal override.
Definition: radial_basis_interpolation.h:72
libMesh::RadialBasisInterpolation::_src_bbox
BoundingBox _src_bbox
Bounding box for our source points.
Definition: radial_basis_interpolation.h:57
libMesh::InverseDistanceInterpolation::clear
virtual void clear() override
Clears all internal data structures and restores to a pristine state.
Definition: meshfree_interpolation.C:176
libMesh::RadialBasisInterpolation::_r_bbox
Real _r_bbox
Diagonal of the bounding box.
Definition: radial_basis_interpolation.h:67
n_vars
unsigned int n_vars
Definition: adaptivity_ex3.C:116
libMesh::MeshfreeInterpolation::prepare_for_use
virtual void prepare_for_use()
Prepares data structures for use.
Definition: meshfree_interpolation.C:110
libMesh::MeshfreeInterpolation::n_field_variables
unsigned int n_field_variables() const
The number of field variables.
Definition: meshfree_interpolation.h:103
libMesh::ParallelObject::comm
const Parallel::Communicator & comm() const
Definition: parallel_object.h:94
libMesh::MeshfreeInterpolation::_src_vals
std::vector< Number > _src_vals
Definition: meshfree_interpolation.h:170
libMesh::libmesh_assert
libmesh_assert(ctx)
libMesh::BoundingBox::max
const Point & max() const
Definition: bounding_box.h:85
libMesh::InverseDistanceInterpolation::_point_list_adaptor
PointListAdaptor< KDDim > _point_list_adaptor
Definition: meshfree_interpolation.h:287
radius
const Real radius
Definition: subdomains_ex3.C:48
libMesh::ParallelObject::_communicator
const Parallel::Communicator & _communicator
Definition: parallel_object.h:112
std::pow
double pow(double a, int b)
Definition: libmesh_augment_std_namespace.h:58
A
static PetscErrorCode Mat * A
Definition: petscdmlibmeshimpl.C:1026
libMesh::InverseDistanceInterpolation::_vals
std::vector< Number > _vals
Temporary work array.
Definition: meshfree_interpolation.h:323
libMesh::InverseDistanceInterpolation::construct_kd_tree
virtual void construct_kd_tree()
Build & initialize the KD tree, if needed.
Definition: meshfree_interpolation.C:154
libMesh::MeshfreeInterpolation::INVALID_STRATEGY
Definition: meshfree_interpolation.h:73
libMesh::MeshfreeInterpolation::_src_pts
std::vector< Point > _src_pts
Definition: meshfree_interpolation.h:169
libMesh::BoundingBox::invalidate
void invalidate()
Sets the bounding box to encompass the universe.
Definition: bounding_box.h:64
libMesh::RadialBasisInterpolation::_weights
std::vector< Number > _weights
basis coefficients.
Definition: radial_basis_interpolation.h:62
std::norm
MetaPhysicL::DualNumber< T, D > norm(const MetaPhysicL::DualNumber< T, D > &in)
libMesh::MeshfreeInterpolation::SYNC_SOURCES
Definition: meshfree_interpolation.h:72
libMesh::InverseDistanceInterpolation::_kd_tree
std::unique_ptr< kd_tree_t > _kd_tree
Definition: meshfree_interpolation.h:299
libMesh::Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Definition: libmesh_common.h:121
libMesh::MeshTools::weight
dof_id_type weight(const MeshBase &mesh, const processor_id_type pid)
Definition: mesh_tools.C:236
libMesh::out
OStreamProxy out
libMesh::BoundingBox::min
const Point & min() const
Definition: bounding_box.h:76
libMesh::InverseDistanceInterpolation::_half_power
const Real _half_power
Definition: meshfree_interpolation.h:317