Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
BrethertonElement< ELEMENT > Class Template Reference
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)
 
void get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian)
 

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 157 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 164 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 167 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 175 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

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

Definition at line 196 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 265 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 343 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 394 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 387 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 391 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 398 of file bretherton.cc.


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