Welcome, Guest
Username: Password: Remember me

TOPIC: Can customized BORD work in parallel version?

Re: Can customized BORD work in parallel version? 12 years 9 months ago #3690

  • c.coulet
  • c.coulet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 3722
  • Thank you received: 1031
Yes, each subdomains have its own boundary node number. In fact, each subdomain is a telemac geometry file. the only difference is in the possibility to have a boundary type which represent the connexion with another subdomain. each node on this boundary belongs to both subdomain but the node values should be the same and the fluxes between the subdomains should be equivalent to ensure cnservation and continuity.

As I know, there is no other vector which link the local boundary node number and the global node number. Maybe because the local boundary node number which are located between subdomains aren't global boundary node number then you should manage some particular case ...
Christophe
The administrator has disabled public write access.
The following user(s) said Thank You: qilong

Re: Can customized BORD work in parallel version? 12 years 9 months ago #3691

  • qilong
  • qilong's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 340
  • Thank you received: 33
So as far as I understand, the variable NPTFR defined in BORD will be deactivated while running in parallel. Then how can I access the certain boundary points while running in parallel? For example if I want to give values at NPTFR=100 in the global domain, how can I do this in a parallel running?
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 12 years 9 months ago #3724

  • jmhervouet
  • jmhervouet's Avatar
Hello,

If you want to find if a boundary point K in a subdomain had a given number in the initial mesh, you can refer to the array BOUNDARY_COLOUR%I(K), which is its initial number.

Example, you want that the initial boundary point 152 be given a depth of 3.2D0, it gives :

DO K=1,NPTFR
IF(BOUNDARY_COLOUR%I(K).EQ.152) HBOR%R(K)=3.2D0
ENDDO

but BOUNDARY_COLOUR is not in the arguments, so add it in the list of the USE DECLARATIONS_TELEMAC2D:

USE DECLARATIONS_TELEMAC2D, ONLY: STA_DIS_CURVES,PTS_CURVES,QZ,
& FLUX_BOUNDARIES,MAXFRO,TIDALTYPE,BOUNDARY_COLOUR

This array is the last value of every line of the boundary conditions file, and you may change it as you like, to give groups of points a given number for example.

With best regards,

Jean-Michel Hervouet
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 12 years 9 months ago #3726

  • qilong
  • qilong's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 340
  • Thank you received: 33
Thank you very much!
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 12 years 2 months ago #5409

  • Q. Oliveira
  • Q. Oliveira's Avatar
This topic helped me so much.
Thanks.
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 11 years 2 months ago #10284

  • y.kervella
  • y.kervella's Avatar
Hi,

I would like to parallelize my modified user routine bord.f and I've just found this post.
I try to use the MESH%KNOLG%I() to find the numbers of my liquid frontier nodes, but I can only find a part of this nodes (actually 60 on 211).
Maybe, I'm in a subdomain (my NCSIZE is 2) but I don't know how to move in the second subdomain..

Thanks in advance,

Youen
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 11 years 2 months ago #10285

  • qilong
  • qilong's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 340
  • Thank you received: 33
Hi,

I use the same subroutine bord.f to impose boundary conditions in parallel. For the boundary nodes I use the variable BOUNDARY_COLOUR%I(NPTFR),where NPTFR is the global number of boundary points that you can find in the boundary conditions file (the last column). So BOUNDARY_COLOUR%I(NPTFR) will give you the number of that node in your subdomain.

Hope this helps.

Qilong
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 11 years 2 months ago #10286

  • jmhervouet
  • jmhervouet's Avatar
Hello,

The code is executed on every subdomain, so you are not specifically in one processor and not in the others. However what you see on the screen is given by processor 0. The other processors "talk" in the log files which are found in the temporary folder (that is destroyed at the end of the job...).

If you want to have messages from all processors on the screen, you can try to use in BORD:

PRINT*,' IPID=',IPID,' what I have to say'

As a matter of fact only the WRITE(LU,*) statements are redirected to the log files. However I am not so sure that this behaviour is not compiler-dependent.

With best regards,

Jean-Michel Hervouet
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 11 years 2 months ago #10290

  • Q. Oliveira
  • Q. Oliveira's Avatar
Hi,

At the telemac3D I have work with MESH2D%KNOLG%I and NBOR2%I. The first give us the global numbers from the local number in the sub-domain and the second one give us the node boundary number.
In my case I have a liquid boundary file with the time, data value and global liquid node number. Then I can prescribe the liquid boundary conditions changing in time and space to running in one, tow, three or 30 cores.

Best,

Gustavo.
The administrator has disabled public write access.

Re: Can customized BORD work in parallel version? 11 years 2 months ago #10293

  • y.kervella
  • y.kervella's Avatar
Hi,

thanks a lot for all these answers !
If I have well understood, I have just to write:

1 IF(TEMPS-DT.eq.0) THEN
2 ...
3 DO i=1,nptcl
4 READ(27,*) NBORL(i)
5 IF(NCSIZE.GT.1) NBORL(i)=MESH%KNOLG%I(NBORL(i))
6 ENDDO
7 CLOSE(27)
8 ENDIF

where the line 5 is for the parallel version.

When I try this, I can't find all my (liquid) boundary points. Is it another way to find it ?
Jean-Michel, I have tried to print the PID number but it's always equal to 0.
How does the code works ? The routine bord is read by all the procs at the same time ?

Youen
The administrator has disabled public write access.
Moderators: pham

The open TELEMAC-MASCARET template for Joomla!2.5, the HTML 4 version.