32   #include <oomph-lib-config.h>    52                       const int &face_index, 
const unsigned& b) : 
    85  unsigned n_node = this->
nnode();
    99  for(
unsigned l=0;l<n_node;l++)
   101    for (
unsigned d = 0; d < 2; d++)
   103      interpolated_dxds_t[d] += this->
node_pt(l)->
x_gen(0,d) * dpsids(l,0,0)
   117  double dtds_t = sqrt(interpolated_dxds_t[0]*interpolated_dxds_t[0] +
   118   interpolated_dxds_t[1]*interpolated_dxds_t[1]);
   135  unsigned n_node = this->
nnode();
   161  const unsigned outer_slope_index = 3 - slope_index;
   165  for(
unsigned ipt=0;ipt<n_intpt;ipt++)
   180    for (
unsigned n = 0; n < n_node; n++)
   182      for (
unsigned d = 0; d < 2; d++)
   186          dxds_t[d] += dpsi(n,k,0)*
node_pt(n)->
x_gen(slope_index*k,d);
   187          dxds_n[d] += psi(n,k)*
node_pt(n)->
x_gen(outer_slope_index+
   194    double ds_ndn = -edge_sign*sqrt(dxds_t[0]*dxds_t[0]+dxds_t[1]*dxds_t[1])/
   195     (-dxds_n[0]*dxds_t[1]+dxds_t[0]*dxds_n[1]);
   198    double ds_tdn = edge_sign*(dxds_t[1]*dxds_n[1]+dxds_t[0]*dxds_n[0])/
   199     (sqrt(dxds_t[0]*dxds_t[0]+dxds_t[1]*dxds_t[1])*
   200      (-dxds_n[0]*dxds_t[1]+dxds_t[0]*dxds_n[1]));
   203    double interpolated_m = 0.0;
   205    for (
unsigned n = 0; n < n_node; n++)
   210        interpolated_m += psi(n,k)*m[k];
   230    for(
unsigned n=0;n<n_node;n++)
   239        unsigned bulk_p_type = slope_index*k;
   248          residual[local_eqn] += flux1*psi(n,k)*
W;
   257          residual[local_eqn] -= flux0*dpsi(n,k,0)*ds_tdn*
W;
   263        bulk_p_type = outer_slope_index + slope_index*k;
   272          residual[local_eqn] -= flux0*psi(n,k)*ds_ndn*
W;
 
void get_flux1(const double &s, double &flux)
Function to return the prescribed flux at a given macro element coordinate position. 
 
int & face_index()
Index of the face (a number that uniquely identifies the face in the element) 
 
void fill_in_generic_residual_contribution_biharmonic_flux(Vector< double > &residuals)
Add the element's contribution to its residual vector. Flux elements only make contribution to the re...
 
A general Finite Element class. 
 
FluxFctPt Flux1_fct_pt
Function pointer to the prescribed flux. 
 
unsigned Nface_nodal_dof
the number of nodal degrees of freedom for the face element basis functions 
 
virtual double weight(const unsigned &i) const =0
Return weight of i-th integration point. 
 
virtual void get_coordinates_on_boundary(const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta)
Return the vector of the k-th generalised boundary coordinates on mesh boundary b. Broken virtual interface provides run-time error checking. 
 
BiharmonicFluxElement()
Broken empty constructor. 
 
int & normal_sign()
Sign of outer unit normal (relative to cross-products of tangent vectors in the corresponding "bulk" ...
 
Integral *const  & integral_pt() const
Return the pointer to the integration scheme (const version) 
 
virtual double knot(const unsigned &i, const unsigned &j) const =0
Return local coordinate s[j] of i-th integration point. 
 
FluxFctPt Flux0_fct_pt
Function pointer to the prescribed flux. 
 
double J_eulerian(const Vector< double > &s) const
Calculate the Jacobian of the mapping between local and global coordinates at the position s for face...
 
virtual void dshape_local(const Vector< double > &s, Shape &psi, DShape &dpsids) const
Function to compute the geometric shape functions and derivatives w.r.t. local coordinates at local c...
 
double & x_gen(const unsigned &k, const unsigned &i)
Reference to the generalised position x(k,i). 
 
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n. 
 
unsigned & bulk_position_type(const unsigned &i)
Return the position type in the "bulk" element that corresponds to position type i on the FaceElement...
 
virtual unsigned nweight() const =0
Return the number of integration points of the scheme. 
 
virtual void build_face_element(const int &face_index, FaceElement *face_element_pt)
Function for building a lower dimensional FaceElement on the specified face of the FiniteElement...
 
unsigned nnode() const
Return the number of nodes. 
 
void get_flux0(const double &s, double &flux)
Function to return the prescribed flux at a given macro element coordinate position. 
 
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Return the local equation number corresponding to the i-th value at the n-th local node...