Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes | List of all members
oomph::SurfactantTransportInterfaceElement Class Reference

Generic surfactant transport equations implemented independently of the dimension and then specialised using the generic mechanisms introduce in the FluidInterfaceElements. More...

#include <surfactant_transport_elements.h>

Inheritance diagram for oomph::SurfactantTransportInterfaceElement:
oomph::FluidInterfaceElement oomph::ElasticUpdateFluidInterfaceElement< SurfactantTransportInterfaceElement, AxisymmetricDerivatives, ELEMENT > oomph::SpineUpdateFluidInterfaceElement< SurfactantTransportInterfaceElement, LineDerivatives, ELEMENT > oomph::SpineUpdateFluidInterfaceElement< SurfactantTransportInterfaceElement, AxisymmetricDerivatives, ELEMENT > oomph::SpineUpdateFluidInterfaceElement< SurfactantTransportInterfaceElement, SurfaceDerivatives, ELEMENT > oomph::ElasticAxisymmetricSurfactantTransportInterfaceElement< ELEMENT > oomph::SpineLineSurfactantTransportInterfaceElement< ELEMENT > oomph::SpineAxisymmetricSurfactantTransportInterfaceElement< ELEMENT > oomph::SpineSurfaceSurfactantTransportInterfaceElement< ELEMENT > ElasticAxisymmetricSolubleSurfactantTransportInterfaceElement< ELEMENT >

Public Member Functions

 SurfactantTransportInterfaceElement ()
 Constructor that passes the bulk element and face index down to the underlying. More...
 
void set_c_index (const Vector< unsigned > &c_index)
 
double beta ()
 Return the Elasticity number. More...
 
double peclet_s ()
 Return the surface peclect number. More...
 
double peclet_strouhal_s ()
 Return the surface peclect strouhal number. More...
 
double *& beta_pt ()
 Access function for pointer to the Elasticity number. More...
 
double *& peclet_s_pt ()
 Access function for pointer to the surface Peclet number. More...
 
double *& peclet_strouhal_s_pt ()
 Access function for pointer to the surface Peclet x Strouhal number. More...
 
void output (std::ostream &outfile)
 Overload the output function. More...
 
void output (std::ostream &outfile, const unsigned &n_plot)
 Overload the 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...
 
double integrate_c ()
 Compute the concentration intergated over the surface area. More...
 
- Public Member Functions inherited from oomph::FluidInterfaceElement
 FluidInterfaceElement ()
 Constructor, set the default values of the booleans and pointers (null) 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...
 
virtual FluidInterfaceBoundingElementmake_bounding_element (const int &face_index)
 Create a bounding element e.g. to apply a contact angle boundary condition. More...
 
virtual void hijack_kinematic_conditions (const Vector< unsigned > &bulk_node_number)=0
 Hijack the kinematic condition at the node numbers passed in the vector. The node numbers correspond to the local numbers of nodes in the associated bulk element. This is required so that contact-angle conditions can be applied by the FluidInterfaceBoundingElements. 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...
 

Protected Member Functions

double interpolated_C (const Vector< double > &s)
 Get the surfactant concentration. More...
 
double dcdt_surface (const unsigned &l) const
 The time derivative of the surface concentration. More...
 
double sigma (const Vector< double > &s)
 The surface tension function is linear in the concentration with constant of proportionality equal to the elasticity number. More...
 
virtual double dsigma_dC (const Vector< double > &s)
 Return the derivative of sigma with respect to C For use in computing the Jacobian. 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)
 Overload the Helper function to calculate the residuals and jacobian entries. This particular function ensures that the additional entries are calculated inside the integration loop. 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...
 
- Protected Member Functions inherited from oomph::FluidInterfaceElement
virtual int kinematic_local_eqn (const unsigned &n)=0
 Access function that returns the local equation number for the (scalar) kinematic equation associated with the j-th local node. This must be overloaded by specific interface elements and depends on the method for handing the free-surface deformation. More...
 
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...
 
