Welcome, Guest
Username: Password: Remember me

TOPIC: Calculate of discharge in parallel mode

Calculate of discharge in parallel mode 10 years 7 months ago #12714

  • nguyenthong_BK
  • nguyenthong_BK's Avatar
Dear all,
I have a subroutine in my FORTRAN file in which I calculate the discharge at a defined section in my area (I defined the section which the node name (global) in my file directly). It works correctly in scalar mode. Unfortunately, it can't work in parallel mode. It seems I have problem with node name in this case. How can I solve problem? Thank you very much for any your advised.
Best regards
Thong NGUYEN
HCMUT, VN
The administrator has disabled public write access.

Calculate of discharge in parallel mode 10 years 7 months ago #12717

  • abernard
  • abernard's Avatar
  • OFFLINE
  • Expert Boarder
  • Posts: 210
  • Thank you received: 45
Hi,

It used to be impossible to use control sections with global number in paralel.

Maybe you should try to work with coordinates instead of global numbering.
control sections


Maybe a developper will answer more precisely.

What version do you use?
The administrator has disabled public write access.

Calculate of discharge in parallel mode 10 years 7 months ago #12718

  • jmhervouet
  • jmhervouet's Avatar
Hello Thong,

Difficult to say, we would need to see the subroutine. If you know the global number of the point, the local number in a sub-domain is:
local_number = GLOBAL_TO_LOCAL_POINT(global_number,MESH)

It can be 0 if the point is not in a sub-domain.

Depending on how you compute the discharge, you may have also to use a sum over all processors, the function P_DSUM.

With best regards,

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

Calculate of discharge in parallel mode 10 years 7 months ago #12725

  • nguyenthong_BK
  • nguyenthong_BK's Avatar
Dear Mr. J M Hervouet and Abernard
Thank you very much for your prompt response. I'm using telemac2d version v6p2. Cher J. M., if I use : local_number = GLOBAL_TO_LOCAL_POINT(global_number,MESH) as your suggestion, What does I must declare in my subroutine? In addition, Is there a variable that allows to find the corresponding number name in parallel mode when I know the number name in scalar mode? (this number name in scalar mode is defined when I prepare the mesh in BlueKenue software).
Best regards
Thong NGUYEN
HCMUT, VN
The administrator has disabled public write access.

Calculate of discharge in parallel mode 10 years 7 months ago #12730

  • jmhervouet
  • jmhervouet's Avatar
Hello,

You can access the function GLOBAL_TO_LOCAL_POINT with a USE BIEF at the beginning of your subroutine. When you know the number in scalar mode, it is this function that gives you the number in parallel, it is what I call local (on a given sub-domain). Global=all the mesh, local=in a sub-domain of the partitionned mesh.

With best regards,

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

Calculate of discharge in parallel mode 10 years 7 months ago #12744

  • nguyenthong_BK
  • nguyenthong_BK's Avatar
Dear Mr. J. M. HERVOUET,
Thank you very much. My problem is solved correctly.
With best regards
Thong NGUYEN
HCMUT, VN
The administrator has disabled public write access.
Moderators: pham

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