Public Member Functions | Private Member Functions | Private Attributes | List of all members
SimpleShearProblem< ELEMENT > Class Template Reference

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

Inheritance diagram for SimpleShearProblem< ELEMENT >:

Public Member Functions

 SimpleShearProblem (const bool &incompressible)
 Constructor: More...
 
void run (const std::string &dirname)
 Run simulation. More...
 
RefineableElasticCubicMesh< ELEMENT > * mesh_pt ()
 Access function for the mesh. More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
void actions_after_newton_solve ()
 Update function (empty) More...
 
void setup_boundary_conditions ()
 
void actions_after_adapt ()
 Need to pin the redundent solid pressures after adaptation. More...
 
void actions_before_newton_solve ()
 Update before solve: We're dealing with a static problem so the nodal positions before the next solve merely serve as initial conditions. For meshes that are very strongly refined near the boundary, the update of the displacement boundary conditions (which only moves the SolidNodes on the boundary), can lead to strongly distorted meshes. This can cause the Newton method to fail --> the overall method is actually more robust if we use the nodal positions as determined by the Domain/MacroElement- based mesh update as initial guesses. More...
 
void apply_boundary_conditions ()
 Shear the top. More...
 
 SimpleShearProblem (const bool &incompressible)
 Constructor: More...
 
void run (const std::string &dirname)
 Run simulation. More...
 
ElasticCubicMesh< ELEMENT > * mesh_pt ()
 Access function for the mesh. More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
void actions_after_newton_solve ()
 Update function (empty) More...
 
void actions_before_newton_solve ()
 Update before solve: We're dealing with a static problem so the nodal positions before the next solve merely serve as initial conditions. For meshes that are very strongly refined near the boundary, the update of the displacement boundary conditions (which only moves the SolidNodes on the boundary), can lead to strongly distorted meshes. This can cause the Newton method to fail --> the overall method is actually more robust if we use the nodal positions as determined by the Domain/MacroElement- based mesh update as initial guesses. More...
 
void apply_boundary_conditions ()
 Shear the top. More...
 

Private Member Functions

void set_incompressible (ELEMENT *el_pt, const bool &incompressible)
 
void set_incompressible (ELEMENT *el_pt, const bool &incompressible)
 
void set_incompressible (QPVDElementWithPressure< 3 > *el_pt, const bool &incompressible)
 
void set_incompressible (QPVDElementWithContinuousPressure< 3 > *el_pt, const bool &incompressible)
 
void set_incompressible (QPVDElement< 3, 3 > *el_pt, const bool &incompressible)
 
void set_incompressible (QPVDElementWithPressure< 3 > *el_pt, const bool &incompressible)
 
void set_incompressible (QPVDElementWithContinuousPressure< 3 > *el_pt, const bool &incompressible)
 

Private Attributes

double Shear
 

Detailed Description

template<class ELEMENT>
class SimpleShearProblem< ELEMENT >

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

Boundary-driven elastic deformation of fish-shaped domain.

Definition at line 137 of file refineable_simple_shear.cc.

Constructor & Destructor Documentation

◆ SimpleShearProblem() [1/2]

template<class ELEMENT >
SimpleShearProblem< ELEMENT >::SimpleShearProblem ( const bool &  incompressible)

◆ SimpleShearProblem() [2/2]

template<class ELEMENT >
SimpleShearProblem< ELEMENT >::SimpleShearProblem ( const bool &  incompressible)

Constructor:

Member Function Documentation

◆ actions_after_adapt()

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::actions_after_adapt ( )
inline

Need to pin the redundent solid pressures after adaptation.

Definition at line 190 of file refineable_simple_shear.cc.

