libMesh
Loading...
Searching...
No Matches
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.
 
virtual void clear () override
 Clears all internal data structures and restores to a pristine state.
 
virtual void prepare_for_use () override
 Prepares data structures for use.
 
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.
 
void print_info (std::ostream &os=libMesh::out) const
 Prints information about this object, by default to libMesh::out.
 
unsigned int n_field_variables () const
 The number of field variables.
 
void set_field_variables (std::vector< std::string > names)
 Defines the field variable(s) we are responsible for, and importantly their assumed ordering.
 
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.
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Protected Types

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

Protected Member Functions

virtual void construct_kd_tree ()
 Build & initialize the KD tree, if needed.
 
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.
 
virtual void gather_remote_data ()
 Gathers source points and values that have been added on other processors.
 

Protected Attributes

BoundingBox _src_bbox
 Bounding box for our source points.
 
std::vector< Number_weights
 basis coefficients.
 
Real _r_bbox
 Diagonal of the bounding box.
 
Real _r_override
 Diagonal override.
 
PointListAdaptor< KDDim > _point_list_adaptor
 
std::unique_ptr< kd_tree_t_kd_tree
 
const Real _half_power
 
const unsigned int _n_interp_pts
 
const Number _background_value
 
const Real _background_eff_dist
 
std::vector< Number_vals
 Temporary work array.
 
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, std::size_t> 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.

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 { }
Real _r_bbox
Diagonal of the bounding box.
const Real radius

Member Function Documentation

◆ add_field_data()

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

Sets source data at specified points.

Definition at line 74 of file meshfree_interpolation.C.

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

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

◆ 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 44 of file radial_basis_interpolation.C.

45{
46 // Call base class clear method
48}
virtual void clear() override
Clears all internal data structures and restores to a pristine state.

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 97 of file parallel_object.h.

