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 <[email protected]> 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 <[email protected]>
>
>> 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
>>> [email protected]
>>> https://mail.gna.org/listinfo/getfem-users
>>>
>>>
>>
>>
>




_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users

Reply via email to