getfem-users
[Top][All Lists]
Advanced

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

Re: [Getfem-users] Normal definition for surfaces ?


From: Yves Renard
Subject: Re: [Getfem-users] Normal definition for surfaces ?
Date: Mon, 24 Jul 2017 08:39:02 +0200 (CEST)

Dear Antoine,

If I understand well, you store some n-1 dimensional elements (i.e. 
two-dimensional elements in 3D here) in order to describe a boundary. This is 
not the strategy used in GetFEM meshes.
A boundary region in GetFEM is just a list of volumic elements with the face 
number. So, in order to define a boundary mesh region, you have to select the 
concerned volumic elements and detect which face is concerned. GetFEM supports 
n-1 dimensional elements, but more in the aim to define some weak formulation 
term on them, for instance to define plate or shell elements.

Best regards,

Yves. 



----- Original Message -----
From: "Antoine Mazuyer" <address@hidden>
To: address@hidden
Sent: Sunday, July 23, 2017 6:12:13 PM
Subject: [Getfem-users] Normal definition for surfaces ?

Hello getfem users,

I use getfem in my homemade software to solve Elasticity problems on 
geological models, on which I already have a mesh in my own data structure

To do such things, I loop on the vertices, on the cells, and on the 
facets of my original mesh and I
use the getfem API to create the getfem::mesh. Each facets and each 
cells belongs to a region.

I have no problem to use the getfem solver with only dirichlet 
conditions, but when it comes to Neumann Conditions, following 
http://getfem.org/userdoc/model_source_term.html?highlight=neumann, I 
have an exception:

     | o-[Exception   ] Error: Error in getfem_generic_assembly.cc, line 
2890 :
     |                  Invalid outward unit normal vector. Possible 
reasons: not on boundary or transformation failed.

\__________________________________________________________________________________________________________

I think the problem comes from my mesh definition, it seems that getfem 
could not get the normal vector of my facets...

Here is a sample code of how I create the surfaces of my model

         virtual void add_boundary_elements()
         {
             const RINGMesh::GeoModelMeshPolygons& geomodel_mesh_polygons =
                 geomodel_.mesh.polygons;
             for( int triangle_id = 0; triangle_id < 
geomodel_mesh_polygons.nb();
                 triangle_id++ ) {
                 getfem::size_type getfem_triangle_id = add_triangle(
                     geomodel_mesh_polygons.vertex( triangle_id, 0 ),
                     geomodel_mesh_polygons.vertex( triangle_id, 1 ),
                     geomodel_mesh_polygons.vertex( triangle_id, 2 ) );
                 region(
                     geomodel_mesh_polygons.surface( triangle_id )
                         + geomodel_.nb_regions() ).add( 
getfem_triangle_id );
               }
          }


I don't think it is a problem coming from my region definitions, because 
I use it to easily solve dirichlet problems....

Thank you in advance for you answers !



reply via email to

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