Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT > Class Template Reference

Generic Elastic node update interface template class that can be combined with a given surface equations class and surface derivative class to provide a concrete implementation of any surface element that uses elastic node updates. More...

#include <specific_node_update_interface_elements.h>

Inheritance diagram for oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >:

Public Member Functions

 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...
 
virtual
FluidInterfaceBoundingElement
make_bounding_element (const int &face_index)
 Create an "bounding" element (here actually a 2D line element of type ElasticLineFluidInterfaceBoundingElement<ELEMENT> that allows the application of a contact angle boundary condition on the the specified face. More...
 

Protected Member Functions

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

Private Member Functions

unsigned lagrange_index (const unsigned &n)
 Return the index at which the lagrange multiplier is stored at the n-th node. More...
 
int kinematic_local_eqn (const unsigned &n)
 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

Vector< unsigned > Lagrange_index
 Storage for the location of the Lagrange multiplier (If other additional values have been added we need to add the Lagrange multiplier at the end) More...
 

Detailed Description

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
class oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >

Generic Elastic node update interface template class that can be combined with a given surface equations class and surface derivative class to provide a concrete implementation of any surface element that uses elastic node updates.

Definition at line 595 of file specific_node_update_interface_elements.h.

Constructor & Destructor Documentation

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::ElasticUpdateFluidInterfaceElement ( 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 654 of file specific_node_update_interface_elements.h.

Member Function Documentation

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
void oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::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 
)
inline

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.

Definition at line 772 of file specific_node_update_interface_elements.h.

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
double oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::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 
)
inlineprotected

Fill in the specific surface derivative calculations by calling the appropriate function from the derivative class.

Definition at line 637 of file specific_node_update_interface_elements.h.

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

Fill in contribution to residuals and Jacobian.

Definition at line 743 of file specific_node_update_interface_elements.h.

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
void oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::hijack_kinematic_conditions ( const Vector< unsigned > &  bulk_node_number)
inlineprivate

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

Definition at line 622 of file specific_node_update_interface_elements.h.

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
int oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::kinematic_local_eqn ( const unsigned &  n)
inlineprivate

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

Definition at line 613 of file specific_node_update_interface_elements.h.

Referenced by oomph::ElasticUpdateFluidInterfaceElement< FluidInterfaceElement, LineDerivatives, ELEMENT >::add_additional_residual_contributions_interface().

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
double& oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::lagrange ( const unsigned &  n)
inline
template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
unsigned oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::lagrange_index ( const unsigned &  n)
inlineprivate
template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
virtual FluidInterfaceBoundingElement* oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::make_bounding_element ( const int &  face_index)
inlinevirtual

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

Reimplemented in oomph::ElasticSurfaceFluidInterfaceElement< ELEMENT >, oomph::ElasticAxisymmetricFluidInterfaceElement< ELEMENT >, and oomph::ElasticLineFluidInterfaceElement< ELEMENT >.

Definition at line 846 of file specific_node_update_interface_elements.h.

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
void oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::output ( std::ostream &  outfile)
inline

Overload the output function.

Definition at line 754 of file specific_node_update_interface_elements.h.

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

Output the element.

Definition at line 757 of file specific_node_update_interface_elements.h.

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
void oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::output ( FILE *  file_pt)
inline

Overload the C-style output function.

Definition at line 761 of file specific_node_update_interface_elements.h.

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

C-style Output function.

Definition at line 764 of file specific_node_update_interface_elements.h.

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
double oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, 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 731 of file specific_node_update_interface_elements.h.

Member Data Documentation

template<class EQUATION_CLASS, class DERIVATIVE_CLASS, class ELEMENT>
Vector<unsigned> oomph::ElasticUpdateFluidInterfaceElement< EQUATION_CLASS, DERIVATIVE_CLASS, ELEMENT >::Lagrange_index
private

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