Public Member Functions | Private Member Functions | Private Attributes | List of all members
oomph::ElasticLineFluidInterfaceElement< ELEMENT > Class Template Reference

Specialise the elastic update template class to concrete 1D case. More...

#include <line_interface_elements.h>

Inheritance diagram for oomph::ElasticLineFluidInterfaceElement< ELEMENT >:
oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, LineDerivatives, ELEMENT > oomph::FluidInterfaceElement oomph::LineDerivatives

Public Member Functions

double zeta_nodal (const unsigned &n, const unsigned &k, const unsigned &i) const
 The "global" intrinsic coordinate of the element when viewed as part of a geometric object should be given by the FaceElement representation, by default. More...
 
 ElasticLineFluidInterfaceElement (FiniteElement *const &element_pt, const int &face_index, const unsigned &id=0)
 Constructor, pass a pointer to the bulk element and the face index of the bulk element to which the element is to be attached to. The optional identifier can be used to distinguish the additional nodal value (Lagr mult) created by this element from those created by other FaceElements. More...
 
double & lagrange (const unsigned &j)
 Return the Lagrange multiplier at local node j. More...
 
void fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian)
 Fill in contribution to residuals and Jacobian. More...
 
void output (std::ostream &outfile)
 Overload the output function. More...
 
void output (std::ostream &outfile, const unsigned &n_plot)
 Output the element. More...
 
void output (FILE *file_pt)
 Overload the C-style output function. More...
 
void output (FILE *file_pt, const unsigned &n_plot)
 C-style Output function. More...
 
void add_additional_residual_contributions_interface (Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag, const Shape &psif, const DShape &dpsifds, const Vector< double > &interpolated_x, const Vector< double > &interpolated_n, const double &W, const double &J)
 Helper function to calculate the additional contributions to be added at each integration point. This deals with Lagrange multiplier contribution. More...
 
virtual
FluidInterfaceBoundingElement
make_bounding_element (const int &face_index)
 Create an "bounding" element (here actually a 1D point element of type ElasticPointFluidInterfaceBoundingElement<ELEMENT> that allows the application of a contact angle boundary condition on the the specified face. More...
 
 ElasticLineFluidInterfaceElement (FiniteElement *const &element_pt, const int &face_index, const unsigned &id=0)
 
- Public Member Functions inherited from oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, LineDerivatives, ELEMENT >
 ElasticUpdateFluidInterfaceElement (FiniteElement *const &element_pt, const int &face_index, const unsigned &id=0)
 Constructor, pass a pointer to the bulk element and the face index of the bulk element to which the element is to be attached to. The optional identifier can be used to distinguish the additional nodal value (Lagr mult) created by this element from those created by other FaceElements. More...
 
double zeta_nodal (const unsigned &n, const unsigned &k, const unsigned &i) const
 The "global" intrinsic coordinate of the element when viewed as part of a geometric object should be given by the FaceElement representation, by default. More...
 
double & lagrange (const unsigned &n)
 Return the lagrange multiplier at local node n. More...
 
void fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian)
 Fill in contribution to residuals and Jacobian. More...
 
void output (std::ostream &outfile)
 Overload the output function. More...
 
void output (std::ostream &outfile, const unsigned &n_plot)
 Output the element. More...
 
void output (FILE *file_pt)
 Overload the C-style output function. More...
 
void output (FILE *file_pt, const unsigned &n_plot)
 C-style Output function. More...
 
void add_additional_residual_contributions_interface (Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag, const Shape &psif, const DShape &dpsifds, const DShape &dpsifdS, const DShape &dpsifdS_div, const Vector< double > &s, const Vector< double > &interpolated_x, const Vector< double > &interpolated_n, const double &W, const double &J)
 Helper function to calculate the additional contributions to be added at each integration point. This deals with Lagrange multiplier contribution, as well as any additional contributions by the other equations. More...
 
- Public Member Functions inherited from oomph::FluidInterfaceElement
 FluidInterfaceElement ()
 Constructor, set the default values of the booleans and pointers (null) More...
 
virtual double sigma (const Vector< double > &s_local)
 Virtual function that specifies the non-dimensional surface tension as a function of local position within the element. The default behaviour is a constant surface tension of value 1.0 This function can be overloaded in more specialised elements to incorporate variations in surface tension. More...
 
void fill_in_contribution_to_residuals (Vector< double > &residuals)
 Calculate the residuals by calling the generic residual contribution. More...
 
const double & ca () const
 The value of the Capillary number. More...
 
double *& ca_pt ()
 Pointer to the Capillary number. More...
 
const double & st () const
 The value of the Strouhal number. More...
 
