getfem-users
[Top][All Lists]
Advanced

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

Re: [Getfem-users] Problems to build a matrix for a boundary term


From: Iago Barbeiro
Subject: Re: [Getfem-users] Problems to build a matrix for a boundary term
Date: Sun, 6 Sep 2009 17:23:10 -0300

Dear Ronan and Yves,

I think you are right, the Normal constant term for affine geometric transformation is probably not taken into account for exact computations.
I have just tried  the Newton-Cotes method ('IM_NC(2,1)') and the error message is gone.

Thanks for your concern,

Iago

On Sun, Sep 6, 2009 at 1:29 PM, Renard Yves <address@hidden> wrote:

Dear Iago,

I think this is the term "Normal" which leads to this error (can you verify it ?). The normal is indeed constant for an affine geometric transformation but I a not sure that this term is taken into account for exact computations. The simplest is to use a cubature method !

Yves.



Iago Barbeiro <address@hidden> a écrit :


Dear Ronan,
Thanks for the prompt answer.

You are right, circular domain and holes may sound higher order
transformation, but it is not the case here.
I'm using an affine triangular mesh, GT_PK(2,1), and also affine continuos
shape functions FEM_PK(2,1).
Any other clues?

Regards,

Iago


2009/9/5 Ronan Perrussel <address@hidden>

Dear Iago,

the exact integration is mainly linked to the use of an affine mesh.
Is it the case here? You speak about a circular hole and maybe you use
second order transformation for the elements around the hole...

I hope it helps.

Best regards,
Ronan

Iago Barbeiro a écrit :

Dear Getfem++ users,

I am facing problems to build an elementary matrix using the generic
assembly procedure and I hope anyone could give me a hand.

It is a boundary integral in a two dimensional mesh (It is a circular
domain with a circular hole inside and I want to integrate over both
boundaries):

Int[boundary]((Grad(p).normal).dp)

So it is a bilinear form in "p" and "dp" where both are scalars defined
with the same fem (mf_p).

For that I have tried the following block:

*template<typename MAT> *
*void asm_P_Lap_boundary(const MAT &K_,*
* **                   const mesh_im &mim,*
* **                   const mesh_fem &mf_p, *
* **                   const mesh_region &rg) {*
*
*
*     MAT &K = const_cast<MAT &>(K_);*
*
*
*     getfem::generic_assembly assem;*
*   *
*     assem.set("M(#1,#1)+=comp(Grad(#1).Normal().Base(#1))(:,i,i,:);");*
*          *
*     assem.push_mi(mim);*
*     assem.push_mf(mf_p);*
*     assem.push_mat(K);*
*     assem.assembly(rg);*
* }*

Where the mesh_region was built using:

*getfem::mesh_region boundary;*
*getfem::outer_faces_of_mesh(mymesh, boundary);*

But then I found an error message, which is:

*============================================*
*|      An error has been detected !!!      |*
*============================================*
*Error in getfem_mat_elem.cc, line 121 : *
*Exact integration not allowed in this context*

Why exact integration would not be allowed here? Am I doing something
wrong? Any light?

Thanks for your attention!

Iago C. Barbeiro
------------------------------------------------------------------------

_______________________________________________
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]