Welcome, Guest
Username: Password: Remember me

TOPIC: LIMWAC subroutine in parallel

LIMWAC subroutine in parallel 8 years 2 months ago #23571

  • Baptiste LND
  • Baptiste LND's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 5
  • Thank you received: 1
Dear all,

Apologizes if this has been asked before and I missed it.

I am trying to modify the LIMWAC subroutine to read wave inputs varying in time and space.

I have it working in scalar mode, but I can't get the global numbering out to have it working in parallel.

I did try to use the following in my fortran file, as suggested in another (rather old) post:
USE DECLARATIONS_TOMAWAC, ONLY:MESH

And then use the following to retrieve the global number:
MESH%KNOGL%I(k)

But then it crashed saying KNOGL is not recognized. But that was with the version v7p0, so probably normal (?).

(I am now using v7p1r1, and everything works fine in scalar or parallel mode)

I read in the manual for v7p1 that KNOGL was removed and replaced by GLOBAL_TO_LOCAL_POINT, but I still can't have it working.

Could anyone help me figure out what I am missing please?

Thank you!

Baptiste
The administrator has disabled public write access.

LIMWAC subroutine in parallel 8 years 2 months ago #23573

  • tfouquet
  • tfouquet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 294
  • Thank you received: 112
Hello

I think the problem is to be sure of the difference between getting
the global number which is MESH%KNOLG%I(I)
or getting the local number of a point which is
global_to_local_point(ipoin,mesh) which took place of MESH%KNOGL%I(I)

hope it helps

Thierry
The administrator has disabled public write access.

LIMWAC subroutine in parallel 8 years 2 months ago #23576

  • Baptiste LND
  • Baptiste LND's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 5
  • Thank you received: 1
Hello Thierry,

Thanks for your answer, I managed to confuse myself!

I am looking for the global number when running in parallel, so Local to Global indeed. With that in mind, if ! dont run it in parallel but keep my subroutine,
MESH%KNOLG%I(K) should give me the same as NBOR(K) ?

Thanks,
Baptiste
The administrator has disabled public write access.

LIMWAC subroutine in parallel 8 years 2 months ago #23603

  • jmhervouet
  • jmhervouet's Avatar
Hello,

Actually not, K is the local boundary node number, NBOR(K) is the corresponding local global point number in the sub-domain, and MESH%KNOLG%I(NBOR(K)) is the original global number of local boundary node K. There is no array giving the original boundary number of point K.

In this confusing text :

"boundary number" is only for boundary points
"global" is for all points, not only boundary points
"local" is for a given sub-domain
"original" is for the original not-yet-decomposed mesh

With best regards,

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

LIMWAC subroutine in parallel 8 years 2 months ago #23627

  • Baptiste LND
  • Baptiste LND's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 5
  • Thank you received: 1
Hello Jean-Michel,

Thank you for the clarifications!

I understand that the limwac will be called for each sub-domain and as such the variables will be linked to that sub-domain and not my original mesh, but still having some issues figuring it all out Im afraid.

So does that means that, even if the sub-domain is actually the same as the original model (so only one core), there would be a re-numbering of the domain?

I am asking because I was trying to see what's happening in the sub-routine to try to get my head around it, without sub-domains, by using the following in limwac:

DO IPTFR=1,NPTFR
IF(LIFBOR(IPTFR).EQ.KENT) THEN
WRITE(*,*) MESH%KNOLG%I(IPTFR), NBOR(IPTFR)
ENDIF
ENDDO

But thats what I got out:

Capture.png


The second column, NBOR, correspond to my boundary points in my .cli file, but then not sure what the first one is giving me then as I have negative values and 0s?

Maybe something wrong in my configuration, or maybe something I shouldnt do?

Thank you for your inputs!

Rgds,
Baptiste

PS: reading my answer to Thierry, I meant that I was confused with the KNOGL and KNOLG at the beginning, not by his answer!
The administrator has disabled public write access.

LIMWAC subroutine in parallel 8 years 2 months ago #23628

  • c.coulet
  • c.coulet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 3722
  • Thank you received: 1031
Hi
IPTFR is an index on the boundary numbering...
NBOR(IPTFR) gives you the node number (in the mesh sense) of the boundary number.
You should use KNOLG on the node number, not on the boundary number
That is something like MESH%KNOLG%I(NBOR(IPTFR)) (like Jean-Michel wrote it!)

Hope this helps
Christophe
The administrator has disabled public write access.

LIMWAC subroutine in parallel 8 years 2 months ago #23631

  • tfouquet
  • tfouquet's Avatar
  • OFFLINE
  • Moderator
  • Posts: 294
  • Thank you received: 112
Hello

I guess that the first column is just the state of the memory. I guess that when you have only one domain you don't need any knolg so it might not be initialised.

Regards
The administrator has disabled public write access.

LIMWAC subroutine in parallel 8 years 2 months ago #23632

  • Baptiste LND
  • Baptiste LND's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 5
  • Thank you received: 1
Dear all,

It finally sunk in, I think I get it now (indeed, no point using KNOLG with only one core). I should be able to modify the script now.

Thank you all for your help and patience!
Baptiste
The administrator has disabled public write access.
Moderators: tfouquet

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