double *& st_pt ()
 The pointer to the Strouhal number. More...
 
double u (const unsigned &j, const unsigned &i)
 Return the i-th velocity component at local node j. More...
 
double interpolated_u (const Vector< double > &s, const unsigned &i)
 Calculate the i-th velocity component at the local coordinate s. More...
 
double pext () const
 Return the value of the external pressure. More...
 
void set_external_pressure_data (Data *external_pressure_data_pt)
 Set the Data that contains the single pressure value that specifies the "external pressure" for the interface/free-surface. Setting this only makes sense if the interface is, in fact, a free surface (well, an interface to another inviscid fluid if you want to be picky). More...
 
void set_external_pressure_data (Data *external_pressure_data_pt, const unsigned &index_of_external_pressure_value)
 Set the Data that contains the pressure value that specifies the "external pressure" for the interface/free-surface. Setting this only makes sense if the interface is, in fact, a free surface (well, an interface to another inviscid fluid if you want to be picky). Second argument specifies the index of the pressure value within the Data object. More...
 
void output (std::ostream &outfile)
 Overload the output function. More...
 
void output (std::ostream &outfile, const unsigned &n_plot)
 Output function. More...
 
void output (FILE *file_pt)
 Overload the C-style output function. More...
 
void output (FILE *file_pt, const unsigned &n_plot)
 C-style Output function. More...
 
- Public Member Functions inherited from oomph::LineDerivatives
 LineDerivatives ()
 

Private Member Functions

int kinematic_local_eqn (const unsigned &j)
 Equation number of the kinematic BC associated with node j. (This is the equation for the Lagrange multiplier) More...
 
void hijack_kinematic_conditions (const Vector< unsigned > &bulk_node_number)
 Hijacking the kinematic condition corresponds to hijacking the variables associated with the Lagrange multipliers that are assigned on construction of this element. More...
 

Private Attributes

unsigned Id
 ID of the Lagrange Lagrange multiplier (in the collection of nodal values accomodated by resizing) More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, LineDerivatives, ELEMENT >
double compute_surface_derivatives (const Shape &psi, const DShape &dpsids, const DenseMatrix< double > &interpolated_t, const Vector< double > &interpolated_x, DShape &surface_gradient, DShape &surface_divergence)
 Fill in the specific surface derivative calculations by calling the appropriate function from the derivative class. More...
 
- Protected Member Functions inherited from oomph::FluidInterfaceElement
int pext_local_eqn ()
 Access function for the local equation number that corresponds to the external pressure. More...
 
virtual void fill_in_generic_residual_contribution_interface (Vector< double > &residuals, DenseMatrix< double > &jacobian, unsigned flag)
 Helper function to calculate the residuals and (if flag==1) the Jacobian of the equations. This is implemented generically using the surface divergence information that is overloaded in each element i.e. axisymmetric, two- or three-dimensional. More...
 
- Protected Member Functions inherited from oomph::LineDerivatives
double compute_surface_derivatives (const Shape &psi, const DShape &dpsids, const DenseMatrix< double > &interpolated_t, const Vector< double > &interpolated_x, DShape &surface_gradient, DShape &surface_divergence)
 Fill in the specific surface derivative calculations. More...
 
- Protected Attributes inherited from oomph::FluidInterfaceElement
Vector< unsigned > U_index_interface
 Nodal index at which the i-th velocity component is stored. More...
 
int External_data_number_of_external_pressure
 The Data that contains the external pressure is stored as external Data for the element. Which external Data item is it? (int so it can be initialised to -1, indicating that external pressure hasn't been set). More...
 
Data * Pext_data_pt
 Pointer to the Data item that stores the external pressure. More...
 
unsigned Index_of_external_pressure_value
 Which of the values in Pext_data_pt stores the external pressure. More...
 

Detailed Description

template<class ELEMENT>
class oomph::ElasticLineFluidInterfaceElement< ELEMENT >

Specialise the elastic update template class to concrete 1D case.

One-dimensional interface elements that are used when the mesh deformation is handled by a set of equations that modify the nodal positions. These elements are FaceElements attached to 2D bulk fluid elements and the fluid element is passed as a template parameter to the element. Optionally an external pressure may be specified, which must be passed to the element as external data. The default value of the external pressure is zero.

Definition at line 227 of file line_interface_elements.h.

Constructor & Destructor Documentation

template<class ELEMENT >
oomph::ElasticLineFluidInterfaceElement< ELEMENT >::ElasticLineFluidInterfaceElement ( FiniteElement *const &  element_pt,
const int &  face_index,
const unsigned &  id = 0 
)
inline

Constructor, pass a pointer to the bulk element and the face index of the bulk element to which the element is to be attached to. The optional identifier can be used to distinguish the additional nodal value (Lagr mult) created by this element from those created by other FaceElements.

Definition at line 285 of file line_interface_elements.h.

References oomph::FluidInterfaceElement::U_index_interface.

template<class ELEMENT >
oomph::ElasticLineFluidInterfaceElement< ELEMENT >::ElasticLineFluidInterfaceElement ( FiniteElement *const &  element_pt,
const int &  face_index,
const unsigned &  id = 0 
)
inline

Definition at line 1072 of file specific_node_update_interface_elements.h.

Member Function Documentation

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::add_additional_residual_contributions_interface ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian,
const unsigned &  flag,
const Shape &  psif,
const DShape &  dpsifds,
const Vector< double > &  interpolated_x,
const Vector< double > &  interpolated_n,
const double &  W,
const double &  J 
)
inline

