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 () libmesh_override
 Clears all internal data structures and restores to a pristine state. More...
 
virtual void prepare_for_use () libmesh_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 libmesh_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::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 > 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
 
UniquePtr< 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

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" 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 71 of file meshfree_interpolation.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 79 of file radial_basis_interpolation.h.

References libMesh::RadialBasisInterpolation< KDDim, RBF >::clear(), libMesh::RadialBasisInterpolation< KDDim, RBF >::interpolate_field_data(), and libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use().

80  :
81  InverseDistanceInterpolation<KDDim> (comm_in,8,2),
82  _r_bbox(0.),
84  { libmesh_experimental(); }
const Real radius
Real _r_bbox
Diagonal of the bounding box.

Member Function Documentation

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.

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

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

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 }
unsigned int n_field_variables() const
The number of field variables.
std::vector< std::string > _names
template<unsigned int KDDim, class RBF >
void libMesh::RadialBasisInterpolation< KDDim, RBF >::clear ( )
virtual

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

Reimplemented from libMesh::InverseDistanceInterpolation< KDDim >.

Definition at line 40 of file radial_basis_interpolation.C.

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

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

41 {
42  // Call base class clear method
44 }
virtual void clear() libmesh_override
Clears all internal data structures and restores to a pristine state.
const Parallel::Communicator& libMesh::ParallelObject::comm ( ) const
inherited
Returns
A reference to the Parallel::Communicator object used by this mesh.

Definition at line 87 of file parallel_object.h.

References libMesh::ParallelObject::_communicator.