virtual double compute_surface_derivatives (const Shape &psi, const DShape &dpsids, const DenseMatrix< double > &interpolated_t, const Vector< double > &interpolated_x, DShape &dpsidS, DShape &dpsidS_div)=0
 Compute the surface gradient and surface divergence operators given the shape functions, derivatives, tangent vectors and position. All derivatives and tangent vectors should be formed with respect to the local coordinates. More...
 

Protected Attributes

Vector< unsigned > C_index
 Index at which the surfactant concentration is stored at the nodes. 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...
 

Static Protected Attributes

static double Default_Physical_Constant_Value
 Default value of the physical constants. More...
 

Private Attributes

double * Beta_pt
 Pointer to an Elasticity number. More...
 
double * Peclet_S_pt
 Pointer to Surface Peclet number. More...
 
double * Peclet_Strouhal_S_pt
 Pointer to the surface Peclect Strouhal number. More...
 

Detailed Description

Generic surfactant transport equations implemented independently of the dimension and then specialised using the generic mechanisms introduce in the FluidInterfaceElements.

Definition at line 48 of file surfactant_transport_elements.h.

Constructor & Destructor Documentation

◆ SurfactantTransportInterfaceElement()

oomph::SurfactantTransportInterfaceElement::SurfactantTransportInterfaceElement ( )
inline

Constructor that passes the bulk element and face index down to the underlying.

Definition at line 120 of file surfactant_transport_elements.h.

References Beta_pt, Default_Physical_Constant_Value, Peclet_S_pt, and Peclet_Strouhal_S_pt.

Member Function Documentation

◆ add_additional_residual_contributions_interface()

void oomph::SurfactantTransportInterfaceElement::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 
)
protectedvirtual

◆ beta()

double oomph::SurfactantTransportInterfaceElement::beta ( )
inline

Return the Elasticity number.

Definition at line 135 of file surfactant_transport_elements.h.

References Beta_pt.

Referenced by dsigma_dC(), and sigma().

◆ beta_pt()

double*& oomph::SurfactantTransportInterfaceElement::beta_pt ( )
inline

Access function for pointer to the Elasticity number.

Definition at line 153 of file surfactant_transport_elements.h.

References Beta_pt.

Referenced by InterfaceProblem< ELEMENT, TIMESTEPPER >::InterfaceProblem().

◆ dcdt_surface()

double oomph::SurfactantTransportInterfaceElement::dcdt_surface ( const unsigned &  l) const
protected

The time derivative of the surface concentration.

Definition at line 67 of file surfactant_transport_elements.cc.

References C_index.

Referenced by add_additional_residual_contributions_interface().

◆ dsigma_dC()

virtual double oomph::SurfactantTransportInterfaceElement::dsigma_dC ( const Vector< double > &  s)
inlineprotectedvirtual

Return the derivative of sigma with respect to C For use in computing the Jacobian.

Definition at line 82 of file surfactant_transport_elements.h.

References beta().

Referenced by add_additional_residual_contributions_interface().

◆ fill_in_contribution_to_jacobian_and_mass_matrix()

void oomph::SurfactantTransportInterfaceElement::fill_in_contribution_to_jacobian_and_mass_matrix ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian,
DenseMatrix< double > &  mass_matrix 
)
inlineprotected

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

Definition at line 107 of file surfactant_transport_elements.h.

◆ integrate_c()

double oomph::SurfactantTransportInterfaceElement::integrate_c ( )

Compute the concentration intergated over the surface area.

Definition at line 358 of file surfactant_transport_elements.cc.

References C_index, and oomph::FluidInterfaceElement::compute_surface_derivatives().

Referenced by InterfaceProblem< ELEMENT, TIMESTEPPER >::compute_total_mass().

◆ interpolated_C()

double oomph::SurfactantTransportInterfaceElement::interpolated_C ( const Vector< double > &  s)
protected

Get the surfactant concentration.

Definition at line 40 of file surfactant_transport_elements.cc.

References C_index.

Referenced by add_additional_residual_contributions_interface(), and output().

◆ output() [1/4]

void oomph::SurfactantTransportInterfaceElement::output ( FILE *  file_pt)
inline

Overload the C-style output function.

Definition at line 180 of file surfactant_transport_elements.h.

◆ output() [2/4]

