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