Dear Yves and Andriy, Thank you very much for your answers and your solutions.
Best regards Jean-François Le mer. 11 nov. 2020 à 14:43, Yves Renard <yves.ren...@insa-lyon.fr> a écrit : > > ok, I added this possibility. > > Yves > > On 11/11/2020 14:15, Andriy Andreykiv wrote: > > Dear Yves, > > I agree, that would be the simplest solution. > Best regards, > Andriy > > On Wed, 11 Nov 2020 at 13:59, Yves Renard <yves.ren...@insa-lyon.fr> > wrote: > >> >> Dear Jean-François and Andriy, >> >> The simplest way for the import in python of gmsh files with the >> activated option for the lower dimension elements is to define it as a new >> format, may be something as "gmsh_with_lower_dim_elt". I can add it, this >> is very simple to do. >> >> Best regards, >> >> Yves >> >> >> >> >> On 11/11/2020 13:30, Andriy Andreykiv wrote: >> >> Jean-François, >> >> Yes, I use a classical region to store the elements. A region with line >> elements is not different from any other region. >> >> Regarding the numerical difficulties you're referring to, well, we didn't >> have singularities there. >> We also had a Neuman like term (mixed Dirichlet/Neuman condition that was >> switching depending on the solution, geomechanical sink), but no issues >> like yours. >> You might consider consulting Yves Renard <yves.ren...@insa-lyon.fr> >> about it. Maybe you can also use special shape functions in the 3D elements >> around your lines. >> For example, I know Getfem supports X-Fem >> <http://getfem.org/userdoc/xfem.html#xfem> and maybe you could enrich >> your solution with some asymptotic shape functions around the line elements. >> >> Best regards, >> Andriy >> >> >> On Tue, 10 Nov 2020 at 23:39, Jean-François Barthélémy < >> jfrancois.barthel...@gmail.com> wrote: >> >>> Thank you very much Andriy. This is clear. It seems that the problem >>> relies on the current limitation of import and not on the assembly >>> implementation. However the documentation made me think that a region in a >>> mesh of dimension N could only store elements of dimension N or faces of >>> dimension N-1 bit not less and as the bricks require a region ID I was >>> afraid that it would be a limitation although of course there is no >>> fundamental problem in integrating lineic terms... In your problem, you >>> also use a classical region ID to store your line terms, don't you? >>> >>> Well other issues may arise from this kind of term defined on a line: >>> indeed the solution induced by a Neumann lineic term is expected to take >>> infinite values in the vicinity of the line (think about Green function in >>> a conductive or elastic problem which varies as ln(r) close to the line or >>> 1/r for a pointwise Neumann term). Then a linear or nonlinear term >>> involving the local solution at the line itself and contributing to the >>> matrix term (lhs) may cause problem or at least lead to an unreliable >>> solution. Have you encountered such difficulties? >>> >>> Best regards >>> Jean-François >>> >>> >>> -------- Message d'origine -------- >>> De : Andriy Andreykiv <andriy.andrey...@gmail.com> >>> Date : 10/11/2020 22:10 (GMT+01:00) >>> À : Jean-François Barthélémy <jfrancois.barthel...@gmail.com> >>> Objet : Re: Terms on a physical line in 3D >>> >>> Dear Jean-François, >>> >>> Unfortunately I don't work in Python interface, so I don't know. But >>> yes, that's add_all_element_type flag. >>> Alternatively, if your line mesh is very simple you could add these >>> elements one by one to the volume mesh, in your Python code. >>> >>> Yes yes, I'm quite sure the line elements will work in high level >>> generic assembly. That's a generic Getfem behaviour. We're using Getfem in >>> our company and we have boundary conditions, >>> defined on line elements, embedded in a volumetric mesh. We define >>> non-linear terms using high-level assembly on those line elements. >>> >>> I suspect it's me or my colleague Liang Jin who actually introduced this >>> flag, so that we can import these line elements, because the previous >>> behaviour was >>> that these line elements were always skipped. >>> >>> So, yes, if you are able to recompile getfem and the interface that >>> would be the simplest solution. You might choose to commit your changes to >>> Getfem repo as well. >>> >>> Best regards, >>> Andriy >>> >>> On Tue, 10 Nov 2020 at 19:13, Jean-François Barthélémy < >>> jfrancois.barthel...@gmail.com> wrote: >>> >>>> Dear Andriy, >>>> >>>> Thank you for your answer. >>>> >>>> Is the flag that you mention the boolean "add_all_element_type" which >>>> is set to false by default in getfem_import.cc? >>>> >>>> I should have mentioned that I was working with the python interface >>>> and it seems that this flag cannot be changed from the python interface. >>>> The current behavior is that a GMSH physical line is imported as the >>>> surface region containing convexes which have an intersection with the >>>> line, which is of course not what I need. >>>> >>>> Anyway, do you suggest that I recompile getfem and the python API by >>>> setting a default true value for this flag in order to get the physical >>>> lines properly stored in a region? Afterwards you are sure that a "line" >>>> region would work in the high level generic assembly? If this is the case, >>>> I wonder why the developers have set this flag to the default false value, >>>> do you know why? >>>> >>>> Thank you very much >>>> >>>> Best regards >>>> >>>> Jean-François >>>> >>>> >>>> >>>> >>>> Le mar. 10 nov. 2020 à 16:57, Andriy Andreykiv < >>>> andriy.andrey...@gmail.com> a écrit : >>>> >>>>> Dear Jean-François, >>>>> >>>>> Yes, this is possible. It was routinely done before. >>>>> >>>>> You need to have your 3D mesh AND line elements explicitly defined >>>>> (Getfem doesn't have edges of volume elements as entities). >>>>> You could use GMSH for that or define the mesh in your code. In GMSH >>>>> you can assign physical domains to all elements, including your line >>>>> elements. >>>>> During the import of your GMSH mesh you would need to set somewhere a >>>>> flag "not to ignore lower dimension elements", so that your lines are >>>>> getting properly imported. >>>>> After importing GMSH mesh into getfem::mesh and having region ID's for >>>>> the volume as well as for the line elements you can define their >>>>> interpolations (getfem::mesh_fem), >>>>> integration methods (getfem::mesh_im), create a getfem::model, add >>>>> unknown variables and use higher order assembly to define your nonlinear >>>>> terms. >>>>> >>>>> Best regards, >>>>> Andriy >>>>> >>>>> >>>>> >>>>> On Tue, 10 Nov 2020 at 16:29, Jean-François Barthélémy < >>>>> jfrancois.barthel...@gmail.com> wrote: >>>>> >>>>>> Dear Getfem users, >>>>>> >>>>>> I have a 3D mesh in which physical lines are identified (ie set of >>>>>> edges). These lines may be on the boundary or in the interior of the >>>>>> domain. >>>>>> >>>>>> I would like to build a model incorporating (linear and even >>>>>> nonlinear) terms on these lines (ie integration domain of dimension >>>>>> m.dim()-2). This could be used for example to model a concentrated line >>>>>> of >>>>>> current injection in an electric ohmic problem (rhs term) or a lineic >>>>>> domain of high conductivity (contributing then to the matrix term). Is >>>>>> there any way to do so in Getfem? >>>>>> >>>>>> Thank you in advance >>>>>> >>>>>> Best regards >>>>>> >>>>>> Jean-François Barthélémy >>>>>> >>>>>> >> -- >> >> Yves Renard (yves.ren...@insa-lyon.fr) tel : (33) 04.72.43.87.08 >> INSA-Lyon >> 20, rue Albert Einstein >> 69621 Villeurbanne Cedex, FRANCE >> http://math.univ-lyon1.fr/~renard >> >> --------- >> >> > -- > > Yves Renard (yves.ren...@insa-lyon.fr) tel : (33) 04.72.43.87.08 > INSA-Lyon > 20, rue Albert Einstein > 69621 Villeurbanne Cedex, FRANCE > http://math.univ-lyon1.fr/~renard > > --------- > >