Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
TwoLayerInterfaceProblem< ELEMENT > Class Template Reference

Problem class to simulate viscous drop propagating along 2D channel. More...

Inheritance diagram for TwoLayerInterfaceProblem< ELEMENT >:

Public Member Functions

 TwoLayerInterfaceProblem ()
 Constructor.
 
 ~TwoLayerInterfaceProblem ()
 Destructor.
 
void actions_before_adapt ()
 Actions before adapt: Wipe the mesh of free surface elements.
 
void actions_after_adapt ()
 Actions after adapt: Rebuild the mesh of free surface elements.
 
void actions_after_newton_solve ()
 Update the after solve (empty)
 
void actions_before_newton_solve ()
 Update the problem specs before solve.
 
void complete_problem_setup ()
 Set boundary conditions and complete the build of all elements.
 
void doc_solution (const std::string &comment="")
 Doc the solution.
 
void compute_error_estimate (double &max_err, double &min_err)
 Compute the error estimates and assign to elements for plotting.
 
void set_initial_condition ()
 Set the initial conditions.
 
void deform_interface (const double &epsilon, const unsigned &n_periods)
 Function to deform the interface.
 
void fix_pressure (const unsigned &e, const unsigned &pdof, const double &pvalue)
 Fix pressure in element e at pressure dof pdof and set to pvalue.
 

Private Types

enum  {
  Inflow_boundary_id =0 , Upper_wall_boundary_id =1 , Outflow_boundary_id =2 , Bottom_wall_boundary_id =3 ,
  Interface_boundary_id =4
}
 Enumeration of channel boundaries. More...
 

Private Member Functions

void create_free_surface_elements ()
 Create free surface elements.
 
void delete_free_surface_elements ()
 Delete free surface elements.
 

Private Attributes

MeshFree_surface_mesh_pt
 Pointers to mesh of free surface elements.
 
RefineableSolidTriangleMesh< ELEMENT > * Fluid_mesh_pt
 Pointer to Fluid_mesh.
 
Vector< TriangleMeshPolygon * > Drop_polygon_pt
 Vector storing pointer to the drop polygons.
 
TriangleMeshPolygonOuter_boundary_polyline_pt
 Triangle mesh polygon for outer boundary.
 
DataDrop_pressure_data_pt
 Pointer to a global drop pressure datum.
 
double Initial_value_for_drop_pressure
 Backed up drop pressure between adaptations.
 
ELEMENTHijacked_element_pt
 Pointer to hijacked element.
 
bool Use_volume_constraint
 Bool to indicate if volume constraint is applied (only for steady run)
 

Detailed Description

template<class ELEMENT>
class TwoLayerInterfaceProblem< ELEMENT >

Problem class to simulate viscous drop propagating along 2D channel.

Definition at line 351 of file refineable_two_layer_interface.cc.

Member Enumeration Documentation

◆ anonymous enum

template<class ELEMENT >
anonymous enum
private

Enumeration of channel boundaries.

Enumerator
Inflow_boundary_id 
Upper_wall_boundary_id 
Outflow_boundary_id 
Bottom_wall_boundary_id 
Interface_boundary_id 

Definition at line 558 of file refineable_two_layer_interface.cc.

Constructor & Destructor Documentation

◆ TwoLayerInterfaceProblem()

◆ ~TwoLayerInterfaceProblem()

Member Function Documentation

◆ actions_after_adapt()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::actions_after_adapt ( )
inline

Actions after adapt: Rebuild the mesh of free surface elements.

Definition at line 405 of file refineable_two_layer_interface.cc.

References TwoLayerInterfaceProblem< ELEMENT >::complete_problem_setup(), and TwoLayerInterfaceProblem< ELEMENT >::create_free_surface_elements().

◆ actions_after_newton_solve()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update the after solve (empty)

Definition at line 422 of file refineable_two_layer_interface.cc.

◆ actions_before_adapt()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::actions_before_adapt ( )
inline

Actions before adapt: Wipe the mesh of free surface elements.

Definition at line 393 of file refineable_two_layer_interface.cc.

References TwoLayerInterfaceProblem< ELEMENT >::delete_free_surface_elements().

◆ actions_before_newton_solve()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update the problem specs before solve.

Definition at line 425 of file refineable_two_layer_interface.cc.

