Problem class to simulate viscous drop propagating along 2D channel. More...
Public Member Functions | |
| DropInChannelProblem () | |
| Constructor. | |
| ~DropInChannelProblem () | |
| 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 | remove_volume_constraint () |
| Change the boundary conditions to remove the volume constraint. | |
Private Types | |
| enum | { Inflow_boundary_id =0 , Upper_wall_boundary_id =1 , Outflow_boundary_id =2 , Bottom_wall_boundary_id =3 , First_drop_boundary_id =4 , Second_drop_boundary_id =5 } |
| 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. | |
| void | create_volume_constraint_elements () |
| Create elements that impose volume constraint on the drop. | |
| void | delete_volume_constraint_elements () |
| Delete volume constraint elements. | |
Private Attributes | |
| Mesh * | Free_surface_mesh_pt |
| Pointers to mesh of free surface elements. | |
| Mesh * | Volume_constraint_mesh_pt |
| Pointer to mesh containing elements that impose volume constraint. | |
| RefineableSolidTriangleMesh< ELEMENT > * | Fluid_mesh_pt |
| Pointer to Fluid_mesh. | |
| Vector< TriangleMeshPolygon * > | Drop_polygon_pt |
| Vector storing pointer to the drop polygons. | |
| TriangleMeshPolygon * | Outer_boundary_polyline_pt |
| Triangle mesh polygon for outer boundary. | |
| Data * | Drop_pressure_data_pt |
| Pointer to a global drop pressure datum. | |
| VolumeConstraintElement * | Vol_constraint_el_pt |
| Pointer to element that imposes volume constraint for drop. | |
| double | Initial_value_for_drop_pressure |
| Backed up drop pressure between adaptations. | |
| ELEMENT * | Hijacked_element_pt |
| Pointer to hijacked element. | |
| bool | Use_volume_constraint |
| Bool to indicate if volume constraint is applied (only for steady run) | |
Problem class to simulate viscous drop propagating along 2D channel.
Definition at line 408 of file adaptive_drop_in_channel.cc.
|
private |
Enumeration of channel boundaries.
| Enumerator | |
|---|---|
| Inflow_boundary_id | |
| Upper_wall_boundary_id | |
| Outflow_boundary_id | |
| Bottom_wall_boundary_id | |
| First_drop_boundary_id | |
| Second_drop_boundary_id | |
Definition at line 644 of file adaptive_drop_in_channel.cc.
| DropInChannelProblem< ELEMENT >::DropInChannelProblem | ( | ) |
Constructor.
Definition at line 662 of file adaptive_drop_in_channel.cc.
References Problem_Parameter::Ca, Problem_Parameter::Doc_info, Problem_Parameter::Length, and Problem_Parameter::Radius.
|
inline |
Destructor.
Definition at line 417 of file adaptive_drop_in_channel.cc.
References Problem_Parameter::Constitutive_law_pt, DropInChannelProblem< ELEMENT >::delete_free_surface_elements(), DropInChannelProblem< ELEMENT >::delete_volume_constraint_elements(), DropInChannelProblem< ELEMENT >::Drop_polygon_pt, DropInChannelProblem< ELEMENT >::Drop_pressure_data_pt, DropInChannelProblem< ELEMENT >::Fluid_mesh_pt, DropInChannelProblem< ELEMENT >::Free_surface_mesh_pt, DropInChannelProblem< ELEMENT >::Outer_boundary_polyline_pt, and DropInChannelProblem< ELEMENT >::Volume_constraint_mesh_pt.
|
inline |
Actions after adapt: Rebuild the mesh of free surface elements.
Definition at line 477 of file adaptive_drop_in_channel.cc.
References DropInChannelProblem< ELEMENT >::complete_problem_setup(), DropInChannelProblem< ELEMENT >::create_free_surface_elements(), and DropInChannelProblem< ELEMENT >::create_volume_constraint_elements().
|
inline |
Update the after solve (empty)
Definition at line 496 of file adaptive_drop_in_channel.cc.
|
inline |
Actions before adapt: Wipe the mesh of free surface elements.
Definition at line 464 of file adaptive_drop_in_channel.cc.
References DropInChannelProblem< ELEMENT >::delete_free_surface_elements(), and DropInChannelProblem< ELEMENT >::delete_volume_constraint_elements().
|
inline |
Update the problem specs before solve.
Definition at line 499 of file adaptive_drop_in_channel.cc.
References DropInChannelProblem< ELEMENT >::Fluid_mesh_pt.
| void DropInChannelProblem< ELEMENT >::complete_problem_setup | ( | ) |
Set boundary conditions and complete the build of all elements.
Definition at line 1025 of file adaptive_drop_in_channel.cc.
References Problem_Parameter::Constitutive_law_pt, Problem_Parameter::Inflow_veloc_magnitude, Problem_Parameter::Re, and Problem_Parameter::Viscosity_ratio.
Referenced by DropInChannelProblem< ELEMENT >::actions_after_adapt().
| void DropInChannelProblem< 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 1268 of file adaptive_drop_in_channel.cc.
|
private |
Create free surface elements.
Create elements that impose the kinematic and dynamic bcs for the pseudo-solid fluid mesh.
Definition at line 908 of file adaptive_drop_in_channel.cc.
References Problem_Parameter::Ca.
Referenced by DropInChannelProblem< ELEMENT >::actions_after_adapt().
|
private |
Create elements that impose volume constraint on the drop.
Definition at line 956 of file adaptive_drop_in_channel.cc.
References Problem_Parameter::Volume.
Referenced by DropInChannelProblem< ELEMENT >::actions_after_adapt().
|
inlineprivate |
Delete free surface elements.
Definition at line 561 of file adaptive_drop_in_channel.cc.
References DropInChannelProblem< ELEMENT >::Free_surface_mesh_pt.
Referenced by DropInChannelProblem< ELEMENT >::actions_before_adapt(), and DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
|
inlineprivate |
Delete volume constraint elements.
Definition at line 585 of file adaptive_drop_in_channel.cc.
References DropInChannelProblem< ELEMENT >::Initial_value_for_drop_pressure, DropInChannelProblem< ELEMENT >::Vol_constraint_el_pt, and DropInChannelProblem< ELEMENT >::Volume_constraint_mesh_pt.
Referenced by DropInChannelProblem< ELEMENT >::actions_before_adapt(), DropInChannelProblem< ELEMENT >::remove_volume_constraint(), and DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
| void DropInChannelProblem< ELEMENT >::doc_solution | ( | const std::string & | comment = "" | ) |
Doc the solution.
Definition at line 1191 of file adaptive_drop_in_channel.cc.
References Problem_Parameter::Doc_info, Problem_Parameter::Norm_file, and Problem_Parameter::Trace_file.
|
inline |
Change the boundary conditions to remove the volume constraint.
Definition at line 519 of file adaptive_drop_in_channel.cc.
References DropInChannelProblem< ELEMENT >::delete_volume_constraint_elements(), DropInChannelProblem< ELEMENT >::Drop_pressure_data_pt, DropInChannelProblem< ELEMENT >::Fluid_mesh_pt, DropInChannelProblem< ELEMENT >::Free_surface_mesh_pt, DropInChannelProblem< ELEMENT >::Hijacked_element_pt, DropInChannelProblem< ELEMENT >::Use_volume_constraint, and DropInChannelProblem< ELEMENT >::Volume_constraint_mesh_pt.
|
private |
Vector storing pointer to the drop polygons.
Definition at line 623 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
|
private |
Pointer to a global drop pressure datum.
Definition at line 629 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::remove_volume_constraint(), and DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
|
private |
Pointer to Fluid_mesh.
Definition at line 620 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::actions_before_newton_solve(), DropInChannelProblem< ELEMENT >::remove_volume_constraint(), and DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
|
private |
Pointers to mesh of free surface elements.
Definition at line 614 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::delete_free_surface_elements(), DropInChannelProblem< ELEMENT >::remove_volume_constraint(), and DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
|
private |
Pointer to hijacked element.
Definition at line 638 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::remove_volume_constraint().
|
private |
Backed up drop pressure between adaptations.
Definition at line 635 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::delete_volume_constraint_elements().
|
private |
Triangle mesh polygon for outer boundary.
Definition at line 626 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::~DropInChannelProblem().
|
private |
Bool to indicate if volume constraint is applied (only for steady run)
Definition at line 641 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::remove_volume_constraint().
|
private |
Pointer to element that imposes volume constraint for drop.
Definition at line 632 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::delete_volume_constraint_elements().
|
private |
Pointer to mesh containing elements that impose volume constraint.
Definition at line 617 of file adaptive_drop_in_channel.cc.
Referenced by DropInChannelProblem< ELEMENT >::delete_volume_constraint_elements(), DropInChannelProblem< ELEMENT >::remove_volume_constraint(), and DropInChannelProblem< ELEMENT >::~DropInChannelProblem().