|
[Sponsors] |
![]() |
![]() |
#1 |
New Member
Matthias
Join Date: Feb 2017
Posts: 1
Rep Power: 0 ![]() |
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 |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Join Date: Jun 2009
Posts: 1,850
Rep Power: 33 ![]() |
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, |
|
![]() |
![]() |
![]() |
![]() |
#3 | |
New Member
Dmitry
Join Date: Feb 2013
Posts: 29
Rep Power: 13 ![]() |
Quote:
Sent from my M040 using CFD Online Forum mobile app |
||
![]() |
![]() |
![]() |
![]() |
#4 |
New Member
Dmitry
Join Date: Feb 2013
Posts: 29
Rep Power: 13 ![]() |
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 |
|
![]() |
![]() |
![]() |
Tags |
cel, cfx, partitioning, user fortran |
|
|
![]() |
||||
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 19: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 |