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

Boundary-driven elastic deformation of fish-shaped domain. 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)
 
template<>
void set_incompressible (QPVDElementWithPressure< 3 > *el_pt, const bool &incompressible)
 
template<>
void set_incompressible (QPVDElementWithContinuousPressure< 3 > *el_pt, const bool &incompressible)
 
template<>
void set_incompressible (QPVDElement< 3, 3 > *el_pt, const bool &incompressible)
 
template<>
void set_incompressible (QPVDElementWithPressure< 3 > *el_pt, const bool &incompressible)
 
template<>
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 141 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 194 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 154 of file 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 164 of file refineable_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 165 of file 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 216 of file refineable_simple_shear.cc.

◆ apply_boundary_conditions() [1/2]

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

◆ apply_boundary_conditions() [2/2]

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

Shear the top.

Definition at line 224 of file refineable_simple_shear.cc.

◆ doc_solution() [1/2]

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

Doc the solution.

◆ doc_solution() [2/2]

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

◆ mesh_pt() [1/2]

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

Access function for the mesh.

Definition at line 147 of file simple_shear.cc.

◆ mesh_pt() [2/2]

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

◆ run() [1/2]

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

Run simulation.

◆ run() [2/2]

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

◆ 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]

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

Definition at line 341 of file simple_shear.cc.

◆ set_incompressible() [4/7]

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

◆ set_incompressible() [5/7]

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

◆ set_incompressible() [6/7]

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

◆ set_incompressible() [7/7]

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

Definition at line 400 of file refineable_simple_shear.cc.

◆ 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 143 of file refineable_simple_shear.cc.

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


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