CArl
Code Arlequin / C++ implementation
assemble_functions_elasticity_3D.h
Go to the documentation of this file.
1 /*
2  * assemble_functions_elasticity_3D.h
3  *
4  * Created on: Nov 30, 2015
5  * Author: Thiago Milanetto Schlittler
6  */
7 
8 #ifndef ELASTICITY_3D_ASSEMBLE_FUNCTIONS_ELASTICITY_3D_H_
9 #define ELASTICITY_3D_ASSEMBLE_FUNCTIONS_ELASTICITY_3D_H_
10 
12 
16 
17 const bool MASTER_bPerfLog_assemble_fem = false;
18 
20 void set_homogeneous_physical_properties(libMesh::EquationSystems& es, std::string& physicalParamsFile);
21 
23 void set_heterogeneous_physical_properties(libMesh::EquationSystems& es, std::string& physicalParamsFile);
24 
26 libMesh::Real eval_lambda_1(libMesh::Real E, libMesh::Real mu);
27 
29 libMesh::Real eval_elasticity_tensor(unsigned int i,
30  unsigned int j,
31  unsigned int k,
32  unsigned int l,
33  libMesh::Number E,
34  libMesh::Number mu);
35 
37 void Update_SubK_isotropic( libMesh::DenseSubMatrix<libMesh::Number>& SubK,
38  unsigned int qp,
39  unsigned int C_i,
40  unsigned int C_k,
41  const std::vector<std::vector<libMesh::RealGradient> >& dphi,
42 
43  const unsigned int n_components,
44  const unsigned int n_u_dofs,
45  const std::vector<libMesh::Real>& JxW,
46  libMesh::Number E = 1.0,
47  libMesh::Number mu = 0.4,
48  double cte = 1
49  );
50 
52 void assemble_elasticity_with_weight( libMesh::EquationSystems& es,
53  const std::string& system_name,
54  weight_parameter_function& weight_mask,
55  WeightFunctionSystemType system_type);
56 
58 void assemble_elasticity_with_weight_and_traction(libMesh::EquationSystems& es,
59  const std::string& system_name,
60  weight_parameter_function& weight_mask,
61  WeightFunctionSystemType system_type,
62  int traction_boundary_id,
63  std::vector<double> traction_density);
64 
66 void assemble_elasticity_heterogeneous_with_weight( libMesh::EquationSystems& es,
67  const std::string& system_name,
68  weight_parameter_function& weight_mask,
69  WeightFunctionSystemType system_type);
70 
72 void compute_stresses(libMesh::EquationSystems& es);
73 
74 #endif /* ELASTICITY_3D_ASSEMBLE_FUNCTIONS_ELASTICITY_3D_H_ */
void set_homogeneous_physical_properties(libMesh::EquationSystems &es, std::string &physicalParamsFile)
Set the homogeneous physical properties from a file.
void compute_stresses(libMesh::EquationSystems &es)
Compute the stress (based on one of libMesh's examples)
void assemble_elasticity_heterogeneous_with_weight(libMesh::EquationSystems &es, const std::string &system_name, weight_parameter_function &weight_mask, WeightFunctionSystemType system_type)
Assemble heterogeneous elasticity with domain weights.
void assemble_elasticity_with_weight_and_traction(libMesh::EquationSystems &es, const std::string &system_name, weight_parameter_function &weight_mask, WeightFunctionSystemType system_type, int traction_boundary_id, std::vector< double > traction_density)
Assemble homogeneous elasticity with domain weights and traction.
libMesh::Real eval_lambda_1(libMesh::Real E, libMesh::Real mu)
Calculate lambda_1 from E and Mu.
WeightFunctionSystemType
Enumerate used to define which weight function must be used to assemble the system.
void assemble_elasticity_with_weight(libMesh::EquationSystems &es, const std::string &system_name, weight_parameter_function &weight_mask, WeightFunctionSystemType system_type)
Assemble homogeneous elasticity with domain weights.
void set_heterogeneous_physical_properties(libMesh::EquationSystems &es, std::string &physicalParamsFile)
Set the heterogeneous, isotropic physical properties from a file.
libMesh::Real eval_elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l, libMesh::Number E, libMesh::Number mu)
Calculate the elasticity tensor.
void Update_SubK_isotropic(libMesh::DenseSubMatrix< libMesh::Number > &SubK, unsigned int qp, unsigned int C_i, unsigned int C_k, const std::vector< std::vector< libMesh::RealGradient > > &dphi, const unsigned int n_components, const unsigned int n_u_dofs, const std::vector< libMesh::Real > &JxW, libMesh::Number E=1.0, libMesh::Number mu=0.4, double cte=1)
Calculate the rigidity sub-matrix contribution.
const bool MASTER_bPerfLog_assemble_fem