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. More...
 
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. More...
 
void unsteady_run (const unsigned &nstep)
 Run an unsteady simulation with specified number of steps. More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
double compute_total_mass ()
 Compute the total mass. More...
 
 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) More...
 
 ~InterfaceProblem ()
 Destructor (empty) More...
 
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. More...
 
void set_initial_condition ()
 Set initial conditions: Set all nodal velocities to zero and initialise the previous velocities to correspond to an impulsive start. More...
 
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!) More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
void unsteady_run (const double &t_max, const double &dt)
 Do unsteady run up to maximum time t_max with given timestep dt. More...
 
double compute_total_mass ()
 Compute the total mass of the insoluble surfactant. More...
 
 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) More...
 
 ~InterfaceProblem ()
 Destructor (empty) More...
 
void set_initial_condition ()
 Set initial conditions: Set all nodal velocities to zero and initialise the previous velocities to correspond to an impulsive start. More...
 
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!) More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
void unsteady_run (const double &t_max, const double &dt)
 Do unsteady run up to maximum time t_max with given timestep dt. More...
 
double compute_total_mass ()
 Compute the total mass of the insoluble surfactant. More...
 

Public Attributes

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

Private Member Functions

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

Private Attributes

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

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]

template<class ELEMENT , class TIMESTEPPER >
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]

template<class ELEMENT , class TIMESTEPPER >
InterfaceProblem< ELEMENT, TIMESTEPPER >::InterfaceProblem ( const unsigned &  n_r,
const unsigned &  n_z,
const double &  l_z 
)

◆ ~InterfaceProblem() [1/2]

template<class ELEMENT , class TIMESTEPPER >
InterfaceProblem< ELEMENT, TIMESTEPPER >::~InterfaceProblem ( )
inline

Destructor (empty)

Definition at line 761 of file rayleigh_instability_insoluble_surfactant.cc.

◆ InterfaceProblem() [3/3]

template<class ELEMENT , class TIMESTEPPER >
InterfaceProblem< ELEMENT, TIMESTEPPER >::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() [2/2]

template<class ELEMENT , class TIMESTEPPER >
InterfaceProblem< ELEMENT, TIMESTEPPER >::~InterfaceProblem ( )
inline

Destructor (empty)

Definition at line 424 of file rayleigh_instability_soluble_surfactant.cc.

Member Function Documentation

◆ actions_before_newton_convergence_check() [1/2]

template<class ELEMENT , class TIMESTEPPER >
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.

◆ actions_before_newton_convergence_check() [2/2]

template<class ELEMENT , class TIMESTEPPER >
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.

◆ compute_total_mass() [1/3]

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

Compute the total mass.

Definition at line 222 of file 3d_rayleigh_instability_surfactant.cc.

References oomph::SurfactantTransportInterfaceElement::integrate_c().

◆ compute_total_mass() [2/3]

template<class ELEMENT , class TIMESTEPPER >
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 oomph::SpineAxisymmetricMarangoniSurfactantFluidInterfaceElement< ELEMENT >::integrate_c().

◆ compute_total_mass() [3/3]

template<class ELEMENT , class TIMESTEPPER >
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 oomph::SurfactantTransportInterfaceElement::integrate_c().

◆ deform_free_surface() [1/2]

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

Deform the mesh/free surface to a prescribed function.

Definition at line 880 of file rayleigh_instability_insoluble_surfactant.cc.

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

◆ deform_free_surface() [2/2]

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

Deform the mesh/free surface to a prescribed function.

Definition at line 542 of file rayleigh_instability_soluble_surfactant.cc.

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

◆ doc_solution() [1/3]

template<class ELEMENT , class TIMESTEPPER >
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]

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

Doc the solution.

◆ doc_solution() [3/3]

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

Doc the solution.

◆ global_temporal_error_norm() [1/2]

template<class ELEMENT , class TIMESTEPPER >
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.

◆ global_temporal_error_norm() [2/2]

template<class ELEMENT , class TIMESTEPPER >
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.

◆ set_initial_condition() [1/2]

template<class ELEMENT , class TIMESTEPPER >
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.

◆ set_initial_condition() [2/2]

template<class ELEMENT , class TIMESTEPPER >
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.

◆ unsteady_run() [1/3]

template<class ELEMENT , class TIMESTEPPER >
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]

template<class ELEMENT , class TIMESTEPPER >
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]

template<class ELEMENT , class TIMESTEPPER >
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.

Referenced by main().

Member Data Documentation

◆ Bulk_mesh_pt [1/3]

template<class ELEMENT , class TIMESTEPPER >
AnnularSpineMesh<ELEMENT>* InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt
private

Pointer to bulk mesh.

Definition at line 255 of file 3d_rayleigh_instability_surfactant.cc.

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

◆ Bulk_mesh_pt [2/3]

template<class ELEMENT , class TIMESTEPPER >
MyHorizontalSingleLayerSpineMesh<ELEMENT>* InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt

Access function for the specific mesh.

Definition at line 843 of file rayleigh_instability_insoluble_surfactant.cc.

◆ Bulk_mesh_pt [3/3]

template<class ELEMENT , class TIMESTEPPER >
ElasticRectangularQuadMesh<ELEMENT>* InterfaceProblem< ELEMENT, TIMESTEPPER >::Bulk_mesh_pt

Access function for the specific mesh.

Definition at line 499 of file rayleigh_instability_soluble_surfactant.cc.

◆ Constitutive_law_pt

template<class ELEMENT , class TIMESTEPPER >
ConstitutiveLaw* InterfaceProblem< ELEMENT, TIMESTEPPER >::Constitutive_law_pt

Pointer to the constitutive law.

Definition at line 505 of file rayleigh_instability_soluble_surfactant.cc.

◆ Document_node_pt

template<class ELEMENT , class TIMESTEPPER >
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

template<class ELEMENT , class TIMESTEPPER >
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.

◆ L_y

template<class ELEMENT , class TIMESTEPPER >
double InterfaceProblem< ELEMENT, TIMESTEPPER >::L_y
private

Definition at line 252 of file 3d_rayleigh_instability_surfactant.cc.

◆ R_max

template<class ELEMENT , class TIMESTEPPER >
double InterfaceProblem< ELEMENT, TIMESTEPPER >::R_max
private

Axial lengths of domain.

Definition at line 250 of file 3d_rayleigh_instability_surfactant.cc.

◆ Surface_mesh_pt

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

Pointer to the surface mes.

Definition at line 258 of file 3d_rayleigh_instability_surfactant.cc.

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

◆ Trace_file

template<class ELEMENT , class TIMESTEPPER >
ofstream InterfaceProblem< ELEMENT, TIMESTEPPER >::Trace_file
private

Trace file.

Definition at line 247 of file 3d_rayleigh_instability_surfactant.cc.


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