![]() |
|
Problem class. More...
Public Member Functions | |
CollapsibleChannelProblem (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 double &litude, const double &period) | |
Constructor for the collapsible channel problem. More... | |
~CollapsibleChannelProblem () | |
Empty destructor. More... | |
RefineableCollapsibleChannelMesh< ELEMENT > * | bulk_mesh_pt () |
Access function for the specific mesh. More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve (empty) More... | |
void | actions_after_newton_solve () |
Update the problem after solve (empty) More... | |
void | actions_before_implicit_timestep () |
Update the velocity boundary condition on the moving wall. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the mesh of prescribed traction elements. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the mesh of prescribed traction elements. More... | |
void | set_initial_condition () |
Apply initial conditions. More... | |
void | doc_solution (DocInfo &doc_info, ofstream &trace_file) |
Doc the solution. More... | |
CollapsibleChannelProblem (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 double &litude, const double &period) | |
~CollapsibleChannelProblem () | |
Empty destructor. More... | |
MyAlgebraicCollapsibleChannelMesh< ELEMENT > * | bulk_mesh_pt () |
Access function for the specific mesh. More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve (empty) More... | |
void | actions_after_newton_solve () |
Update the problem after solve (empty) More... | |
void | actions_before_implicit_timestep () |
Update the velocity boundary condition on the moving wall. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the mesh of prescribed traction elements. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the mesh of prescribed traction elements. More... | |
void | set_initial_condition () |
Apply initial conditions. More... | |
void | doc_solution (DocInfo &doc_info, ofstream &trace_file) |
Doc the solution. More... | |
CollapsibleChannelProblem (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 double &limpedance, const double &litude, const double &period, const unsigned &outflow) | |
Constructor for the collapsible channel problem. More... | |
~CollapsibleChannelProblem () | |
Empty destructor. More... | |
RefineableCollapsibleChannelMesh< ELEMENT > * | bulk_mesh_pt () |
Access function for the fluid bulk mesh. More... | |
Mesh *& | outflow_impedance_master_mesh_pt () |
void | doc_solution (DocInfo &doc_info, ofstream &trace_file) |
Doc the solution. More... | |
void | unsteady_run (string directory_for_data, double nstep, const bool &validation_run=false) |
Run unsteady problem. More... | |
void | refine_elements_based_on_x_coord (const double &x_min, const double &x_max) |
void | switch_off_wall_oscillations () |
Function to switch off wall oscillations. More... | |
Mesh * | create_mesh_for_navier_stokes_preconditioner () |
Create a mesh for the NavierStokes Preconditioner. More... | |
CollapsibleChannelProblem (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 double &litude, const double &period) | |
~CollapsibleChannelProblem () | |
Empty destructor. More... | |
RefineableCollapsibleChannelMesh< ELEMENT > * | bulk_mesh_pt () |
Access function for the specific mesh. More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve (empty) More... | |
void | actions_after_newton_solve () |
Update the problem after solve (empty) More... | |
void | actions_before_newton_convergence_check () |
Update no slip before Newton convergence check. More... | |
void | actions_before_implicit_timestep () |
Update the velocity boundary condition on the moving wall. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the mesh of prescribed traction elements. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the mesh of prescribed traction elements. More... | |
void | set_initial_condition () |
Apply initial conditions. More... | |
void | doc_solution (DocInfo &doc_info, ofstream &trace_file) |
Doc the solution. More... | |
CollapsibleChannelProblem (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 double &limpedance, const double &litude, const double &period, const unsigned &outflow) | |
~CollapsibleChannelProblem () | |
Empty destructor. More... | |
RefineableCollapsibleChannelMesh< ELEMENT > * | bulk_mesh_pt () |
Access function for the fluid bulk mesh. More... | |
Mesh *& | outflow_impedance_master_mesh_pt () |
void | doc_solution (DocInfo &doc_info, ofstream &trace_file) |
Doc the solution. More... | |
void | unsteady_run (string directory_for_data, double nstep, const bool &validation_run=false) |
Run unsteady problem. More... | |
void | refine_elements_based_on_x_coord (const double &x_min, const double &x_max) |
void | switch_off_wall_oscillations () |
Function to switch off wall oscillations. More... | |
Mesh * | create_mesh_for_navier_stokes_preconditioner () |
Create a mesh for the NavierStokesSchurComplementPreconditioner. More... | |
![]() | |
virtual void | debug_hook_fct (const unsigned &i) |
void | set_analytic_dparameter (double *const ¶meter_pt) |
void | unset_analytic_dparameter (double *const ¶meter_pt) |
bool | is_dparameter_calculated_analytically (double *const ¶meter_pt) |
void | set_analytic_hessian_products () |
void | unset_analytic_hessian_products () |
bool | are_hessian_products_calculated_analytically () |
void | set_pinned_values_to_zero () |
bool | distributed () const |
OomphCommunicator * | communicator_pt () |
access function to the oomph-lib communicator More... | |
const OomphCommunicator * | communicator_pt () const |
access function to the oomph-lib communicator, const version More... | |
Problem () | |
Problem (const Problem &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const Problem &)=delete |
Broken assignment operator. More... | |
virtual | ~Problem () |
Virtual destructor to clean up memory. More... | |
Mesh *& | mesh_pt () |
Return a pointer to the global mesh. More... | |
Mesh *const & | mesh_pt () const |
Return a pointer to the global mesh (const version) More... | |
Mesh *& | mesh_pt (const unsigned &imesh) |
Mesh *const & | mesh_pt (const unsigned &imesh) const |
Return a pointer to the i-th submesh (const version) More... | |
unsigned | nsub_mesh () const |
Return number of submeshes. More... | |
unsigned | add_sub_mesh (Mesh *const &mesh_pt) |
void | flush_sub_meshes () |
void | build_global_mesh () |
void | rebuild_global_mesh () |
LinearSolver *& | linear_solver_pt () |
Return a pointer to the linear solver object. More... | |
LinearSolver *const & | linear_solver_pt () const |
Return a pointer to the linear solver object (const version) More... | |
LinearSolver *& | mass_matrix_solver_for_explicit_timestepper_pt () |
LinearSolver * | mass_matrix_solver_for_explicit_timestepper_pt () const |
EigenSolver *& | eigen_solver_pt () |
Return a pointer to the eigen solver object. More... | |
EigenSolver *const & | eigen_solver_pt () const |
Return a pointer to the eigen solver object (const version) More... | |
Time *& | time_pt () |
Return a pointer to the global time object. More... | |
Time * | time_pt () const |
Return a pointer to the global time object (const version). More... | |
double & | time () |
Return the current value of continuous time. More... | |
double | time () const |
Return the current value of continuous time (const version) More... | |
TimeStepper *& | time_stepper_pt () |
const TimeStepper * | time_stepper_pt () const |
TimeStepper *& | time_stepper_pt (const unsigned &i) |
Return a pointer to the i-th timestepper. More... | |
ExplicitTimeStepper *& | explicit_time_stepper_pt () |
Return a pointer to the explicit timestepper. More... | |
unsigned long | set_timestepper_for_all_data (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data=false) |
virtual void | shift_time_values () |
Shift all values along to prepare for next timestep. More... | |
AssemblyHandler *& | assembly_handler_pt () |
Return a pointer to the assembly handler object. More... | |
AssemblyHandler *const & | assembly_handler_pt () const |
Return a pointer to the assembly handler object (const version) More... | |
double & | minimum_dt () |
Access function to min timestep in adaptive timestepping. More... | |
double & | maximum_dt () |
Access function to max timestep in adaptive timestepping. More... | |
unsigned & | max_newton_iterations () |
Access function to max Newton iterations before giving up. More... | |
void | problem_is_nonlinear (const bool &prob_lin) |
Access function to Problem_is_nonlinear. More... | |
double & | max_residuals () |
bool & | time_adaptive_newton_crash_on_solve_fail () |
Access function for Time_adaptive_newton_crash_on_solve_fail. More... | |
double & | newton_solver_tolerance () |
void | add_time_stepper_pt (TimeStepper *const &time_stepper_pt) |
void | set_explicit_time_stepper_pt (ExplicitTimeStepper *const &explicit_time_stepper_pt) |
void | initialise_dt (const double &dt) |
void | initialise_dt (const Vector< double > &dt) |
Data *& | global_data_pt (const unsigned &i) |
Return a pointer to the the i-th global data object. More... | |
void | add_global_data (Data *const &global_data_pt) |
void | flush_global_data () |
LinearAlgebraDistribution *const & | dof_distribution_pt () const |
Return the pointer to the dof distribution (read-only) More... | |
unsigned long | ndof () const |
Return the number of dofs. More... | |
unsigned | ntime_stepper () const |
Return the number of time steppers. More... | |
unsigned | nglobal_data () const |
Return the number of global data values. More... | |
unsigned | self_test () |
Self-test: Check meshes and global data. Return 0 for OK. More... | |
void | enable_store_local_dof_pt_in_elements () |
void | disable_store_local_dof_pt_in_elements () |
unsigned long | assign_eqn_numbers (const bool &assign_local_eqn_numbers=true) |
void | describe_dofs (std::ostream &out= *(oomph_info.stream_pt())) const |
void | enable_discontinuous_formulation () |
void | disable_discontinuous_formulation () |
void | get_dofs (DoubleVector &dofs) const |
void | get_dofs (const unsigned &t, DoubleVector &dofs) const |
Return vector of the t'th history value of all dofs. More... | |
void | set_dofs (const DoubleVector &dofs) |
Set the values of the dofs. More... | |
void | set_dofs (const unsigned &t, DoubleVector &dofs) |
Set the history values of the dofs. More... | |
void | set_dofs (const unsigned &t, Vector< double * > &dof_pt) |
void | add_to_dofs (const double &lambda, const DoubleVector &increment_dofs) |
Add lambda x incremenet_dofs[l] to the l-th dof. More... | |
double * | global_dof_pt (const unsigned &i) |
double & | dof (const unsigned &i) |
i-th dof in the problem More... | |
double | dof (const unsigned &i) const |
i-th dof in the problem (const version) More... | |
double *& | dof_pt (const unsigned &i) |
Pointer to i-th dof in the problem. More... | |
double * | dof_pt (const unsigned &i) const |
Pointer to i-th dof in the problem (const version) More... | |
virtual void | get_inverse_mass_matrix_times_residuals (DoubleVector &Mres) |
virtual void | get_dvaluesdt (DoubleVector &f) |
virtual void | get_residuals (DoubleVector &residuals) |
Get the total residuals Vector for the problem. More... | |
virtual void | get_jacobian (DoubleVector &residuals, DenseDoubleMatrix &jacobian) |
virtual void | get_jacobian (DoubleVector &residuals, CRDoubleMatrix &jacobian) |
virtual void | get_jacobian (DoubleVector &residuals, CCDoubleMatrix &jacobian) |
virtual void | get_jacobian (DoubleVector &residuals, SumOfMatrices &jacobian) |
void | get_fd_jacobian (DoubleVector &residuals, DenseMatrix< double > &jacobian) |
Get the full Jacobian by finite differencing. More... | |
void | get_derivative_wrt_global_parameter (double *const ¶meter_pt, DoubleVector &result) |
void | get_hessian_vector_products (DoubleVectorWithHaloEntries const &Y, Vector< DoubleVectorWithHaloEntries > const &C, Vector< DoubleVectorWithHaloEntries > &product) |
void | solve_eigenproblem (const unsigned &n_eval, Vector< std::complex< double >> &eigenvalue, Vector< DoubleVector > &eigenvector, const bool &steady=true) |
Solve the eigenproblem. More... | |
void | solve_eigenproblem (const unsigned &n_eval, Vector< std::complex< double >> &eigenvalue, const bool &steady=true) |
virtual void | get_eigenproblem_matrices (CRDoubleMatrix &mass_matrix, CRDoubleMatrix &main_matrix, const double &shift=0.0) |
void | assign_eigenvector_to_dofs (DoubleVector &eigenvector) |
Assign the eigenvector passed to the function to the dofs. More... | |
void | add_eigenvector_to_dofs (const double &epsilon, const DoubleVector &eigenvector) |
void | store_current_dof_values () |
Store the current values of the degrees of freedom. More... | |
void | restore_dof_values () |
Restore the stored values of the degrees of freedom. More... | |
void | enable_jacobian_reuse () |
void | disable_jacobian_reuse () |
Disable recycling of Jacobian in Newton iteration. More... | |
bool | jacobian_reuse_is_enabled () |
Is recycling of Jacobian in Newton iteration enabled? More... | |
bool & | use_predictor_values_as_initial_guess () |
void | newton_solve () |
Use Newton method to solve the problem. More... | |
void | enable_globally_convergent_newton_method () |
enable globally convergent Newton method More... | |
void | disable_globally_convergent_newton_method () |
disable globally convergent Newton method More... | |
void | newton_solve (unsigned const &max_adapt) |
void | steady_newton_solve (unsigned const &max_adapt=0) |
void | copy (Problem *orig_problem_pt) |
virtual Problem * | make_copy () |
virtual void | read (std::ifstream &restart_file, bool &unsteady_restart) |
virtual void | read (std::ifstream &restart_file) |
virtual void | dump (std::ofstream &dump_file) const |
void | dump (const std::string &dump_file_name) const |
void | delete_all_external_storage () |
virtual void | symmetrise_eigenfunction_for_adaptive_pitchfork_tracking () |
double * | bifurcation_parameter_pt () const |
void | get_bifurcation_eigenfunction (Vector< DoubleVector > &eigenfunction) |
void | activate_fold_tracking (double *const ¶meter_pt, const bool &block_solve=true) |
void | activate_bifurcation_tracking (double *const ¶meter_pt, const DoubleVector &eigenvector, const bool &block_solve=true) |
void | activate_bifurcation_tracking (double *const ¶meter_pt, const DoubleVector &eigenvector, const DoubleVector &normalisation, const bool &block_solve=true) |
void | activate_pitchfork_tracking (double *const ¶meter_pt, const DoubleVector &symmetry_vector, const bool &block_solve=true) |
void | activate_hopf_tracking (double *const ¶meter_pt, const bool &block_solve=true) |
void | activate_hopf_tracking (double *const ¶meter_pt, const double &omega, const DoubleVector &null_real, const DoubleVector &null_imag, const bool &block_solve=true) |
void | deactivate_bifurcation_tracking () |
void | reset_assembly_handler_to_default () |
Reset the system to the standard non-augemented state. More... | |
double | arc_length_step_solve (double *const ¶meter_pt, const double &ds, const unsigned &max_adapt=0) |
double | arc_length_step_solve (Data *const &data_pt, const unsigned &data_index, const double &ds, const unsigned &max_adapt=0) |
void | reset_arc_length_parameters () |
int & | sign_of_jacobian () |
void | explicit_timestep (const double &dt, const bool &shift_values=true) |
Take an explicit timestep of size dt. More... | |
void | unsteady_newton_solve (const double &dt) |
void | unsteady_newton_solve (const double &dt, const bool &shift_values) |
void | unsteady_newton_solve (const double &dt, const unsigned &max_adapt, const bool &first, const bool &shift=true) |
double | doubly_adaptive_unsteady_newton_solve (const double &dt, const double &epsilon, const unsigned &max_adapt, const bool &first, const bool &shift=true) |
double | doubly_adaptive_unsteady_newton_solve (const double &dt, const double &epsilon, const unsigned &max_adapt, const unsigned &suppress_resolve_after_spatial_adapt_flag, const bool &first, const bool &shift=true) |
double | adaptive_unsteady_newton_solve (const double &dt_desired, const double &epsilon) |
double | adaptive_unsteady_newton_solve (const double &dt_desired, const double &epsilon, const bool &shift_values) |
void | assign_initial_values_impulsive () |
void | assign_initial_values_impulsive (const double &dt) |
void | calculate_predictions () |
Calculate predictions. More... | |
void | enable_mass_matrix_reuse () |
void | disable_mass_matrix_reuse () |
bool | mass_matrix_reuse_is_enabled () |
Return whether the mass matrix is being reused. More... | |
void | refine_uniformly (const Vector< unsigned > &nrefine_for_mesh) |
void | refine_uniformly (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh) |
void | refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | refine_uniformly (DocInfo &doc_info) |
void | refine_uniformly_and_prune (DocInfo &doc_info) |
void | refine_uniformly () |
void | refine_uniformly (const unsigned &i_mesh, DocInfo &doc_info) |
Do uniform refinement for submesh i_mesh with documentation. More... | |
void | refine_uniformly (const unsigned &i_mesh) |
Do uniform refinement for submesh i_mesh without documentation. More... | |
void | p_refine_uniformly (const Vector< unsigned > &nrefine_for_mesh) |
void | p_refine_uniformly (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | p_refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh) |
void | p_refine_uniformly_and_prune (const Vector< unsigned > &nrefine_for_mesh, DocInfo &doc_info) |
void | p_refine_uniformly (DocInfo &doc_info) |
void | p_refine_uniformly_and_prune (DocInfo &doc_info) |
void | p_refine_uniformly () |
void | p_refine_uniformly (const unsigned &i_mesh, DocInfo &doc_info) |
Do uniform p-refinement for submesh i_mesh with documentation. More... | |
void | p_refine_uniformly (const unsigned &i_mesh) |
Do uniform p-refinement for submesh i_mesh without documentation. More... | |
void | refine_selected_elements (const Vector< unsigned > &elements_to_be_refined) |
void | refine_selected_elements (const Vector< RefineableElement * > &elements_to_be_refined_pt) |
void | refine_selected_elements (const unsigned &i_mesh, const Vector< unsigned > &elements_to_be_refined) |
void | refine_selected_elements (const unsigned &i_mesh, const Vector< RefineableElement * > &elements_to_be_refined_pt) |
void | refine_selected_elements (const Vector< Vector< unsigned >> &elements_to_be_refined) |
void | refine_selected_elements (const Vector< Vector< RefineableElement * >> &elements_to_be_refined_pt) |
void | p_refine_selected_elements (const Vector< unsigned > &elements_to_be_refined) |
void | p_refine_selected_elements (const Vector< PRefineableElement * > &elements_to_be_refined_pt) |
void | p_refine_selected_elements (const unsigned &i_mesh, const Vector< unsigned > &elements_to_be_refined) |
void | p_refine_selected_elements (const unsigned &i_mesh, const Vector< PRefineableElement * > &elements_to_be_refined_pt) |
void | p_refine_selected_elements (const Vector< Vector< unsigned >> &elements_to_be_refined) |
void | p_refine_selected_elements (const Vector< Vector< PRefineableElement * >> &elements_to_be_refined_pt) |
unsigned | unrefine_uniformly () |
unsigned | unrefine_uniformly (const unsigned &i_mesh) |
void | p_unrefine_uniformly (DocInfo &doc_info) |
void | p_unrefine_uniformly (const unsigned &i_mesh, DocInfo &doc_info) |
Do uniform p-unrefinement for submesh i_mesh without documentation. More... | |
void | adapt (unsigned &n_refined, unsigned &n_unrefined) |
void | adapt () |
void | p_adapt (unsigned &n_refined, unsigned &n_unrefined) |
void | p_adapt () |
void | adapt_based_on_error_estimates (unsigned &n_refined, unsigned &n_unrefined, Vector< Vector< double >> &elemental_error) |
void | adapt_based_on_error_estimates (Vector< Vector< double >> &elemental_error) |
void | get_all_error_estimates (Vector< Vector< double >> &elemental_error) |
void | doc_errors (DocInfo &doc_info) |
Get max and min error for all elements in submeshes. More... | |
void | doc_errors () |
Get max and min error for all elements in submeshes. More... | |
void | enable_info_in_newton_solve () |
void | disable_info_in_newton_solve () |
Disable the output of information when in the newton solver. More... | |
![]() | |
ExplicitTimeSteppableObject () | |
Empty constructor. More... | |
ExplicitTimeSteppableObject (const ExplicitTimeSteppableObject &)=delete | |
Broken copy constructor. More... | |
void | operator= (const ExplicitTimeSteppableObject &)=delete |
Broken assignment operator. More... | |
virtual | ~ExplicitTimeSteppableObject () |
Empty destructor. More... | |
virtual void | actions_before_explicit_stage () |
virtual void | actions_after_explicit_stage () |
Protected Member Functions | |
void | set_poiseuille_outflow () |
Apply Poiseuille flow on outlet. More... | |
void | set_parallel_outflow () |
Apply parallel flow on outlet. More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve. More... | |
void | actions_after_newton_solve () |
Update the problem after solve (empty) More... | |
void | actions_before_implicit_timestep () |
Update the velocity boundary condition on the moving wall. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the mesh of prescribed traction elements. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the mesh of prescribed traction elements. More... | |
void | set_initial_condition () |
Apply initial conditions. More... | |
void | set_poiseuille_outflow () |
Apply Poiseuille flow on outlet. More... | |
void | set_parallel_outflow () |
Apply parallel flow on outlet. More... | |
void | actions_before_newton_solve () |
Update the problem specs before solve. More... | |
void | actions_after_newton_solve () |
Update the problem after solve (empty) More... | |
void | actions_before_implicit_timestep () |
Update the velocity boundary condition on the moving wall. More... | |
void | actions_before_adapt () |
Actions before adapt: Wipe the mesh of prescribed traction elements. More... | |
void | actions_after_adapt () |
Actions after adapt: Rebuild the mesh of prescribed traction elements. More... | |
void | set_initial_condition () |
Apply initial conditions. More... | |
![]() | |
unsigned | setup_element_count_per_dof () |
virtual void | sparse_assemble_row_or_column_compressed (Vector< int * > &column_or_row_index, Vector< int * > &row_or_column_start, Vector< double * > &value, Vector< unsigned > &nnz, Vector< double * > &residual, bool compressed_row_flag) |
virtual void | actions_before_newton_step () |
virtual void | actions_after_newton_step () |
virtual void | actions_after_implicit_timestep () |
virtual void | actions_after_implicit_timestep_and_error_estimation () |
virtual void | actions_before_explicit_timestep () |
Actions that should be performed before each explicit time step. More... | |
virtual void | actions_after_explicit_timestep () |
Actions that should be performed after each explicit time step. More... | |
virtual void | actions_before_read_unstructured_meshes () |
virtual void | actions_after_read_unstructured_meshes () |
virtual void | actions_after_change_in_global_parameter (double *const ¶meter_pt) |
virtual void | actions_after_change_in_bifurcation_parameter () |
virtual void | actions_after_parameter_increase (double *const ¶meter_pt) |
double & | dof_derivative (const unsigned &i) |
double & | dof_current (const unsigned &i) |
virtual double | global_temporal_error_norm () |
unsigned | newton_solve_continuation (double *const ¶meter_pt) |
unsigned | newton_solve_continuation (double *const ¶meter_pt, DoubleVector &z) |
void | calculate_continuation_derivatives (double *const ¶meter_pt) |
void | calculate_continuation_derivatives (const DoubleVector &z) |
void | calculate_continuation_derivatives_fd (double *const ¶meter_pt) |
bool | does_pointer_correspond_to_problem_data (double *const ¶meter_pt) |
void | set_consistent_pinned_values_for_continuation () |
Private Member Functions | |
void | create_traction_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &surface_mesh_pt) |
Create the traction elements. More... | |
void | delete_traction_elements (Mesh *const &surface_mesh_pt) |
Delete prescribed traction elements from the surface mesh. More... | |
void | create_traction_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &surface_mesh_pt) |
void | delete_traction_elements (Mesh *const &surface_mesh_pt) |
Delete prescribed traction elements from the surface mesh. More... | |
void | delete_outflow_flux_control_elements () |
Delete flux control elements from outflow boundary. More... | |
void | setup_outflow_flux_control_elements () |
Attach flux control elements to outflow boundary. More... | |
void | setup_inflow_traction_elements () |
Create the prescribed traction elements on the inflow. More... | |
void | delete_inflow_traction_elements () |
Delete prescribed traction elements from the surface mesh. More... | |
void | delete_outflow_impedance_elements () |
Delete impedance elements from outflow boundary. More... | |
void | setup_outflow_impedance_elements () |
Attach impedance elements to outflow boundary. More... | |
void | create_traction_elements (const unsigned &b, Mesh *const &bulk_mesh_pt, Mesh *const &surface_mesh_pt) |
void | delete_traction_elements (Mesh *const &surface_mesh_pt) |
Delete prescribed traction elements from the surface mesh. More... | |
void | create_lagrange_multiplier_elements () |
Create elements that impose the prescribed boundary displacement. More... | |
void | delete_lagrange_multiplier_elements () |
void | delete_outflow_flux_control_elements () |
Delete flux control elements from outflow boundary. More... | |
void | setup_outflow_flux_control_elements () |
Attach flux control elements to outflow boundary. More... | |
void | setup_inflow_traction_elements () |
Create the prescribed traction elements on the inflow. More... | |
void | delete_inflow_traction_elements () |
Delete prescribed traction elements from the surface mesh. More... | |
void | delete_outflow_impedance_elements () |
void | setup_outflow_impedance_elements () |
Private Attributes | |
unsigned | Nup |
Number of elements in the x direction in the upstream part of the channel. More... | |
unsigned | Ncollapsible |
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... | |
OscillatingWall * | Wall_pt |
Pointer to the geometric object that parametrises the "collapsible" wall. More... | |
RefineableCollapsibleChannelMesh< ELEMENT > * | Bulk_mesh_pt |
Pointer to the "bulk" mesh. More... | |
Mesh * | Surface_mesh_pt |
Node * | Left_node_pt |
Pointer to the left control node. More... | |
Node * | Right_node_pt |
Pointer to right control node. More... | |
MyAlgebraicCollapsibleChannelMesh< ELEMENT > * | Bulk_mesh_pt |
Pointer to the "bulk" mesh. More... | |
Mesh * | Inflow_traction_mesh_pt |
Mesh * | Outflow_flux_control_master_mesh_pt |
Pointer to mesh containing the net flux control element (only!) More... | |
Mesh * | Outflow_flux_control_sub_mesh_pt |
Pointer to mesh of flux control elements at outflow. More... | |
WomersleyOutflowImpedanceTube< QWomersleyElement< 1, 3 >, 1 > * | Womersley_impedance_tube_pt |
Pointer to impendance tube. More... | |
Mesh * | Outflow_impedance_mesh_pt |
Pointer to the impedance mesh. More... | |
Mesh * | Outflow_impedance_master_mesh_pt |
Pointer to the master impedance mesh when using flux control elements. More... | |
double | L_impedance |
Length of optional impedance tube. More... | |
double | Prescribed_volume_flux |
Prescribed volume flux: set to -1 for value consistent with Re. More... | |
double | Period |
Period of oscillation. More... | |
double | Amplitude |
Amplitude of osciallation. More... | |
unsigned | Outflow_type |
unsigned | Bulk_mesh_id |
Id of the fluid bulk mesh. More... | |
ElasticRefineableCollapsibleChannelMesh< ELEMENT > * | Bulk_mesh_pt |
Pointer to the "bulk" mesh. More... | |
SolidMesh * | Lagrange_multiplier_mesh_pt |
Pointers to meshes of Lagrange multiplier elements. More... | |
ConstitutiveLaw * | Constitutive_law_pt |
Constitutive law used to determine the mesh deformation. More... | |
Problem class.
CollapsibleChannelProblem< ELEMENT >::CollapsibleChannelProblem | ( | 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 double & | amplitude, | ||
const double & | period | ||
) |
Constructor for the collapsible channel problem.
Constructor : the arguments are the number of elements, the length of the domain and the amplitude and period of the oscillations
References e(), MeshRefinement::error_estimator_pt, Global_Physical_Variables::height(), i, Global_Parameters::Ldown, Global_Parameters::Lup, Mesh_Parameters::ly, Global_Parameters::Ly, Mesh_Parameters::ny, GlobalParameters::Ny, Global_Physical_Variables::prescribed_traction(), Global_Physical_Variables::Re, Global_Physical_Variables::ReSt, BL_Squash::squash_fct(), and oomph::NavierStokesTractionElement< ELEMENT >::traction_fct_pt.
|
inline |
CollapsibleChannelProblem< ELEMENT >::CollapsibleChannelProblem | ( | 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 double & | amplitude, | ||
const double & | period | ||
) |
Constructor : the arguments are the number of elements, the length of the domain and the amplitude and period of the oscillations
|
inline |
CollapsibleChannelProblem< ELEMENT >::CollapsibleChannelProblem | ( | 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 double & | limpedance, | ||
const double & | amplitude, | ||
const double & | period, | ||
const unsigned & | outflow | ||
) |
Constructor for the collapsible channel problem.
Constructor : the arguments are the number of elements, the length of the domain and the amplitude and period of the oscillations
Default length of optional impedance tube
References GlobalParameters::Amplitude, e(), MeshRefinement::error_estimator_pt, Global_Physical_Variables::height(), i, GlobalPhysicalParameters::L_impedance, Global_Parameters::Ldown, Global_Parameters::Lup, Mesh_Parameters::ly, Global_Parameters::Ly, Mesh_Parameters::ny, GlobalParameters::Ny, oomph::oomph_info, Global_Physical_Variables::Period, Global_Physical_Variables::prescribed_traction(), Global_Physical_Variables::Re, Global_Physical_Variables::ReSt, BL_Squash::squash_fct(), and oomph::NavierStokesTractionElement< ELEMENT >::traction_fct_pt.
|
inline |
CollapsibleChannelProblem< ELEMENT >::CollapsibleChannelProblem | ( | 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 double & | amplitude, | ||
const double & | period | ||
) |
Constructor : the arguments are the number of elements, the length of the domain and the amplitude and period of the oscillations
|
inline |
CollapsibleChannelProblem< ELEMENT >::CollapsibleChannelProblem | ( | 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 double & | limpedance, | ||
const double & | amplitude, | ||
const double & | period, | ||
const unsigned & | outflow | ||
) |
Constructor : the arguments are the number of elements, the length of the domain and the amplitude and period of the oscillations
|
inline |
|
virtual |
Actions after adapt: Rebuild the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
References e(), Global_Physical_Variables::prescribed_traction(), and oomph::NavierStokesTractionElement< ELEMENT >::traction_fct_pt.
|
virtual |
Actions after adapt: Rebuild the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Actions after adapt: Rebuild the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
virtual |
Actions after adapt: Rebuild the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Actions after adapt: Rebuild the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
inlinevirtual |
|
inlinevirtual |
|
inlineprotectedvirtual |
|
inlinevirtual |
|
inlineprotectedvirtual |
|
virtual |
Actions before adapt: Wipe the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
virtual |
Actions before adapt: Wipe the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Actions before adapt: Wipe the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
virtual |
Actions before adapt: Wipe the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Actions before adapt: Wipe the mesh of prescribed traction elements.
Reimplemented from oomph::Problem.
|
virtual |
Update the velocity boundary condition on the moving wall.
Execute the actions before timestep: Update the velocity boundary condition on the moving wall
Reimplemented from oomph::Problem.
References oomph::FSI_functions::apply_no_slip_on_moving_wall().
|
virtual |
Update the velocity boundary condition on the moving wall.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Update the velocity boundary condition on the moving wall.
Reimplemented from oomph::Problem.
|
virtual |
Update the velocity boundary condition on the moving wall.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Update the velocity boundary condition on the moving wall.
Reimplemented from oomph::Problem.
|
inlinevirtual |
Update no slip before Newton convergence check.
Reimplemented from oomph::Problem.
References oomph::FSI_functions::apply_no_slip_on_moving_wall().
|
inlinevirtual |
Update the problem specs before solve (empty)
Update the inflow and outflow boundary conditioner before solve.
Reimplemented from oomph::Problem.
|
inlinevirtual |
|
protectedvirtual |
Update the problem specs before solve.
Reimplemented from oomph::Problem.
|
inlinevirtual |
|
protectedvirtual |
Update the problem specs before solve.
Reimplemented from oomph::Problem.
|
inline |
Access function for the specific mesh.
|
inline |
Access function for the specific mesh.
|
inline |
Access function for the fluid bulk mesh.
|
inline |
Access function for the specific mesh.
|
inline |
Access function for the fluid bulk mesh.
|
private |
Create elements that impose the prescribed boundary displacement.
Create elements that enforce prescribed boundary motion by Lagrange multiplilers
References b, oomph::Mesh::boundary_element_pt(), e(), oomph::Mesh::face_index_at_boundary(), i, oomph::Node::is_on_boundary(), j, oomph::Mesh::nboundary_element(), oomph::FaceElement::nbulk_value(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Data::nvalue(), oomph::Data::pin(), and oomph::ImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::set_boundary_shape_geom_object_pt().
Mesh * CollapsibleChannelProblem< ELEMENT >::create_mesh_for_navier_stokes_preconditioner |
Create a mesh for the NavierStokes Preconditioner.
Create a mesh for the NavierStokesSchurComplementPreconditioner.
Mesh* CollapsibleChannelProblem< ELEMENT >::create_mesh_for_navier_stokes_preconditioner | ( | ) |
Create a mesh for the NavierStokesSchurComplementPreconditioner.
|
private |
Create the traction elements.
Create the prescribed traction elements on boundary b of the bulk mesh and stick them into the surface mesh.
References oomph::Mesh::add_element_pt(), b, oomph::Mesh::boundary_element_pt(), e(), oomph::Mesh::face_index_at_boundary(), and oomph::Mesh::nboundary_element().
|
private |
Create the prescribed traction elements on boundary b of the bulk mesh and stick them into the surface mesh.
|
private |
Create the prescribed traction elements on boundary b of the bulk mesh and stick them into the surface mesh.
|
private |
Delete prescribed traction elements from the surface mesh.
Delete traction elements and wipe the surface mesh.
References e().
|
private |
Delete prescribed traction elements from the surface mesh.
|
private |
Delete elements that enforce prescribed boundary motion by Lagrange multiplilers
Delete elements that impose the prescribed boundary displacement and wipe the associated mesh
References e().
|
private |
|
private |
Delete flux control elements from outflow boundary.
|
private |
|
private |
|
private |
Delete prescribed traction elements from the surface mesh.
Delete traction elements and wipe the surface mesh.
References e(), oomph::Mesh::element_pt(), oomph::Mesh::flush_element_and_node_storage(), and oomph::Mesh::nelement().
|
private |
Delete prescribed traction elements from the surface mesh.
|
private |
Delete prescribed traction elements from the surface mesh.
void CollapsibleChannelProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info, |
ofstream & | trace_file | ||
) |
Doc the solution.
References oomph::DocInfo::directory(), MergeRestartFiles::filename, i, oomph::DocInfo::number(), and Eigen::zeta().
void CollapsibleChannelProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info, |
ofstream & | trace_file | ||
) |
Doc the solution.
void CollapsibleChannelProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info, |
ofstream & | trace_file | ||
) |
Doc the solution.
void CollapsibleChannelProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info, |
ofstream & | trace_file | ||
) |
Doc the solution.
void CollapsibleChannelProblem< ELEMENT >::doc_solution | ( | DocInfo & | doc_info, |
ofstream & | trace_file | ||
) |
Doc the solution.
|
inline |
Access function to the pointer to the master impedance mesh which is used when using impedance boundary conditions with flux control elements
|
inline |
Access function to the pointer to the master impedance mesh which is used when using impedance boundary conditions with flux control elements
void CollapsibleChannelProblem< ELEMENT >::refine_elements_based_on_x_coord | ( | const double & | x_min, |
const double & | x_max | ||
) |
Refine any element whoes centre node lies between x coorodinates x_min and x_max
References e(), oomph::FiniteElement::node_pt(), oomph::oomph_info, and oomph::Node::x().
void CollapsibleChannelProblem< ELEMENT >::refine_elements_based_on_x_coord | ( | const double & | x_min, |
const double & | x_max | ||
) |
Refine any element whoes centre node lies between x coorodinates x_min and x_max
|
virtual |
Apply initial conditions.
Apply initial conditions: Impulsive start from steady Poiseuille.
Apply initial conditions: Impulsive start from steady Poiseuille flow.
Reimplemented from oomph::Problem.
References Global_Parameters::Ly, n, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, compute_granudrum_aor::type, and plotDoE::x.
|
virtual |
Apply initial conditions.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Apply initial conditions.
Reimplemented from oomph::Problem.
|
virtual |
Apply initial conditions.
Reimplemented from oomph::Problem.
|
protectedvirtual |
Apply initial conditions.
Reimplemented from oomph::Problem.
|
protected |
Apply parallel flow on outlet.
|
protected |
Apply parallel flow on outlet.
|
protected |
|
protected |
Apply Poiseuille flow on outlet.
|
private |
Create the prescribed traction elements on the inflow.
Create the traction elements.
|
private |
Create the prescribed traction elements on the inflow.
|
private |
Attach flux control elements to outflow boundary.
References b, oomph::NetFluxControlElement< ELEMENT >::dof_number_for_unknown(), e(), Global_Physical_Variables::Pout_data_pt, GlobalPhysicalParameters::Prescribed_volume_flux, and oomph::NetFluxControlElement< ELEMENT >::pressure_data_pt().
|
private |
Attach flux control elements to outflow boundary.
|
private |
Attach impedance elements to outflow boundary.
References b, e(), GlobalPhysicalParameters::L_impedance, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
private |
|
inline |
Function to switch off wall oscillations.
|
inline |
Function to switch off wall oscillations.
void CollapsibleChannelProblem< ELEMENT >::unsteady_run | ( | string | directory_for_data, |
double | nstep, | ||
const bool & | validation_run = false |
||
) |
Run unsteady problem.
References oomph::DocInfo::directory(), MergeRestartFiles::filename, GlobalPhysicalParameters::L_impedance, Global_Parameters::Ldown, Global_Parameters::Lup, oomph::DocInfo::number(), oomph::oomph_info, Global_Physical_Variables::P_up, Global_Physical_Variables::Period, GlobalPhysicalParameters::Prescribed_volume_flux, Global_Physical_Variables::ReSt, and oomph::DocInfo::set_directory().
void CollapsibleChannelProblem< ELEMENT >::unsteady_run | ( | string | directory_for_data, |
double | nstep, | ||
const bool & | validation_run = false |
||
) |
Run unsteady problem.
|
private |
Amplitude of osciallation.
|
private |
Id of the fluid bulk mesh.
|
private |
Pointer to the "bulk" mesh.
|
private |
Pointer to the "bulk" mesh.
|
private |
Pointer to the "bulk" mesh.
|
private |
Constitutive law used to determine the mesh deformation.
|
private |
Pointer to the "surface" mesh that contains the applied traction elements at the inflow
|
private |
Length of optional impedance tube.
|
private |
Pointers to meshes of Lagrange multiplier elements.
|
private |
x-length in the "collapsible" part of the channel
|
private |
x-length in the downstream part of the channel
|
private |
Pointer to the left control node.
|
private |
x-length in the upstream part of the channel
|
private |
Transverse length.
|
private |
Number of elements in the x direction in the "collapsible" part of the channel
|
private |
Number of elements in the x direction in the downstream part of the channel.
|
private |
Number of elements in the x direction in the upstream part of the channel.
|
private |
Number of elements across the channel.
|
private |
Pointer to mesh containing the net flux control element (only!)
|
private |
Pointer to mesh of flux control elements at outflow.
|
private |
Pointer to the master impedance mesh when using flux control elements.
|
private |
Pointer to the impedance mesh.
|
private |
Outflow boundary type: 0: prescribed flux boundary conditions 1: impedance boundary conditions 2: prescribed outflow Otherwise we have pressure driven flow with zero pressure at outlet
|
private |
Period of oscillation.
|
private |
Prescribed volume flux: set to -1 for value consistent with Re.
|
private |
Pointer to right control node.
|
private |
Pointer to the "surface" mesh that contains the applied traction elements
|
private |
Pointer to the geometric object that parametrises the "collapsible" wall.
|
private |
Pointer to impendance tube.