98 { return _communicator; }
const Parallel::Communicator & _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::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), 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::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::RBEIMEvaluation::add_interpolation_data(), libMesh::CondensedEigenSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::System::add_matrix(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::AdvectionSystem::assemble_claw_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_data(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::MeshTetInterface::check_hull_integrity(), libMesh::MeshBase::complete_preparation(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), PetscSolverConfiguration::configure_solver(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::CondensedEigenSystem::copy_super_to_sub(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), create_wrapped_function(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::RBEIMEvaluation::distribute_bfs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::SmoothnessEstimator::estimate_smoothness(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::RBEIMEvaluation::get_eim_basis_function_node_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_side_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_value(), libMesh::MeshBase::get_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::RBEIMEvaluation::get_parametrized_function_node_value(), libMesh::RBEIMEvaluation::get_parametrized_function_side_value(), libMesh::RBEIMEvaluation::get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBEIMConstruction::get_random_point(), libMesh::MeshTetInterface::improve_hull_integrity(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::StaticCondensation::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::LocationMap< T >::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), ElasticitySystem::init_data(), libMesh::AdvectionSystem::init_data(), libMesh::ClawSystem::init_data(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::Modification::interpolate_surface(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::DofMap::n_constrained_dofs(), libMesh::MeshBase::n_constraint_rows(), libMesh::DofMap::n_dofs(), libMesh::DofMap::n_dofs_per_processor(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::PetscVector< T >::operator=(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), LaplaceSystem::postprocess(), PoissonSystem::postprocess(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), libMesh::XdrIO::read(), libMesh::Nemesis_IO::read(), FEMParameters::read(), libMesh::EquationSystems::read(), libMesh::CheckpointIO::read_header(), libMesh::ExodusII_IO::read_header(), libMesh::System::read_header(), libMesh::XdrIO::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), MeshFunctionTest::read_variable_info_from_output_data(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::BoundaryInfo::remove_edge_id(), libMesh::BoundaryInfo::remove_node_id(), libMesh::BoundaryInfo::remove_shellface_id(), libMesh::BoundaryInfo::remove_side_id(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::VariationalMeshSmoother::smooth(), libMesh::NoxNonlinearSolver< Number >::solve(), libMesh::ClawSystem::solve_conservation_law(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::MeshBase::sync_subdomain_name_map(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), ExodusC0PolyhedronTest::test_write_and_read_hexagonal_prism(), ExodusC0PolygonTest::test_write_and_read_pentagon(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), CheckpointIOTest::testC0PolygonCheckpoint(), VolumeTest::testC0PolygonMethods(), CheckpointIOTest::testC0PolyhedronCheckpoint(), VolumeTest::testC0PolyhedronMethods(), ConstraintOperatorTest::testCoreform(), ConnectedComponentsTest::testEdge(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), BoundaryMeshSubdomainTest::testPerBoundarySubdomain(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriEdge3ToTri7CenterFixup(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), SystemsTest::testProjectScalarCoarsening(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), BoundaryMeshSubdomainTest::testSingleSubdomain(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::RBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_assembly(), update_current_local_solution(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::XdrIO::write(), libMesh::NameBasedIO::write(), libMesh::VTKIO::write_nodal_data(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::TransientRBConstruction::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 156 of file meshfree_interpolation.C.

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

References libMesh::libmesh_assert().

Referenced by 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::MeshfreeInterpolationFunction::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 131 of file meshfree_interpolation.C.

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

References libMesh::MeshfreeInterpolation::_src_pts, libMesh::MeshfreeInterpolation::_src_vals, libMesh::Parallel::Communicator::allgather(), 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.

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

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

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

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

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

References libMesh::Real.

◆ 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 167 of file radial_basis_interpolation.C.

170{
171 LOG_SCOPE ("interpolate_field_data()", "RadialBasisInterpolation<>");
172
173 libmesh_experimental();
174
175 const unsigned int
176 n_vars = this->n_field_variables();
177
178 const std::size_t
179 n_src_pts = this->_src_pts.size(),
180 n_tgt_pts = tgt_pts.size();
181
182 libmesh_assert_equal_to (_weights.size(), this->_src_vals.size());
183 libmesh_assert_equal_to (field_names.size(), this->n_field_variables());
184
185 // If we already have field variables, we assume we are appending.
186 // that means the names and ordering better be identical!
187 libmesh_error_msg_if(this->_names.size() != field_names.size(),
188 "ERROR: when adding field data to an existing list the \nvariable list must be the same!");
189
190 for (auto v : index_range(this->_names))
191 libmesh_error_msg_if(_names[v] != field_names[v],
192 "ERROR: when adding field data to an existing list the \nvariable list must be the same!");
193
194
195 RBF rbf(_r_bbox);
196
197 tgt_vals.resize (n_tgt_pts*n_vars); std::fill (tgt_vals.begin(), tgt_vals.end(), Number(0.));
198
199 for (std::size_t tgt=0; tgt<n_tgt_pts; tgt++)
200 {
201 const Point & p (tgt_pts[tgt]);
202
203 for (std::size_t i=0; i<n_src_pts; i++)
204 {
205 const Point & x_i(_src_pts[i]);
206 const Real
207 r_i = (p - x_i).norm(),
208 phi_i = rbf(r_i);
209
210 for (unsigned int var=0; var<n_vars; var++)
211 tgt_vals[tgt*n_vars + var] += _weights[i*n_vars + var]*phi_i;
212 }
213 }
214}
unsigned int n_vars
std::vector< Number > _weights
basis coefficients.
auto norm(const T &a)

References libMesh::index_range(), n_vars, and libMesh::Real.

Referenced by main().

◆ 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::print_info().

◆ n_processors()

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

Definition at line 103 of file parallel_object.h.

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

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

Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::Partitioner::build_graph(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::NumericVector< T >::is_effectively_ghosted(), libMesh::NumericVector< T >::is_effectively_serial(), 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::MeshBase::n_active_elem_on_proc(), libMesh::DofMap::n_dofs_per_processor(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::NameBasedIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::ExodusII_IO::write_nodal_data(), 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 53 of file radial_basis_interpolation.C.

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

References b, libMesh::InverseDistanceInterpolation< KDDim >::construct_kd_tree(), n_vars, libMesh::MeshfreeInterpolation::prepare_for_use(), and libMesh::Real.

Referenced by main().

◆ print_info()

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

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

Definition at line 38 of file meshfree_interpolation.C.

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

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

◆ processor_id()

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

Definition at line 114 of file parallel_object.h.

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

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

Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshFunction::check_found_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMapBase::end_dof(), libMesh::DofMapBase::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMapBase::first_dof(), libMesh::DofMapBase::first_old_dof(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::MeshBase::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), 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::MeshTools::Modification::interpolate_surface(), libMesh::SparsityPattern::Build::join(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), main(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::MeshBase::n_constraint_rows(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMapBase::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::XdrIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::NameBasedIO::read(), libMesh::EquationSystems::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::CheckpointIO::read_header(), libMesh::ExodusII_IO::read_header(), libMesh::System::read_header(), libMesh::XdrIO::read_header(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), ExodusC0PolyhedronTest::test_write_and_read_hexagonal_prism(), ExodusC0PolygonTest::test_write_and_read_pentagon(), MeshInputTest::testAbaqusRead(), MeshInputTest::testBadGmsh(), BoundaryInfoTest::testBoundaryIDs(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testGmshBCIDOverlap(), MeshInputTest::testGoodGmsh(), MeshInputTest::testGoodSTL(), MeshInputTest::testGoodSTLBinary(), BoundaryInfoTest::testInternalBoundary(), MeshInputTest::testLowOrderEdgeBlocks(), BoundaryMeshSubdomainTest::testPerBoundarySubdomain(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), BoundaryMeshSubdomainTest::testSingleSubdomain(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::NetGenMeshInterface::triangulate(), libMesh::Parallel::Packing< Elem * >::unpack(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::XdrIO::write(), libMesh::NameBasedIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO::write_element_data_from_discontinuous_nodal_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::Nemesis_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 ( 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 = std::move(names); }

References libMesh::MeshfreeInterpolation::_names.

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

Member Data Documentation

◆ _background_eff_dist

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

Definition at line 320 of file meshfree_interpolation.h.

◆ _background_value

template<unsigned int KDDim>
const Number libMesh::InverseDistanceInterpolation< KDDim >::_background_value
protectedinherited

Definition at line 319 of file meshfree_interpolation.h.

◆ _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 325 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: