getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] use of Nedelec element in 3D electromagnetism


From: Louis Kovalevsky
Subject: Re: [Getfem-users] use of Nedelec element in 3D electromagnetism
Date: Wed, 27 Nov 2013 16:50:39 +0000

Dear Yiannis,

Thanks for your answer.
Unfortunately it gives me the same matrix which is not positive definite.
Developing your notation leads to my much longer _expression_ (the terms j=k canceled out)

Best Regards

Louis



On 27 Nov 2013, at 15:28, Ioannis Koufogiannis <address@hidden> wrote:

Dear Louis,

some time ago I developed such a code and if I remember well it was working properly.
The piece of code that I used for assembling the stiffness matrix, using the C++ getfem functions, was:

    getfem::generic_assembly matrix_A;
    ...
    ...
    std::stringstream sstr;
    sstr << "t=comp(vGrad(#1).vGrad(#1));""M(#1,#1)+=sym((t(:,j,k,:,j,k) - t(:,j,k,:,k,j) - t(:,k,j,:,j,k) + t(:,k,j,:,k,j))*0.5)";
    matrix_A.set(sstr.str());

I arrived to this result after some expansions and rearrangements of the vectorial products on the paper.
At the moment, I am not sure how this differs from your development, but you can try it.
It seems that in my calculations, compared to yours, I have all the combinations of (j,k), 1<j,k<3 and then I half the final result.

Best,
Yiannis

On 27.11.2013 14:27, Louis Kovalevsky wrote:
Dear Getfem++ users,

I would like to use Nedelec finite element to calculate the mode of 3d electromagnetic cavity.
I'm using the matlab interface.
The importation of the mesh, definition of element and integration method is fine:
m = gf_mesh('import', 'gmsh', 'cylinder.msh');
mf = gf_mesh_fem(m,3);
gf_mesh_fem_set(mf,'fem',gf_fem('FEM_NEDELEC(3)'));
mim=gfMeshIm(m,gf_integ('IM_TETRAHEDRON(8)'));

To assemble the term \int E.E'dx I'm using:
Ma=gf_asm('volumic','M(#1,#1)+=comp(vBase(#1).vBase(#1))(:,k,:,k)', mim,mf);

I got the same result with "gf_asm('mass matrix', mim, mf);" ( as excepted) 

For the "stiffness" matrix \int curlE curlE' dx i'm using:
K=gf_asm('volumic','M(#1,#1)+=comp(vGrad(#1).vGrad(#1))(:,2,3,:,2,3)+comp(vGrad(#1).vGrad(#1))(:,3,2,:,3,2)-comp(vGrad(#1).vGrad(#1))(:,2,3,:,3,2)-comp(vGrad(#1).vGrad(#1))(:,3,2,:,2,3)+comp(vGrad(#1).vGrad(#1))(:,3,1,:,3,1)+comp(vGrad(#1).vGrad(#1))(:,1,3,:,1,3)-comp(vGrad(#1).vGrad(#1))(:,3,1,:,1,3)-comp(vGrad(#1).vGrad(#1))(:,1,3,:,3,1)+comp(vGrad(#1).vGrad(#1))(:,1,2,:,1,2)+comp(vGrad(#1).vGrad(#1))(:,2,1,:,2,1)-comp(vGrad(#1).vGrad(#1))(:,1,2,:,2,1)-comp(vGrad(#1).vGrad(#1))(:,2,1,:,1,2)', mim,mf);

My problem is that the obtained matrix K is not positive definite (and it should be...).

Does anyone have a suggestion why the K matrix is not positive definite?

Thank you in advance for the answer.

Best Regards

Louis Kovalevsky





_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users

_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users


reply via email to

[Prev in Thread] Current Thread [Next in Thread]