Dear Domenico,
The assembly in the low-level generic assembly should be
generic_assembly assem("M$1(#1,#2)+=comp(vGrad(#1).Base(#2))(:,i,i,:);");
assem.push_mi(mim);
assem.push_mf(mf_u);
assem.push_mf(mf_p);
assem.push_mat(M);
assem.assembly(rg);
(You have it in getfem_assembling.h for instance at lines 769 (asm_stokes_B).
Note that you can obtain this also with the high-level generic assembly with an
assembly string of the form "Div_Test_u*Test_p".
Yves.
----- Mail original -----
De: "Domenico Notaro" <[email protected]>
À: "getfem-users" <[email protected]>
Envoyé: Samedi 7 Novembre 2015 12:45:32
Objet: [Getfem-users] Assembly of rectangular matrix: order of trial and
test FE spaces
Dear GetFEM users,
I would like to have a double-check on a very basic issue, that is the order of
trial and test spaces in rectangular matrix assembly.
In particular, which of the following assembly routines returns the matrix
$ M = \int DIV(u).q $
where u is the trial mf_u function and q is the test mf_p function?
(a)
generic_assembly
assem("M$1(#1,#2)+=comp(vBase(#1).Normal().Base(#2))(:,i,i,:);");
assem.push_mi(mim);
assem.push_mf(mf_u);
assem.push_mf(mf_p);
assem.push_mat(M);
assem.assembly(rg);
(b)
generic_assembly
assem("M$1(#2,#1)+=comp(vBase(#2).Normal().Base(#1))(:,i,i,:);");
assem.push_mi(mim);
assem.push_mf(mf_p);
assem.push_mf(mf_u);
assem.push_mat(M);
assem.assembly(rg);
(c)
generic_assembly
assem("M$1(#1,#2)+=comp(Base(#1).vBase(#2).Normal())(:,:,i,i);");
assem.push_mi(mim);
assem.push_mf(mf_p);
assem.push_mf(mf_u);
assem.push_mat(M);
assem.assembly(rg);
I want to build a matrix M with mf_p.nb_dof() rows and mf_u.nb_dof() columns
(i.e. in the main file I have " sparse_matrix_type M(mf_p.nb_dof(),
mf_u.nb_dof()); ")
Thank you in advance,
Domenico
_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users
_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users