SpineInclinedPlaneProblem< ELEMENT, TIMESTEPPER > Class Template Reference
+ Inheritance diagram for SpineInclinedPlaneProblem< ELEMENT, TIMESTEPPER >:

Public Member Functions

 SpineInclinedPlaneProblem (const unsigned &nx, const unsigned &ny, const double &length)
 
void actions_before_newton_convergence_check ()
 
- Public Member Functions inherited from InclinedPlaneProblem< ELEMENT, SpineLineFluidInterfaceElement< ELEMENT > >
 InclinedPlaneProblem (const unsigned &nx, const unsigned &ny, const double &length)
 Generic Constructor (empty) More...
 
void solve_steady ()
 Solve the steady problem. More...
 
void timestep (const double &dt, const unsigned &n_tsteps)
 Take n_tsteps timesteps of size dt. More...
 
void actions_before_implicit_timestep ()
 
void make_traction_elements ()
 
void make_free_surface_elements ()
 
void complete_build ()
 
 ~InclinedPlaneProblem ()
 Generic desructor to clean up the memory allocated in the problem. More...
 

Additional Inherited Members

- Protected Attributes inherited from InclinedPlaneProblem< ELEMENT, SpineLineFluidInterfaceElement< ELEMENT > >
MeshBulk_mesh_pt
 Bulk fluid mesh. More...
 
MeshTraction_mesh_pt
 Mesh for the traction elements that are added at inlet and outlet. More...
 
MeshSurface_mesh_pt
 Mesh for the free surface elements. More...
 
MeshPoint_mesh_pt
 Mesh for the point elements at each end of the free surface. More...
 
std::string Output_prefix
 Prefix for output files. More...
 

Constructor & Destructor Documentation

◆ SpineInclinedPlaneProblem()

template<class ELEMENT , class TIMESTEPPER >
SpineInclinedPlaneProblem< ELEMENT, TIMESTEPPER >::SpineInclinedPlaneProblem ( const unsigned nx,
const unsigned ny,
const double length 
)
inline
614  :
616  (nx,ny,length)
617  {
618  //Set the name
619  this->Output_prefix = "spine";
620 
621  //Create our one and only timestepper, with adaptive timestepping
622  this->add_time_stepper_pt(new TIMESTEPPER);
623 
624  //Create the bulk mesh
626  nx,ny,length,1.0,this->time_stepper_pt());
627 
628  //Create the traction elements
629  this->make_traction_elements();
630  //Create the free surface elements
632 
633  //Add all sub meshes to the problem
634  this->add_sub_mesh(this->Bulk_mesh_pt);
635  this->add_sub_mesh(this->Traction_mesh_pt);
636  this->add_sub_mesh(this->Surface_mesh_pt);
637  this->add_sub_mesh(this->Point_mesh_pt);
638  //Create the global mesh
639  this->build_global_mesh();
640 
641  //Complete the build of the problem
642  this->complete_build();
643  }
Definition: inclined_plane.cc:139
Mesh * Bulk_mesh_pt
Bulk fluid mesh.
Definition: inclined_plane.cc:144
std::string Output_prefix
Prefix for output files.
Definition: inclined_plane.cc:156
Mesh * Traction_mesh_pt
Mesh for the traction elements that are added at inlet and outlet.
Definition: inclined_plane.cc:147
Mesh * Surface_mesh_pt
Mesh for the free surface elements.
Definition: inclined_plane.cc:150
Mesh * Point_mesh_pt
Mesh for the point elements at each end of the free surface.
Definition: inclined_plane.cc:153
Create a spine mesh for the problem.
Definition: inclined_plane.cc:525
const unsigned nx
Definition: ConstraintElementsUnitTest.cpp:30
const unsigned ny
Definition: ConstraintElementsUnitTest.cpp:31

References Mesh_Parameters::nx, and Mesh_Parameters::ny.

Member Function Documentation

◆ actions_before_newton_convergence_check()

template<class ELEMENT , class TIMESTEPPER >
void SpineInclinedPlaneProblem< ELEMENT, TIMESTEPPER >::actions_before_newton_convergence_check ( )
inline

Spine heights/lengths are unknowns in the problem so their values get corrected during each Newton step. However, changing their value does not automatically change the nodal positions, so we need to update all of them

650  {this->Bulk_mesh_pt->node_update();}
virtual void node_update(const bool &update_all_solid_nodes=false)
Definition: mesh.cc:287

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