CArl
Code Arlequin / C++ implementation
carl::coupling_matrices_3 Class Reference

#include <assemble_coupling.h>

Public Member Functions

 coupling_matrices_3 ()
 
void set_matrices (libMesh_fe_addresses_3 &system_type_AAA, libMesh_fe_addresses_3 &system_type_BBB)
 
void build_L2_coupling_matrix (const libMesh_fe_addresses_3 &system_type_AAA, const libMesh_fe_addresses_3 &system_type_BBB, int qp, const std::vector< std::vector< libMesh::Real > > &corrected_phi_AAA, const std::vector< std::vector< libMesh::Real > > &corrected_phi_BBB, const std::vector< libMesh::Real > &JxW, double L2_coupling_const)
 
void add_H1_coupling_matrix (const libMesh_fe_addresses_3 &system_type_AAA, const libMesh_fe_addresses_3 &system_type_BBB, int qp, const std::vector< std::vector< libMesh::RealGradient > > &corrected_dphi_sysAAA, const std::vector< std::vector< libMesh::RealGradient > > &corrected_dphi_sysBBB, const std::vector< libMesh::Real > &JxW, const libMesh::Number H1_coupling_const)
 
void zero ()
 

Public Attributes

libMesh::DenseMatrix< libMesh::Number > Me
 
libMesh::DenseSubMatrix< libMesh::Number > Me_uu
 
libMesh::DenseSubMatrix< libMesh::Number > Me_uv
 
libMesh::DenseSubMatrix< libMesh::Number > Me_uw
 
libMesh::DenseSubMatrix< libMesh::Number > Me_vu
 
libMesh::DenseSubMatrix< libMesh::Number > Me_vv
 
libMesh::DenseSubMatrix< libMesh::Number > Me_vw
 
libMesh::DenseSubMatrix< libMesh::Number > Me_wu
 
libMesh::DenseSubMatrix< libMesh::Number > Me_wv
 
libMesh::DenseSubMatrix< libMesh::Number > Me_ww
 

Detailed Description

Definition at line 93 of file assemble_coupling.h.

Constructor & Destructor Documentation

carl::coupling_matrices_3::coupling_matrices_3 ( )
inline

Definition at line 100 of file assemble_coupling.h.

100  :
101  Me_uu
102  { Me }, Me_uv
103  { Me }, Me_uw
104  { Me }, Me_vu
105  { Me }, Me_vv
106  { Me }, Me_vw
107  { Me }, Me_wu
108  { Me }, Me_wv
109  { Me }, Me_ww
110  { Me }
111  {
112 
113  }
libMesh::DenseSubMatrix< libMesh::Number > Me_uv
libMesh::DenseSubMatrix< libMesh::Number > Me_uw
libMesh::DenseSubMatrix< libMesh::Number > Me_vw
libMesh::DenseSubMatrix< libMesh::Number > Me_wu
libMesh::DenseSubMatrix< libMesh::Number > Me_uu
libMesh::DenseSubMatrix< libMesh::Number > Me_ww
libMesh::DenseSubMatrix< libMesh::Number > Me_vu
libMesh::DenseSubMatrix< libMesh::Number > Me_wv
libMesh::DenseMatrix< libMesh::Number > Me
libMesh::DenseSubMatrix< libMesh::Number > Me_vv

Member Function Documentation

void carl::coupling_matrices_3::add_H1_coupling_matrix ( const libMesh_fe_addresses_3 system_type_AAA,
const libMesh_fe_addresses_3 system_type_BBB,
int  qp,
const std::vector< std::vector< libMesh::RealGradient > > &  corrected_dphi_sysAAA,
const std::vector< std::vector< libMesh::RealGradient > > &  corrected_dphi_sysBBB,
const std::vector< libMesh::Real > &  JxW,
const libMesh::Number  H1_coupling_const 
)
inline

Definition at line 176 of file assemble_coupling.h.

182  {
183  unsigned int n_components = 3;
184  H1_Coupling_Extra_Term(Me_uu, qp, system_type_AAA.u_var,
185  system_type_BBB.u_var, n_components, n_components,
186  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
187  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_u, JxW,
188  H1_coupling_const);
189 
190  H1_Coupling_Extra_Term(Me_uv, qp, system_type_AAA.u_var,
191  system_type_BBB.v_var, n_components, n_components,
192  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
193  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_v, JxW,
194  H1_coupling_const);
195 
196  H1_Coupling_Extra_Term(Me_uw, qp, system_type_AAA.u_var,
197  system_type_BBB.w_var, n_components, n_components,
198  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
199  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_w, JxW,
200  H1_coupling_const);
201 
202  H1_Coupling_Extra_Term(Me_vu, qp, system_type_AAA.v_var,
203  system_type_BBB.u_var, n_components, n_components,
204  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
205  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_u, JxW,
206  H1_coupling_const);
207 
208  H1_Coupling_Extra_Term(Me_vv, qp, system_type_AAA.v_var,
209  system_type_BBB.v_var, n_components, n_components,
210  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
211  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_v, JxW,
212  H1_coupling_const);
213 
214  H1_Coupling_Extra_Term(Me_vw, qp, system_type_AAA.v_var,
215  system_type_BBB.w_var, n_components, n_components,
216  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
217  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_w, JxW,
218  H1_coupling_const);
219 
220  H1_Coupling_Extra_Term(Me_wu, qp, system_type_AAA.w_var,
221  system_type_BBB.u_var, n_components, n_components,
222  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
223  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_u, JxW,
224  H1_coupling_const);
225 
226  H1_Coupling_Extra_Term(Me_wv, qp, system_type_AAA.w_var,
227  system_type_BBB.v_var, n_components, n_components,
228  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
229  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_v, JxW,
230  H1_coupling_const);
231 
232  H1_Coupling_Extra_Term(Me_ww, qp, system_type_AAA.w_var,
233  system_type_BBB.w_var, n_components, n_components,
234  corrected_dphi_sysAAA, corrected_dphi_sysBBB,
235  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_w, JxW,
236  H1_coupling_const);
237  }
libMesh::DenseSubMatrix< libMesh::Number > Me_uv
libMesh::DenseSubMatrix< libMesh::Number > Me_uw
libMesh::DenseSubMatrix< libMesh::Number > Me_vw
libMesh::DenseSubMatrix< libMesh::Number > Me_wu
libMesh::DenseSubMatrix< libMesh::Number > Me_uu
libMesh::DenseSubMatrix< libMesh::Number > Me_ww
libMesh::DenseSubMatrix< libMesh::Number > Me_vu
libMesh::DenseSubMatrix< libMesh::Number > Me_wv
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)
libMesh::DenseSubMatrix< libMesh::Number > Me_vv
void carl::coupling_matrices_3::build_L2_coupling_matrix ( const libMesh_fe_addresses_3 system_type_AAA,
const libMesh_fe_addresses_3 system_type_BBB,
int  qp,
const std::vector< std::vector< libMesh::Real > > &  corrected_phi_AAA,
const std::vector< std::vector< libMesh::Real > > &  corrected_phi_BBB,
const std::vector< libMesh::Real > &  JxW,
double  L2_coupling_const 
)
inline

Definition at line 157 of file assemble_coupling.h.

162  {
163  L2_Coupling(Me_uu, qp, corrected_phi_AAA, corrected_phi_BBB,
164  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_u, JxW,
165  L2_coupling_const);
166 
167  L2_Coupling(Me_vv, qp, corrected_phi_AAA, corrected_phi_BBB,
168  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_v, JxW,
169  L2_coupling_const);
170 
171  L2_Coupling(Me_ww, qp, corrected_phi_AAA, corrected_phi_BBB,
172  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_w, JxW,
173  L2_coupling_const);
174  }
libMesh::DenseSubMatrix< libMesh::Number > Me_uu
libMesh::DenseSubMatrix< libMesh::Number > Me_ww
libMesh::DenseSubMatrix< libMesh::Number > Me_vv
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 carl::coupling_matrices_3::set_matrices ( libMesh_fe_addresses_3 system_type_AAA,
libMesh_fe_addresses_3 system_type_BBB 
)
inline

Definition at line 115 of file assemble_coupling.h.

117  {
118  Me.resize(system_type_AAA.n_dofs, system_type_BBB.n_dofs);
119 
120  Me_uu.reposition(system_type_AAA.u_var * system_type_AAA.n_dofs_u,
121  system_type_BBB.u_var * system_type_BBB.n_dofs_u,
122  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_u);
123 
124  Me_uv.reposition(system_type_AAA.u_var * system_type_AAA.n_dofs_u,
125  system_type_BBB.v_var * system_type_BBB.n_dofs_v,
126  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_v);
127 
128  Me_uw.reposition(system_type_AAA.u_var * system_type_AAA.n_dofs_u,
129  system_type_BBB.w_var * system_type_BBB.n_dofs_w,
130  system_type_AAA.n_dofs_u, system_type_BBB.n_dofs_w);
131 
132  Me_vu.reposition(system_type_AAA.v_var * system_type_AAA.n_dofs_v,
133  system_type_BBB.u_var * system_type_BBB.n_dofs_u,
134  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_u);
135 
136  Me_vv.reposition(system_type_AAA.v_var * system_type_AAA.n_dofs_v,
137  system_type_BBB.v_var * system_type_BBB.n_dofs_v,
138  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_v);
139 
140  Me_vw.reposition(system_type_AAA.v_var * system_type_AAA.n_dofs_v,
141  system_type_BBB.w_var * system_type_BBB.n_dofs_w,
142  system_type_AAA.n_dofs_v, system_type_BBB.n_dofs_w);
143 
144  Me_wu.reposition(system_type_AAA.w_var * system_type_AAA.n_dofs_w,
145  system_type_BBB.u_var * system_type_BBB.n_dofs_u,
146  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_u);
147 
148  Me_wv.reposition(system_type_AAA.w_var * system_type_AAA.n_dofs_w,
149  system_type_BBB.v_var * system_type_BBB.n_dofs_v,
150  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_v);
151 
152  Me_ww.reposition(system_type_AAA.w_var * system_type_AAA.n_dofs_w,
153  system_type_BBB.w_var * system_type_BBB.n_dofs_w,
154  system_type_AAA.n_dofs_w, system_type_BBB.n_dofs_w);
155  }
libMesh::DenseSubMatrix< libMesh::Number > Me_uv
libMesh::DenseSubMatrix< libMesh::Number > Me_uw
libMesh::DenseSubMatrix< libMesh::Number > Me_vw
libMesh::DenseSubMatrix< libMesh::Number > Me_wu
libMesh::DenseSubMatrix< libMesh::Number > Me_uu
libMesh::DenseSubMatrix< libMesh::Number > Me_ww
libMesh::DenseSubMatrix< libMesh::Number > Me_vu
libMesh::DenseSubMatrix< libMesh::Number > Me_wv
libMesh::DenseMatrix< libMesh::Number > Me
libMesh::DenseSubMatrix< libMesh::Number > Me_vv
void carl::coupling_matrices_3::zero ( )
inline

Definition at line 240 of file assemble_coupling.h.

241  {
242  Me.zero();
243  }
libMesh::DenseMatrix< libMesh::Number > Me

Member Data Documentation

libMesh::DenseMatrix<libMesh::Number> carl::coupling_matrices_3::Me

Definition at line 96 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_uu

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_uv

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_uw

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_vu

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_vv

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_vw

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_wu

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_wv

Definition at line 97 of file assemble_coupling.h.

libMesh::DenseSubMatrix<libMesh::Number> carl::coupling_matrices_3::Me_ww

Definition at line 97 of file assemble_coupling.h.


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