Python Scripts

Fluent in batch mode

os.system(r'"C:\Program Files\ANSYS Inc\v195\fluent\ntbin\win64/fluent.exe" 2d -g -t2 -i case4.jou' )

In these examples,

  • fluent is the command you type to execute ANSYS FLUENT interactively.
  • -g indicates that the program is to be run minimized in the taskbar.
  • -i journal reads the specified journal file.
  • -wait is the command you type in a DOS batch file or some other script in a situation where the script needs to wait until ANSYS FLUENT has completed its run.
  • -hidden is similar to the -wait command, but also executes ANSYS FLUENT completely hidden and noninteractively.

To get an output (or transcript) file while running ANSYS FLUENT in the background on a Windows system, the journal file must contain the following command to write a transcript file:

; start transcript file
/file/start-transcript outputfile.trn

where the outputfile is a file that the background job will create and which will contain the output that ANSYS FLUENT would normally print to the screen (e.g., the menu prompts and residual reports).

Remove duplicate zones in Tecplot

#flist = flist[0:5] # just for testing on 5 files and not all of them!
import tecplot as tp
from tecplot.exception import *
from tecplot.constant import *
# Uncomment the following line to connect to a running instance of Tecplot 360:
tp.session.connect()

for fname in flist:
dataset = tp.data.load_tecplot(fname, read_data_option=2) #option 2 is replace, #option 1 is default which is append
zList = list(dataset.zone_names)
# Find duplicate zones and set to remove
dups = [i for i, x in enumerate(zList) if zList.count(x) > 1]
remDups = dups[0::2]
# Remove duplicate zones
dataset.delete_zones(remDups)
# Save data
tp.data.save_tecplot_plt(f'clean_{fname[4:]}', dataset=dataset, variables=None, zones=None)

DPM to Tec

fnameClean = 'cleanTemp.dat'
def cleanFile(filename):
fnameClean = 'cleanTemp.dat'
with open(filename, 'r') as infile, open(fnameClean, 'w') as outfile:
data = infile.read()
data = data.replace("(", "")
data = data.replace(")", "")
outfile.write(data)

def writeTec(pdData, suffx):
ffname = fname[:-4] + '_'+ suffx +'mic.dat'
ftec = open(ffname, 'w')
ftec.write(f'TITLE = "{fname[:-4]}_{suffx}mic"\n')
ftec.write('VARIABLES = "X", "Y", "Z", "u","v","w","diam" \n')
ftec.write(f'ZONE T="{fname[:-4]}_{suffx}mic" \n')
ftec.write(pdData.to_string(header=False, index=False))
ftec.close()

Generate points in Fluent for monitoring

fname = 'points-for-monitoring.txt'
df = pd.read_csv(fname, skiprows=0, delim_whitespace=True, names=['x','y','z'])
fid = open('createPoints.jou','w')
count = 1
for index, row in df.iterrows():
fid.write(f'/surface/point-surf p{count:02} {row["x"]} {row["y"]} {row["z"]}\n')
count = count+1
fid.close()

Transient Flow Profile

import numpy as np
from matplotlib import pyplot as plt
cycle=1
tStart = (cycle-1)*4+1.65
density=1.225
timestep =0.0001 # timestep size
time = np.arange(timestep,2.35+timestep,timestep)
a1 =      0.3674
b1 =       1.429
a2 =      0.0351
b2 =       6.223
a3 =     0.08071
b3 =       3.572
# ===== THIS PRODUCES L/S convert kg/s by /1000*density     
mfr =  (a1*np.sin(b1*time) + a2*np.sin(b2*time) + a3*np.sin(b3*time))/1000*density
# ===== THIS PRODUCES L/S convert kg/s by /1000*density
printTime = tStart + time
plt.plot(printTime, mfr)
nTerms = len(time)
# check the volume
np.trapz(mfr, x=time)
#print adjusted time
# write transient profile -mass FR
fileName = "exhale-mfr.prof"
nTerms = len(printTime)
fid = open(fileName,"w")      # Open the file for writing
fid.write(f"( (exhale_cycle1 transient {nTerms} 1)\n") #1 =periodic 0=not periodic
fid.write("(time ")
fid.write(" ".join(str(format(i, ".7f")) for i in printTime))
fid.write(")\n")
fid.write("(mass-flow ")
fid.write(" ".join(str(format(i, ".12f")) for i in mfr))
fid.write(")\n")
fid.write(")\n")
fid.close()

Leave a Comment