Welcome to StoveOpt’s documentation! — StoveOpt documentation

# Welcome to StoveOpt’s documentation!

Created on Sun May 19 18:18:31 2019

@author: Lee

`post_processor.` `average_pot_temperature`(list_temps, length_case_list, list_velocities, case_list)

  Compute average temperatures of each of the case temperature arrays previously extracted with data_import()

  Parameters: | dir_list (dict) – Dictionary of directory titles in the ‘foamfiles’ directory that begin with string ‘case_’ case_list (dir) – Dictionary of case file paths. Appended iteratively with dir_list entries. length_case_list (int) – Number of excecuted case files existing in foamfiles directory list_temps (array) – Populated with results from probing the CFD simulation around entire pot geometry list_velocities (array) – Populated with velocity values written to “details” file in individual case files
  Returns: | Numpy array where column 1 is case title (str), second column is velocites for respective case, and third column is computed average pot temperature for specific case
  Return type: | new_recarr (array)

`post_processor.` `compute_neighboring_velocities`(array_sorted, T_max, velocity_max, T_max_index, length_case_list, velocity_column, temperature_column)

  Use the maximum data solved for previously to compute 4 new neighboring velocities

  Parameters: | T_max (float) – Maximum average pot temperature of all analyzed cases within foamfiles directory velocity_max (float) – Secondary air flow velocity associated with maximum average pot temperature T_max_index (int) – Index associated with maximum temperature. velocity_column (array) – Column array with case velocities temperature_column (array) – Column array with average temperatures array_sorted (array) – Numpy array of sorted velocities (column 1), and average pot temperatures (column 2)
  Returns: | Numpy array listing four velocities to be added to the case queue
  Return type: | v_cases_total_vector (array)

`post_processor.` `data_import`()

  input a list of filenames to be pulled, put out an array of temperature data. search the foamfiles directory for fnames that start with case_ and tally the number for looping through the file. loop through each and pull data from the files (3) convert to numpy arrays (4) store.

  Parameters: | None –
  Returns: | Dictionary of directory titles in the ‘foamfiles’ directory that begin with string ‘case_’ case_list (dir): Dictionary of case file paths. Appended iteratively with dir_list entries. length_case_list (int): Number of excecuted case files existing in foamfiles directory list_temps (array): Populated with results from probing the CFD simulation around entire pot geometry list_velocities (array): Populated with velocity values written to “details” file in individual case files
  Return type: | dir_list (dict)

`post_processor.` `evaluate_optimal`(array_sorted, length_case_list)

  The function evaluates the temperature and velocity data, and uses the information to identify where the optimals live within the range analayzed

  Parameters: | array_sorted (array) – Numpy array of sorted velocities (column 1), and average pot temperatures (column 2) length_case_list (int) – Number of excecuted case files existing in foamfiles directory
  Returns: | Maximum average pot temperature of all analyzed cases within foamfiles directory velocity_max (float): Secondary air flow velocity associated with maximum average pot temperature T_max_index (int): Index associated with maximum temperature. velocity_column (array): Column array with case velocities temperature_column (array): Column array with average temperatures
  Return type: | T_max (float)

`post_processor.` `parse_and_sort_array`(new_recarr, length_case_list)

  Sort new_recarr array based on velocities, return the array with a new name

  Parameters: | new_recarr (array) – Numpy array where column 1 is case title (str), second column is velocites for respective case, and third column is computed average pot temperature for specific case length_case_list (int) – Number of excecuted case files existing in foamfiles directory
  Returns: | Numpy array. Same data as new_recarr, but sorted based on velocities (least to greatest along column 2)
  Return type: | array_sorted (array)

`post_processor.` `plot_variables`(array_sorted, T_max, velocity_max, T_max_index, velocity_column, temperature_column)

  Parameters: | T_max (float) – Maximum average pot temperature of all analyzed cases within foamfiles directory velocity_max (float) – Secondary air flow velocity associated with maximum average pot temperature T_max_index (int) – Index associated with maximum temperature. velocity_column (array) – Column array with case velocities temperature_column (array) – Column array with average temperatures array_sorted (array) – Numpy array of sorted velocities (column 1), and average pot temperatures (column 2)
  Returns: | None

Created on Thu May 23 11:06:19 2019

@author: Lee

`new_case_setup.` `add_templates`(full_case_paths)

  Add the template files to the new case directories

  Parameters: | full_case_paths (dict) – List of full paths for new cases to be added. Compatible with windows os.
  Returns: | List of paths leading to initial condition files for each newly added case constant_file_paths (dict): List of paths leading to solver files for each newly added case system_file_paths (dict): List of paths leading to mesh, schemes, time step and outfil writing files for each newly added case
  Return type: | zero_file_paths (dict)

`new_case_setup.` `create_case_directories`(case_name_list)

  Create the directories for next batch of simulations within the foamfiles dir

  Parameters: | case_name_list (dict) – List of strings each corresponding to a new case file. Named based on velocity values converted to string.
  Returns: | List of full paths for new cases to be added. Compatible with windows os.
  Return type: | full_case_paths (dict)

`new_case_setup.` `define_new_case_names`(v_cases_total_vector)

  Create new case_ folders in the foamfiles folder. Named based on velocities computed in post_processor

  Parameters: | v_cases_total_vector (array) – Numpy array listing four velocities to be added to the case queue
  Returns: | List of strings each corresponding to a new case file. Named based on velocity values converted to string. v_cases_total_vector_string (dict): Velocities converted to string dtype v_boundary_strings (dict): Velocty data converted to string compatible with boundary condition file
  Return type: | case_name_list (dict)

`new_case_setup.` `edit_details_files`(zero_file_paths, v_boundary_strings)

  Open and edit the newly created 0 case files. Edit the empty details file with the velocity strings

  Parameters: | zero_file_paths (dict) – List of paths leading to initial condition files for each newly added case v_boundary_strings (dict) – Velocity strings to be added to details files for respective case
  Returns: | None

`new_case_setup.` `edit_iterative_boundary_conditions`(zero_file_paths, constant_file_paths, system_file_paths, v_boundary_strings)

  Parameters: | zero_file_paths (dict) – List of paths leading to initial condition files for each newly added case v_boundary_strings (dict) – Velocity strings to be added to details files for respective case constant_file_paths (dict) – List of paths leading to solver files for each newly added case system_file_paths (dict) – List of paths leading to mesh, schemes, time step and outfil writing files for each newly added case

Created on Mon Apr 22 15:39:27 2019

@author: Lee

`import_geometry.` `correct_arguments`(args)

  Goal is to convert the geometry file argument to working syntax: Single quote, back slash

  Parameters: | args (dictionary) – Object contains the contents of the input file specified by the user

`import_geometry.` `create_additional_front_points`(pt6x, pt7x, pt14x, pt9z, pt15x, pt8z, pt14z, pt9x, pt8x, pt15z)

  Create pot surface points to create faces–Naming them 21(L)-22(R) to not collide with current fuel vert numbers

  Parameters: | points (float) – cookstove geometry
  Returns: | series of points created as the back plane of the stove. Used to create a 2D geometry
  Return type: | points (float)

`import_geometry.` `create_back_points`(shift, pt1xstr, pt1zstr, pt1ystr, pt2xstr, pt2zstr, pt2ystr, pt3xstr, pt3zstr, pt3ystr, pt4xstr, pt4zstr, pt4ystr, pt5xstr, pt5zstr, pt5ystr, pt6xstr, pt6zstr, pt6ystr, pt7xstr, pt7zstr, pt7ystr, pt8xstr, pt8zstr, pt8ystr, pt9xstr, pt9zstr, pt9ystr, pt10xstr, pt10zstr, pt10ystr, pt11xstr, pt11zstr, pt11ystr, pt12xstr, pt12zstr, pt12ystr, pt13xstr, pt13zstr, pt13ystr, pt14xstr, pt14zstr, pt14ystr, pt15xstr, pt15zstr, pt15ystr, pt0xstr, pt0zstr, pt0ystr, pt16xstr, pt16zstr, pt16ystr, pt17xstr, pt17zstr, pt17ystr, pt18xstr, pt18zstr, pt18ystr, pt19xstr, pt19zstr, pt19ystr, pt20xstr, pt20zstr, pt20ystr, pt21xstr, pt21zstr, pt21ystr, pt44xstr, pt44zstr, pt44ystr, pt46xstr, pt46zstr, pt46ystr, pt48xstr, pt48zstr, pt48ystr, pt50xstr, pt50ystr, pt50zstr)

  Back coordinates of the cookstove–simply shifting the x2 (y) coordinate back by a value shift

  Parameters: | back points (concatenated) – The x,y,z values of back points concatenated into single vertice location

`import_geometry.` `create_fuel_blocks`(pt0x, pt1x)

  Creates geometry for the fuel block with the following assumptions: Rectangular fuel source, Centered along the vertical axis of the combustion chamber, Width of fuel block is half the diameter of the combustion chamber, Assumed fuel height of 3 inches (0.0762 m), bottom of the fuel is 3 inches off the ground.

  Parameters: | pt0x (float) – origin x-coordinate of cookstove geometry pt1x – Bottom east vertice of cookstove combustion chamber

`import_geometry.` `extract_geometry`(file_path)

  Pulling Data from excel workbook

  Parameters: | file_path (str) – full file path for input stove geometry defined by user in input yaml file.
  Returns: | A series of points pulled from the user defined geometry
  Return type: | pt#i (float)

`import_geometry.` `locate_geometry`(args)

  Pull file path and name from the input file (command line argument)

  Parameters: | args (dictionary) – Object contains the contents of the input file specified by the user
  Returns: | full file path for input stove geometry defined by user in input yaml file.
  Return type: | file_path (str)

`import_geometry.` `points_to_strings`(pt1x, pt1z, pt1y, pt2x, pt2z, pt2y, pt3x, pt3z, pt3y, pt4x, pt4z, pt4y, pt5x, pt5z, pt5y, pt6x, pt6z, pt6y, pt7x, pt7z, pt7y, pt8x, pt8z, pt8y, pt9x, pt9z, pt9y, pt10x, pt10z, pt10y, pt11x, pt11z, pt11y, pt12x, pt12z, pt12y, pt13x, pt13z, pt13y, pt14x, pt14z, pt14y, pt15x, pt15z, pt15y, pt0x, pt0z, pt0y, pt17x, pt18x, pt19x, pt16x, pt17z, pt18z, pt19z, pt16z, pt17y, pt18y, pt19y, pt16y, pt20x, pt20z, pt20y, pt21x, pt21z, pt21y, pt44x, pt44z, pt44y, pt46x, pt46z, pt46y, pt48x, pt48y, pt48z, pt50x, pt50y, pt50z)

  Take in the raw vertice information from spreadsheet, and format the floats into strings->For front vertices

  Parameters: | points (float) – all front coordinates
  Returns: | Coordinates converted to strings compatible with openfoam convention (length 5).
  Return type: | points as strings (str)

`import_geometry.` `vertice_concatenate`(pt1xstr, pt1zstr, pt1ystr, pt2xstr, pt2zstr, pt2ystr, pt3xstr, pt3zstr, pt3ystr, pt4xstr, pt4zstr, pt4ystr, pt5xstr, pt5zstr, pt5ystr, pt6xstr, pt6zstr, pt6ystr, pt7xstr, pt7zstr, pt7ystr, pt8xstr, pt8zstr, pt8ystr, pt9xstr, pt9zstr, pt9ystr, pt10xstr, pt10zstr, pt10ystr, pt11xstr, pt11zstr, pt11ystr, pt12xstr, pt12zstr, pt12ystr, pt13xstr, pt13zstr, pt13ystr, pt14xstr, pt14zstr, pt14ystr, pt15xstr, pt15zstr, pt15ystr, pt0xstr, pt0zstr, pt0ystr, pt16xstr, pt16zstr, pt16ystr, pt17xstr, pt17zstr, pt17ystr, pt18xstr, pt18zstr, pt18ystr, pt19xstr, pt19zstr, pt19ystr, pt20xstr, pt20zstr, pt20ystr, pt21xstr, pt21zstr, pt21ystr, pt44xstr, pt44zstr, pt44ystr, pt46xstr, pt46zstr, pt46ystr, pt48xstr, pt48zstr, pt48ystr, pt50xstr, pt50zstr, pt50ystr)

  Convert the individual vertex strings and concatenate to the format required for blockmeshdict file

  Parameters: | as strings (points) – Coordinates converted to strings compatible with openfoam convention (length 5).
  Returns: | The x,y,z values of front points concatenated into single vertice location
  Return type: | concatenated front points (str)

Created on Thu Apr 25 11:26:04 2019

@author: Lee

`create_blockmeshfile.` `edit_blockmesh_template`(saveName, pt0str, pt1str, pt2str, pt3str, pt4str, pt5str, pt6str, pt7str, pt8str, pt9str, pt10str, pt11str, pt12str, pt13str, pt14str, pt15str, pt16str, pt17str, pt18str, pt19str, pt20str, pt21str, pt22str, pt23str, pt24str, pt25str, pt26str, pt27str, pt28str, pt29str, pt30str, pt31str, pt32str, pt33str, pt34str, pt35str, pt36str, pt37str, pt38str, pt39str, pt40str, pt41str, pt42str, pt43str, pt44str, pt45str, pt46str, pt47str, pt48str, pt49str, pt50str, pt51str)

  open the blockmeshtemplate for edit, locate the positions needed, and overwrite the vertice lines

`create_blockmeshfile.` `locate_blockmesh_template`(block_mesh_template_fname)

  the function uses the StoveOpt path and blockmesh template name to open the template version of the blockMeshDict file for editing in the system folder

`create_blockmeshfile.` `modify_controlDict`(pt10str, pt11str, pt9str, pt48str, pt44str, pt14str, pt20str, pt6str, pt21str, pt7str, pt46str, pt15str, pt8str, pt50str, pt12str, pt13str)

  Add the points to the controlDict file for the temperature data, and emissions data

`create_blockmeshfile.` `move_bmesh_to_templatecase`(saveName)

  Copy the previously edited blockmesh file to the template case system folder

`create_blockmeshfile.` `rename_blockmesh`(saveName, blockmesh_template)

  Moving the file and renaming–Need to add an existence check

`create_blockmeshfile.` `replace_template`(path_StoveOpt_master, block_mesh_template_fname, dir_steps)

  Move the template from the backup folder into the system folder for future edits Does not excecute if the template file is already there

`create_blockmeshfile.` `update_blockmesh`(blockmesh_template, system_folder)

  Used to create (but not assign) a new name for the blockmesh file saving name to the blockMeshDict required for running–in the system folder

# Indices and tables

- Index
- Module Index
- Search Page