29 #ifndef OOMPH_SURFACTANT_TRANSPORT_ELEMENTS_HEADER
30 #define OOMPH_SURFACTANT_TRANSPORT_ELEMENTS_HEADER
35 #include <oomph-lib-config.h>
78 double sigma(
const Vector<double>& s);
91 Vector<double>& residuals,
92 DenseMatrix<double>& jacobian,
95 const DShape& dpsifds,
96 const DShape& dpsifdS,
97 const DShape& dpsifdS_div,
98 const Vector<double>& s,
99 const Vector<double>& interpolated_x,
100 const Vector<double>& interpolated_n,
108 Vector<double>& residuals,
109 DenseMatrix<double>& jacobian,
110 DenseMatrix<double>& mass_matrix)
113 this->fill_in_contribution_to_jacobian(residuals, jacobian);
131 this->C_index = c_index;
174 FiniteElement::output(outfile);
177 void output(std::ostream& outfile,
const unsigned& n_plot);
182 FiniteElement::output(file_pt);
186 void output(FILE* file_pt,
const unsigned& n_plot)
188 FiniteElement::output(file_pt, n_plot);
215 const unsigned n_node = element_pt->nnode();
216 Vector<unsigned> c_index(n_node);
217 for (
unsigned n = 0; n < n_node; n++)
219 c_index[n] =
dynamic_cast<BoundaryNodeBase*
>(element_pt->node_pt(n))
220 ->index_of_first_value_assigned_by_face_element(
id);
231 template<
class ELEMENT>
234 SurfactantTransportInterfaceElement,
240 FiniteElement*
const& element_pt,
const int& face_index)
243 ELEMENT>(element_pt, face_index)
250 template<
class ELEMENT>
269 template<
class ELEMENT>
272 SurfactantTransportInterfaceElement,
273 AxisymmetricDerivatives,
278 FiniteElement*
const& element_pt,
const int& face_index)
281 ELEMENT>(element_pt, face_index)
288 template<
class ELEMENT>
306 template<
class ELEMENT>
309 SurfactantTransportInterfaceElement,
310 AxisymmetricDerivatives,
315 FiniteElement*
const& element_pt,
const int& face_index)
318 ELEMENT>(element_pt, face_index)
325 template<
class ELEMENT>
344 template<
class ELEMENT>
347 SurfactantTransportInterfaceElement,
353 FiniteElement*
const& element_pt,
const int& face_index)
356 ELEMENT>(element_pt, face_index)
363 template<
class ELEMENT>
Class that establishes the surface derivative functions for AxisymmetricInterfaceElements....
This policy class is used to associate specific bounding elements with specific FluidInterface elemen...
Specialise to the Axisymmetric geometry.
ElasticAxisymmetricSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
Pseudo-elasticity version of the PointFluidInterfaceBoundingElement.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...
============================================================================= This is the policy clas...
void setup_equation_indices(SurfactantTransportInterfaceElement *const &element_pt, const unsigned &id)
unsigned nadditional_values(const unsigned &n)
This policy class is used to allow additional values to be added to the nodes from new surface equati...
Base class establishing common interfaces and functions for all Navier-Stokes-like fluid interface el...
Class that establishes the surface derivative functions for LineElements. These are defined in a sepa...
Specialise to the Axisymmetric geometry.
SpineAxisymmetricSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
Spine version of the LineFluidInterfaceBoundingElement.
Specialise to the Line geometry.
SpineLineSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
Spine version of the PointFluidInterfaceBoundingElement.
Specialise to surface geometry.
SpineSurfaceSurfactantTransportInterfaceElement(FiniteElement *const &element_pt, const int &face_index)
Generic Spine node update interface template class that can be combined with a given surface equation...
Class that establishes the surface derivative functions for SurfaceInterfaceElements (2D surfaces in ...
Generic surfactant transport equations implemented independently of the dimension and then specialise...
double sigma(const Vector< double > &s)
The surface tension function is linear in the concentration with constant of proportionality equal to...
double *& peclet_s_pt()
Access function for pointer to the surface Peclet number.
Vector< unsigned > C_index
Index at which the surfactant concentration is stored at the nodes.
void output(std::ostream &outfile)
Overload the output function.
void output(FILE *file_pt)
Overload the C-style output function.
virtual double dsigma_dC(const Vector< double > &s)
Return the derivative of sigma with respect to C For use in computing the Jacobian.
double * Peclet_Strouhal_S_pt
Pointer to the surface Peclect Strouhal number.
double *& beta_pt()
Access function for pointer to the Elasticity number.
double * Peclet_S_pt
Pointer to Surface Peclet number.
double integrate_c()
Compute the concentration intergated over the surface area.
double beta()
Return the Elasticity number.
double dcdt_surface(const unsigned &l) const
The time derivative of the surface concentration.
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.
double *& peclet_strouhal_s_pt()
Access function for pointer to the surface Peclet x Strouhal number.
SurfactantTransportInterfaceElement()
Constructor that passes the bulk element and face index down to the underlying.
double interpolated_C(const Vector< double > &s)
Get the surfactant concentration.
void set_c_index(const Vector< unsigned > &c_index)
double * Beta_pt
Pointer to an Elasticity number.
double peclet_s()
Return the surface peclect number.
double peclet_strouhal_s()
Return the surface peclect strouhal number.
void output(FILE *file_pt, const unsigned &n_plot)
C-style Output function.
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...
static double Default_Physical_Constant_Value
Default value of the physical constants.