I just did a test, and they seem to be equal. -Jehanzeb
On Wed, Jul 8, 2009 at 1:29 PM, Jehanzeb Hameed<[email protected]> wrote: > Dear Yves, > > I just started using getfem, so I am afraid my questions quite > trivial. I wanted to ask/confirm a couple of more things: > >> mf.ind_dof_of_element(icv) gives the dof number of element icv > > I was wondering if the same thing can be achieved by another method. > Since the subdomains are defined by mesh_regions, looking again at > interpolation functions, they take in a mesh_region as argument. So, > if I call interpolation_function multiple times (once for each > mesh_region) and pass in the same vector, each interpolation_function > will only fill in the part of the vector corresponding to its dof's. > This way I should be able to get piecewise constant coefficients for > each region. Is this correct? > > Thanks, > -Jehanzeb > > > On Wed, Jul 8, 2009 at 11:24 AM, Yves Renard<[email protected]> wrote: >> >> Dear Jehanzeb, >> >> This is the same of all finite element method. The function >> >> mf.ind_dof_of_element(icv) >> >> gives the dof number of element icv (a unique dof for the P0 method), and the >> function >> >> mf.point_of_dof(idof) >> >> gives the coordinate of the finite element node. With this, is is not >> difficult to fill the vector of dof (without any additional storage). >> >> Yves. >> >> >> >> On mercredi 8 juillet 2009, Jehanzeb Hameed wrote: >>> Is there a simple way in getfem to map points to convexes, that is: >>> > the interpolation point for each element is the barycenter. So you >>> > can discriminate in wich part of your domain is the point. >>> >>> Given the particular barycenter, say 'b', do I have to build a list of >>> all barycenters in the beginning, and then search for 'b' in that >>> list? Or is there some already builtin way to go about it. >>> >>> Thanks, >>> -Jehanzeb >>> >>> On Wed, Jul 8, 2009 at 4:50 AM, Yves Renard<[email protected]> wrote: >>> > On mardi 7 juillet 2009, Jehanzeb Hameed wrote: >>> >> Hello, >>> >> >>> >> In laplacian.cc "getfem::classical_fem(pgt,0))" is used to represent >>> >> the fem space for coefficient function (mf_coef). This coefficient >>> >> function is constant on each convex. It is not used in laplacian.cc, >>> >> and is set to one by creating a vector ones ( >>> >> std::vector<scalar_type>(mf_coef.nb_dof(), 1.0) ). >>> >> >>> >> Now say, I want to this coefficient to be piecewise constant, that is >>> >> constant on each of (say two) subdomains. It seems I cant use >>> >> interpolation for it, as interpolation functions use coordinates of >>> >> points, and dont seem to indicate which convex they come from. >>> > >>> > Indeed you can. If you represent your coefficient on a P0 method >>> > (piecewise constant), the interpolation point for each element is the >>> > barycenter. So you can discriminate in wich part of your domain is the >>> > point. If you want to fill the corresponding vector by hand, you can use >>> > the method >>> > mf.point_of_dof(i) for the P0 method which will give you the coordinates >>> > of the corresponding barycenter. Otherwise, you can also use the >>> > interpolation functions. >>> > >>> > Yves. >>> > >>> >> One way >>> >> I can think of doing it, is to loop for mesh convexes, look up which >>> >> region the convex belongs to, and then set the corresponding entry in >>> >> the coefficient vector. However I am not sure if this is the way to >>> >> go, as numbering of convexes in the mesh may not correspond to >>> >> numbering of dof's of the vector passed as data for assembly. >>> >> >>> >> Is the above method the one to use, or is there a more elegant way >>> >> around this? >>> >> >>> >> Thanks, >>> >> -Jehanzeb >>> >> >>> >> _______________________________________________ >>> >> Getfem-users mailing list >>> >> [email protected] >>> >> https://mail.gna.org/listinfo/getfem-users >>> > >>> > -- >>> > >>> > Yves Renard ([email protected]) tel : (33) 04.72.43.87.08 >>> > Pole de Mathematiques, INSA-Lyon fax : (33) 04.72.43.85.29 >>> > 20, rue Albert Einstein >>> > 69621 Villeurbanne Cedex, FRANCE >>> > http://math.univ-lyon1.fr/~renard >>> > >>> > --------- >> >> >> >> -- >> >> Yves Renard ([email protected]) tel : (33) 04.72.43.87.08 >> Pole de Mathematiques, INSA-Lyon fax : (33) 04.72.43.85.29 >> 20, rue Albert Einstein >> 69621 Villeurbanne Cedex, FRANCE >> http://math.univ-lyon1.fr/~renard >> >> --------- >> > _______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users
