dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22439
Re: Mesh questions
-
To:
Anders Logg <logg@xxxxxxxxx>
-
From:
"Garth N. Wells" <gnw20@xxxxxxxxx>
-
Date:
Mon, 04 Apr 2011 15:03:21 +0100
-
Cc:
DOLFIN Mailing List <dolfin@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<20110404135945.GS2789@eowyn>
-
User-agent:
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8
On 04/04/11 14:59, Anders Logg wrote:
> On Mon, Apr 04, 2011 at 12:38:26PM +0100, Garth N. Wells wrote:
>>
>>
>> On 04/04/11 12:23, Anders Logg wrote:
>>> On Wed, Mar 16, 2011 at 07:42:35AM +0000, Garth N. Wells wrote:
>>>>
>>>>
>>>> On 15/03/11 20:56, Anders Logg wrote:
>>>>> On 15 March 2011 20:49, Garth N. Wells <gnw20@xxxxxxxxx> wrote:
>>>>>>
>>>>>> The number of Mesh members functions is getting pretty large, as too is
>>>>>> the number of classes in the dolfin/mesh directory. This is likely to
>>>>>> grow as more search, parallel and refinement features are added. Is it
>>>>>> therefore sensible to:
>>>>>>
>>>>>> - Move mesh algorithms (search, refine, generate, etc) to a separate
>>>>>> directory?
>>>>>
>>>>> Yes, we can have one directory for each set of algorithms related to
>>>>> the Mesh class. We already have 'ale' and 'adaptivity' which contain
>>>>> Mesh algorithms (+more).
>>>>>
>>>>
>>>> OK. Any directory name suggestions?
>>>
>>> mesh data structures (Mesh class and friends)
>>> ale algorithms for mesh smoothing
>>> refinement algorithms for mesh refinement
>>> partitioning algorithms for mesh partitioning
>>> coloring algorithms for mesh coloring
>>>
>>
>> Some of the above won't contain much and could be merged (e.g. coloring
>> could go into partitioning (possibly renamed to graph)?).
>
> Sounds good. But "graph" sounds a bit misleading.
>
Not for colouring and partitioning - both build a graph from a mesh
input and partition or colour the graph.
>> Where would mesh algorithms go? They're are mainly search related,
>> but are rather lengthy.
>
> You mean TopologyComputation and BoundaryComputation?
No, I mean the CGAL wrappers.
Garth
> Yes, they could
> also go in a separate directory but would also just be very few
> classes. Are there others in addition to those two?
>
>> I suggest also eventually adding a 'geometry' directory. With a geometry
>> representation, we can use CGAL to do some mesh generation, and we can
>> do better refinement - conforming to the real geometry rather than the
>> coarsest polygon.
>
> Sure. There's a blueprint on a complete rewrite of the mesh
> refinement, ideally based on some external library. It's slow, doesn't
> work in parallel plus it's broken...
>
> --
> Anders
>
>
>> Garth
>>
>>>>>> - Remove 'algorithmic' functions from Mesh, and make them members of
>>>>>> static classes or free functions (as we've done for refine)? Mesh would
>>>>>> then be just a data structure.
>>>>>
>>>>> Yes, perhaps some of the functions can be removed, but it's nice to
>>>>> have shortcuts so one does not have to know where a certain algorithm
>>>>> is located. For example mesh.snap_boundary() is easier than
>>>>> MeshSmoothing::snap_boundary().
>>>>>
>>>>>> The names of some search-related Mesh member functions are a bit
>>>>>> complex. Can we simplify them, e.g.
>>>>>>
>>>>>> void all_intersected_entities(const Point& point,
>>>>>> uint_set& ids_result) const;
>>>>>>
>>>>>> to
>>>>>> void intersected_cells(const Point& point,
>>>>>> uint_set& ids_result) const;
>>>>>>
>>>>>> and
>>>>>>
>>>>>> int any_intersected_entity(const Point& point) const;
>>>>>>
>>>>>> to
>>>>>>
>>>>>> int intersected_cell(const Point& point) const;
>>>>>
>>>>> Yes, I didn't make up those names. :-)
>>>>>
>>>>>> (or int isupport_cell(const Point& point) const;).
>>>>>
>>>>> I didn't get that one.
>>>>>
>>>>
>>>> The first 'i' shouldn't be there. This name is modelled on naming that
>>>> Marie introduced in her branch. The question is whether or not it's
>>>> correct to say that a point can intersect a cell?
>>>
>>> Agree with the above. Let's rename to
>>>
>>> intersected_cells
>>> intersected_cell
>>>
>>> I don't know of a better name than 'intersect'. Perhaps 'incident'?
>>>
>>
Follow ups
References