void oomph::SurfactantTransportInterfaceElement::output ( FILE *  file_pt,
const unsigned &  n_plot 
)
inline

C-style Output function.

Definition at line 186 of file surfactant_transport_elements.h.

◆ output() [3/4]

void oomph::SurfactantTransportInterfaceElement::output ( std::ostream &  outfile)
inline

Overload the output function.

Definition at line 172 of file surfactant_transport_elements.h.

◆ output() [4/4]

void oomph::SurfactantTransportInterfaceElement::output ( std::ostream &  outfile,
const unsigned &  n_plot 
)

◆ peclet_s()

double oomph::SurfactantTransportInterfaceElement::peclet_s ( )
inline

Return the surface peclect number.

Definition at line 141 of file surfactant_transport_elements.h.

References Peclet_S_pt.

Referenced by add_additional_residual_contributions_interface().

◆ peclet_s_pt()

double*& oomph::SurfactantTransportInterfaceElement::peclet_s_pt ( )
inline

Access function for pointer to the surface Peclet number.

Definition at line 159 of file surfactant_transport_elements.h.

References Peclet_S_pt.

Referenced by InterfaceProblem< ELEMENT, TIMESTEPPER >::InterfaceProblem().

◆ peclet_strouhal_s()

double oomph::SurfactantTransportInterfaceElement::peclet_strouhal_s ( )
inline

Return the surface peclect strouhal number.

Definition at line 147 of file surfactant_transport_elements.h.

References Peclet_Strouhal_S_pt.

◆ peclet_strouhal_s_pt()

double*& oomph::SurfactantTransportInterfaceElement::peclet_strouhal_s_pt ( )
inline

Access function for pointer to the surface Peclet x Strouhal number.

Definition at line 165 of file surfactant_transport_elements.h.

References Peclet_Strouhal_S_pt.

Referenced by InterfaceProblem< ELEMENT, TIMESTEPPER >::InterfaceProblem().

◆ set_c_index()

void oomph::SurfactantTransportInterfaceElement::set_c_index ( const Vector< unsigned > &  c_index)
inline

◆ sigma()

double oomph::SurfactantTransportInterfaceElement::sigma ( const Vector< double > &  s)
protectedvirtual

The surface tension function is linear in the concentration with constant of proportionality equal to the elasticity number.

Reimplemented from oomph::FluidInterfaceElement.

Definition at line 95 of file surfactant_transport_elements.cc.

References Global_Physical_Variables::Beta, beta(), and C_index.

Referenced by output().

Member Data Documentation

◆ Beta_pt

double* oomph::SurfactantTransportInterfaceElement::Beta_pt
private

Pointer to an Elasticity number.

Definition at line 52 of file surfactant_transport_elements.h.

Referenced by beta(), beta_pt(), and SurfactantTransportInterfaceElement().

◆ C_index

Vector<unsigned> oomph::SurfactantTransportInterfaceElement::C_index
protected

Index at which the surfactant concentration is stored at the nodes.

Definition at line 63 of file surfactant_transport_elements.h.

Referenced by add_additional_residual_contributions_interface(), dcdt_surface(), integrate_c(), interpolated_C(), and sigma().

◆ Default_Physical_Constant_Value

double oomph::SurfactantTransportInterfaceElement::Default_Physical_Constant_Value
staticprotected
Initial value:
=
1.0

Default value of the physical constants.

Definition at line 67 of file surfactant_transport_elements.h.

Referenced by SurfactantTransportInterfaceElement().

◆ Peclet_S_pt

double* oomph::SurfactantTransportInterfaceElement::Peclet_S_pt
private

Pointer to Surface Peclet number.

Definition at line 55 of file surfactant_transport_elements.h.

Referenced by peclet_s(), peclet_s_pt(), and SurfactantTransportInterfaceElement().

◆ Peclet_Strouhal_S_pt

double* oomph::SurfactantTransportInterfaceElement::Peclet_Strouhal_S_pt
private

Pointer to the surface Peclect Strouhal number.

Definition at line 58 of file surfactant_transport_elements.h.

Referenced by peclet_strouhal_s(), peclet_strouhal_s_pt(), and SurfactantTransportInterfaceElement().


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