Helper function to calculate the additional contributions to be added at each integration point. This deals with Lagrange multiplier contribution.

Definition at line 361 of file line_interface_elements.h.

References oomph::ElasticLineFluidInterfaceElement< ELEMENT >::kinematic_local_eqn(), and oomph::ElasticLineFluidInterfaceElement< ELEMENT >::lagrange().

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::fill_in_contribution_to_jacobian ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian 
)
inline

Fill in contribution to residuals and Jacobian.

Definition at line 333 of file line_interface_elements.h.

References oomph::FluidInterfaceElement::fill_in_generic_residual_contribution_interface().

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::hijack_kinematic_conditions ( const Vector< unsigned > &  bulk_node_number)
inlineprivatevirtual

Hijacking the kinematic condition corresponds to hijacking the variables associated with the Lagrange multipliers that are assigned on construction of this element.

Implements oomph::FluidInterfaceElement.

Definition at line 254 of file line_interface_elements.h.

References oomph::ElasticLineFluidInterfaceElement< ELEMENT >::Id.

template<class ELEMENT >
int oomph::ElasticLineFluidInterfaceElement< ELEMENT >::kinematic_local_eqn ( const unsigned &  j)
inlineprivatevirtual

Equation number of the kinematic BC associated with node j. (This is the equation for the Lagrange multiplier)

Implements oomph::FluidInterfaceElement.

Definition at line 239 of file line_interface_elements.h.

References oomph::ElasticLineFluidInterfaceElement< ELEMENT >::Id.

Referenced by oomph::ElasticLineFluidInterfaceElement< ELEMENT >::add_additional_residual_contributions_interface().

template<class ELEMENT >
double& oomph::ElasticLineFluidInterfaceElement< ELEMENT >::lagrange ( const unsigned &  j)
inline
template<class ELEMENT >
virtual FluidInterfaceBoundingElement* oomph::ElasticLineFluidInterfaceElement< ELEMENT >::make_bounding_element ( const int &  face_index)
inlinevirtual

Create an "bounding" element (here actually a 1D point element of type ElasticPointFluidInterfaceBoundingElement<ELEMENT> that allows the application of a contact angle boundary condition on the the specified face.

Reimplemented from oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, LineDerivatives, ELEMENT >.

Definition at line 426 of file line_interface_elements.h.

References oomph::ElasticLineFluidInterfaceElement< ELEMENT >::Id, oomph::FluidInterfaceElement::U_index_interface, and oomph::FluidInterfaceBoundingElement::u_index_interface_boundary().

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::output ( std::ostream &  outfile)
inline

Overload the output function.

Definition at line 344 of file line_interface_elements.h.

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::output ( std::ostream &  outfile,
const unsigned &  n_plot 
)
inline

Output the element.

Definition at line 347 of file line_interface_elements.h.

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::output ( FILE *  file_pt)
inline

Overload the C-style output function.

Definition at line 351 of file line_interface_elements.h.

template<class ELEMENT >
void oomph::ElasticLineFluidInterfaceElement< ELEMENT >::output ( FILE *  file_pt,
const unsigned &  n_plot 
)
inline

C-style Output function.

Definition at line 354 of file line_interface_elements.h.

template<class ELEMENT >
double oomph::ElasticLineFluidInterfaceElement< ELEMENT >::zeta_nodal ( const unsigned &  n,
const unsigned &  k,
const unsigned &  i 
) const
inline

The "global" intrinsic coordinate of the element when viewed as part of a geometric object should be given by the FaceElement representation, by default.

Definition at line 275 of file line_interface_elements.h.

Member Data Documentation

template<class ELEMENT >
unsigned oomph::ElasticLineFluidInterfaceElement< ELEMENT >::Id
private

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