Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
BrethertonElement< ELEMENT > Class Template Reference

"Bretherton element" is a fluid element (of type ELEMENT) for which the (inflow) velocity at those nodes that are located on a specified Mesh boundary is prescribed by Dirichlet boundary conditions. The key is that prescribed velocity profile can be a function of some external Data – this dependency must be taken into account when computing the element's Jacobian matrix. More...

Inheritance diagram for BrethertonElement< ELEMENT >:

Public Types

typedef void(* InflowFctPt) (const Vector< double > &x, Vector< double > &veloc)
 Typedef for pointer (global) function that specifies the the inflow. More...
 

Public Member Functions

 BrethertonElement ()
 Constructor: Call the constructor of the underlying element. More...
 
void activate_inflow_dependency_on_external_data (const Vector< Data * > &inflow_ext_data, const unsigned &inflow_boundary, InflowFctPt inflow_fct_pt)
 Activate the dependency of the "inflow" on the external data. Pass the vector of pointers to the external Data that affects the inflow, the id of the boundary on which the inflow condition is to be applied and the function pointer to to the global function that defines the inflow. More...
 
void assign_local_eqn_numbers (const bool &store_local_dof_pt)
 Overload assign local equation numbers: Add the dependency on the external Data that affects the inflow profile. More...
 
void get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian)
 Overloaded Jacobian computation: Computes the Jacobian of the underlying element and then adds the FD operations to evaluate the derivatives w.r.t. the Data values that affect the inflow. More...
 

Private Member Functions

void reassign_inflow ()
 For all nodes that are located on specified boundary re-assign the inflow velocity, using the function pointed to by the function pointer. More...
 

Private Attributes

Vector< Data * > Inflow_ext_data
 Storage for the external Data that affects the inflow. More...
 
DenseMatrix< int > Inflow_ext_data_eqn
 Storage for the local equation numbers associated the Data values that affect the inflow. More...
 
unsigned Inflow_boundary
 Number of the inflow boundary in the global mesh. More...
 
InflowFctPt Inflow_fct_pt
 Function pointer to the global function that specifies the inflow velocity profile on the global mesh boundary Inflow_boundary. More...
 

Detailed Description

template<class ELEMENT>
class BrethertonElement< ELEMENT >

"Bretherton element" is a fluid element (of type ELEMENT) for which the (inflow) velocity at those nodes that are located on a specified Mesh boundary is prescribed by Dirichlet boundary conditions. The key is that prescribed velocity profile can be a function of some external Data – this dependency must be taken into account when computing the element's Jacobian matrix.

This element type is useful, for instance, in the Bretherton problem, where the parabolic "inflow" profile is a function of the film thickness (represented by Spine heights) at the "outflow".

Definition at line 153 of file bretherton.cc.

Member Typedef Documentation

◆ InflowFctPt

template<class ELEMENT >
typedef void(* BrethertonElement< ELEMENT >::InflowFctPt) (const Vector< double > &x, Vector< double > &veloc)

Typedef for pointer (global) function that specifies the the inflow.

Definition at line 160 of file bretherton.cc.

Constructor & Destructor Documentation

◆ BrethertonElement()

template<class ELEMENT >
BrethertonElement< ELEMENT >::BrethertonElement ( )
inline

Constructor: Call the constructor of the underlying element.

Definition at line 163 of file bretherton.cc.

Member Function Documentation

◆ activate_inflow_dependency_on_external_data()

template<class ELEMENT >
void BrethertonElement< ELEMENT >::activate_inflow_dependency_on_external_data ( const Vector< Data * > &  inflow_ext_data,
const unsigned &  inflow_boundary,
InflowFctPt  inflow_fct_pt 
)
inline

Activate the dependency of the "inflow" on the external data. Pass the vector of pointers to the external Data that affects the inflow, the id of the boundary on which the inflow condition is to be applied and the function pointer to to the global function that defines the inflow.

Definition at line 171 of file bretherton.cc.

◆ assign_local_eqn_numbers()

template<class ELEMENT >
void BrethertonElement< ELEMENT >::assign_local_eqn_numbers ( const bool &  store_local_dof_pt)
inline

Overload assign local equation numbers: Add the dependency on the external Data that affects the inflow profile.

Definition at line 192 of file bretherton.cc.

◆ get_jacobian()

template<class ELEMENT >
void BrethertonElement< ELEMENT >::get_jacobian ( Vector< double > &  residuals,
DenseMatrix< double > &  jacobian 
)
inline

Overloaded Jacobian computation: Computes the Jacobian of the underlying element and then adds the FD operations to evaluate the derivatives w.r.t. the Data values that affect the inflow.

Definition at line 261 of file bretherton.cc.

◆ reassign_inflow()

template<class ELEMENT >
void BrethertonElement< ELEMENT >::reassign_inflow ( )
inlineprivate

For all nodes that are located on specified boundary re-assign the inflow velocity, using the function pointed to by the function pointer.

Definition at line 339 of file bretherton.cc.

Member Data Documentation

◆ Inflow_boundary

template<class ELEMENT >
unsigned BrethertonElement< ELEMENT >::Inflow_boundary
private

Number of the inflow boundary in the global mesh.

Definition at line 390 of file bretherton.cc.

◆ Inflow_ext_data

template<class ELEMENT >
Vector<Data*> BrethertonElement< ELEMENT >::Inflow_ext_data
private

Storage for the external Data that affects the inflow.

Definition at line 383 of file bretherton.cc.

◆ Inflow_ext_data_eqn

template<class ELEMENT >
DenseMatrix<int> BrethertonElement< ELEMENT >::Inflow_ext_data_eqn
private

Storage for the local equation numbers associated the Data values that affect the inflow.

Definition at line 387 of file bretherton.cc.

◆ Inflow_fct_pt

template<class ELEMENT >
InflowFctPt BrethertonElement< ELEMENT >::Inflow_fct_pt
private

Function pointer to the global function that specifies the inflow velocity profile on the global mesh boundary Inflow_boundary.

Definition at line 394 of file bretherton.cc.


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