33 #ifndef OOMPH_SURFACTANT_TRANSPORT_ELEMENTS_HEADER    34 #define OOMPH_SURFACTANT_TRANSPORT_ELEMENTS_HEADER    39   #include <oomph-lib-config.h>    85  double sigma(
const Vector<double> &s);
    90  {
return -this->
beta();}
    96    Vector<double> &residuals, DenseMatrix<double> &jacobian,
    97    const unsigned &flag,
const Shape &psif, 
const DShape &dpsifds,
    98    const DShape &dpsifdS, 
const DShape &dpsifdS_div,
    99    const Vector<double> &s,
   100    const Vector<double> &interpolated_x, 
const Vector<double> &interpolated_n, 
   101    const double &W,
const double &J);
   107    Vector<double> &residuals, DenseMatrix<double> &jacobian, 
   108    DenseMatrix<double> &mass_matrix)
   111    this->fill_in_contribution_to_jacobian(residuals,jacobian);
   128   inline void set_c_index(
const Vector<unsigned> &c_index) {this->C_index = c_index;}
   150   void output(std::ostream &outfile) {FiniteElement::output(outfile);}
   152   void output(std::ostream &outfile, 
const unsigned &n_plot);
   155   void output(FILE* file_pt) {FiniteElement::output(file_pt);}
   158   void output(FILE* file_pt, 
const unsigned &n_plot)
   159   {FiniteElement::output(file_pt,n_plot);}
   183    const unsigned n_node = element_pt->nnode();
   184    Vector<unsigned> c_index(n_node);
   185    for(
unsigned n=0;n<n_node;n++)
   188       dynamic_cast<BoundaryNodeBase*
>(element_pt->node_pt(n))
   189       ->index_of_first_value_assigned_by_face_element(
id);
   201 template<
class ELEMENT>
   204  LineDerivatives,ELEMENT>
   209   FiniteElement* 
const &element_pt, 
   210   const int &face_index) : 
   217 template<
class ELEMENT>
   231 template<
class ELEMENT>
   234  AxisymmetricDerivatives,ELEMENT>
   239   FiniteElement* 
const &element_pt, 
   240   const int &face_index) : 
   247 template<
class ELEMENT>
   260 template<
class ELEMENT>
   263  AxisymmetricDerivatives,ELEMENT>
   268   FiniteElement* 
const &element_pt, 
   269   const int &face_index) : 
   276 template<
class ELEMENT>
   290  template<
class ELEMENT>
   293   SurfaceDerivatives,ELEMENT>
   298      FiniteElement* 
const &element_pt, 
   299      const int &face_index) : 
   306  template<
class ELEMENT>
 SpineLineSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
 
Spine version of the LineFluidInterfaceBoundingElement. 
 
unsigned nadditional_values(const unsigned &n)
 
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
 
void output(FILE *file_pt)
Overload the C-style output function. 
 
double peclet_s()
Return the surface peclect number. 
 
double * Peclet_S_pt
Pointer to Surface Peclet number. 
 
Specialise to surface geometry. 
 
double *& peclet_s_pt()
Access function for pointer to the surface Peclet number. 
 
This policy class is used to associate specific bounding elements with specific FluidInterface elemen...
 
Specialise to the Axisymmetric geometry. 
 
void output(FILE *file_pt, const unsigned &n_plot)
C-style Output function. 
 
Generic Spine node update interface template class that can be combined with a given surface equation...
 
Specialise to the Line geometry. 
 
double peclet_strouhal_s()
Return the surface peclect strouhal number. 
 
double integrate_c()
Compute the concentration intergated over the surface area. 
 
double interpolated_C(const Vector< double > &s)
Get the surfactant concentration. 
 
double * Peclet_Strouhal_S_pt
Pointer to the surface Peclect Strouhal number. 
 
ElasticAxisymmetricSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
 
void set_c_index(const Vector< unsigned > &c_index)
 
double beta()
Return the Elasticity number. 
 
This policy class is used to allow additional values to be added to the nodes from new surface equati...
 
double dsigma_dC(const Vector< double > &s)
 
double dcdt_surface(const unsigned &l) const
The time derivative of the surface concentration. 
 
Pseudo-elasticity version of the PointFluidInterfaceBoundingElement. 
 
Vector< unsigned > C_index
 
void output(std::ostream &outfile)
Overload the output function. 
 
SurfactantTransportInterfaceElement()
 
double *& beta_pt()
Access function for pointer to the Elasticity number. 
 
static double Default_Physical_Constant_Value
Default value of the physical constants. 
 
void setup_equation_indices(SurfactantTransportInterfaceElement *const &element_pt, const unsigned &id)
 
Specialise to the Axisymmetric geometry. 
 
Generic Elastic node update interface template class that can be combined with a given surface equati...
 
double * Beta_pt
Pointer to an Elasticity number. 
 
SpineSurfaceSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
 
SpineAxisymmetricSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
 
double *& peclet_strouhal_s_pt()
Access function for pointer to the surface Peclet x Strouhal number. 
 
double sigma(const Vector< double > &s)
 
Spine version of the PointFluidInterfaceBoundingElement. 
 
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 functio...