Opened 18 years ago

Last modified 15 years ago

#102 new defect

Get true boundaries of parallel domains

Reported by: ole Owned by: steve
Priority: normal Milestone:
Component: Functionality and features Version: 1.0
Severity: normal Keywords:
Cc:

Description (last modified by ole)

Parallel domains are equipped with 'ghost' triangles. It would be useful to have access to the true boundary and somehow hook get_boundary_polygon() into that rather than giving the extended boundary.

One way would be to build the local meshes temporarily (as is done already) and generate a boundary_polygon to be stored with the parallel_domain. Then override get_boundary_polygon() to return that.

Here's information from Linda (18/10/6) on how to get access to the individual meshes:

Hi,

 	The triangles, nodes etc are stored in a dictionary, eg
     submesh["full_nodes"], submesh["full_triangles"], 
submesh["full_boundary"]. To obtain, say the triangles for submesh 1 use 
submesh["full_triangles"][1]. The full_... entries are the submeshes 
without the ghosts. The triangle structure is the same as the standard 
structure, but the node structure has been extended to include the global 
ID to local ID mapping (I have not removed any information just extended 
it). If you plan to pass the these boundary polygons around as an 
additional structure, you will need to also update build_commun.py and 
change build_local.py to change the global ID to a local ID once the 
information has been sent to the processor.

 	If all that you need is the nodes and triangles (you do not need 
to know any neighbour information) you may want to look at build_local.py. build_local is suppose to be run on each processor so the 
triangles and nodes for that processor are stored in submesh["full_nodes"] 
and submesh["full_triangles"]. The advange here is that you will not need 
to update the communication calls. You still have to be careful becasue 
the information in submesh["full_.."] is originally stored in terms of the 
global ID, it is not until I get to build_local_GA that the global IDs are mapped to the local IDs.

 								Linda




On Wed, 18 Oct 2006, Ole.Nielsen@ga.gov.au wrote:

> Hi Linda
>
> Thanks for mail.
>
> I understand that you are busy.
> Perhaps all I need is a hint on how to do it.
>
> If you can tell me where in the code I have access to the partitioned 
> meshes in terms of their nodes (Nx2, Float) and triangles (Mx3, Int). 
> I was looking in build_submesh, I am unsure if all the partitioned 
> triangles are lumped into one structure. How can I get access to the 
> individual submeshes (without ghosts) in terms of nodes and triangles?
>
>
> If you can tell me that, I'll be right to do it.
>
> Cheers
> Ole
>
>
> ---------------------------------------------------------------------
> Dr. Ole Nielsen                           |  Computational Scientist
> Geospatial and Earth Monitoring Division  |  E: Ole.Nielsen@ga.gov.au
> Geoscience Australia                      |  P: +61 2 6249 9048
> Canberra, Australia                       |  F: +61 2 6249 9986
> ---------------------------------------------------------------------
>
>
> -----Original Message-----
> From: Linda Stals [mailto:stals@maths.anu.edu.au]
> Sent: Wednesday, 18 October 2006 9:36
> To: Nielsen Ole
> Cc: stephen.roberts@anu.edu.au; u4112456@anu.edu.au
> Subject: RE: Mesh partitioning
>
> Hi,
>
> 	I will put it on my TODO list, but I have the end-of-semester and 
> paper due so may take a while to bubble up to the top.
>
> 								Linda
>
>
> On Tue, 17 Oct 2006, Ole.Nielsen@ga.gov.au wrote:
>
>> Hi again Linda
>>
>> >EE 361 1 -0.475
>> >Ee 361 1 -0.455140483872
>>
>> >Am I reading something wrong?
>>
>> Probably a flow on effect.
>> Anyways, I works when I moved the boundary allocation to AFTER the 
>> distribution which makes heaps of sense in retrospect. I know I can 
>> make boundaries independent of the domain and will do so later on.
>>
>>
>> Meanwhile I have one request for some help.
>>
>> I would love to be able to get the true boundary polygon for each 
>> mesh (available as get_boundary_polygon() in the normal meshes). I 
>> have started doing in build_submesh.py but am unsure how to get that 
>> for EACH submesh. Can you help?
>>
>> Cheers and thanks
>> Ole
>>

Change History (2)

comment:1 Changed 18 years ago by ole

  • Component changed from Appearance and visualisation to Functionality and features
  • Description modified (diff)

comment:2 Changed 15 years ago by nariman

  • Owner changed from ole or linda to steve
Note: See TracTickets for help on using tickets.