Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
InterfaceProblem< ELEMENT, TIMESTEPPER > Class Template Reference

Single fluid interface problem including transport of an insoluble surfactant. More...

Inheritance diagram for InterfaceProblem< ELEMENT, TIMESTEPPER >:

Public Member Functions

 InterfaceProblem (const unsigned &n_r, const unsigned &n_y, const unsigned &n_theta, const double &r_min, const double &r_max, const double &l_y, const double &theta_max)
 Constructor: Pass number of elements in x and y directions. Also lengths of the domain in x- and y-directions and the height of the layer.
 
void actions_before_newton_convergence_check ()
 Spine heights/lengths are unknowns in the problem so their values get corrected during each Newton step. However, changing their value does not automatically change the nodal positions, so we need to update all of them.
 
void unsteady_run (const unsigned &nstep)
 Run an unsteady simulation with specified number of steps.
 
void doc_solution (DocInfo &doc_info)
 Doc the solution.
 
double compute_total_mass ()
 Compute the total mass.
 
 InterfaceProblem (const unsigned &n_r, const unsigned &n_z, const double &l_z)
 Constructor: Pass the number of elements in radial and axial directions and the length of the domain in the z direction)
 
 ~InterfaceProblem ()
 Destructor (empty)
 
void actions_before_newton_convergence_check ()
 Spine heights/lengths are unknowns in the problem so their values get corrected during each Newton step. However, changing their value does not automatically change the nodal positions, so we need to update all of them here.
 
void set_initial_condition ()
 Set initial conditions: Set all nodal velocities to zero and initialise the previous velocities to correspond to an impulsive start.
 
double global_temporal_error_norm ()
 The global temporal error norm, based on the movement of the nodes in the radial direction only (because that's the only direction in which they move!)
 
void doc_solution (DocInfo &doc_info)
 Doc the solution.
 
void unsteady_run (const double &t_max, const double &dt)
 Do unsteady run up to maximum time t_max with given timestep dt.
 
double compute_total_mass ()
 Compute the total mass of the insoluble surfactant.
 
 InterfaceProblem (const unsigned &n_r, const unsigned &n_z, const double &l_z)
 Constructor: Pass the number of elements in radial and axial directions and the length of the domain in the z direction)
 
 ~InterfaceProblem ()
 Destructor (empty)
 
void set_initial_condition ()
 Set initial conditions: Set all nodal velocities to zero and initialise the previous velocities to correspond to an impulsive start.
 
double global_temporal_error_norm ()
 The global temporal error norm, based on the movement of the nodes in the radial direction only (because that's the only direction in which they move!)
 
void doc_solution (DocInfo &doc_info)
 Doc the solution.
 
void unsteady_run (const double &t_max, const double &dt)
 Do unsteady run up to maximum time t_max with given timestep dt.
 
double compute_total_mass ()
 Compute the total mass of the insoluble surfactant.
 

Public Attributes

MyHorizontalSingleLayerSpineMesh< ELEMENT > * Bulk_mesh_pt
 Access function for the specific mesh.
 
MeshInterface_mesh_pt
 Mesh for the free surface (interface) elements.
 
ElasticRectangularQuadMesh< ELEMENT > * Bulk_mesh_pt
 Access function for the specific mesh.
 
ConstitutiveLawConstitutive_law_pt
 Pointer to the constitutive law.
 

Private Member Functions

void deform_free_surface (const double &epsilon)
 Deform the mesh/free surface to a prescribed function.
 
void deform_free_surface (const double &epsilon)
 Deform the mesh/free surface to a prescribed function.
 

Private Attributes

ofstream Trace_file
 Trace file.
 
double R_max
 Axial lengths of domain.
 
double L_y
 
AnnularSpineMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to bulk mesh.
 
MeshSurface_mesh_pt
 Pointer to the surface mes.
 
NodeDocument_node_pt
 Pointer to a node for documentation purposes.
 

Detailed Description

template<class ELEMENT, class TIMESTEPPER>
class InterfaceProblem< ELEMENT, TIMESTEPPER >

Single fluid interface problem including transport of an insoluble surfactant.

Single axisymmetric fluid interface problem including the transport of an soluble surfactant.

Single axisymmetric fluid interface problem including the transport of an insoluble surfactant.

Definition at line 196 of file 3d_rayleigh_instability_surfactant.cc.

Constructor & Destructor Documentation

◆ InterfaceProblem() [1/3]

InterfaceProblem< ELEMENT, TIMESTEPPER >::InterfaceProblem ( const unsigned n_r,
const unsigned n_y,
const unsigned n_theta,
const double r_min,
const double r_max,
const double l_y,
const double theta_max 
)

◆ InterfaceProblem() [2/3]

Constructor: Pass the number of elements in radial and axial directions and the length of the domain in the z direction)

