CArl
Code Arlequin / C++ implementation
weak_formulations.h
Go to the documentation of this file.
1 /*
2  * weak_formulations.h
3  *
4  * Created on: Jan 7, 2016
5  * Author: Thiago Milanetto Schlittler
6  *
7  * This file contains the headers of the functions used to add terms to the
8  * FEM matrices, including the coupling matrices used for the Arlequin
9  * method
10  */
11 
12 #ifndef COMMON_LIBMESH_CODE_WEAK_FORMULATIONS_H_
13 #define COMMON_LIBMESH_CODE_WEAK_FORMULATIONS_H_
14 
15 #include "carl_headers.h"
16 
21 // --- Matrices
22 void Mass( libMesh::DenseMatrix<libMesh::Number>& Mass,
23  unsigned int qp,
24  const std::vector<std::vector<libMesh::Real> >& phi,
25  const unsigned int n_dofs,
26  const std::vector<libMesh::Real>& JxW,
27  const libMesh::Number cte = 1
28  );
29 
30 // --- Vectors
31 
32 // --- Arlequin coupling matrices
33 
34 libMesh::Real eval_strain_coeff(unsigned int i,
35  unsigned int j,
36  unsigned int k,
37  unsigned int l);
38 
39 void L2_Coupling( libMesh::DenseMatrix<libMesh::Number>& Coupl,
40  unsigned int qp,
41  const std::vector<std::vector<libMesh::Real> >& phi_sysA,
42  const std::vector<std::vector<libMesh::Real> >& phi_sysB,
43  const unsigned int n_dofs_sysA,
44  const unsigned int n_dofs_sysB,
45  const std::vector<libMesh::Real>& JxW,
46  const libMesh::Number cte
47  );
48 
49 void L2_Coupling( libMesh::DenseSubMatrix<libMesh::Number>& Coupl,
50  unsigned int qp,
51  const std::vector<std::vector<libMesh::Real> >& phi_sysA,
52  const std::vector<std::vector<libMesh::Real> >& phi_sysB,
53  const unsigned int n_dofs_sysA,
54  const unsigned int n_dofs_sysB,
55  const std::vector<libMesh::Real>& JxW,
56  const libMesh::Number cte
57  );
58 
59 void H1_Coupling_Extra_Term( libMesh::DenseSubMatrix<libMesh::Number>& Coupl,
60  unsigned int qp,
61  unsigned int C_i,
62  unsigned int C_k,
63  unsigned int n_components_A,
64  unsigned int n_components_B,
65  const std::vector<std::vector<libMesh::RealGradient> >& dphi_sysA,
66  const std::vector<std::vector<libMesh::RealGradient> >& dphi_sysB,
67  const unsigned int n_dofs_sysA,
68  const unsigned int n_dofs_sysB,
69  const std::vector<libMesh::Real>& JxW,
70  const libMesh::Number cte
71  );
72 
73 #endif /* COMMON_LIBMESH_CODE_WEAK_FORMULATIONS_H_ */
void L2_Coupling(libMesh::DenseMatrix< libMesh::Number > &Coupl, unsigned int qp, const std::vector< std::vector< libMesh::Real > > &phi_sysA, const std::vector< std::vector< libMesh::Real > > &phi_sysB, const unsigned int n_dofs_sysA, const unsigned int n_dofs_sysB, const std::vector< libMesh::Real > &JxW, const libMesh::Number cte)
void H1_Coupling_Extra_Term(libMesh::DenseSubMatrix< libMesh::Number > &Coupl, unsigned int qp, unsigned int C_i, unsigned int C_k, unsigned int n_components_A, unsigned int n_components_B, const std::vector< std::vector< libMesh::RealGradient > > &dphi_sysA, const std::vector< std::vector< libMesh::RealGradient > > &dphi_sysB, const unsigned int n_dofs_sysA, const unsigned int n_dofs_sysB, const std::vector< libMesh::Real > &JxW, const libMesh::Number cte)
void Mass(libMesh::DenseMatrix< libMesh::Number > &Mass, unsigned int qp, const std::vector< std::vector< libMesh::Real > > &phi, const unsigned int n_dofs, const std::vector< libMesh::Real > &JxW, const libMesh::Number cte=1)
libMesh::Real eval_strain_coeff(unsigned int i, unsigned int j, unsigned int k, unsigned int l)