Public Member Functions | List of all members
SegregatedFSICollapsibleChannelProblem< ELEMENT > Class Template Reference

//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// More...

Inheritance diagram for SegregatedFSICollapsibleChannelProblem< ELEMENT >:
FSICollapsibleChannelProblem< ELEMENT >

Public Member Functions

 SegregatedFSICollapsibleChannelProblem (const unsigned &nup, const unsigned &ncollapsible, const unsigned &ndown, const unsigned &ny, const double &lup, const double &lcollapsible, const double &ldown, const double &ly, const bool &displ_control, const bool &steady_flag)
 Constructor: The arguments are the same as the original (non-segregated) problem, namely, numbers of elements and lengths of different sections of the domain. More...
 
 ~SegregatedFSICollapsibleChannelProblem ()
 Empty Destructor. More...
 
void identify_fluid_and_solid_dofs (Vector< Data * > &fluid_data_pt, Vector< Data * > &solid_data_pt, Mesh *&fluid_mesh_pt, Mesh *&solid_mesh_pt)
 Identify the fluid and solid Data and meshes that contain only elements involved in the respective sub-problems. This is a specific implementation of a pure virtual function in the SegregatableFSIProblem base class. More...
 
void actions_before_newton_convergence_check ()
 Update nodal positions in the fluid mesh in response to changes in the wall displacement field after every Newton step in a monolithic or segregated solid solve. Note the use of the (protected) flag Solve_type, which can take the values Full_solve, Fluid_solve or Solid_solve. This flag is used to allow specification of different actions depending on the precise solve taking place. More...
 
void actions_before_segregated_convergence_check ()
 Update nodal positions in the fluid mesh in response to any changes in the wall displacement field after every segregated solve. This is not strictly necessary because we do the solid solve last, which performs its own node update before the convergence check of the sub problem. It remains here because if we were solving in a completely segregated fashion a node update would be required for the fluid mesh in the final converged solution to be consistent with the solid positions. More...
 
void doc_solution (DocInfo &doc_info)
 Document the solution. More...
 
void steady_run ()
 Perform a steady run. More...
 
- Public Member Functions inherited from FSICollapsibleChannelProblem< ELEMENT >
 FSICollapsibleChannelProblem (const unsigned &nup, const unsigned &ncollapsible, const unsigned &ndown, const unsigned &ny, const double &lup, const double &lcollapsible, const double &ldown, const double &ly, const bool &displ_control, const bool &steady_flag)
 Constructor: The arguments are the number of elements and the lengths of the domain. More...
 
 ~FSICollapsibleChannelProblem ()
 Destructor. More...
 
virtual void unsteady_run (const double &dt=0.1)
 Unsteady run; virtual so it can be overloaded in derived problem classes. Specify timestep or use default of 0.1. More...
 
AlgebraicCollapsibleChannelMesh< ELEMENT > * bulk_mesh_pt ()
 Access function for the specific bulk (fluid) mesh. More...
 
OneDLagrangianMesh< FSIHermiteBeamElement > * wall_mesh_pt ()
 Access function for the wall mesh. More...
 
void actions_before_newton_solve ()
 Actions before solve. Reset counter for number of Newton iterations. More...
 
void actions_after_newton_solve ()
 Update the problem after solve (empty) More...
 
void actions_before_newton_convergence_check ()
 Update before checking Newton convergence: Update the nodal positions in the fluid mesh in response to possible changes in the wall shape. More...
 
virtual void doc_solution_steady (DocInfo &doc_info, ofstream &trace_file, const double &cpu, const unsigned &niter)
 Doc the steady solution. More...
 
virtual void doc_solution_unsteady (DocInfo &doc_info, ofstream &trace_file, const double &cpu, const unsigned &niter)
 Doc the unsteady solution. More...
 
void set_initial_condition ()
 Apply initial conditions. More...
 

Additional Inherited Members

- Protected Member Functions inherited from FSICollapsibleChannelProblem< ELEMENT >
void dump_it (ofstream &dump_file)
 Dump problem to disk to allow for restart. More...
 
void restart (ifstream &restart_file)
 Read problem for restart from specified restart file. More...
 
- Protected Attributes inherited from FSICollapsibleChannelProblem< ELEMENT >
unsigned Nup
 Number of elements in the x direction in the upstream part of the channel. More...
 
unsigned Ncollapsible
 Number of elements in the x direction in the collapsible part of the channel. More...
 
unsigned Ndown
 Number of elements in the x direction in the downstream part of the channel. More...
 
unsigned Ny
 Number of elements across the channel. More...
 
double Lup
 x-length in the upstream part of the channel More...
 
double Lcollapsible
 x-length in the collapsible part of the channel More...
 
double Ldown
 x-length in the downstream part of the channel More...
 
double Ly
 Transverse length. More...
 
AlgebraicCollapsibleChannelMesh< ELEMENT > * Bulk_mesh_pt
 Pointer to the "bulk" mesh. More...
 
Mesh * Displ_control_mesh_pt
 Pointer to the mesh that contains the displacement control element. More...
 
bool Displ_control
 Use displacement control? More...
 
OneDLagrangianMesh< FSIHermiteBeamElement > * Wall_mesh_pt
 Pointer to the "wall" mesh. More...
 