Constructor for single fluid interface problem.

Definition at line 915 of file rayleigh_instability_insoluble_surfactant.cc.

References Global_Physical_Variables::Beta, Global_Physical_Variables::Ca, Global_Physical_Variables::G(), Global_Physical_Variables::P_ext, Global_Physical_Variables::Peclet_S, Global_Physical_Variables::Peclet_St_S, Global_Physical_Variables::Re, Global_Physical_Variables::ReInvFr, and Global_Physical_Variables::ReSt.

◆ ~InterfaceProblem() [1/2]

Destructor (empty)

Definition at line 761 of file rayleigh_instability_insoluble_surfactant.cc.

◆ InterfaceProblem() [3/3]

Constructor: Pass the number of elements in radial and axial directions and the length of the domain in the z direction)

◆ ~InterfaceProblem() [2/2]

Destructor (empty)

Definition at line 424 of file rayleigh_instability_soluble_surfactant.cc.

Member Function Documentation

◆ actions_before_newton_convergence_check() [1/2]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::actions_before_newton_convergence_check ( )
inline

Spine heights/lengths are unknowns in the problem so their values get corrected during each Newton step. However, changing their value does not automatically change the nodal positions, so we need to update all of them.

Definition at line 213 of file 3d_rayleigh_instability_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt.

◆ actions_before_newton_convergence_check() [2/2]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::actions_before_newton_convergence_check ( )
inline

Spine heights/lengths are unknowns in the problem so their values get corrected during each Newton step. However, changing their value does not automatically change the nodal positions, so we need to update all of them here.

Definition at line 767 of file rayleigh_instability_insoluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt.

◆ compute_total_mass() [1/3]

double InterfaceProblem< ELEMENT, TIMESTEPPER >::compute_total_mass ( )
inline

◆ compute_total_mass() [2/3]

double InterfaceProblem< ELEMENT, TIMESTEPPER >::compute_total_mass ( )
inline

Compute the total mass of the insoluble surfactant.

Definition at line 855 of file rayleigh_instability_insoluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Interface_mesh_pt.

◆ compute_total_mass() [3/3]

double InterfaceProblem< ELEMENT, TIMESTEPPER >::compute_total_mass ( )
inline

Compute the total mass of the insoluble surfactant.

Definition at line 517 of file rayleigh_instability_soluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Interface_mesh_pt.

◆ deform_free_surface() [1/2]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::deform_free_surface ( const double epsilon)
inlineprivate

◆ deform_free_surface() [2/2]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::deform_free_surface ( const double epsilon)
inlineprivate

◆ doc_solution() [1/3]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::doc_solution ( DocInfo doc_info)

Doc the solution.

Definition at line 443 of file 3d_rayleigh_instability_surfactant.cc.

◆ doc_solution() [2/3]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::doc_solution ( DocInfo doc_info)

Doc the solution.

◆ doc_solution() [3/3]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::doc_solution ( DocInfo doc_info)

Doc the solution.

◆ global_temporal_error_norm() [1/2]

