Dear Umut,

You are right ! The reason why the coupling matrix is zero is that the  
two mesh_fem are
defined on separated elements. Since the computation is done element  
per element, on no element the two finite element method are both  
defined ! So the result is logical.

You could use the partial_mesh_fem objects but the functions
getfem::assembling_Dirichlet_condition(SM, B, meshFemDom2, 4, V);
does not work with such a "reduced" fem.

The best way, I think is to define a global mesh_fem (see attached  
file) and to specify the mesh_region at the ssembly procedure. The you  
will have to "filter" the resulting matrices to retain only the dof  
inside the regions of interest. (using  
meshFemDom1.basic_dof_on_region(1) and  
meshFemDom2.basic_dof_on_region(2))

Pay attention not to compute your coupling term on both element  
corresponding to the faces on the interface. Otherwise you will  
compute you term twice and you should find again zero (due to the  
opposite direction of the normals).

Yves.





Umut Tabak <[email protected]> a écrit :

> Renard Yves wrote:
>>
>> Dear Umut,
>>
>> I your exemple, you should define two mesh_fems as follows :
>>
>>
>>
>>   getfem::mesh_fem meshFemCore1(mshGmsh);
>>   // region 1, scalar domain, pressure field, dimension 1
>>   for(getfem::mr_visitor i(region1); !i.finished(); ++i){
>>        
>> meshFemCore1.set_finite_element(i.cv(),getfem::fem_descriptor("FEM_QK(3,  
>> 1)"));
>>   }
>>   meshFemCore.set_qdim(1); // not really necessary.
>>
>>   getfem::mesh_fem meshFemCore2(mshGmsh);
>>   // region 2, vectorial domain, displacement field, dimension 3
>>   for(getfem::mr_visitor i(region2); !i.finished(); ++i){
>>        
>> meshFemCore2.set_finite_element(i.cv(),getfem::fem_descriptor("FEM_QK(3,  
>> 1)"));
>>   }
>>   meshFemCore.set_qdim(3);
>>
>>
>>
>> Then, you can use these two mesh_fem objects in the assembly  
>> procedure in order to compute your coupling term.
>>
> Dear Professor Renard,
>
> I guess with your great help, I am close to what I would like to  
> get, I updated my code and can define regions on one mesh. The last  
> problem I am having is that I can not assemble, integral term on the  
> interface surface, well not really, I can run the code without  
> problems but the point is that I do not get any terms. For this  
> integral, i need to integrate that term over quad regions, but using  
> the predefined mesh_fems, this does not seem possible to me, or I am  
> still having some mistakes, the code is attached, region 3 is the  
> interface region inside the mesh domain on which I would like to  
> assemble my coupling terms. Am I experiencing a problem due to the  
> normal definition, or is there a problem in the index expressions?
>
> Best regards,
> Umut
>




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

Reply via email to