simulation.get_mean_forces(limits=[32.0, 64.0]) cd_original = 2.0*simulation.forces[0].mean['value'] cl_original = 2.0*simulation.forces[1].mean['value'] # Computes the mean coefficients from the cuIBM simulations # reported in Krishnan et al. (2014). # The force coefficients are averaged between 32 and 64 time-units. cd_krishnan, cl_krishnan = [], [] for re in ['Re1000', 'Re2000']: for aoa in ['AoA25', 'AoA30', 'AoA35', 'AoA40']: simulation_directory = os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2d'+re+aoa) krishnan = CuIBMSimulation(directory=simulation_directory) krishnan.read_forces() krishnan.get_mean_forces(limits=[32.0, 64.0]) cd_krishnan.append(2.0*krishnan.forces[0].mean['value']) cl_krishnan.append(2.0*krishnan.forces[1].mean['value']) # plot figure aoa = [25, 30, 35, 40] pyplot.style.use(os.path.join(os.environ['SNAKE'], 'snake', 'styles', 'snakeReproducibility.mplstyle')) fig = pyplot.figure(figsize=(6, 8)) gs = gridspec.GridSpec(3, 2, height_ratios=[1, 1, 0.5]) ax1 = pyplot.subplot(gs[0, :])
if snake.__version__ != '0.1.2': warnings.warn('The figures were originally created with snake-0.1.2, '+ 'you are using snake-{}'.format(snake.__version__)) cases = [] fx, fy = [], [] resolutions = ['h=0.00267', 'h=0.004', 'h=0.006'] time_limits = (20.0, 28.0) for resolution in resolutions: case = CuIBMSimulation(directory=os.path.join(os.path.dirname(__file__), resolution.replace('=', '')), description=resolution) case.read_forces() case.get_mean_forces(limits=time_limits) fx.append(case.forces[0].mean['value']) fy.append(case.forces[1].mean['value']) cases.append(case) # Calculates the observed order of convergence for the time-averaged force # coefficients. ratio = 1.5 order = numpy.log((fx[2]-fx[1])/(fx[1]-fx[0]))/numpy.log(ratio) print(order) order = numpy.log((fy[2]-fy[1])/(fy[1]-fy[0]))/numpy.log(ratio) print(order) # Plots the instantaneous force coefficients obtained with different meshes. fig, ax = pyplot.subplots(figsize=(6, 4))
print('\nsnake version: {}\n'.format(snake.__version__)) simulation = IBAMRSimulation(description='IBAMR', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'ibamr', 'bodyMarkers', 'Re2000AoA30')) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path=os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA30', 'forces')) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=-2.0) dataframe2 = krishnan.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe = dataframe.append(dataframe2) print(dataframe) pyplot.style.use(os.path.join(os.environ['SNAKE'],
for folder in folders: simulation = OpenFOAMSimulation(directory=os.path.join(directory, folder)) simulation.read_forces(display_coefficients=True) simulation.get_mean_forces(limits=[32.0, 64.0]) cd.append(simulation.forces[0].mean['value']) cl.append(simulation.forces[1].mean['value']) # compute mean coefficients of each simulations from Krishnan et al. (2014) cd_krishnan, cl_krishnan = [], [] for Re in [1000, 2000]: for a in aoa: directory = os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe{}AoA{}'.format(Re, a)) krishnan = CuIBMSimulation(directory=directory) krishnan.read_forces() krishnan.get_mean_forces(limits=[32.0, 64.0]) cd_krishnan.append(2.0 * krishnan.forces[0].mean['value']) cl_krishnan.append(2.0 * krishnan.forces[1].mean['value']) # plot mean drag coefficient versus angle of attack for Re=1000 and Re=2000 pyplot.style.use( os.path.join(os.environ['SNAKE'], 'snake', 'styles', 'snakeReproducibility.mplstyle')) fig = pyplot.figure(figsize=(6, 8)) gs = gridspec.GridSpec(3, 2, height_ratios=[1, 1, 0.5]) ax1 = pyplot.subplot(gs[0, :]) ax2 = pyplot.subplot(gs[1, :]) ax3 = pyplot.subplot(gs[2, 0]) ax4 = pyplot.subplot(gs[2, 1]) gs.update(wspace=0.5, hspace=0.1)
from snake.solutions.koumoutsakosLeonard1995 import KoumoutsakosLeonard1995 # Parse from the command-line the directory of the runs. parser = argparse.ArgumentParser() parser.add_argument('--directory', dest='directory', default=os.getcwd(), type=str, help='directory of the runs') args = parser.parse_args() directory = args.directory simulation = CuIBMSimulation(directory=directory, description='cuIBM') simulation.read_forces() # Reads drag coefficient of Koumoutsakos and Leonard (1995) for Re=550. file_name = 'koumoutsakos_leonard_1995_cylinder_dragCoefficientRe550.dat' file_path = os.path.join(os.environ['CUIBM_DIR'], 'data', file_name) kl1995 = KoumoutsakosLeonard1995(file_path=file_path, Re=550) # Plots the instantaneous drag coefficients. images_directory = os.path.join(directory, 'images') if not os.path.isdir(images_directory): os.makedirs(images_directory) pyplot.style.use('seaborn-dark') kwargs_data = {'label': simulation.description, 'color': '#336699', 'linestyle': '-', 'linewidth': 3,
args = parser.parse_args() with open(args.map, 'r') as infile: dirs = yaml.load(infile) # plot the instantaneous force coefficients at Re=2000 and AoA=30deg # and compare to the results reported in Kirshnan et al. (2014) simulation_directory = dirs['ibamr_forceCoefficientsRe2000']['AoA30'] simulation = IBAMRSimulation(description='IBAMR', directory=simulation_directory) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path=os.path.join( os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA30', 'forces')) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=-2.0) dataframe2 = krishnan.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe = dataframe.append(dataframe2) print(dataframe) pyplot.style.use( os.path.join(os.environ['SNAKE'], 'snake', 'styles',
# file: plotForceCoefficientsCompareOther.py # author: Olivier Mesnard ([email protected]) # description: Plots the instantaneous force coefficients # and compare to results of another simulation. # Run this script from the simulation directory. from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='cuIBM (present)') simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) other = CuIBMSimulation(description='', directory='') other.read_forces() other.get_mean_forces(limits=[32.0, 64.0]) other.get_strouhal(limits=[32.0, 64.0], order=200) simulation.plot_forces(display_coefficients=True, coefficient=2.0, display_extrema=True, order=200, limits=(0.0, 80.0, 0.0, 3.0), other_simulations=other, other_coefficients=2.0, save_name='forceCoefficientsCompareOther') dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe2 = other.create_dataframe_forces(display_strouhal=True, display_coefficients=True,
import snake from snake.cuibm.simulation import CuIBMSimulation if snake.__version__ != '0.1.2': warnings.warn('The figures were originally created with snake-0.1.2, ' + 'you are using snake-{}'.format(snake.__version__)) atol_min, atol_max = 5, 16 time_step = 1500 main_directory = os.path.dirname(__file__) reference_directory = os.path.join(main_directory, 'atol16') reference = CuIBMSimulation(directory=reference_directory, description='atol=1.0E-16') reference.read_forces() fx_reference = reference.forces[0].values[-1] fy_reference = reference.forces[1].values[-1] reference.read_grid() p_reference = reference.read_pressure(time_step) qx_reference, qy_reference = reference.read_fluxes(time_step) fx_errors, fy_errors = [], [] p_errors = [] qx_errors, qy_errors = [], [] for atol in range(atol_min, atol_max): directory = os.path.join(main_directory, 'atol{}'.format(atol)) simu = CuIBMSimulation(directory=directory, description='1.0E-{}'.format(atol)) simu.read_forces()
import os import sys from matplotlib import pyplot import snake from snake.cuibm.simulation import CuIBMSimulation print('\nPython version:\n{}'.format(sys.version)) print('\nsnake version: {}\n'.format(snake.__version__)) simulation = CuIBMSimulation( description='cuIBM (current) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'cuibm', 'current', 'cusp040', 'Re2000AoA35')) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) other = CuIBMSimulation(description='cuIBM (current) - CUSP-0.5.1', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'cuibm', 'current', 'cusp051', 'Re2000AoA35')) other.read_forces() other.get_mean_forces(limits=[32.0, 64.0]) other.get_strouhal(limits=[32.0, 64.0], order=200) revision86 = CuIBMSimulation( description='cuIBM (old) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages',
# file: plotForceCoefficientsCompareOther.py # author: Olivier Mesnard ([email protected]) # description: Plots the instantaneous force coefficients # and compare to results of another simulation. # Run this script from the simulation directory. from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='cuIBM (present)') simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) other = CuIBMSimulation(description='', directory='') other.read_forces() other.get_mean_forces(limits=[32.0, 64.0]) other.get_strouhal(limits=[32.0, 64.0], order=200) simulation.plot_forces(display_coefficients=True, coefficient=2.0, display_extrema=True, order=200, limits=(0.0, 80.0, 0.0, 3.0), other_simulations=other, other_coefficients=2.0, save_name='forceCoefficientsCompareOther') dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0)
# 1- 2k35 / current cuIBM with CUSP-0.4.0; # 2- 2k35 / current cuIBM with CUSP-0.5.1; # 3- 2k35 / older cuIBM with CUSP-0.4.0; import os from matplotlib import pyplot from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='cuIBM (current) - CUSP-0.4.0', directory=os.path.join( os.environ['HOME'], 'simulations_cuIBM', 'production-cusp-0.4.0', 'flyingSnake2dRe2000AoA35_20160502')) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) other = CuIBMSimulation(description='cuIBM (current) - CUSP-0.5.1', directory=os.path.join( os.environ['HOME'], 'simulations_cuIBM', 'production-cusp-0.5.1', 'flyingSnake2dRe2000AoA35_20160502')) other.read_forces() other.get_mean_forces(limits=[32.0, 64.0]) other.get_strouhal(limits=[32.0, 64.0], order=200) revision86 = CuIBMSimulation(description='cuIBM (old) - CUSP-0.4.0', directory=os.path.join( os.environ['HOME'], 'simulations_cuIBM',
time_increments = ["dt=5.0E-05", "dt=1.0E-04", "dt=2.0E-04"] final_time_steps = [2000, 1500, 1250] refinement_ratio = 2.0 fx, fy = [], [] p = [] qx, qy = [], [] main_directory = os.path.dirname(__file__) for time_increment, final_time_step in zip(time_increments, final_time_steps): directory = os.path.join(main_directory, time_increment.replace("=", "")) simu = CuIBMSimulation(directory=directory, description=time_increment) simu.read_forces() fx.append(simu.forces[0].values[-1]) fy.append(simu.forces[1].values[-1]) simu.read_grid() p_simu = simu.read_pressure(final_time_step) p.append(p_simu.values) qx_simu, qy_simu = simu.read_fluxes(final_time_step) qx.append(qx_simu.values) qy.append(qy_simu.values) file_path = os.path.join(os.path.dirname(__file__), "temporalConvergence.txt") with open(file_path, "w") as outfile: outfile.write("\n* Drag force:\n") outfile.write("Value and relative difference with the reference value (smallest dt)\n") outfile.write("\t{}: {}\n".format(time_increments[0], fx[0]))
import sys from matplotlib import pyplot import snake from snake.cuibm.simulation import CuIBMSimulation print('\nPython version:\n{}'.format(sys.version)) print('\nsnake version: {}\n'.format(snake.__version__)) simulation = CuIBMSimulation( description='cuIBM (old) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'cuibm', 'revision86', 'Re2000AoA35')) simulation.read_forces(file_path=os.path.join(simulation.directory, 'numericalSolution', 'forces')) simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path=os.path.join( os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA35', 'forces')) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe2 = krishnan.create_dataframe_forces(display_strouhal=True, display_coefficients=True,
import os from snake.petibm.simulation import PetIBMSimulation from snake.cuibm.simulation import CuIBMSimulation simulation = PetIBMSimulation(description='PetIBM') simulation.read_forces() time_limits = (32.0, 64.0) simulation.get_mean_forces(limits=time_limits) simulation.get_strouhal(limits=time_limits, order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') filepath = os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA35', 'forces') krishnan.read_forces(file_path=filepath) krishnan.get_mean_forces(limits=time_limits) krishnan.get_strouhal(limits=time_limits, order=200) simulation.plot_forces(display_coefficients=True, coefficient=2.0, display_extrema=True, order=200, limits=(0.0, 80.0, 0.0, 3.0), other_simulations=krishnan, other_coefficients=2.0, style='mesnardo', save_name='forceCoefficientsCompareKrishnanEtAl2014') dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True,
# 3- 2k35 / older cuIBM with CUSP-0.4.0; import os from matplotlib import pyplot from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='cuIBM (current) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'simulations_cuIBM', 'production-cusp-0.4.0', 'flyingSnake2dRe2000AoA35_20160502')) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) other = CuIBMSimulation(description='cuIBM (current) - CUSP-0.5.1', directory=os.path.join(os.environ['HOME'], 'simulations_cuIBM', 'production-cusp-0.5.1', 'flyingSnake2dRe2000AoA35_20160502')) other.read_forces() other.get_mean_forces(limits=[32.0, 64.0]) other.get_strouhal(limits=[32.0, 64.0], order=200) revision86 = CuIBMSimulation(description='cuIBM (old) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'simulations_cuIBM',
dest='save_directory', type=str, default=script_directory, help='directory where to save the figures') args = parser.parse_args() with open(args.map, 'r') as infile: dirs = yaml.load(infile) # Plots the instantaneous force coefficients at Re=1000 and AoA=35deg # using a current version of cuIBM with CUSP-0.5.1 # and compares to the results reported in Krishnan et al. (2014). simulation_directory = dirs['cuibm-current-cusp051']['Re1000AoA35'] simulation = CuIBMSimulation(description='cuIBM (current) - cusp-0.5.1', directory=simulation_directory) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path=os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe1000AoA35', 'forces')) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0)
# that uses exact markers (rotation around the origin (0,0)). # The set of markers is identical to the one used in Krishnan et al. (2014). # The force coefficients are averaged between 32 and 64 time-units. simulation_directory = dirs["petibm011_forceCoefficientsRe2000AoA35"]["original"] simulation2 = PetIBMSimulation(description="PetIBM (original markers)", directory=simulation_directory) simulation2.read_forces() simulation2.get_mean_forces(limits=[32.0, 64.0]) simulation2.get_strouhal(limits=[32.0, 64.0], order=200) # Computes the mean force coefficients from the cuIBM simulation # reported in Krishnan et al. (2014). # The force coefficients are averaged between 32 and 64 time-units. krishnan = CuIBMSimulation(description="Krishnan et al. (2014)") krishnan.read_forces( file_path=os.path.join( os.environ["SNAKE"], "resources", "flyingSnake2d_cuibm_anush", "flyingSnake2dRe2000AoA35", "forces" ) ) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) # Creates a table with the time-averaged force coefficients # and the mean Strouhal number. dataframe = krishnan.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe2 = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe3 = simulation2.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe = dataframe.append([dataframe2, dataframe3]) print(dataframe) # Plots the instantaneous force coefficients and compares to those reported # in Krishnan et al. (2014).
import os from snake.petibm.simulation import PetIBMSimulation from snake.cuibm.simulation import CuIBMSimulation simulation = PetIBMSimulation(description="PetIBM") simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description="Krishnan et al. (2014)") krishnan.read_forces( file_path="{}/resources/flyingSnake2d_cuibm_anush/" "flyingSnake2dRe2000AoA35/forces" "".format(os.environ["SNAKE"]) ) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) simulation.plot_forces( indices=[1], display_coefficients=True, coefficient=2.0, display_extrema=True, order=200, limits=(0.0, 80.0, 0.0, 3.0), other_simulations=krishnan, other_coefficients=2.0, save_name="liftCoefficientCompareKrishnanEtAl2014", )
time_increments = ['dt=5.0E-05', 'dt=1.0E-04', 'dt=2.0E-04'] final_time_steps = [2000, 1500, 1250] refinement_ratio = 2.0 fx, fy = [], [] p = [] qx, qy = [], [] main_directory = os.path.dirname(__file__) for time_increment, final_time_step in zip(time_increments, final_time_steps): directory = os.path.join(main_directory, time_increment.replace('=', '')) simu = CuIBMSimulation(directory=directory, description=time_increment) simu.read_forces() fx.append(simu.forces[0].values[-1]) fy.append(simu.forces[1].values[-1]) simu.read_grid() p_simu = simu.read_pressure(final_time_step) p.append(p_simu.values) qx_simu, qy_simu = simu.read_fluxes(final_time_step) qx.append(qx_simu.values) qy.append(qy_simu.values) file_path = os.path.join(os.path.dirname(__file__), 'temporalConvergence.txt') with open(file_path, 'w') as outfile: outfile.write('\n* Drag force:\n') outfile.write( 'Value and relative difference with the reference value (smallest dt)\n' )
from snake.solutions.koumoutsakosLeonard1995 import KoumoutsakosLeonard1995 # Parse from the command-line the directory of the runs. parser = argparse.ArgumentParser() parser.add_argument('--directory', dest='directory', default=os.getcwd(), type=str, help='directory of the runs') args = parser.parse_args() directory = args.directory simulation = CuIBMSimulation(directory=directory, description='cuIBM') simulation.read_forces() # Reads drag coefficient of Koumoutsakos and Leonard (1995) for Re=40. file_name = 'koumoutsakos_leonard_1995_cylinder_dragCoefficientRe40.dat' file_path = os.path.join(os.environ['CUIBM_DIR'], 'data', file_name) kl1995 = KoumoutsakosLeonard1995(file_path=file_path, Re=40) # Plots the instantaneous drag coefficients. images_directory = os.path.join(directory, 'images') if not os.path.isdir(images_directory): os.makedirs(images_directory) pyplot.style.use('seaborn-dark') kwargs_data = {'label': simulation.description, 'color': '#336699', 'linestyle': '-', 'linewidth': 3,
""" Post-processes the force coefficients from a cuIBM simulation and compare them to cuIBM ones (obtained by Anush Krishnan and published into Krishnan et al., 2014). This script reads the forces, computes the mean forces within a given range, computes the Strouhal number within a range, plots the force coefficients, saves the figure, and prints a data-frame that contains the mean values. """ import os from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='present') simulation.read_forces() time_limits = (32.0, 64.0) simulation.get_mean_forces(limits=time_limits) simulation.get_strouhal(limits=time_limits, order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') filepath = os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA35', 'forces') krishnan.read_forces(file_path=filepath) krishnan.get_mean_forces(limits=time_limits) krishnan.get_strouhal(limits=time_limits, order=200) simulation.plot_forces(display_coefficients=True, coefficient=2.0, display_extrema=True,
import os from snake.openfoam.simulation import OpenFOAMSimulation from snake.cuibm.simulation import CuIBMSimulation simulation = OpenFOAMSimulation(description='IcoFOAM') simulation.read_forces(display_coefficients=True) simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path='{}/resources/flyingSnake2d_cuibm_anush/' 'flyingSnake2dRe2000AoA35/forces' ''.format(os.environ['SNAKE'])) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) simulation.plot_forces(indices=[1], display_coefficients=True, display_extrema=True, order=200, limits=(0.0, 80.0, 0.0, 3.0), other_simulations=krishnan, other_coefficients=2.0, save_name='liftCoefficientCompareKrishnanEtAl2014') dataframe = simulation.create_dataframe_forces(indices=[1], display_strouhal=True, display_coefficients=True) dataframe2 = krishnan.create_dataframe_forces(indices=[1],
import snake from snake.cuibm.simulation import CuIBMSimulation print('\nPython version:\n{}'.format(sys.version)) print('\nsnake version: {}\n'.format(snake.__version__)) simulation = CuIBMSimulation(description='cuIBM (current) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'cuibm', 'current', 'cusp040', 'Re2000AoA35')) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) other = CuIBMSimulation(description='cuIBM (current) - CUSP-0.5.1', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'cuibm', 'current', 'cusp051', 'Re2000AoA35')) other.read_forces() other.get_mean_forces(limits=[32.0, 64.0]) other.get_strouhal(limits=[32.0, 64.0], order=200) revision86 = CuIBMSimulation(description='cuIBM (old) - CUSP-0.4.0',
# description: Plots the instantaneous force coefficients # and compare to results from Krishnan et al. (2014). import os from matplotlib import pyplot from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='cuIBM (old) - CUSP-0.4.0', directory=os.path.join( os.environ['HOME'], 'simulations_cuIBM', 'revision86-cusp-0.4.0', 'flyingSnake2dRe2000AoA35_20160502', 'numericalSolution')) simulation.read_forces() simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path='{}/resources/flyingSnake2d_cuibm_anush/' 'flyingSnake2dRe2000AoA35/forces' ''.format(os.environ['SNAKE'])) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0) dataframe2 = krishnan.create_dataframe_forces(display_strouhal=True, display_coefficients=True,
import snake from snake.cuibm.simulation import CuIBMSimulation print('\nPython version:\n{}'.format(sys.version)) print('\nsnake version: {}\n'.format(snake.__version__)) simulation = CuIBMSimulation(description='cuIBM (old) - CUSP-0.4.0', directory=os.path.join(os.environ['HOME'], 'snakeReproducibilityPackages', 'cuibm', 'revision86', 'Re2000AoA35')) simulation.read_forces(file_path=os.path.join(simulation.directory, 'numericalSolution', 'forces')) simulation.get_mean_forces(limits=[32.0, 64.0]) simulation.get_strouhal(limits=[32.0, 64.0], order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') krishnan.read_forces(file_path=os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA35', 'forces')) krishnan.get_mean_forces(limits=[32.0, 64.0]) krishnan.get_strouhal(limits=[32.0, 64.0], order=200) dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True,
if snake.__version__ != '0.1.2': warnings.warn('The figures were originally created with snake-0.1.2, '+ 'you are using snake-{}'.format(snake.__version__)) atol_min, atol_max = 5, 16 time_step = 1500 main_directory = os.path.dirname(__file__) reference_directory = os.path.join(main_directory, 'atol16') reference = CuIBMSimulation(directory=reference_directory, description='atol=1.0E-16') reference.read_forces() fx_reference = reference.forces[0].values[-1] fy_reference = reference.forces[1].values[-1] reference.read_grid() p_reference = reference.read_pressure(time_step) qx_reference, qy_reference = reference.read_fluxes(time_step) fx_errors, fy_errors = [], [] p_errors = [] qx_errors, qy_errors = [], [] for atol in range(atol_min, atol_max): directory = os.path.join(main_directory, 'atol{}'.format(atol)) simu = CuIBMSimulation(directory=directory, description='1.0E-{}'.format(atol))
from snake.cuibm.simulation import CuIBMSimulation simulation = PetIBMSimulation(description='PetIBM') simulation.read_forces() time_limits = (32.0, 64.0) simulation.get_mean_forces(limits=time_limits) simulation.get_strouhal(limits=time_limits, order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') filepath = os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA35', 'forces') krishnan.read_forces(file_path=filepath) krishnan.get_mean_forces(limits=time_limits) krishnan.get_strouhal(limits=time_limits, order=200) simulation.plot_forces(display_coefficients=True, coefficient=2.0, display_extrema=True, order=200, limits=(0.0, 80.0, 0.0, 3.0), other_simulations=krishnan, other_coefficients=2.0, style='mesnardo', save_name='forceCoefficientsCompareKrishnanEtAl2014') dataframe = simulation.create_dataframe_forces(display_strouhal=True, display_coefficients=True, coefficient=2.0)
Post-processes the force coefficients from a cuIBM simulation and compare them to cuIBM ones (obtained by Anush Krishnan and published into Krishnan et al., 2014). This script reads the forces, computes the mean forces within a given range, computes the Strouhal number within a range, plots the force coefficients, saves the figure, and prints a data-frame that contains the mean values. """ import os from snake.cuibm.simulation import CuIBMSimulation simulation = CuIBMSimulation(description='present') simulation.read_forces() time_limits = (32.0, 64.0) simulation.get_mean_forces(limits=time_limits) simulation.get_strouhal(limits=time_limits, order=200) krishnan = CuIBMSimulation(description='Krishnan et al. (2014)') filepath = os.path.join(os.environ['SNAKE'], 'resources', 'flyingSnake2d_cuibm_anush', 'flyingSnake2dRe2000AoA35', 'forces') krishnan.read_forces(file_path=filepath) krishnan.get_mean_forces(limits=time_limits) krishnan.get_strouhal(limits=time_limits, order=200) simulation.plot_forces(display_coefficients=True,