Referenced by libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_petsc_preconditioner_apply(), libMesh::__libmesh_petsc_snes_jacobian(), libMesh::__libmesh_petsc_snes_postcheck(), libMesh::__libmesh_petsc_snes_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::ParmetisPartitioner::_do_repartition(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult_add(), libMesh::EquationSystems::_read_impl(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), add_cube_convex_hull_to_mesh(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::ImplicitSystem::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_vector(), libMesh::EigenSparseLinearSolver< T >::adjoint_solve(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), 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::ParmetisPartitioner::assign_partitioning(), libMesh::DofMap::attach_matrix(), libMesh::Parallel::BinSorter< KeyType, IdxType >::binsort(), libMesh::Parallel::Sort< KeyType, IdxType >::binsort(), libMesh::MeshCommunication::broadcast(), libMesh::SparseMatrix< T >::build(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Parallel::Histogram< KeyType, IdxType >::build_histogram(), libMesh::PetscNonlinearSolver< T >::build_mat_null_space(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshBase::cache_elem_dims(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::Parallel::Sort< KeyType, IdxType >::communicate_bins(), 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::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::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), 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::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::RBConstruction::enrich_RB_space(), AssembleOptimization::equality_constraints(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::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_nelem_target(), libMesh::MeshCommunication::gather(), libMesh::MeshCommunication::gather_neighboring_elements(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::EquationSystems::get_solution(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TopologyMap::init(), libMesh::PetscDiffSolver::init(), libMesh::TimeSolver::init(), libMesh::TaoOptimizationSolver< T >::init(), libMesh::PetscNonlinearSolver< T >::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::EigenSystem::init_data(), libMesh::EigenSystem::init_matrices(), libMesh::ParmetisPartitioner::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_rb_construction(), integrate_function(), 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::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(), libMesh::MeshSerializer::MeshSerializer(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), 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(), new_function_base(), 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::Partitioner::partition(), libMesh::MetisPartitioner::partition_range(), 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::SparseMatrix< T >::print(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshCommunication::redistribute(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::RBEIMConstruction::set_explicit_sys_subvector(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::Parallel::Sort< KeyType, IdxType >::sort(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), libMesh::MeshRefinement::test_unflagged(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), SystemsTest::testProjectCubeWithMeshFunction(), 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::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::XdrIO::write_serialized_bcs_helper(), 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().

88  { return _communicator; }
const Parallel::Communicator & _communicator
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.

References libMesh::libmesh_assert(), and libmesh_nullptr.

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

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() == libmesh_nullptr)
162  _kd_tree.reset (new kd_tree_t (KDDim,
164  nanoflann::KDTreeSingleIndexAdaptorParams(10 /* max leaf */)));
165 
167 
168  _kd_tree->buildIndex();
169 #endif
170 }
const class libmesh_nullptr_t libmesh_nullptr
libmesh_assert(j)
nanoflann::KDTreeSingleIndexAdaptor< nanoflann::L2_Simple_Adaptor< Real, PointListAdaptor< KDDim > >, PointListAdaptor< KDDim >, KDDim > kd_tree_t
const std::vector<std::string>& libMesh::MeshfreeInterpolation::field_variables ( ) const
inherited
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
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.

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

Referenced by libMesh::MeshfreeInterpolation::get_source_vals(), and libMesh::MeshfreeInterpolation::prepare_for_use().

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 }
const Parallel::Communicator & comm() const
void allgather(const T &send, std::vector< T > &recv) const
Take a vector of length this->size(), and fill in recv[processor_id] = the value of send on that proc...
std::vector<Point>& libMesh::MeshfreeInterpolation::get_source_points ( )
inherited
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; }
std::vector<Number>& libMesh::MeshfreeInterpolation::get_source_vals ( )
inherited
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 256 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::_src_vals, std::max(), libMesh::MeshfreeInterpolation::n_field_variables(), std::pow(), libMesh::Real, and libMesh::MeshTools::weight().

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

Interpolate source data at target points.

Pure virtual, must be overridden in derived classes.

Reimplemented from libMesh::InverseDistanceInterpolation< KDDim >.

Definition at line 152 of file radial_basis_interpolation.C.

References n_vars, and libMesh::Real.

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

155 {
156  LOG_SCOPE ("interpolate_field_data()", "RadialBasisInterpolation<>");
157 
158  libmesh_experimental();
159 
160  const unsigned int
161  n_vars = this->n_field_variables();
162 
163  const std::size_t
164  n_src_pts = this->_src_pts.size(),
165  n_tgt_pts = tgt_pts.size();
166 
167  libmesh_assert_equal_to (_weights.size(), this->_src_vals.size());
168  libmesh_assert_equal_to (field_names.size(), this->n_field_variables());
169 
170  // If we already have field variables, we assume we are appending.
171  // that means the names and ordering better be identical!
172  if (this->_names.size() != field_names.size())
173  libmesh_error_msg("ERROR: when adding field data to an existing list the \nvariable list must be the same!");
174 
175  for (std::size_t v=0; v<this->_names.size(); v++)
176  if (_names[v] != field_names[v])
177  libmesh_error_msg("ERROR: when adding field data to an existing list the \nvariable list must be the same!");
178 
179 
180  RBF rbf(_r_bbox);
181 
182  tgt_vals.resize (n_tgt_pts*n_vars); std::fill (tgt_vals.begin(), tgt_vals.end(), Number(0.));
183 
184  for (std::size_t tgt=0; tgt<n_tgt_pts; tgt++)
185  {
186  const Point & p (tgt_pts[tgt]);
187 
188  for (std::size_t i=0; i<n_src_pts; i++)
189  {
190  const Point & x_i(_src_pts[i]);
191  const Real
192  r_i = (p - x_i).norm(),
193  phi_i = rbf(r_i);
194 
195  for (unsigned int var=0; var<n_vars; var++)
196  tgt_vals[tgt*n_vars + var] += _weights[i*n_vars + var]*phi_i;
197  }
198  }
199 }
unsigned int n_field_variables() const
The number of field variables.
Real _r_bbox
Diagonal of the bounding box.
const unsigned int n_vars
Definition: tecplot_io.C:68
std::vector< Number > _weights
basis coefficients.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< std::string > _names
unsigned int libMesh::MeshfreeInterpolation::n_field_variables ( ) const
inherited
processor_id_type libMesh::ParallelObject::n_processors ( ) const
inherited
Returns
The number of processors in the group.

Definition at line 93 of file parallel_object.h.

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

Referenced by libMesh::ParmetisPartitioner::_do_repartition(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assembly(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::MeshCommunication::broadcast(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::DistributedMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::MeshTools::correct_node_proc_ids(), 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::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshCommunication::gather(), libMesh::MeshCommunication::gather_neighboring_elements(), libMesh::MeshBase::get_info(), libMesh::EquationSystems::get_solution(), libMesh::SystemSubsetBySubdomain::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), 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::SparsityPattern::Build::parallel_sync(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::PetscLinearSolver< T >::PetscLinearSolver(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::SparseMatrix< T >::print(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::MeshCommunication::redistribute(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Parallel::Sort< KeyType, IdxType >::sort(), WriteVecAndScalar::testWrite(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().

94  { return cast_int<processor_id_type>(_communicator.size()); }
unsigned int size() const
Definition: parallel.h:726
const Parallel::Communicator & _communicator
template<unsigned int KDDim, class RBF >
void libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use ( )
virtual

Prepares data structures for use.

Reimplemented from libMesh::MeshfreeInterpolation.

Definition at line 49 of file radial_basis_interpolation.C.

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

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

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

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

Referenced by libMesh::MeshfreeInterpolation::MeshfreeInterpolation(), and libMesh::operator<<().

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 }
unsigned int n_field_variables() const
The number of field variables.
std::vector< std::string > _names
processor_id_type libMesh::ParallelObject::processor_id ( ) const
inherited
Returns
The rank of this processor in the group.

Definition at line 99 of file parallel_object.h.

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

Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::EquationSystems::_read_impl(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshRefinement::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::FEMSystem::assembly(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::MeshCommunication::broadcast(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::ParmetisPartitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::DofMap::build_sparsity(), 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::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::EnsightIO::EnsightIO(), libMesh::RBEIMConstruction::evaluate_mesh_function(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshCommunication::gather(), libMesh::MeshCommunication::gather_neighboring_elements(), 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::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::EquationSystems::get_solution(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::SystemSubsetBySubdomain::init(), HeatSystem::init_data(), libMesh::ParmetisPartitioner::initialize(), 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::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_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), 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::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::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::SparsityPattern::Build::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::MetisPartitioner::partition_range(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::SparseMatrix< T >::print(), libMesh::NumericVector< T >::print_global(), 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::CheckpointIO::read(), libMesh::XdrIO::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::MeshCommunication::redistribute(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::MeshCommunication::send_coarse_ghosts(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::LaplaceMeshSmoother::smooth(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), BoundaryInfoTest::testShellFaceConstraints(), 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::MeshTools::weight(), libMesh::NameBasedIO::write(), libMesh::CheckpointIO::write(), libMesh::XdrIO::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_elements(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), 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::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::RBConstruction::write_riesz_representors_to_files(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), and libMesh::ExodusII_IO_Helper::write_timestep().

100  { return cast_int<processor_id_type>(_communicator.rank()); }
const Parallel::Communicator & _communicator
unsigned int rank() const
Definition: parallel.h:724
void libMesh::MeshfreeInterpolation::set_field_variables ( const std::vector< std::string > &  names)
inherited

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 = names; }
std::vector< std::string > _names

Member Data Documentation

const Parallel::Communicator& libMesh::ParallelObject::_communicator
protectedinherited
template<unsigned int KDDim>
const Real libMesh::InverseDistanceInterpolation< KDDim >::_half_power
protectedinherited

Definition at line 317 of file meshfree_interpolation.h.

template<unsigned int KDDim>
UniquePtr<kd_tree_t> libMesh::InverseDistanceInterpolation< KDDim >::_kd_tree
mutableprotectedinherited

Definition at line 299 of file meshfree_interpolation.h.

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

Definition at line 318 of file meshfree_interpolation.h.

std::vector<std::string> libMesh::MeshfreeInterpolation::_names
protectedinherited
ParallelizationStrategy libMesh::MeshfreeInterpolation::_parallelization_strategy
protectedinherited
template<unsigned int KDDim>
PointListAdaptor<KDDim> libMesh::InverseDistanceInterpolation< KDDim >::_point_list_adaptor
protectedinherited

Definition at line 287 of file meshfree_interpolation.h.

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.

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.

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.

std::vector<Point> libMesh::MeshfreeInterpolation::_src_pts
protectedinherited
std::vector<Number> libMesh::MeshfreeInterpolation::_src_vals
protectedinherited
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.

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: