getfem-users
[Top][All Lists]
Advanced

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

Re: [Getfem-users] different mesh_fem definitions for different regions


From: Umut Tabak
Subject: Re: [Getfem-users] different mesh_fem definitions for different regions
Date: Sat, 01 Aug 2009 14:41:37 +0200
User-agent: Thunderbird 2.0.0.21 (X11/20090409)

Renard Yves wrote:

Umut Tabak <address@hidden> a écrit :

First of all , I made another post which did not appear on the mailing list webpage, so that I thought that sth might have gone wrong. If you happen to get the same contents twice , I am sorry.

Regarding my previous posts on this topic: I have the following long follow up if there is someone interested in that.

I tried to apply a sample analysis where I can assemble the fluid part(scalar) and the structural part(displacement). Now I have a problem concerning the coupling matrix assembly. Actually, I accomplished this task not in an optimal way I suppose, I have 3 separate mesh structures and 3 mesh_fems attached to these mesh structures, where I try to form the matrices on these mesh and mesh_fem accordingly. I have been puzzling with some questions regarding the following questions:

+ To have this kind of analysis(coupled structural-acoustic), we have to set the mesh_fem dimensions to 3(vectorial) and 1(scalar) for the structural and fluid parts respectively, if there is only one mesh_fem definition, how can I assign different dimensions to different regions of my mesh(with set_qdim, doing on separate mesh_fems I can set the correct dimensions, but could not find a way to do it on regions)

+ The second question follows accordingly, how to assign different integration methods to different regions of the mesh? Assembly can be done on regions I checked that.

+ Without the definition of separate mesh_fem objects, how can I allocate memory for the matrices that I am going to use for the assembly process? I mean to get the specific dof numbers associated to regions. There are some methods related to dof count in mesh_region class but they do not provide the right information for the dof counts in regions, say mf.basic_dof_on_region which returns a dal::bit vector on a region, but to get these numbers corrected the dimensions should be assigned correctly for the mesh_regions.

+ On a mesh_fem, and regions defined on the mesh, how can I assemble a term like:

\begin{displaymath}
\bold{K}_{up}=\int_{S}{\bold{N}_{s}}^{T} \bold{n}{\bold{N}_{p}}dS
\end{displaymath}

which I would like to assemble on the interface of the two above defined domains. I think I am right that there should be two mesh_fem definitions for the basis vectors needed in this integration. Is there a way to define these again on one mesh definition associated to regions.

The assembly part will be sth like:
// allocate the coupling matrix
   sparse_matrix SMCoupling(gmm::mat_nrows(SM), gmm::mat_nrows(SMF));
   //  assemble coupling terms
   getfem::generic_assembly assemCoupling;
   assemCoupling.push_mi(intMethods3);
   assemCoupling.push_mf(meshFemDom1); // structural domain #1
   assemCoupling.push_mf(meshFemDom2); // fluid domain      #2
   assemCoupling.push_mat(SMCoupling);
assemCoupling.set("M$1(#1,#2)+=sym(comp(Base(#1).Normal().Base(#2))(:,k,:,k))");
   std::cout<<" ---  Coupling matrix assembling --- " << std::endl;
   assemCoupling.assembly();
   std::cout<<" ---  Coupling matrix assembled  --- " << std::endl;

But there is a problem because the surface that I would like to assemble this integral is a surface with quad elements, intMethods3 is related to quads and the two mesh_fem objects are related to hexa elements. Of course I get an error message that integration methods and mesh_fem are not on the same mesh but is there a way to accomplish this task.

+ Lastly, are there any curved shell elements implemented in getfem++, there are some plate elements as far as I can see from the documentation?

I would appreciate further help on these points.

Thanks and best regards,

Umut




reply via email to

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