Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
InterfaceProblem< ELEMENT, TIMESTEPPER > Class Template Reference
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)
 Problem constructor. More...
 
void actions_before_newton_convergence_check ()
 
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 for single fluid interface problem. More...
 
 ~InterfaceProblem ()
 Destructor (empty) More...
 
void actions_before_newton_convergence_check ()
 
void set_initial_condition ()
 
double global_temporal_error_norm ()
 
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)
 
 ~InterfaceProblem ()
 Destructor (empty) More...
 
void set_initial_condition ()
 
double global_temporal_error_norm ()
 
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 insoluble surfactant.

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

Definition at line 200 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 765 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 428 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 217 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 771 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 226 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 521 of file rayleigh_instability_soluble_surfactant.cc.

References oomph::SurfactantTransportInterfaceElement::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 859 of file rayleigh_instability_insoluble_surfactant.cc.

References oomph::SpineAxisymmetricMarangoniSurfactantFluidInterfaceElement< ELEMENT >::integrate_c().

◆ deform_free_surface() [1/2]

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

◆ deform_free_surface() [2/2]

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

◆ doc_solution() [1/3]

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

◆ 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 461 of file rayleigh_instability_soluble_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 805 of file rayleigh_instability_insoluble_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 433 of file rayleigh_instability_soluble_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 779 of file rayleigh_instability_insoluble_surfactant.cc.

◆ unsteady_run() [1/3]

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

◆ 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 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 1170 of file rayleigh_instability_insoluble_surfactant.cc.

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

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 259 of file 3d_rayleigh_instability_surfactant.cc.

◆ Bulk_mesh_pt [2/3]

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

Access function for the specific mesh.

Definition at line 503 of file rayleigh_instability_soluble_surfactant.cc.

◆ Bulk_mesh_pt [3/3]

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

Access function for the specific mesh.

Definition at line 847 of file rayleigh_instability_insoluble_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 509 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 265 of file 3d_rayleigh_instability_surfactant.cc.

◆ 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 850 of file rayleigh_instability_insoluble_surfactant.cc.

◆ L_y

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

Definition at line 256 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 254 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 262 of file 3d_rayleigh_instability_surfactant.cc.

◆ Trace_file

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

Trace file.

Definition at line 251 of file 3d_rayleigh_instability_surfactant.cc.


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