Example codes
and tutorials
The (Not-so) Quick Guide
List of tutorials/demo codes
Single-Physics Problems
Poisson
Adaptivity illustrated for Poisson
Advection-Diffusion
Unsteady heat equation
Linear wave equation
The Young-Laplace equation
Navier-Stokes
Free-surface Navier-Stokes
Axisymmetric Navier-Stokes
Solid mechanics
Beam structures
Shell structures
Multi-physics Problems
Fluid-structure interaction
Boussinesq convection
Steady thermoelasticity
Methods-based example codes and tutorials
Mesh generation
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
How to write a new element
How to write a new refineable element
Default nonlinear solvers -- the sequence of action functions
...
Documentation
FE theory and top-down discussion of the data structure
The (Not-so) Quick Guide
Comprehensive bottom-up discussion of the data structure
List of available structured and unstructured meshes
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
Coding conventions and C++ style
Creating documentation
Optimisation - robustness vs. "raw speed"
Linear vs. nonlinear problems
Storing shape functions
Changing the default "full" integration scheme
Disabling the ALE formulation of unsteady equations
C vs. C++ output
Different sparse assembly techniques and the STL memory pool
Publications
Publications
Talks
Journal publications
Theses
Picture show
Download
Copyright
Download/installation instructions
Download page
FAQ & Contact
FAQ
Change log
Bugs and other known problems
Completeness of the library & our "To-Do List"
Contact the developers
Get involved

 


Beta release!

Please note that the library has not been "officially" released. While we continue to work on the documentation, these web pages are likely to contain broken links and documents in draft form. Please send an email to

oomph-lib AT maths DOT man DOT ac DOT uk

if you wish to be informed of the library's "official" release.

BrethertonElement< ELEMENT > Class Template Reference

List of all members.

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 156 of file bretherton.cc.


Public Types

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

Public Member Functions

 BrethertonElement ()
 Constructor: Call the constructor of the underlying element.
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.
void assign_local_eqn_numbers ()
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.

Private Attributes

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

Member Typedef Documentation

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 163 of file bretherton.cc.


Constructor & Destructor Documentation

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

Constructor: Call the constructor of the underlying element.

Definition at line 166 of file bretherton.cc.


Member Function Documentation

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 174 of file bretherton.cc.

References BrethertonElement< ELEMENT >::Inflow_boundary, BrethertonElement< ELEMENT >::Inflow_ext_data, and BrethertonElement< ELEMENT >::Inflow_fct_pt.

template<class ELEMENT>
void BrethertonElement< ELEMENT >::assign_local_eqn_numbers (  )  [inline]

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

Definition at line 195 of file bretherton.cc.

References BrethertonElement< ELEMENT >::Inflow_ext_data, and BrethertonElement< ELEMENT >::Inflow_ext_data_eqn.

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 263 of file bretherton.cc.

References BrethertonElement< ELEMENT >::Inflow_ext_data, BrethertonElement< ELEMENT >::Inflow_ext_data_eqn, and BrethertonElement< ELEMENT >::reassign_inflow().

template<class ELEMENT>
void BrethertonElement< ELEMENT >::reassign_inflow (  )  [inline, private]

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 341 of file bretherton.cc.

References BrethertonElement< ELEMENT >::Inflow_boundary, and BrethertonElement< ELEMENT >::Inflow_fct_pt.

Referenced by BrethertonElement< ELEMENT >::get_jacobian().


Member Data Documentation

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

Number of the inflow boundary in the global mesh.

Definition at line 393 of file bretherton.cc.

Referenced by BrethertonElement< ELEMENT >::activate_inflow_dependency_on_external_data(), and BrethertonElement< ELEMENT >::reassign_inflow().

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

Storage for the external Data that affects the inflow.

Definition at line 386 of file bretherton.cc.

Referenced by BrethertonElement< ELEMENT >::activate_inflow_dependency_on_external_data(), BrethertonElement< ELEMENT >::assign_local_eqn_numbers(), and BrethertonElement< ELEMENT >::get_jacobian().

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 390 of file bretherton.cc.

Referenced by BrethertonElement< ELEMENT >::assign_local_eqn_numbers(), and BrethertonElement< ELEMENT >::get_jacobian().

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 397 of file bretherton.cc.

Referenced by BrethertonElement< ELEMENT >::activate_inflow_dependency_on_external_data(), and BrethertonElement< ELEMENT >::reassign_inflow().


The documentation for this class was generated from the following file:
Generated on Mon Aug 10 11:34:20 2009 by  doxygen 1.4.7