double InterfaceProblem< ELEMENT, TIMESTEPPER >::global_temporal_error_norm ( )
inline

The global temporal error norm, based on the movement of the nodes in the radial direction only (because that's the only direction in which they move!)

Definition at line 801 of file rayleigh_instability_insoluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt.

◆ global_temporal_error_norm() [2/2]

double InterfaceProblem< ELEMENT, TIMESTEPPER >::global_temporal_error_norm ( )
inline

The global temporal error norm, based on the movement of the nodes in the radial direction only (because that's the only direction in which they move!)

Definition at line 457 of file rayleigh_instability_soluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt.

◆ set_initial_condition() [1/2]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::set_initial_condition ( )
inline

Set initial conditions: Set all nodal velocities to zero and initialise the previous velocities to correspond to an impulsive start.

Definition at line 775 of file rayleigh_instability_insoluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt.

◆ set_initial_condition() [2/2]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::set_initial_condition ( )
inline

Set initial conditions: Set all nodal velocities to zero and initialise the previous velocities to correspond to an impulsive start.

Definition at line 429 of file rayleigh_instability_soluble_surfactant.cc.

References InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt.

◆ unsteady_run() [1/3]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::unsteady_run ( const double t_max,
const double dt 
)

Do unsteady run up to maximum time t_max with given timestep dt.

Perform run up to specified time t_max with given timestep dt.

Definition at line 1165 of file rayleigh_instability_insoluble_surfactant.cc.

References Global_Physical_Variables::Epsilon, and Global_Physical_Variables::Pvd_file.

◆ unsteady_run() [2/3]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::unsteady_run ( const double t_max,
const double dt 
)

Do unsteady run up to maximum time t_max with given timestep dt.

◆ unsteady_run() [3/3]

void InterfaceProblem< ELEMENT, TIMESTEPPER >::unsteady_run ( const unsigned nstep)

Run an unsteady simulation with specified number of steps.

Unsteady run with specified number of steps.

Definition at line 484 of file 3d_rayleigh_instability_surfactant.cc.

References Global_Physical_Variables::Alpha, Global_Physical_Variables::Epsilon, and Global_Physical_Variables::Film_Thickness.

Member Data Documentation

◆ Bulk_mesh_pt [1/3]

◆ Bulk_mesh_pt [2/3]

Access function for the specific mesh.

Definition at line 843 of file rayleigh_instability_insoluble_surfactant.cc.

◆ Bulk_mesh_pt [3/3]

Access function for the specific mesh.

Definition at line 499 of file rayleigh_instability_soluble_surfactant.cc.

◆ Constitutive_law_pt

Pointer to the constitutive law.

Definition at line 505 of file rayleigh_instability_soluble_surfactant.cc.

◆ Document_node_pt

Node * InterfaceProblem< ELEMENT, TIMESTEPPER >::Document_node_pt
private

Pointer to a node for documentation purposes.

Node for documentatin.

Definition at line 261 of file 3d_rayleigh_instability_surfactant.cc.

Referenced by InterfaceProblem< ELEMENT, TIMESTEPPER >::InterfaceProblem().

◆ Interface_mesh_pt

Mesh * InterfaceProblem< ELEMENT, TIMESTEPPER >::Interface_mesh_pt

Mesh for the free surface (interface) elements.

Definition at line 846 of file rayleigh_instability_insoluble_surfactant.cc.

Referenced by InterfaceProblem< ELEMENT, TIMESTEPPER >::compute_total_mass().

◆ L_y

Definition at line 252 of file 3d_rayleigh_instability_surfactant.cc.

◆ R_max

Axial lengths of domain.

Definition at line 250 of file 3d_rayleigh_instability_surfactant.cc.

◆ Surface_mesh_pt

Mesh* InterfaceProblem< ELEMENT, TIMESTEPPER >::Surface_mesh_pt
private

◆ Trace_file

Trace file.

Definition at line 247 of file 3d_rayleigh_instability_surfactant.cc.


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