◆ actions_after_newton_solve() [1/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update function (empty)

Definition at line 160 of file refineable_simple_shear.cc.

◆ actions_after_newton_solve() [2/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update function (empty)

Definition at line 150 of file simple_shear.cc.

◆ actions_before_newton_solve() [1/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update before solve: We're dealing with a static problem so the nodal positions before the next solve merely serve as initial conditions. For meshes that are very strongly refined near the boundary, the update of the displacement boundary conditions (which only moves the SolidNodes on the boundary), can lead to strongly distorted meshes. This can cause the Newton method to fail --> the overall method is actually more robust if we use the nodal positions as determined by the Domain/MacroElement- based mesh update as initial guesses.

Definition at line 212 of file refineable_simple_shear.cc.

◆ actions_before_newton_solve() [2/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update before solve: We're dealing with a static problem so the nodal positions before the next solve merely serve as initial conditions. For meshes that are very strongly refined near the boundary, the update of the displacement boundary conditions (which only moves the SolidNodes on the boundary), can lead to strongly distorted meshes. This can cause the Newton method to fail --> the overall method is actually more robust if we use the nodal positions as determined by the Domain/MacroElement- based mesh update as initial guesses.

Definition at line 161 of file simple_shear.cc.

◆ apply_boundary_conditions() [1/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::apply_boundary_conditions ( )
inline

Shear the top.

Definition at line 220 of file refineable_simple_shear.cc.

◆ apply_boundary_conditions() [2/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::apply_boundary_conditions ( )
inline

Shear the top.

Definition at line 169 of file simple_shear.cc.

◆ doc_solution() [1/2]

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

Doc the solution.

Definition at line 281 of file refineable_simple_shear.cc.

◆ doc_solution() [2/2]

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

Doc the solution.

◆ mesh_pt() [1/2]

template<class ELEMENT >
RefineableElasticCubicMesh<ELEMENT>* SimpleShearProblem< ELEMENT >::mesh_pt ( )
inline

Access function for the mesh.

Definition at line 152 of file refineable_simple_shear.cc.

Referenced by SimpleShearProblem< ELEMENT >::SimpleShearProblem().

◆ mesh_pt() [2/2]

template<class ELEMENT >
ElasticCubicMesh<ELEMENT>* SimpleShearProblem< ELEMENT >::mesh_pt ( )
inline

Access function for the mesh.

Definition at line 143 of file simple_shear.cc.

◆ run() [1/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::run ( const std::string &  dirname)

Run simulation.

Run the problem.

Definition at line 335 of file refineable_simple_shear.cc.

References Global_Physical_Variables::Gravity.

Referenced by main().

◆ run() [2/2]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::run ( const std::string &  dirname)

Run simulation.

◆ set_incompressible() [1/7]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::set_incompressible ( ELEMENT *  el_pt,
const bool &  incompressible 
)
private

◆ set_incompressible() [2/7]

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::set_incompressible ( ELEMENT *  el_pt,
const bool &  incompressible 
)
private

◆ set_incompressible() [3/7]

void SimpleShearProblem< QPVDElement< 3, 3 > >::set_incompressible ( QPVDElement< 3, 3 > *  el_pt,
const bool &  incompressible 
)
private

Definition at line 337 of file simple_shear.cc.

◆ set_incompressible() [4/7]

void SimpleShearProblem< QPVDElementWithContinuousPressure< 3 > >::set_incompressible ( QPVDElementWithContinuousPressure< 3 > *  el_pt,
const bool &  incompressible 
)
private

◆ set_incompressible() [5/7]

void SimpleShearProblem< QPVDElementWithContinuousPressure< 3 > >::set_incompressible ( QPVDElementWithContinuousPressure< 3 > *  el_pt,
const bool &  incompressible 
)
private

◆ set_incompressible() [6/7]

void SimpleShearProblem< QPVDElementWithPressure< 3 > >::set_incompressible ( QPVDElementWithPressure< 3 > *  el_pt,
const bool &  incompressible 
)
private

◆ set_incompressible() [7/7]

void SimpleShearProblem< QPVDElementWithPressure< 3 > >::set_incompressible ( QPVDElementWithPressure< 3 > *  el_pt,
const bool &  incompressible 
)
private

◆ setup_boundary_conditions()

template<class ELEMENT >
void SimpleShearProblem< ELEMENT >::setup_boundary_conditions ( )
inline

Member Data Documentation

◆ Shear

template<class ELEMENT >
double SimpleShearProblem< ELEMENT >::Shear
private

Definition at line 139 of file refineable_simple_shear.cc.


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