Trilinos based (stochastic) FEM solvers
linearizedElasticity.hpp
Go to the documentation of this file.
1 /*
2 Brian Staber (brian.staber@gmail.com)
3 */
4 
5 #ifndef LINEARIZEDELASTICITY_HPP
6 #define LINEARIZEDELASTICITY_HPP
7 
9 
11 {
12 public:
15 
16  void create_FECrsGraph();
17 
18  void aztecSolver(Epetra_FECrsMatrix & A, Epetra_FEVector & b, Epetra_Vector & u, Teuchos::ParameterList & paramList);
19 
20  void assemblePureDirichlet_homogeneousForcing(Epetra_FECrsMatrix & K);
21  void assembleMixedDirichletNeumann_homogeneousForcing(Epetra_FECrsMatrix & K, Epetra_FEVector & F);
22  void assembleMixedDirichletNeumann_inhomogeneousForcing(Epetra_FECrsMatrix & K, Epetra_FEVector & F);
23 
24  void stiffness_homogeneousForcing(Epetra_FECrsMatrix & K);
25  void stiffness_inhomogeneousForcing(Epetra_FECrsMatrix & K, Epetra_FEVector & F);
26  void rhs_NeumannBoundaryCondition(Epetra_FEVector & F);
27 
28  void compute_B_matrices(Epetra_SerialDenseMatrix & dx_shape_functions, Epetra_SerialDenseMatrix & B);
29 
30  void compute_center_cauchy_stress(Epetra_Vector & x, std::string & filename, bool printCauchy, bool printVM);
31  void compute_deformation(Epetra_Vector & x, std::string & filename, bool printCauchy, bool printVM);
32 
33  int print_solution(Epetra_Vector & solution, std::string fileName);
34 
35  virtual Epetra_SerialDenseVector get_neumannBc(Epetra_SerialDenseMatrix & matrix_X, Epetra_SerialDenseMatrix & xg, unsigned int & gp) = 0;
36  virtual Epetra_SerialDenseVector get_forcing(double & x1, double & x2, double & x3, unsigned int & e_lid, unsigned int & gp) = 0;
37  virtual void get_elasticity_tensor(unsigned int & e_lid, unsigned int & gp, Epetra_SerialDenseMatrix & tangent_matrix) = 0;
38  virtual void get_elasticity_tensor_for_recovery(unsigned int & e_lid, Epetra_SerialDenseMatrix & tangent_matrix) = 0;
39 
40  unsigned int n_bc_dof;
42 };
43 #endif
u
Definition: run.m:9
int print_solution(Epetra_Vector &solution, std::string fileName)
void assembleMixedDirichletNeumann_inhomogeneousForcing(Epetra_FECrsMatrix &K, Epetra_FEVector &F)
virtual Epetra_SerialDenseVector get_forcing(double &x1, double &x2, double &x3, unsigned int &e_lid, unsigned int &gp)=0
void assembleMixedDirichletNeumann_homogeneousForcing(Epetra_FECrsMatrix &K, Epetra_FEVector &F)
void stiffness_homogeneousForcing(Epetra_FECrsMatrix &K)
virtual void get_elasticity_tensor(unsigned int &e_lid, unsigned int &gp, Epetra_SerialDenseMatrix &tangent_matrix)=0
void compute_B_matrices(Epetra_SerialDenseMatrix &dx_shape_functions, Epetra_SerialDenseMatrix &B)
virtual Epetra_SerialDenseVector get_neumannBc(Epetra_SerialDenseMatrix &matrix_X, Epetra_SerialDenseMatrix &xg, unsigned int &gp)=0
void compute_deformation(Epetra_Vector &x, std::string &filename, bool printCauchy, bool printVM)
filename
Definition: costFunction.m:44
void compute_center_cauchy_stress(Epetra_Vector &x, std::string &filename, bool printCauchy, bool printVM)
void assemblePureDirichlet_homogeneousForcing(Epetra_FECrsMatrix &K)
virtual void get_elasticity_tensor_for_recovery(unsigned int &e_lid, Epetra_SerialDenseMatrix &tangent_matrix)=0
void rhs_NeumannBoundaryCondition(Epetra_FEVector &F)
void stiffness_inhomogeneousForcing(Epetra_FECrsMatrix &K, Epetra_FEVector &F)
void aztecSolver(Epetra_FECrsMatrix &A, Epetra_FEVector &b, Epetra_Vector &u, Teuchos::ParameterList &paramList)