References TwoLayerInterfaceProblem< ELEMENT >::Fluid_mesh_pt.

◆ complete_problem_setup()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::complete_problem_setup ( )

◆ compute_error_estimate()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::compute_error_estimate ( double max_err,
double min_err 
)

Compute the error estimates and assign to elements for plotting.

Compute error estimates and assign to elements for plotting.

Definition at line 1033 of file refineable_two_layer_interface.cc.

◆ create_free_surface_elements()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::create_free_surface_elements ( )
private

Create free surface elements.

Create elements that impose the kinematic and dynamic bcs for the pseudo-solid fluid mesh.

Definition at line 775 of file refineable_two_layer_interface.cc.

References Problem_Parameter::Ca, and Problem_Parameter::St.

Referenced by TwoLayerInterfaceProblem< ELEMENT >::actions_after_adapt().

◆ deform_interface()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::deform_interface ( const double epsilon,
const unsigned n_periods 
)
inline

◆ delete_free_surface_elements()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::delete_free_surface_elements ( )
inlineprivate

◆ doc_solution()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::doc_solution ( const std::string &  comment = "")

Doc the solution.

Definition at line 969 of file refineable_two_layer_interface.cc.

References Problem_Parameter::Doc_info, and Problem_Parameter::Trace_file.

◆ fix_pressure()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::fix_pressure ( const unsigned e,
const unsigned pdof,
const double pvalue 
)
inline

Fix pressure in element e at pressure dof pdof and set to pvalue.

Definition at line 495 of file refineable_two_layer_interface.cc.

References TwoLayerInterfaceProblem< ELEMENT >::fix_pressure(), and TwoLayerInterfaceProblem< ELEMENT >::Fluid_mesh_pt.

Referenced by TwoLayerInterfaceProblem< ELEMENT >::fix_pressure().

◆ set_initial_condition()

template<class ELEMENT >
void TwoLayerInterfaceProblem< ELEMENT >::set_initial_condition ( )
inline

Set the initial conditions.

Definition at line 444 of file refineable_two_layer_interface.cc.

References TwoLayerInterfaceProblem< ELEMENT >::Fluid_mesh_pt.

Member Data Documentation

◆ Drop_polygon_pt

template<class ELEMENT >
Vector<TriangleMeshPolygon*> TwoLayerInterfaceProblem< ELEMENT >::Drop_polygon_pt
private

Vector storing pointer to the drop polygons.

Definition at line 540 of file refineable_two_layer_interface.cc.

◆ Drop_pressure_data_pt

template<class ELEMENT >
Data* TwoLayerInterfaceProblem< ELEMENT >::Drop_pressure_data_pt
private

Pointer to a global drop pressure datum.

Definition at line 546 of file refineable_two_layer_interface.cc.

Referenced by TwoLayerInterfaceProblem< ELEMENT >::~TwoLayerInterfaceProblem().

◆ Fluid_mesh_pt

◆ Free_surface_mesh_pt

template<class ELEMENT >
Mesh* TwoLayerInterfaceProblem< ELEMENT >::Free_surface_mesh_pt
private

◆ Hijacked_element_pt

template<class ELEMENT >
ELEMENT* TwoLayerInterfaceProblem< ELEMENT >::Hijacked_element_pt
private

Pointer to hijacked element.

Definition at line 552 of file refineable_two_layer_interface.cc.

◆ Initial_value_for_drop_pressure

template<class ELEMENT >
double TwoLayerInterfaceProblem< ELEMENT >::Initial_value_for_drop_pressure
private

Backed up drop pressure between adaptations.

Definition at line 549 of file refineable_two_layer_interface.cc.

◆ Outer_boundary_polyline_pt

template<class ELEMENT >
TriangleMeshPolygon* TwoLayerInterfaceProblem< ELEMENT >::Outer_boundary_polyline_pt
private

Triangle mesh polygon for outer boundary.

Definition at line 543 of file refineable_two_layer_interface.cc.

Referenced by TwoLayerInterfaceProblem< ELEMENT >::~TwoLayerInterfaceProblem().

◆ Use_volume_constraint

template<class ELEMENT >
bool TwoLayerInterfaceProblem< ELEMENT >::Use_volume_constraint
private

Bool to indicate if volume constraint is applied (only for steady run)

Definition at line 555 of file refineable_two_layer_interface.cc.


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