NLMech  0.1.0
model::QuasiStaticModel< T > Class Template Reference

A class for finite difference approximation of Peridynamics More...

#include <QuasiStaticModel.h>

Inheritance diagram for model::QuasiStaticModel< T >:
Inheritance graph
Collaboration diagram for model::QuasiStaticModel< T >:
Collaboration graph

Public Member Functions

 QuasiStaticModel (inp::Input *deck)
 Constructor. More...
 
 ~QuasiStaticModel ()
 Destructor.
 
- Public Member Functions inherited from model::Model
 Model ()
 Constructor.
 

Private Member Functions

void assembly_jacobian_matrix ()
 Assembles the Jacobian matrix.
 
void assembly_jacobian_matrix_part (size_t begin, size_t end, size_t thread)
 Assembles the Jacobian matrix. More...
 
void computeForces (bool full=false)
 Computes the forces of all nodes. More...
 
void computePertubatedForces (size_t thread)
 Computes the forces of all nodes using the perturbed displacement. More...
 
util::VectorXi computeResidual ()
 Computes the residual for the Newton step. More...
 
void initHObjects ()
 Initialize all data members.
 
util::VectorXi newton_step (util::VectorXi &res)
 Computes the new displacement of Newton step. More...
 
void solver ()
 Starts the simulation and controls the solver.
 
Functions to manipulate the tangent stiffness matrix
void removeRow (util::Matrixij &matrix, size_t rowToRemove)
 Removes the i-th row of a matrix. More...
 
void removeCol (util::Matrixij &matrix, size_t colToRemove)
 Removes the i-th column of a matrix. More...
 
void removeRow (util::VectorXi &vector, size_t rowToRemove)
 Removes the i-th row of a vector. More...
 

Private Attributes

data::DataManagerd_dataManager_p
 Data Manager.
 
std::vector< data::DataManager * > d_dataManagers
 Data manager objects for the assembly of the stiffness matrix.
 
inp::Inputd_input_p
 Pointer to Input object.
 
material::pd::BaseMateriald_material_p
 Pointer to Material object.
 
inp::ModelDeckd_modelDeck_p
 Model deck.
 
std::string d_name
 Name of the model.
 
size_t d_nnodes
 Number of nodes.
 
size_t d_osThreads
 Number of available os threads.
 
inp::OutputDeckd_outputDeck_p
 Output deck.
 
double d_time
 Current simulation time.
 
util::Matrixij jacobian
 

Detailed Description

template<class T>
class model::QuasiStaticModel< T >

A class for finite difference approximation of Peridynamics

We consider explicit schemes such as central difference and velocity verlet for time integration.

This class acts as a holder of lower rank classes, such as Mesh, Loading, InitialCondition, Fracture, etc, and uses the methods and data of the lower rank classes to perform calculation.

Note
1. We can run finite difference on any finite element mesh as long as the mesh consists of only one type of elements. We can mesh the domain using Gmsh and use its **.msh** file to run the finite difference approximation.
2. Currently only dimension 2 is supported.
3. Either triangle or quadrangle elements are supported.

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