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. More...
 
 ~TwoLayerInterfaceProblem ()
 Destructor. More...
 
void actions_before_adapt ()
 Actions before adapt: Wipe the mesh of free surface elements. More...
 
void actions_after_adapt ()
 Actions after adapt: Rebuild the mesh of free surface elements. More...
 
void actions_after_newton_solve ()
 Update the after solve (empty) More...
 
void actions_before_newton_solve ()
 Update the problem specs before solve. More...
 
void complete_problem_setup ()
 Set boundary conditions and complete the build of all elements. More...
 
void doc_solution (const std::string &comment="")
 Doc the solution. More...
 
void compute_error_estimate (double &max_err, double &min_err)
 Compute the error estimates and assign to elements for plotting. More...
 
void set_initial_condition ()
 Set the initial conditions. More...
 
void deform_interface (const double &epsilon, const unsigned &n_periods)
 Function to deform the interface. More...
 
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. More...
 

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. More...
 
void delete_free_surface_elements ()
 Delete free surface elements. More...
 

Private Attributes

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

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()

template<class ELEMENT >
TwoLayerInterfaceProblem< ELEMENT >::TwoLayerInterfaceProblem

◆ ~TwoLayerInterfaceProblem()

template<class ELEMENT >
TwoLayerInterfaceProblem< ELEMENT >::~TwoLayerInterfaceProblem ( )
inline

Destructor.

Definition at line 360 of file refineable_two_layer_interface.cc.

References Problem_Parameter::Constitutive_law_pt.

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.

◆ 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.

◆ 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.

◆ 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.

◆ deform_interface()

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

Function to deform the interface.

Definition at line 470 of file refineable_two_layer_interface.cc.

References Problem_Parameter::Length.

◆ delete_free_surface_elements()

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

Delete free surface elements.

Definition at line 512 of file refineable_two_layer_interface.cc.

◆ 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.

◆ 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.

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.

◆ Fluid_mesh_pt

template<class ELEMENT >
RefineableSolidTriangleMesh<ELEMENT>* TwoLayerInterfaceProblem< ELEMENT >::Fluid_mesh_pt
private

Pointer to Fluid_mesh.

Definition at line 537 of file refineable_two_layer_interface.cc.

◆ Free_surface_mesh_pt

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

Pointers to mesh of free surface elements.

Definition at line 533 of file refineable_two_layer_interface.cc.

◆ 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.

◆ 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: