CArl
Code Arlequin / C++ implementation
weak_formulations.h File Reference
#include "carl_headers.h"

Go to the source code of this file.

Functions

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)
 
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 L2_Coupling (libMesh::DenseSubMatrix< 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)
 

Function Documentation

libMesh::Real eval_strain_coeff ( unsigned int  i,
unsigned int  j,
unsigned int  k,
unsigned int  l 
)
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 
)

Definition at line 63 of file weak_formulations.cpp.

76 {
77  int d_ik = kronecker_delta(C_i,C_k);
78  int d_jl = 0;
79  int d_il = 0;
80  int d_jk = 0;
81  double JW = JxW[qp];
82 
83  for (unsigned int iii=0; iii < n_dofs_sysA; iii++)
84  {
85  const libMesh::RealGradient& dphy_sysA_grad = dphi_sysA[iii][qp];
86  for (unsigned int jjj=0; jjj < n_dofs_sysB; jjj++)
87  {
88  const libMesh::RealGradient& dphy_sysB_grad = dphi_sysB[jjj][qp];
89  for(unsigned int C_j=0; C_j<n_components_A; C_j++)
90  {
91  d_jk = kronecker_delta(C_j,C_k);
92  for(unsigned int C_l=0; C_l<n_components_B; C_l++)
93  {
94  d_il = kronecker_delta(C_i,C_l);
95  d_jl = kronecker_delta(C_j,C_l);
96  Coupl(iii,jjj) += cte*JW* dphy_sysA_grad(C_j)*dphy_sysB_grad(C_l) * ( d_ik * d_jl + d_il * d_jk ) ;
97  }
98  }
99  }
100  }
101 };
int kronecker_delta(unsigned int i, unsigned int j)
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 
)

Definition at line 25 of file weak_formulations.cpp.

34 {
35  for (unsigned int iii=0; iii< n_dofs_sysA; iii++)
36  {
37  for (unsigned int jjj=0; jjj< n_dofs_sysB; jjj++)
38  {
39  Coupl(iii,jjj) += cte*JxW[qp]*phi_sysA[iii][qp]*phi_sysB[jjj][qp];
40  }
41  }
42 };
void L2_Coupling ( libMesh::DenseSubMatrix< 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 
)

Definition at line 44 of file weak_formulations.cpp.

53 {
54  for (unsigned int iii=0; iii< n_dofs_sysA; iii++)
55  {
56  for (unsigned int jjj=0; jjj< n_dofs_sysB; jjj++)
57  {
58  Coupl(iii,jjj) += cte*JxW[qp]*phi_sysA[iii][qp]*phi_sysB[jjj][qp];
59  }
60  }
61 };
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 
)

/file weak_formulations.h

Definition at line 5 of file weak_formulations.cpp.

12 {
13  for (unsigned int iii=0; iii< n_dofs; iii++)
14  {
15  for (unsigned int jjj=0; jjj< n_dofs; jjj++)
16  {
17  Mass(iii,jjj) += cte*JxW[qp]*phi[iii][qp]*phi[jjj][qp];
18  }
19  }
20 };
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)