Public Member Functions | Private Attributes | List of all members
oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT > Class Template Reference

////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// More...

#include <multi_domain_boussinesq_elements.h>

Inheritance diagram for oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >:

Public Member Functions

 RefineableNavierStokesBoussinesqElement ()
 Constructor: call the underlying constructors and initialise the pointer to the Rayleigh number to point to the default value of 0.0. More...
 
const double & ra () const
 Access function for the Rayleigh number (const version) More...
 
double *& ra_pt ()
 Access function for the pointer to the Rayleigh number. More...
 
void further_build ()
 Call the underlying single-physics element's further_build() functions and make sure that the pointer to the Rayleigh number is passed to the sons. Also make sure that if the external geometric Data was ignored in the father it's also ignored in the sons. More...
 
void get_body_force_nst (const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &body_force)
 Overload get_body_force_nst() to return the temperature-dependent buoyancy force, using the temperature computed by the "external" advection diffusion element associated with integration point ipt. More...
 
void fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian)
 Compute the element's residual vector and the Jacobian matrix. More...
 
void fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
 Add the element's contribution to its residuals vector, jacobian matrix and mass matrix. More...
 
void get_dbody_force_nst_dexternal_element_data (const unsigned &ipt, DenseMatrix< double > &result, Vector< unsigned > &global_eqn_number)
 Fill in the derivatives of the body force with respect to the external unknowns. More...
 
void fill_in_off_diagonal_block_analytic (Vector< double > &residuals, DenseMatrix< double > &jacobian)
 Compute the contribution of the external degrees of freedom (temperatures) on the Navier-Stokes equations. More...
 
void get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
 Classify dof numbers as in underlying element. More...
 
unsigned ndof_types () const
 Get number of dof types from underlying element. More...
 

Private Attributes

double * Ra_pt
 Pointer to a private data member, the Rayleigh number. More...
 

Detailed Description

template<class NST_ELEMENT, class AD_ELEMENT>
class oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >

////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

Build a refineable Navier Stokes element that inherits from ElementWithExternalElement so that it can "communicate" with an advection diffusion element that provides the temperature in the body force term.

Definition at line 63 of file multi_domain_boussinesq_elements.h.

Constructor & Destructor Documentation

◆ RefineableNavierStokesBoussinesqElement()

template<class NST_ELEMENT , class AD_ELEMENT >
oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::RefineableNavierStokesBoussinesqElement ( )
inline

Constructor: call the underlying constructors and initialise the pointer to the Rayleigh number to point to the default value of 0.0.

Definition at line 71 of file multi_domain_boussinesq_elements.h.

References oomph::MultiDomainBoussinesqHelper::Default_Physical_Constant_Value, and oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::Ra_pt.

Member Function Documentation

◆ fill_in_contribution_to_jacobian()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_contribution_to_jacobian ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian 
)
inline

Compute the element's residual vector and the Jacobian matrix.

Definition at line 156 of file multi_domain_boussinesq_elements.h.

References oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_off_diagonal_block_analytic().

◆ fill_in_contribution_to_jacobian_and_mass_matrix()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_contribution_to_jacobian_and_mass_matrix ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian,
DenseMatrix< double > &  mass_matrix 
)
inline

Add the element's contribution to its residuals vector, jacobian matrix and mass matrix.

Definition at line 179 of file multi_domain_boussinesq_elements.h.

◆ fill_in_off_diagonal_block_analytic()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_off_diagonal_block_analytic ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian 
)
inline

◆ further_build()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::further_build ( )
inline

Call the underlying single-physics element's further_build() functions and make sure that the pointer to the Rayleigh number is passed to the sons. Also make sure that if the external geometric Data was ignored in the father it's also ignored in the sons.

Definition at line 97 of file multi_domain_boussinesq_elements.h.

References oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::ra_pt(), and oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::Ra_pt.

◆ get_body_force_nst()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::get_body_force_nst ( const double &  time,
const unsigned &  ipt,
const Vector< double > &  s,
const Vector< double > &  x,
Vector< double > &  body_force 
)
inline

Overload get_body_force_nst() to return the temperature-dependent buoyancy force, using the temperature computed by the "external" advection diffusion element associated with integration point ipt.

Definition at line 123 of file multi_domain_boussinesq_elements.h.

References oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::ra().

◆ get_dbody_force_nst_dexternal_element_data()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::get_dbody_force_nst_dexternal_element_data ( const unsigned &  ipt,
DenseMatrix< double > &  result,
Vector< unsigned > &  global_eqn_number 
)

Fill in the derivatives of the body force with respect to the external unknowns.

Fill in the derivatives of the body force with respect to the external unknowns in the Navier–Stokes equations.

Definition at line 1434 of file multi_domain_boussinesq_elements.h.

Referenced by oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_off_diagonal_block_analytic().

◆ get_dof_numbers_for_unknowns()

template<class NST_ELEMENT , class AD_ELEMENT >
void oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::get_dof_numbers_for_unknowns ( std::list< std::pair< unsigned long, unsigned >> &  dof_lookup_list) const
inline

Classify dof numbers as in underlying element.

Definition at line 345 of file multi_domain_boussinesq_elements.h.

◆ ndof_types()

template<class NST_ELEMENT , class AD_ELEMENT >
unsigned oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::ndof_types ( ) const
inline

Get number of dof types from underlying element.

Definition at line 353 of file multi_domain_boussinesq_elements.h.

◆ ra()

template<class NST_ELEMENT , class AD_ELEMENT >
const double& oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::ra ( ) const
inline

◆ ra_pt()

template<class NST_ELEMENT , class AD_ELEMENT >
double*& oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::ra_pt ( )
inline

Member Data Documentation

◆ Ra_pt

template<class NST_ELEMENT , class AD_ELEMENT >
double* oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::Ra_pt
private

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