CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   CFX (https://www.cfd-online.com/Forums/cfx/)
-   -   Particle momemtum source using USER_GETVAR for curl of velocity (https://www.cfd-online.com/Forums/cfx/104702-particle-momemtum-source-using-user_getvar-curl-velocity.html)

pannsave July 13, 2012 06:21

Particle momemtum source using USER_GETVAR for curl of velocity
 
Hello everybody,

I am using USER_GETVAR in particle user subroutine to obtain curl of fluid velocity. But I could not run the subroutine successfully,
I would be grateful if someone could suggest me solution for this problem.
User sub routine for particle momentum source are given below

#include "cfx5ext.h"
dllexport(pt_mom_source)
SUBROUTINE PT_MOM_SOURCE(NLOC,NRET,NARG,RET,ARG,CRESLT,
& CZ,DZ,IZ,LZ,RZ)
CC
CC
CC --------------------
CC Input
CC --------------------
CC
CC NRET - number of components in result
CC NARG - number of arguments in call
CC ARG() - (NARG) argument values
CC
CC --------------------
CC Modified
CC --------------------
CC
CC Stacks possibly.
CC
CC --------------------
CC Output
CC --------------------
CC
CC RET() - (NRET) return values
CC
CC --------------------
CC Details
CC --------------------
CC
CC================================================ ======================
C
C ------------------------------
C Preprocessor includes
C ------------------------------
#include "MMS.h"
#include "stack_point.h"
C
C
C ------------------------------
C Global Parameters
C ------------------------------
C
C
C ------------------------------
C Argument list
C ------------------------------
C
INTEGER NLOC,NARG,NRET
C
REAL ARG(NLOC,NARG), RET(NLOC,NRET)
C
CHARACTER CRESLT*(*)
C
INTEGER IZ(*)
CHARACTER CZ(*)*(1)
DOUBLE PRECISION DZ(*)
LOGICAL LZ(*)
REAL RZ(*)
C
C ------------------------------
C External routines
C ------------------------------
C
C
C ------------------------------
C Local Parameters
C ------------------------------
C
C
C ------------------------------
C Local Variables
C ------------------------------
C
C ------------------------------
C Stack pointers
C ------------------------------
__stack_point__ pCURL_VEL_FL
C
C================================================= ======================
C
C ---------------------------
C Executable Statements
C ---------------------------
C Initialise success flag.
      CRESLT = 'GOOD'
C
C================================================= ======================
C
C Argument variables stack:
C -------------------------
C Fluid density : DENSITY_FL = ARG(1,1)
C Particle fraction : VOLFRN_PT = ARG(1,2)
C Slip velocity : SLPVEL_PT = ARG(1,3)
C
C Return variables stack:
C -----------------------
C
C Source term : SOURCE = RET(1,1:3)
C
C================================================= ======================
C
C-----------------------------------------------------------------------
C Calculate the momentum source
C-----------------------------------------------------------------------
C
CALL USER_GETVAR ('water.Velocity.Curl', CRESLT,
     &  pCURL_VEL_FL,CZ,DZ,IZ,LZ,RZ)
C
C
CALL USER_MOMENTUM_SOURCE (RET(1,3),
& ARG(1,1),ARG(1,2),ARG(1,3),
& RZ(pCURL_VEL_FL))
C
END
C
SUBROUTINE USER_MOMENTUM_SOURCE (SOURCE,
& DENSITY_FL,VOLFRN_PT,SLPVEL_PT,
& CURL_VEL_FL)
C
C================================================= ======================
C Calculate the momentum source uisng lift force term
C================================================= ======================
C
C ------------------------------
C Preprocessor includes
C ------------------------------
C
#include "cfd_sysdep.h"
#include "cfd_constants.h"
C
C ------------------------------
C Argument list
C ------------------------------
C
REAL SOURCE(3),
& DENSITY_FL,VOLFRN_PT, SLPVEL_PT,
& CURL_VEL_FL(3)
C
C ------------------------------
C Local variables
C ------------------------------
C
REAL FACT
C
C ------------------------------
C Executable statements
C ------------------------------
C---- Calculate the momentum soure using lift force term
C
FACT = HALF*DENSITY_FL*VOLFRN_PT*SLPVEL_PT
C
SOURCE(1) = FACT*CURL_VEL_FL(1)
SOURCE(2) = FACT*CURL_VEL_FL(2)
SOURCE(3) = FACT*CURL_VEL_FL(3)
C
C
END



Thanks


pannsave


All times are GMT -4. The time now is 09:43.