CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > CFX

CFX-User Fortran Partitioning Problem

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   February 24, 2017, 08:33
Default CFX-User Fortran Partitioning Problem
  #1
New Member
 
Matthias
Join Date: Feb 2017
Posts: 1
Rep Power: 0
MatthiasCFD is on a distinguished road
Hey guys,

i'm facing a problem within the implementation of a CEL user fortran routine which is related to partitioning. I try to make it as clear as possible:

Problem Description:
1) Setup: I have set up different domains and in some of them (now reffered as CEL-Domains) I use the "CEL user fortran routine" to calculate additional variables. More specifically I use the velocity at specific locations in the CEL-Domains as input for the calculations in my fortran routine.
2) Problem: When I use more than one partition it could happen that the partitioning algorithm splits the CEL-Domain into multiple partitions. So in the worst case the User fortran subroutine is called in one partition but it needs the velocity input of another partition. I have made a figure to make this clear. So if this case happens the user routine is not able to get the needed velocity because this point is in another partition.

I tried a lot to solve this issue but now I really got stuck.
Possible Solutions:
1) Use another partitioning method in order to control more or less the partition boundaries. This works but the problem is: If the case gets more complicated it gets nearly impossible to set up the partition boundaries manually.
2) Call a junction box routine at the beginning of each iteration loop in order to make the velocities at the specific points available in the MMS. Problem: The "USER_GETVAR" command is not available in junction box routines.

TO conclude: I couldn't find a proper solution to overcome this issue and I hope that you can help me in this case.

Thanks a lot,
Matthias
Attached Images
File Type: png CFX_UserFortran_Partitioning-Problem.png (44.3 KB, 19 views)
MatthiasCFD is offline   Reply With Quote

Old   February 24, 2017, 12:11
Default
  #2
Senior Member
 
Join Date: Jun 2009
Posts: 679
Rep Power: 15
Opaque is on a distinguished road
If you want to run the case in parallel, you must also code the intended algorithm in parallel.

ANSYS CFX uses a domain decomposition parallel approach, therefore, data is no longer available globally, but local to the partition.

If you need information from other partitions, you must gather such data manually.

What algorithm are you implementing that requires global data ? The more information, the better someone here can pitch in.

Hope the above helps,
Opaque is offline   Reply With Quote

Old   April 20, 2017, 06:12
Default
  #3
New Member
 
Dmitry
Join Date: Feb 2013
Posts: 22
Rep Power: 6
techtuner is on a distinguished road
Quote:
Originally Posted by Opaque View Post
If you want to run the case in parallel, you must also code the intended algorithm in parallel.

ANSYS CFX uses a domain decomposition parallel approach, therefore, data is no longer available globally, but local to the partition.

If you need information from other partitions, you must gather such data manually.

What algorithm are you implementing that requires global data ? The more information, the better someone here can pitch in.

Hope the above helps,
Could you explain how I should "gather" data by slave processes that was earlier recorded to the master process local stack with simple command POKER ('/USER/DATA' 1 data 'SKIP' CRESLT RZ )?

Sent from my M040 using CFD Online Forum mobile app
techtuner is offline   Reply With Quote

Old   April 22, 2017, 01:43
Default
  #4
New Member
 
Dmitry
Join Date: Feb 2013
Posts: 22
Rep Power: 6
techtuner is on a distinguished road
I have found a simple solution of this problem. I have recorded my data to MMS by POKER subroutine in everyone started process. And, later, I have read this data by everyone process too.
This solution is extremely slow due to sufficient amount of time that is spent on synchronization between master and slave processes or subroutune calling by slave processes, but it's work.

Sent from my M040 using CFD Online Forum mobile app
techtuner is offline   Reply With Quote

Reply

Tags
cel, cfx, partitioning, user fortran

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
CFX partitioning error, is my model too large? evcelica CFX 9 April 14, 2016 08:02
User Fortran problem: The name 'UserSource2' is ambiguous ? yuhai CFX 0 August 23, 2012 11:18
Problem Importing Geometry ProE to CFX fatb0y CFX 3 January 14, 2012 20:42
Comparison between C/C++ and Fortran? rick Main CFD Forum 45 September 6, 2011 00:52
CFX arc-modeling, User Fortran, CEL.... Bloshchitsyn Vladimir CFX 0 October 15, 2007 06:39


All times are GMT -4. The time now is 22:51.