Node * Left_node_pt
 Pointer to the left control node. More...
 
Node * Right_node_pt
 Pointer to right control node. More...
 
Node * Wall_node_pt
 Pointer to control node on the wall. More...
 
bool Steady_flag
 Flag for steady run. More...
 
GeomObject * Ctrl_geom_obj_pt
 Pointer to GeomObject at which displacement control is applied (or at which wall displacement is monitored in unsteady runs) More...
 
Vector< double > S_displ_ctrl
 Vector of local coordinates of displacement control point in Ctrl_geom_obj_pt. More...
 
MeshAsGeomObject * Wall_geom_object_pt
 Pointer to geometric object (one Lagrangian, two Eulerian coordinates) that will be built from the wall mesh. More...
 
unsigned Newton_iter
 Counter for Newton iterations. More...
 
DocInfo Doc_info
 DocInfo object. More...
 

Detailed Description

template<class ELEMENT>
class SegregatedFSICollapsibleChannelProblem< ELEMENT >

//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////

Problem class – add segregated solver capability to an existing problem.

Definition at line 86 of file simple_segregated_driver.cc.

Constructor & Destructor Documentation

◆ SegregatedFSICollapsibleChannelProblem()

template<class ELEMENT >
SegregatedFSICollapsibleChannelProblem< ELEMENT >::SegregatedFSICollapsibleChannelProblem ( const unsigned &  nup,
const unsigned &  ncollapsible,
const unsigned &  ndown,
const unsigned &  ny,
const double &  lup,
const double &  lcollapsible,
const double &  ldown,
const double &  ly,
const bool &  displ_control,
const bool &  steady_flag 
)

Constructor: The arguments are the same as the original (non-segregated) problem, namely, numbers of elements and lengths of different sections of the domain.

Constructor for the collapsible channel problem.

Definition at line 167 of file simple_segregated_driver.cc.

References Flags::Convergence_criterion, Flags::Convergence_tolerance, Flags::Omega_under_relax, Flags::Use_irons_and_tuck_extrapolation, and Flags::Use_pointwise_aitken.

◆ ~SegregatedFSICollapsibleChannelProblem()

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

Empty Destructor.

Definition at line 108 of file simple_segregated_driver.cc.

Member Function Documentation

◆ actions_before_newton_convergence_check()

template<class ELEMENT >
void SegregatedFSICollapsibleChannelProblem< ELEMENT >::actions_before_newton_convergence_check ( )
inline

Update nodal positions in the fluid mesh in response to changes in the wall displacement field after every Newton step in a monolithic or segregated solid solve. Note the use of the (protected) flag Solve_type, which can take the values Full_solve, Fluid_solve or Solid_solve. This flag is used to allow specification of different actions depending on the precise solve taking place.

Definition at line 129 of file simple_segregated_driver.cc.

◆ actions_before_segregated_convergence_check()

template<class ELEMENT >
void SegregatedFSICollapsibleChannelProblem< ELEMENT >::actions_before_segregated_convergence_check ( )
inline

Update nodal positions in the fluid mesh in response to any changes in the wall displacement field after every segregated solve. This is not strictly necessary because we do the solid solve last, which performs its own node update before the convergence check of the sub problem. It remains here because if we were solving in a completely segregated fashion a node update would be required for the fluid mesh in the final converged solution to be consistent with the solid positions.

Definition at line 147 of file simple_segregated_driver.cc.

◆ doc_solution()

template<class ELEMENT >
void SegregatedFSICollapsibleChannelProblem< ELEMENT >::doc_solution ( DocInfo &  doc_info)

Document the solution.

Definition at line 326 of file simple_segregated_driver.cc.

◆ identify_fluid_and_solid_dofs()

template<class ELEMENT >
void SegregatedFSICollapsibleChannelProblem< ELEMENT >::identify_fluid_and_solid_dofs ( Vector< Data * > &  fluid_data_pt,
Vector< Data * > &  solid_data_pt,
Mesh *&  fluid_mesh_pt,
Mesh *&  solid_mesh_pt 
)

Identify the fluid and solid Data and meshes that contain only elements involved in the respective sub-problems. This is a specific implementation of a pure virtual function in the SegregatableFSIProblem base class.

Identify the fluid and solid Data and the meshes that contain only elements that are involved in the respective sub-problems. This implements a pure virtual function in the SegregatableFSIProblem base class.

Definition at line 243 of file simple_segregated_driver.cc.

References Global_Physical_Variables::P_ext_data_pt.

◆ steady_run()

template<class ELEMENT >
void SegregatedFSICollapsibleChannelProblem< ELEMENT >::steady_run
virtual

Perform a steady run.

Perform a steady run in which the external pressure (or presribed displacement) is varied causing the channel to collapse.

Reimplemented from FSICollapsibleChannelProblem< ELEMENT >.

Definition at line 359 of file simple_segregated_driver.cc.

References Flags::Nsteps, Global_Physical_Variables::P_ext_data_pt, Global_Physical_Variables::Pmax, Global_Physical_Variables::Pmin, Flags::Use_segregated_solver, and Global_Physical_Variables::Yprescr.


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