oomph::HangInfo Class Reference

#include <nodes.h>

Public Member Functions

 HangInfo ()
 Default constructor, initialise vectors to have size zero. More...
 
 HangInfo (const unsigned &n_master)
 Alternative constructor when the number of master nodes is known. More...
 
 ~HangInfo ()
 Delete the storage. More...
 
 HangInfo (const HangInfo &)=delete
 Broken copy constructor. More...
 
void operator= (const HangInfo &)=delete
 Broken assignment operator. More...
 
unsigned nmaster () const
 Return the number of master nodes. More...
 
Node *const & master_node_pt (const unsigned &i) const
 Return a pointer to the i-th master node. More...
 
double const & master_weight (const unsigned &i) const
 Return weight for dofs on i-th master node. More...
 
void set_master_node_pt (const unsigned &i, Node *const &master_node_pt, const double &weight)
 Set the pointer to the i-th master node and its weight. More...
 
void add_master_node_pt (Node *const &master_node_pt, const double &weight)
 

Private Member Functions

void range_check (const unsigned &i) const
 

Private Attributes

Node ** Master_nodes_pt
 C-style array of pointers to nodes that this hanging node depends on. More...
 
doubleMaster_weights
 C-style array of weights for the dofs on the master nodes. More...
 
unsigned Nmaster
 Number of master nodes required by this hanging node. More...
 

Detailed Description

Class that contains data for hanging nodes.

To ensure inter-element continuity, the values and nodal positions of hanging nodes must be linear combinations of the values and positions on certain adjacent "master" nodes. For every hanging node \( J \) ,

\[ {\bf U}_J = \sum_{K} {\bf U}_{K} \omega_{JK} \]

and

\[ {\bf X}_J = \sum_{K} {\bf X}_{K} \omega_{JK} \]

, where \( {\bf U}_I \) and \( {\bf U}_I \) are Vectors containing the nodal values and positions of node \( I \) respectively; the sum is taken over the hanging node's master nodes \( K \) and \( \omega_{JK} \) are suitable weights. This class provides storage and access functions for the pointers to the master nodes and their associated weights.

Constructor & Destructor Documentation

◆ HangInfo() [1/3]

oomph::HangInfo::HangInfo ( )
inline

Default constructor, initialise vectors to have size zero.

746  {
747 #ifdef LEAK_CHECK
748  LeakCheckNames::HangInfo_build += 1;
749 #endif
750  }
Node ** Master_nodes_pt
C-style array of pointers to nodes that this hanging node depends on.
Definition: nodes.h:839
unsigned Nmaster
Number of master nodes required by this hanging node.
Definition: nodes.h:845
double * Master_weights
C-style array of weights for the dofs on the master nodes.
Definition: nodes.h:842

◆ HangInfo() [2/3]

oomph::HangInfo::HangInfo ( const unsigned n_master)
inline

Alternative constructor when the number of master nodes is known.

753  : Nmaster(n_master)
754  {
755 #ifdef LEAK_CHECK
756  LeakCheckNames::HangInfo_build += 1;
757 #endif
758  Master_nodes_pt = new Node*[n_master];
759  Master_weights = new double[n_master];
760  }

References Master_nodes_pt, and Master_weights.

◆ ~HangInfo()

oomph::HangInfo::~HangInfo ( )
inline

Delete the storage.

764  {
765 #ifdef LEAK_CHECK
766  LeakCheckNames::HangInfo_build -= 1;
767 #endif
768  // If there is any storage, then delete it
769  if (Nmaster > 0)
770  {
771  delete[] Master_nodes_pt;
772  Master_nodes_pt = 0;
773  delete[] Master_weights;
774  Master_weights = 0;
775  }
776  }

References Master_nodes_pt, Master_weights, and Nmaster.

◆ HangInfo() [3/3]

oomph::HangInfo::HangInfo ( const HangInfo )
delete

Broken copy constructor.

Member Function Documentation

◆ add_master_node_pt()

void oomph::HangInfo::add_master_node_pt ( Node *const &  master_node_pt_,
const double weight 
)

Add (pointer to) master node and corresponding weight to the internally stored (pointers to) master nodes and weights

Add (pointer to) master node and corresponding weight to the internally stored (pointers to) master nodes and weights.

1491  {
1492  // Find the present number of master nodes
1493  const unsigned n_master = Nmaster;
1494  // Make new data
1495  Node** new_master_nodes_pt = new Node*[n_master + 1];
1496  double* new_master_weights = new double[n_master + 1];
1497 
1498  // Copy the old values over to the new data
1499  for (unsigned i = 0; i < n_master; i++)
1500  {
1501  new_master_nodes_pt[i] = Master_nodes_pt[i];
1502  new_master_weights[i] = Master_weights[i];
1503  }
1504  // Add the new values at the end
1505  new_master_nodes_pt[n_master] = master_node_pt_;
1506  new_master_weights[n_master] = weight;
1507 
1508  // Reset the pointers
1509  delete[] Master_nodes_pt;
1510  Master_nodes_pt = new_master_nodes_pt;
1511  delete[] Master_weights;
1512  Master_weights = new_master_weights;
1513  // Increase the number of master nodes
1514  ++Nmaster;
1515  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9

References i, Master_nodes_pt, Master_weights, and Nmaster.

◆ master_node_pt()

Node* const& oomph::HangInfo::master_node_pt ( const unsigned i) const
inline

Return a pointer to the i-th master node.

792  {
793 #ifdef PARANOID
794  if (Nmaster == 0)
795  {
796  throw OomphLibError("Hanging node data hasn't been setup yet \n",
799  }
800 #endif
801 #ifdef RANGE_CHECKING
802  range_check(i);
803 #endif
804  return Master_nodes_pt[i];
805  }
void range_check(const unsigned &i) const
Definition: nodes.cc:1456
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86

References i, Master_nodes_pt, Nmaster, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and range_check().

Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), oomph::ElementWithMovingNodes::assemble_set_of_all_geometric_data(), oomph::RefineableElement::assign_hanging_local_eqn_numbers(), oomph::RefineableSolidElement::assign_solid_hanging_local_eqn_numbers(), oomph::TreeBasedRefineableMeshBase::complete_hanging_nodes_recursively(), oomph::Mesh::delete_all_external_storage(), oomph::RefineableAdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableSphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableLinearElasticityEquations< DIM >::fill_in_generic_contribution_to_residuals_linear_elasticity(), oomph::RefineableQDPVDElement< DIM, NNODE_1D >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >::fill_in_generic_contribution_to_residuals_time_harmonic_linear_elasticity(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineableNavierStokesEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), oomph::RefineablePolarStreamfunctionEquations::fill_in_generic_residual_contribution(), oomph::RefineableAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_adv_diff(), oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >::fill_in_generic_residual_contribution_adv_diff_react(), oomph::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_cons_adv_diff(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), oomph::RefineableFpPressureAdvDiffRobinBCSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableHelmholtzEquations< DIM >::fill_in_generic_residual_contribution_helmholtz(), oomph::RefineablePMLHelmholtzEquations< DIM >::fill_in_generic_residual_contribution_helmholtz(), oomph::RefineableLinearWaveEquations< DIM >::fill_in_generic_residual_contribution_lin_wave(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableLinearisedNavierStokesEquations::fill_in_generic_residual_contribution_linearised_nst(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineablePoissonEquations< DIM >::fill_in_generic_residual_contribution_poisson(), oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), oomph::RefineableSphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableUnsteadyHeatEquations< DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableElement::fill_in_jacobian_from_nodal_by_fd(), oomph::RefineableSolidElement::fill_in_jacobian_from_solid_position_by_fd(), RefineableQCrouzeixRaviartElementWithExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), RefineableQAxisymCrouzeixRaviartBoussinesqElement::fill_in_off_diagonal_block_analytic(), RefineableQAxisymAdvectionDiffusionBoussinesqElement::fill_in_off_diagonal_block_analytic(), RefineableQCrouzeixRaviartElementWithTwoExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), RefineableQAdvectionDiffusionElementWithExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_off_diagonal_block_analytic(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::fill_in_off_diagonal_block_analytic(), RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_by_fd(), oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd(), oomph::RefineableSolidElement::geom_data_pt(), RefineableModalPoissonEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineablePoissonEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineablePVDEquationsWithPressure< DIM >::get_mass_matrix_diagonal(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableElement::identify_field_data_for_interactions(), oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::identify_geometric_data(), oomph::RefineableSolidElement::identify_geometric_data(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::identify_load_data(), oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::identify_load_data(), oomph::RefineableQTaylorHoodElement< DIM >::identify_load_data(), oomph::RefineableQCrouzeixRaviartElement< DIM >::identify_load_data(), oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >::identify_load_data(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::identify_load_data(), oomph::RefineablePolarTaylorHoodElement::insert_load_data(), oomph::RefineablePolarCrouzeixRaviartElement::insert_load_data(), oomph::SolidNode::lagrangian_position(), oomph::SolidNode::lagrangian_position_gen(), oomph::RefineableSolidElement::ngeom_data(), oomph::AlgebraicMesh::node_update(), oomph::Mesh::node_update(), oomph::AlgebraicNode::node_update(), oomph::MacroElementNodeUpdateNode::node_update(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), oomph::MGSolver< DIM >::plot(), oomph::Node::position(), oomph::Node::position_gen(), oomph::RefineableSolidTractionElement< ELEMENT >::refineable_fill_in_contribution_to_residuals_solid_traction(), oomph::RefineableImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_displ_lagr_multiplier(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::MGSolver< DIM >::setup_interpolation_matrices(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices(), oomph::MGSolver< DIM >::setup_interpolation_matrices_unstructured(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices_unstructured(), and oomph::Node::value().

◆ master_weight()

double const& oomph::HangInfo::master_weight ( const unsigned i) const
inline

Return weight for dofs on i-th master node.

809  {
810 #ifdef PARANOID
811  if (Nmaster == 0)
812  {
813  throw OomphLibError("Hanging node data hasn't been setup yet \n",
816  }
817 #endif
818 #ifdef RANGE_CHECKING
819  range_check(i);
820 #endif
821  return Master_weights[i];
822  }

References i, Master_weights, Nmaster, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and range_check().

Referenced by oomph::TreeBasedRefineableMeshBase::complete_hanging_nodes(), oomph::TreeBasedRefineableMeshBase::complete_hanging_nodes_recursively(), oomph::RefineableAdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableSphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableYoungLaplaceEquations::fill_in_contribution_to_residuals(), oomph::RefineableLinearElasticityEquations< DIM >::fill_in_generic_contribution_to_residuals_linear_elasticity(), oomph::RefineableQDPVDElement< DIM, NNODE_1D >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >::fill_in_generic_contribution_to_residuals_time_harmonic_linear_elasticity(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineableNavierStokesEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), oomph::RefineablePolarStreamfunctionEquations::fill_in_generic_residual_contribution(), oomph::RefineableAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_adv_diff(), oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >::fill_in_generic_residual_contribution_adv_diff_react(), oomph::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_cons_adv_diff(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), oomph::RefineableFpPressureAdvDiffRobinBCSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableHelmholtzEquations< DIM >::fill_in_generic_residual_contribution_helmholtz(), oomph::RefineablePMLHelmholtzEquations< DIM >::fill_in_generic_residual_contribution_helmholtz(), oomph::RefineableLinearWaveEquations< DIM >::fill_in_generic_residual_contribution_lin_wave(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableLinearisedNavierStokesEquations::fill_in_generic_residual_contribution_linearised_nst(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineablePoissonEquations< DIM >::fill_in_generic_residual_contribution_poisson(), oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), oomph::RefineableSphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableUnsteadyHeatEquations< DIM >::fill_in_generic_residual_contribution_ust_heat(), RefineableQCrouzeixRaviartElementWithExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), RefineableQAxisymCrouzeixRaviartBoussinesqElement::fill_in_off_diagonal_block_analytic(), RefineableQAxisymAdvectionDiffusionBoussinesqElement::fill_in_off_diagonal_block_analytic(), RefineableQCrouzeixRaviartElementWithTwoExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), RefineableQAdvectionDiffusionElementWithExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_off_diagonal_block_analytic(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::fill_in_off_diagonal_block_analytic(), RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), RefineableModalPoissonEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineablePoissonEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineablePVDEquationsWithPressure< DIM >::get_mass_matrix_diagonal(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::SolidNode::lagrangian_position(), oomph::SolidNode::lagrangian_position_gen(), oomph::AlgebraicMesh::node_update(), oomph::Mesh::node_update(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::MGSolver< DIM >::plot(), oomph::Node::position(), oomph::Node::position_gen(), oomph::RefineableSolidTractionElement< ELEMENT >::refineable_fill_in_contribution_to_residuals_solid_traction(), oomph::RefineableImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_displ_lagr_multiplier(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::MGSolver< DIM >::setup_interpolation_matrices(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices(), oomph::MGSolver< DIM >::setup_interpolation_matrices_unstructured(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices_unstructured(), and oomph::Node::value().

◆ nmaster()

unsigned oomph::HangInfo::nmaster ( ) const
inline

Return the number of master nodes.

786  {
787  return Nmaster;
788  }

References Nmaster.

Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), oomph::ElementWithMovingNodes::assemble_set_of_all_geometric_data(), oomph::RefineableElement::assign_hanging_local_eqn_numbers(), oomph::RefineableSolidElement::assign_solid_hanging_local_eqn_numbers(), oomph::TreeBasedRefineableMeshBase::complete_hanging_nodes(), oomph::TreeBasedRefineableMeshBase::complete_hanging_nodes_recursively(), oomph::Mesh::delete_all_external_storage(), oomph::RefineableAdvectionDiffusionEquations< DIM >::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableSphericalAdvectionDiffusionEquations::dinterpolated_u_adv_diff_ddata(), oomph::RefineableAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::dinterpolated_u_axi_nst_ddata(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::dinterpolated_u_nst_ddata(), oomph::RefineableYoungLaplaceEquations::fill_in_contribution_to_residuals(), oomph::RefineableLinearElasticityEquations< DIM >::fill_in_generic_contribution_to_residuals_linear_elasticity(), oomph::RefineableQDPVDElement< DIM, NNODE_1D >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineablePVDEquations< DIM >::fill_in_generic_contribution_to_residuals_pvd(), oomph::RefineableTimeHarmonicLinearElasticityEquations< DIM >::fill_in_generic_contribution_to_residuals_time_harmonic_linear_elasticity(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineableNavierStokesEquations< DIM >::fill_in_generic_pressure_advection_diffusion_contribution_nst(), oomph::RefineablePolarNavierStokesEquations::fill_in_generic_residual_contribution(), oomph::RefineablePolarStreamfunctionEquations::fill_in_generic_residual_contribution(), oomph::RefineableAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_adv_diff(), oomph::RefineableAdvectionDiffusionReactionEquations< NREAGENT, DIM >::fill_in_generic_residual_contribution_adv_diff_react(), oomph::RefineableAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_axi_adv_diff(), oomph::RefineableAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_axi_nst(), oomph::RefineableGeneralisedAdvectionDiffusionEquations< DIM >::fill_in_generic_residual_contribution_cons_adv_diff(), oomph::RefineableGeneralisedAxisymAdvectionDiffusionEquations::fill_in_generic_residual_contribution_cons_axisym_adv_diff(), oomph::RefineableFpPressureAdvDiffRobinBCSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCMixedOrderSpaceTimeElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableFpPressureAdvDiffRobinBCElement< ELEMENT >::fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(), oomph::RefineableHelmholtzEquations< DIM >::fill_in_generic_residual_contribution_helmholtz(), oomph::RefineablePMLHelmholtzEquations< DIM >::fill_in_generic_residual_contribution_helmholtz(), oomph::RefineableLinearWaveEquations< DIM >::fill_in_generic_residual_contribution_lin_wave(), oomph::RefineableLinearisedAxisymmetricNavierStokesEquations::fill_in_generic_residual_contribution_linearised_axi_nst(), oomph::RefineableLinearisedNavierStokesEquations::fill_in_generic_residual_contribution_linearised_nst(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineableNavierStokesEquations< DIM >::fill_in_generic_residual_contribution_nst(), oomph::RefineablePoissonEquations< DIM >::fill_in_generic_residual_contribution_poisson(), oomph::RefineablePVDEquationsWithPressure< DIM >::fill_in_generic_residual_contribution_pvd_with_pressure(), oomph::RefineableSphericalAdvectionDiffusionEquations::fill_in_generic_residual_contribution_spherical_adv_diff(), oomph::RefineableSphericalNavierStokesEquations::fill_in_generic_residual_contribution_spherical_nst(), oomph::RefineableSpaceTimeUnsteadyHeatEquations< SPATIAL_DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableSpaceTimeUnsteadyHeatMixedOrderEquations< SPATIAL_DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableUnsteadyHeatEquations< DIM >::fill_in_generic_residual_contribution_ust_heat(), oomph::RefineableElement::fill_in_jacobian_from_nodal_by_fd(), oomph::RefineableSolidElement::fill_in_jacobian_from_solid_position_by_fd(), RefineableQCrouzeixRaviartElementWithExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), RefineableQAxisymCrouzeixRaviartBoussinesqElement::fill_in_off_diagonal_block_analytic(), RefineableQAxisymAdvectionDiffusionBoussinesqElement::fill_in_off_diagonal_block_analytic(), RefineableQCrouzeixRaviartElementWithTwoExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), RefineableQAdvectionDiffusionElementWithExternalElement< DIM >::fill_in_off_diagonal_block_analytic(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_off_diagonal_block_analytic(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::fill_in_off_diagonal_block_analytic(), RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQAxisymCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQSphericalCrouzeixRaviartElement::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_analytic(), oomph::RefineableDoubleBuoyantQCrouzeixRaviartElement< DIM >::fill_in_off_diagonal_jacobian_blocks_by_fd(), oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd(), oomph::RefineableSolidElement::geom_data_pt(), RefineableModalPoissonEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianAxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineablePoissonEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_dresidual_dnodal_coordinates(), oomph::RefineablePVDEquationsWithPressure< DIM >::get_mass_matrix_diagonal(), oomph::RefineableGeneralisedNewtonianNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableSpaceTimeNavierStokesEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableSpaceTimeNavierStokesMixedOrderEquations< DIM >::get_pressure_and_velocity_mass_matrix_diagonal(), oomph::RefineableElement::identify_field_data_for_interactions(), oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::identify_geometric_data(), oomph::RefineableSolidElement::identify_geometric_data(), oomph::RefineableGeneralisedNewtonianQTaylorHoodElement< DIM >::identify_load_data(), oomph::RefineableGeneralisedNewtonianQCrouzeixRaviartElement< DIM >::identify_load_data(), oomph::RefineableQTaylorHoodElement< DIM >::identify_load_data(), oomph::RefineableQCrouzeixRaviartElement< DIM >::identify_load_data(), oomph::RefineableQTaylorHoodSpaceTimeElement< DIM >::identify_load_data(), oomph::RefineableQTaylorHoodMixedOrderSpaceTimeElement< DIM >::identify_load_data(), oomph::RefineablePolarTaylorHoodElement::insert_load_data(), oomph::RefineablePolarCrouzeixRaviartElement::insert_load_data(), oomph::SolidNode::lagrangian_position(), oomph::SolidNode::lagrangian_position_gen(), oomph::RefineableSolidElement::ngeom_data(), oomph::AlgebraicMesh::node_update(), oomph::Mesh::node_update(), oomph::AlgebraicNode::node_update(), oomph::MacroElementNodeUpdateNode::node_update(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::oc_hang_helper(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), oomph::MGSolver< DIM >::plot(), oomph::Node::position(), oomph::Node::position_gen(), oomph::RefineableSolidTractionElement< ELEMENT >::refineable_fill_in_contribution_to_residuals_solid_traction(), oomph::RefineableImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_displ_lagr_multiplier(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::RefineableNavierStokesSpaceTimeTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesMixedOrderSpaceTimeTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesTractionElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::RefineableNavierStokesFluxControlElement< ELEMENT >::refineable_fill_in_generic_residual_contribution_fluid_traction(), oomph::MGSolver< DIM >::setup_interpolation_matrices(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices(), oomph::MGSolver< DIM >::setup_interpolation_matrices_unstructured(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices_unstructured(), and oomph::Node::value().

◆ operator=()

void oomph::HangInfo::operator= ( const HangInfo )
delete

Broken assignment operator.

◆ range_check()

void oomph::HangInfo::range_check ( const unsigned i) const
private

Check that the argument is within the range of stored data values.

/////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// Check that the argument is within the range of stored master nodes

1457  {
1458  // If the argument is negative or greater than the number of stored
1459  // values die
1460  if (i >= Nmaster)
1461  {
1462  std::ostringstream error_message;
1463  error_message << "Range Error: the index " << i
1464  << " is not in the range (0," << Nmaster - 1 << ")";
1465  throw OomphLibError(
1466  error_message.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1467  }
1468  }

References i, Nmaster, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.

Referenced by master_node_pt(), master_weight(), and set_master_node_pt().

◆ set_master_node_pt()

void oomph::HangInfo::set_master_node_pt ( const unsigned i,
Node *const &  master_node_pt,
const double weight 
)

Member Data Documentation

◆ Master_nodes_pt

Node** oomph::HangInfo::Master_nodes_pt
private

C-style array of pointers to nodes that this hanging node depends on.

Referenced by add_master_node_pt(), HangInfo(), master_node_pt(), set_master_node_pt(), and ~HangInfo().

◆ Master_weights

double* oomph::HangInfo::Master_weights
private

C-style array of weights for the dofs on the master nodes.

Referenced by add_master_node_pt(), HangInfo(), master_weight(), set_master_node_pt(), and ~HangInfo().

◆ Nmaster

unsigned oomph::HangInfo::Nmaster
private

Number of master nodes required by this hanging node.

Referenced by add_master_node_pt(), master_node_pt(), master_weight(), nmaster(), range_check(), and ~HangInfo().


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