Ansys Assistant will be unavailable on the Learning Forum starting January 30. An upgraded version is coming soon. We apologize for any inconvenience and appreciate your patience. Stay tuned for updates.

Ansys Learning Forum Forums Discuss Simulation Fluids Fluent UDF: An example using PRF_GRSUM macro? Reply To: Fluent UDF: An example using PRF_GRSUM macro?

Luca B.
Forum Moderator

Hi,

The PRF_GRSUM macro in Fluent's User Defined Functions (UDF) is used to compute the global sum of a float or double array across all compute nodes in a parallel computation. Here's an example of how you might use the PRF_GRSUM macro in a UDF:

DEFINE_ON_DEMAND(test)

{

real x[1]; /* Array of size 1 to hold the sum */

real sum;

int iwork[1]; /* Work array for parallel operation */

/* Initialize the array with the value to sum */

x[0] = 5; /* Your code to set the initial value */

/* Compute the global sum */

PRF_GRSUM(x, 1, iwork);

/* x[0] now contains the sum of the values across all compute nodes */

sum = x[0];

Message0("Total = %f\n",sum);

/* You can now use 'sum' for further calculations or monitoring */

}

In this example, x is an array that you want to sum across all compute nodes. The PRF_GRSUM macro takes the array x, the number of elements in the array (which is 1 in this case), and a work array iwork as arguments. After the macro is called, x[0] will contain the global sum of the values that were in x on each compute node.

Please note that the PRF_GRSUM macro should be used in a context where it is called only once per compute node, such as within the DEFINE_ADJUST macro, to avoid issues with parallel execution as mentioned in the documentation.

[bingo_chatbox]