← Scripts

Python Scripts

7 July 2019 · 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:

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 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()