diff --git a/.gitignore b/.gitignore index 246f297..bf272f5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,10 @@ **/sonvalidxml **/.DS_Store **/*.out -**/install.conf \ No newline at end of file +**/install.conf +docs/build/ +docs/source/reference/main.rst +docs/source/reference/main/ +docs/source/reference/utility/ +docs/source/reference/database.rst +docs/source/reference/database/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ee5039..761be39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,9 +36,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - `cost_1987` - These changes streamline the database structure, removing unnecessary complexity. - **Stored Procedure Usage**: - - Removed previous usage of the `execute` method in the Python MySQL connector. The system now exclusively uses stored procedures for database interactions, ensuring consistency and improved performance. - - Removed redundant stored procedures to streamline database operations and eliminate outdated or unnecessary functionality. + **Database Procedure Usage**: + - Consolidated database interactions through named database procedures for consistency and maintainability. + - Removed redundant database procedures to streamline operations and eliminate outdated or unnecessary functionality. ### Added **Fusion Model Addition**: - A new fusion model has been integrated into ACCERT to extend its functionality and coverage for fusion-related cost assessments. @@ -68,4 +68,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. * ACCERT relational database * PWR-12BE case * ABR1000 case -* initial documentation \ No newline at end of file +* initial documentation diff --git a/README.md b/README.md index d24e5a0..b748fdc 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,11 @@ The software comprises three major components: ACCERT is designed for integration with the [NEAMS Workbench](https://www.ornl.gov/project/neams-workbench) and relies on input -files using Workbench's SON format. Instructions for installing ACCERT both +files using Workbench's SON format. ACCERT uses the bundled SQLite database at +`src/accertdb.sqlite`. Instructions for installing ACCERT both with and without Workbench are provided in this README. ## Documentation Documentation for ACCERT can be found [__here__](https://accert.readthedocs.io/en/latest/index.html). - diff --git a/docs/make.bat b/docs/make.bat index 1225239..68d46fa 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -25,8 +25,8 @@ if errorlevel 9009 ( exit /b 1 ) -REM Define pre-build scripts -set PRE_BUILD_SCRIPTS=generate_sp_docs.py generate_main_docs.py +REM Define pre-build scripts +set PRE_BUILD_SCRIPTS=source\generate_sp_docs.py source\generate_autorst.py REM Define build command based on the first argument if "%1" == "" goto help diff --git a/docs/source/dev/release.rst b/docs/source/dev/release.rst index e40da19..d2f2c4e 100644 --- a/docs/source/dev/release.rst +++ b/docs/source/dev/release.rst @@ -30,7 +30,7 @@ New Features 4. **Improved Scalability and Maintainability**: - Removed redundant tables and columns from the database, simplifying its structure. - - Redundant stored procedures have been eliminated to streamline database operations. + - Redundant database procedures have been eliminated to streamline database operations. - Fusion-related algorithms are now separate from the main database, housed in Python files for easier updates. 5. **Refactored Algorithm Storage**: @@ -59,14 +59,14 @@ Bug Fixes Performance Enhancements ~~~~~~~~~~~~~~~~~~~~~~~~ -- **Stored Procedure Usage**: +- **Database Procedure Usage**: - - Replaced instances of the `execute` method with stored procedures for database interaction, leading to better performance and more consistent operations. + - Consolidated database interactions through named database procedures, leading to more consistent operations. Version 0.1.0 (04/05/2023) -------------------------- -`ACCERT relational database `_ +`ACCERT relational database `_ `PWR-12BE case `_ @@ -84,4 +84,3 @@ New Features - **Hierarchical Structure**: COAs are organized across multiple levels (typically between 0-5), decomposing complex systems into manageable components and subtasks. - **Installation automating**: Provides a script to automate the installation process. - diff --git a/docs/source/dev/styleguide.rst b/docs/source/dev/styleguide.rst index cb04e2d..6e2c188 100644 --- a/docs/source/dev/styleguide.rst +++ b/docs/source/dev/styleguide.rst @@ -3,7 +3,7 @@ Style Guide ----------- -ACCERT is written in **Python 3** and **MySQL 8**. +ACCERT is written in **Python 3** and uses **SQLite** for the bundled database. Style for Python code should follow `PEP 8`_. @@ -19,24 +19,8 @@ Python code should work with all currently `supported versions`_ of Python. .. _os: https://docs.python.org/3/library/os.html .. _Path: https://docs.python.org/3/library/pathlib.html#pathlib.Path -Style for MySQL code should follow Google coding style - -New MySQL code uses the `Google C++ coding style `_, with two exceptions: - -Member variable names: Do not use `foo_.` Instead, use `m_foo` (non-static) or `s_foo` (static). -Old projects and modifications to old code use an older MySQL-specific style for the time being. Since 8.0, MySQL style uses the same formatting rules as Google coding style (e.g., brace placement, indentation, line lengths, etc.), but differs in a few important aspects: - -Class names: Do not use MyClass. Instead, use My_class. - -Function names: Use snake_case(). - -Comment Style: Use either the // or /* */ syntax. // is much more common but both syntaxes are permitted for the time being. -Doxygen comments: Use /** ... */ syntax and not ///. - -Doxygen commands: Use '@' and not '\' for doxygen commands. - -You may see structs starting with st_ and being typedef-ed to some UPPERCASE (e.g. typedef struct st_foo { ... } FOO). However, this is legacy from when the codebase contained C. Do not make such new typedefs nor structs with st_ prefixes, and feel free to remove those that already exist, except in public header files that are part of libmysql (which need to be parseable as C99). - -Code formatting is enforced by use of clang-format throughout the code base. However, note that formatting is only one part of coding style; you are required to take care of non-formatting issues yourself, such as following naming conventions, having clear ownership of code or minimizing the use of macros. See the Google coding style guide for the entire list. +SQLite procedure logic lives in ``src/accert_sqlite_procedures.py``. New +database code should use parameterized queries for values and validate table or +column identifiers before interpolation. Consistent style is important for us, because everyone must know what to expect. Knowing our rules, you'll find it easier to read our code, and when you decide to contribute (which we hope you'll consider!) we'll find it easier to read and review your code. diff --git a/docs/source/examples/ap1000.rst b/docs/source/examples/ap1000.rst new file mode 100644 index 0000000..56bea97 --- /dev/null +++ b/docs/source/examples/ap1000.rst @@ -0,0 +1,88 @@ +AP1000 +====== + +The AP1000 ACCERT example is in ``tutorial/accert/AP1000.son``. It uses the +AP1000 reference table family, which follows the TIMCAT direct-cost table +structure and is scaled to a 2234 MWe two-unit AP1000 case. + +The AP1000 and LPSR direct-cost basis follows Stewart W.R. and Shirvan K., +"Capital cost estimation for advanced nuclear power plants," *Renewable and +Sustainable Energy Reviews*, Nov. 2021, 111880, +https://doi.org/10.1016/j.rser.2021.111880, and the TIMCAT reference +implementation at https://github.com/mit-crpg/TIMCAT. + +.. code-block:: son + + accert{ + ref_model = "AP1000" + use_gncoa = False + + post_process { + occ = true + } + + power(Thermal){ + value = 6800 + unit = MW + } + + power(Electric){ + value = 2234 + unit = MW + } + } + +The AP1000 direct-account total is represented by account ``2`` and is +``6,673,722,963.402768`` in 2018 dollars. ACCERT prints account-review tables +in 2024 dollars using CPI-U escalation, and the generated CSV files retain the +reference-year cost columns with additional ``*_2024`` columns. + +Running the Example +------------------- + +Run from the ACCERT repository root: + +.. code-block:: bash + + python src/Main.py -i tutorial/accert/AP1000.son + +ACCERT writes timestamped CSV outputs such as ``ap1000_upd_acc_*.csv``, +``ap1000_upd_ce_*.csv``, and ``ap1000_post_*.csv`` in the current working +directory. + +Using AP1000 Output in CRF or IAT +--------------------------------- + +To use the AP1000 ACCERT output as a CRF or IAT baseline, convert the +``ap1000_upd_acc_*.csv`` file with ``accert_output_to_crf_baseline`` and provide +the total 20s labor hours that should be assigned to the case: + +.. code-block:: python + + from crf import accert_output_to_crf_baseline + + accert_output_to_crf_baseline( + "ap1000_upd_acc_20260518_215922.csv", + "ap1000_accert_for_crf_iat.csv", + reactor_type="AP1000", + total_20s_labor_hours=28_902_455.46, + ) + +The converter keeps ACCERT direct-account costs and uses the selected CRF base +case, such as AP1000, SFR, or HTGR, to distribute factory cost, material cost, +labor cost, and labor-hour proportions. The converted CSV can be passed to CRF +with ``config["baseline_csv"]`` or to IAT with ``input_csv``. For the current +AP1000 CRF base case, use ``construction_duration_0 = 76`` months in the CRF +configuration. + +The AP1000 bridge maps ACCERT accounts to CRF/IAT accounts as follows: +``211`` to ``211``, ``212`` to ``212``, ``213`` to ``213``, ``214`` to ``216``, +``215`` to ``214``, ``216`` to ``215``, ``217`` and ``218A`` through ``218V`` +to ``214``, ``22`` to ``22``, ``23`` to ``232.1``, ``24`` to ``24``, ``25`` to +``26``, and ``26`` to ``233``. + +The full workflow is available in: + +.. code-block:: bash + + python tutorial/combined/accert_output_to_crf_iat_example.py diff --git a/docs/source/examples/index.rst b/docs/source/examples/index.rst index 5e1d25b..4302601 100644 --- a/docs/source/examples/index.rst +++ b/docs/source/examples/index.rst @@ -3,7 +3,7 @@ Example ====================== -This document provides a comprehensive explanation of the ACCERT running examples, including the **PWR12-BE**, **ABR1000**, and **Fusion** reactor models. It integrates key ACCERT concepts to elucidate how the input files are structured and why they are designed in a particular manner. +This document provides a comprehensive explanation of the ACCERT running examples, including the **PWR12-BE**, **ABR1000**, **AP1000**, and **Fusion** reactor models. It integrates key ACCERT concepts to elucidate how the input files are structured and why they are designed in a particular manner. @@ -13,5 +13,6 @@ This document provides a comprehensive explanation of the ACCERT running example pwr12-be abr1000 + ap1000 fusion - stellarator \ No newline at end of file + stellarator diff --git a/docs/source/examples/stellarator.rst b/docs/source/examples/stellarator.rst index 8e2061b..8876c40 100644 --- a/docs/source/examples/stellarator.rst +++ b/docs/source/examples/stellarator.rst @@ -10,8 +10,8 @@ variables, and LCOE evaluation, the algorithms are leveraged from UKAEA's `PROCE Prerequisites -------------- -- ACCERT installation (see :doc:`Installation Guide `). -- MySQL database initialized with the updated schema containing the *stellarator* algorithms and variables. +- ACCERT installation (see :doc:`Installation Guide <../user/install>`). +- SQLite database initialized with the updated schema containing the *stellarator* algorithms and variables. - ACCERT main branch after PR #47. New Features @@ -26,7 +26,7 @@ General Input Structure The input file for the stellarator model is located at ``accert/tutorial/accert/stellarator.son``. -.. code-block:: json +.. code-block:: text accert{ ref_model = "stellarator" @@ -65,5 +65,3 @@ The output will be generated in the ``tutorial/accert`` directory, as ``output.o - **stellarator_updated_account.xlsx**: Contains the updated cost breakdown for the stellarator model. - **stellarator_LCOE_results.xlsx**: Contains the LCOE analysis results specific to the stellarator configuration. - - diff --git a/docs/source/generate_autorst.py b/docs/source/generate_autorst.py index bc2a178..56b6396 100644 --- a/docs/source/generate_autorst.py +++ b/docs/source/generate_autorst.py @@ -1,93 +1,57 @@ +import ast import os -import re -current_dir = os.path.dirname(os.path.abspath(__file__)) +current_dir = os.path.dirname(os.path.abspath(__file__)) toc_file_path = os.path.join(current_dir, 'reference', 'main.rst') -output_dir = os.path.join(current_dir, 'reference') - -def clean_output_directory(directory): - """ - Removes all .rst files in the specified directory to clean up old documentation. - """ - if os.path.exists(directory): - for filename in os.listdir(directory): - if filename.endswith('.rst'): - file_path = os.path.join(directory, filename) - os.remove(file_path) - print(f'Removed old RST file: {file_path}') - else: - os.makedirs(directory, exist_ok=True) - print(f'Created output directory: {directory}') - - -# remove the old toctree file if it exists + + +def class_methods(file_path, class_name): + with open(file_path, 'r', encoding='utf-8') as source_file: + tree = ast.parse(source_file.read()) + for node in tree.body: + if isinstance(node, ast.ClassDef) and node.name == class_name: + return [item.name for item in node.body if isinstance(item, ast.FunctionDef)] + return [] + + +main_methods = class_methods(os.path.join(current_dir, '../..', 'src', 'Main.py'), 'Accert') +utility_methods = class_methods(os.path.join(current_dir, '../..', 'src', 'utility_accert.py'), 'Utility_methods') + if os.path.exists(toc_file_path): os.remove(toc_file_path) -# remove the old rst files in the output directory/main and output directory/utility -clean_output_directory(os.path.join(output_dir, 'main')) -clean_output_directory(os.path.join(output_dir, 'utility')) -# create a new toctree file -with open(toc_file_path, 'w', encoding='utf-8') as toctree_file: - toctree_file.write(f""" +with open(toc_file_path, 'w', encoding='utf-8') as toctree_file: + toctree_file.write( + """ Accert Code Reference -========================== -This section provides detailed information on the Accert codebase. The Accert codebase is divided -into two main sections: the main Accert class and utility functions. The main Accert class contains -the main functions and methods for the Accert model, while the utility functions contain helper -functions for the Accert model. - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - -Accert Class --------------------- - -.. autosummary:: - :toctree: main/ - :template: function.rst - - -""") -# Step 2: Read the Main class file in ../src/Main.py use absoulte path -main_class_file_path = os.path.join(current_dir, '../..', 'src', 'Main.py') -# give absolute path to open the file -main_class_file_path = os.path.abspath(main_class_file_path) -with open(main_class_file_path, 'r') as main_class_file: - main_class_content = main_class_file.read() - # Step 3: Parse the Main class file to get all the methods - # Use regex to find all methods in the class - method_names = re.findall(r'def (\w+)\(', main_class_content) - print(f'Found methods in Main class: {method_names}, at folder: {main_class_file_path}') - # Step 4: Add methods to the Toctree with Main.Accert. at the beginning - for method_name in method_names: - with open(toc_file_path, 'a', encoding='utf-8') as toctree_file: - toctree_file.write(f' Main.Accert.{method_name}\n') - # Step 5: Add Utility Functions to the Toctree - with open(toc_file_path, 'a', encoding='utf-8') as toctree_file: - toctree_file.write(f""" - +===================== + +This section lists the main ACCERT classes and methods. It is generated from +the source tree so the documentation does not need copied Python files. + +Accert Class +------------ + +The ``Accert`` class is defined in ``src/Main.py``. It includes these methods: + +""" + ) + for method_name in main_methods: + toctree_file.write(f"- ``{method_name}``\n") + + toctree_file.write( + """ + Accert Utility Functions --------------------------- -.. autosummary:: - :toctree: utility/ - :template: function.rst - -""") - print('Adding Utility Functions to the Toctree') -# Step 6: Parse the utility functions file in ../src/utility_accert.py -utility_functions_file_path = os.path.join(current_dir, '../..', 'src', 'utility_accert.py') -with open(utility_functions_file_path, 'r') as utility_functions_file: - utility_functions_content = utility_functions_file.read() - # Step 7: Parse the utility functions file to get all the functions - # Use regex to find all functions in the file - function_names = re.findall(r'def (\w+)\(', utility_functions_content) - print(f'Found functions in utility functions file: {function_names}') - # Step 8: Add functions to the Toctree with Main.Utility_Functions. at the beginning - for function_name in function_names: - with open(toc_file_path, 'a', encoding='utf-8') as toctree_file: - toctree_file.write(f' utility_accert.Utility_methods.{function_name}\n') - - #end of the script +------------------------ + +The ``Utility_methods`` class is defined in ``src/utility_accert.py``. It +includes these methods: + +""" + ) + for method_name in utility_methods: + toctree_file.write(f"- ``{method_name}``\n") + +print(f"Generated {toc_file_path}") diff --git a/docs/source/generate_sp_docs.py b/docs/source/generate_sp_docs.py index 549bbda..c2f543b 100644 --- a/docs/source/generate_sp_docs.py +++ b/docs/source/generate_sp_docs.py @@ -1,185 +1,95 @@ -import re +"""Generate reference pages for ACCERT SQLite procedures.""" + +from __future__ import annotations + +import ast import os -import textwrap - -current_dir = os.path.dirname(os.path.abspath(__file__)) -sql_file_path = os.path.join(current_dir, '../..', 'src', 'accertdb.sql') -# Path to your SQL file use absolute path -# ../../sql/your_sql_file.sql -# os.path.abspath('../src/accertdb.sql') -sql_file_path = os.path.abspath(sql_file_path) -# Output directory for Markdown files -# output_dir = 'source/reference/database/' - -output_dir = os.path.join(current_dir,'reference','database') -# Path to the Toctree file -# toctree_file_path = 'source/reference/database.rst' -toctree_file_path = os.path.join(current_dir,'reference','database.rst') - -def clean_output_directory(directory): - """ - Removes all .md files in the specified directory to clean up old documentation. - """ - if os.path.exists(directory): - for filename in os.listdir(directory): - if filename.endswith('.md'): - file_path = os.path.join(directory, filename) - os.remove(file_path) - print(f'Removed old Markdown file: {file_path}') - else: - os.makedirs(directory, exist_ok=True) - print(f'Created output directory: {directory}') - -def append_to_toctree(sp_name): - """ - Appends the generated Markdown file to the Toctree in 'source/reference/database.rst'. - """ - with open(toctree_file_path, 'a', encoding='utf-8') as toctree_file: - toctree_file.write(f' database/{sp_name}\n') - -def generate_markdown_table(parameters): - """ - Generates a Markdown table for the given parameters. - """ - if not parameters: - return """ -| None | No parameters. | -|------|-----------------| -""" +from pathlib import Path - # Define table header - table = """ -| **Name** | **Type** | -|----------|----------| -""" - # Add each parameter as a table row - for param in parameters: - name = param['name'] - input_type = param['type'] - # Escape pipe characters in descriptions to prevent table issues - input_type = input_type.replace('|', '\\|') - table += f"| {name} | {input_type} |\n" - - return table - -def main(): - print(f"Reading SQL file from path: {sql_file_path}") - print(f"Output directory: {output_dir}") - print(f"Toctree file path: {toctree_file_path}") - - # Step 1: Clean up old Markdown files + +current_dir = Path(__file__).resolve().parent +procedure_file_path = (current_dir / "../.." / "src" / "accert_sqlite_procedures.py").resolve() +output_dir = current_dir / "reference" / "database" +toctree_file_path = current_dir / "reference" / "database.rst" + + +def _procedure_names(tree: ast.Module) -> list[str]: + for node in tree.body: + if isinstance(node, ast.Assign): + for target in node.targets: + if isinstance(target, ast.Name) and target.id == "PROCEDURES": + if isinstance(node.value, ast.Dict): + return sorted( + key.value + for key in node.value.keys + if isinstance(key, ast.Constant) and isinstance(key.value, str) + ) + return [] + + +def clean_output_directory(directory: Path) -> None: + directory.mkdir(parents=True, exist_ok=True) + for filename in directory.iterdir(): + if filename.suffix == ".md": + filename.unlink() + print(f"Removed old Markdown file: {filename}") + + +def append_to_toctree(sp_name: str) -> None: + with toctree_file_path.open("a", encoding="utf-8") as toctree_file: + toctree_file.write(f" database/{sp_name}\n") + + +def main() -> None: + print(f"Reading SQLite procedures from: {procedure_file_path}") clean_output_directory(output_dir) - # remove the old toctree file if it exists - if os.path.exists(toctree_file_path): - os.remove(toctree_file_path) - # create a new toctree file - with open(toctree_file_path, 'w', encoding='utf-8') as toctree_file: - toctree_file.write(f""" - -Database Stored Procedures -========================== + if toctree_file_path.exists(): + toctree_file_path.unlink() + with toctree_file_path.open("w", encoding="utf-8") as toctree_file: + toctree_file.write( + """ +Database Procedures +=================== .. toctree:: :maxdepth: 1 :caption: Contents: - -""") - - # Step 2: Read the SQL file - try: - with open(sql_file_path, 'r', encoding='utf-8') as file: - sql_content = file.read() - except FileNotFoundError: - print(f"SQL file not found at path: {sql_file_path}") - return - - # Step 3: Define Regex to match stored procedures - # This regex accounts for: - # - Optional DEFINER clause - # - Procedure name with backticks - # - Multiline parameters - # - Custom delimiter ;; - sp_pattern = re.compile( - r'CREATE\s+DEFINER=`[^`]+`@`[^`]+`\s+PROCEDURE\s+`(\w+)`\s*\((.*?)\)\s*BEGIN\s*(.*?)END\s*;;', - re.IGNORECASE | re.DOTALL - ) - - # Step 4: Find all stored procedures - stored_procedures = sp_pattern.findall(sql_content) - - if not stored_procedures: - print("No stored procedures found in the SQL file.") - return - - # Step 5: Process each stored procedure - for sp_name, params, body in stored_procedures: - # Clean and process the SQL body - sp_sql = textwrap.dedent(body).strip() - - # Attempt to extract description from comments (if any) - # Assuming descriptions are provided in comments like /*! Description: ... */ - sp_description_match = re.search(r'/\*!\s*Description\s*:\s*(.*?)\s*\*/', sp_sql, re.DOTALL | re.IGNORECASE) - if sp_description_match: - sp_description = sp_description_match.group(1).strip() - # Remove the description comment from the SQL body - sp_sql = re.sub(r'/\*!\s*Description\s*:\s*.*?\s*\*/', '', sp_sql, flags=re.DOTALL | re.IGNORECASE).strip() - else: - sp_description = '\n' - - # Extract parameters: Assuming parameters are defined as IN param_name param_type - # This regex captures "IN param_name param_type", "OUT param_name param_type", etc. - # Additionally, it captures optional inline comments for descriptions - sp_parameters = re.findall(r'\b(IN|OUT|INOUT)\s+(\w+)\s+([^\s,]+)(?:\s*/\*\s*(.*?)\s*\*/)?', params, re.IGNORECASE) - - # Format parameters for the table - parameters = [] - for direction, param_name, param_type, param_desc in sp_parameters: - parameters.append({ - 'name': param_name, - 'type': param_type - }) - - # Generate the Markdown table for parameters - parameters_table = generate_markdown_table(parameters) - - # Prepare the full SQL definition - formatted_params = ', '.join([f'{dir} {pname} {ptype}' for dir, pname, ptype, _ in sp_parameters]) - full_sp_sql = f"CREATE PROCEDURE `{sp_name}`({formatted_params})\nBEGIN\n{textwrap.indent(sp_sql, ' ')}\nEND;;" - - # Create Markdown content using a multi-line f-string with proper formatting - rst_content = f"""--- + +""" + ) + + tree = ast.parse(procedure_file_path.read_text(encoding="utf-8")) + function_nodes = {node.name: node for node in tree.body if isinstance(node, ast.FunctionDef)} + for sp_name in _procedure_names(tree): + function_node = function_nodes.get(sp_name) + if function_node is None: + continue + params = [arg.arg for arg in function_node.args.args if arg.arg != "conn"] + params_table = "\n".join(f"| {param} |" for param in params) or "| None |" + content = f"""--- title: {sp_name} --- # {sp_name} -{sp_description} +SQLite/Python implementation for an ACCERT database procedure. ## Parameters -{parameters_table} +| **Name** | +|----------| +{params_table} -## SQL Definition +## Implementation -```sql -{full_sp_sql} +See ``src/accert_sqlite_procedures.py``. """ - # Define the output Markdown file path - md_file_path = os.path.join(output_dir, f'{sp_name}.md') - - # Write Markdown content to file - try: - with open(md_file_path, 'w', encoding='utf-8') as md_file: - md_file.write(rst_content) - except Exception as e: - print(f'Error writing Markdown file for {sp_name}: {e}') - continue - # Append the Markdown file to the Toctree + (output_dir / f"{sp_name}.md").write_text(content, encoding="utf-8") append_to_toctree(sp_name) - - print("All stored procedures have been documented successfully.") -if __name__ == '__main__': + print("All SQLite procedure docs have been generated successfully.") + + +if __name__ == "__main__": main() - \ No newline at end of file diff --git a/docs/source/inputsIndex/Algorithm.py b/docs/source/inputsIndex/Algorithm.py deleted file mode 100644 index 3c5c9cd..0000000 --- a/docs/source/inputsIndex/Algorithm.py +++ /dev/null @@ -1,19 +0,0 @@ - -class Algorithm: - def __init__(self, ind, alg_name, alg_for, alg_description, alg_python, alg_formulation, alg_units, variables, constants): - self.ind = ind - self.name = alg_name - self.for_ = alg_for - self.description = alg_description - self.formulation = alg_formulation - self.units = alg_units - self.variables = variables - self.constants = constants - - def __repr__(self): - return "Algorithm(%s, %s, %s, %s, %s, %s, %s, %s, %s)" % (self.ind, self.name, self.for_, self.description, self.formulation, self.units, self.variables, self.constants) - - def run(self, data): - raise NotImplementedError - def _run_alg(self, data): - raise NotImplementedError diff --git a/docs/source/inputsIndex/Main.py b/docs/source/inputsIndex/Main.py deleted file mode 100644 index a754307..0000000 --- a/docs/source/inputsIndex/Main.py +++ /dev/null @@ -1,1338 +0,0 @@ -import mysql.connector -import os -from prettytable import PrettyTable -import configparser -import xml2obj -from utility_accert import Utility_methods -from Algorithm import Algorithm -import numpy as np -import sys -import pandas.io.sql as sql -import pandas as pd -import warnings -from typing import Union - -warnings.filterwarnings('ignore') -PathLike = Union[str, bytes, os.PathLike] - -class Accert: - def __init__(self, input_path, accert_path): - self.input_path = input_path - self.accert_path = accert_path - self.input = self.load_obj(self.input_path, self.accert_path) - - def load_obj(self, input_path, accert_path): - """Convert son file to xml stream and creates a python data structure. - - Parameters - ---------- - input_path : PathLike - Inputs file path. - accert_path: PathLike - ACCERT's repository path. - - Returns - ------- - A Python object converted from the input file. - """ - - import subprocess - sonvalidxml = accert_path + "/bin/sonvalidxml" - schema = accert_path + "/src/etc/accert.sch" - cmd = ' '.join([sonvalidxml, schema, input_path]) - xmlresult = subprocess.check_output(cmd, shell=True) - ### obtain pieces of input by name for convenience - # from .wasppy import xml2obj - return xml2obj.xml2obj(xmlresult) - - def get_current_COAs(self, c, inp_id): - """Get current Code of Accounts based on the input ID of Super Account. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - inp_id : str - COA ID - - Returns - ------- - coa_lst - List of COA's. - coa_others - List of a COA's other info, including ind, lft, rgt. - """ - c.execute("""SELECT code_of_account, ind, rgt FROM account WHERE supaccount = '{}';""".format(inp_id)) - coa_info = c.fetchall() - coa_lst = [] - coa_other =[] - for coa in coa_info: - coa_lst.append(coa[0]) - coa_other.append(coa[1:]) - return coa_lst , coa_other - - def update_account_before_insert(self, c, max_ind, max_rgt): - """ Updates the current COAs ind, lft, rgt. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - max_ind : int - Original index of the account next to the inserted COA. - max_rgt : int - Original rgt of the account next to the inserted COA. - """ - c.execute("UPDATE accert_db.account SET ind = ind + 1 WHERE ind > {}".format(max_ind)) - c.execute("UPDATE accert_db.account SET lft = lft + 2 WHERE lft > {}".format(max_rgt)) - c.execute("UPDATE accert_db.account SET rgt = rgt + 2 WHERE rgt > {}".format(max_rgt)) - return None - - def insert_new_COA(self, c, ind, supaccount, level, lft, rgt, - code_of_account, account_description= None,var_value=None, - var_unit=None, total_cost=0, unit='dollar',main_subaccounts=None, - cost_elements=None, review_status='Added', prn='0'): - """Insert new COA in between an index in the account table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - ind : int - Index of the new inserted COA. - supaccount : str - Super account of the new inserted COA. - level : int - Level of the new inserted COA. - lft : int - Lft index for nested model of the new inserted COA. - rgt : int - Rgt index for nested model of the new inserted COA. - code_of_account : str, optional - COA of the new inserted COA, by default "new" - account_description : str, optional - Account description of the new inserted COA. (By default none) - total_cost : int, optional - Total cost of the new inserted COA. (Set to 0 dollars by default) - unit : str, optional - Unit of the new inserted COA. (By default set to dollars) - main_subaccounts : List[str], optional - Main subaccounts of the new inserted COA. (By default none) - cost_elements : List[str], optional - Cost elements of the new inserted COA. (By default none) - review_status : str, optional - Review status of the new inserted COA. (By default 'Unchanged') - prn : str(float), optional - Percentage of the total cost of new inserted COA. (Set to 0% by default) - """ - - return None - - def insert_COA(self, c, sup_coa): - """ - Insert a new COA into the account table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - sup_coa : str - Super account of the new inserted COA. - """ - # collect current COAs - # current_COAs are list of current COAs' code_of_account - # current_COA_others are list of current COAs' other info - # include current COAs' ind lft rgt - current_COAs, current_COA_others = self.get_current_COAs(c, sup_coa) - max_ind = max(current_COA_others,key=lambda item:item[0])[0] - max_rgt = max(current_COA_others,key=lambda item:item[1])[1] - # NOTE : if new COA is added, it will be added to the end of the current suplist - # TODO : return a new COA id with the COA list as input - # new_COA = get_new_COA_id(current_COAs) - new_COA = "new" - sup_coa_level = c.fetchone()[0] - coa_level = sup_coa_level + 1 - # before inserting new COA, update the current COAs' ind, lft, rgt - self.update_account_before_insert(c, max_ind, max_rgt) - # insert new COA - ## NOTE need to fix this for passing supaccount - self.insert_new_COA(c, ind=max_ind+1, supaccount=str(l1_inp.id), level = coa_level, lft=max_rgt+1, rgt=max_rgt+2, code_of_account= new_COA ) - return None - - def add_new_alg(self, c,alg_name, alg_for, alg_description, - alg_python, alg_formulation, alg_units, variables, constants): - """ - Adds a new algorithm into algorithm table based of the following parameters: - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - alg_name : str - Name of the algorithm. - alg_for : str - Whether the algorithm is for cost element or for variable. - alg_description : str - Description of the algorithm. - alg_python : str - Python code of the algorithm. (Variables should be in the form of 'var1', 'var2', 'var3'...) - alg_formulation : str - Prints info of the algorithm. - alg_units : str - Units of the output of algorithm. - variables : List[str] - Variables of the algorithm. - constants : List[str] - Constants of the algorithm. - """ - - c.execute("""INSERT INTO - accert_db.algorithm ( alg_name, alg_for, alg_description, - alg_python, alg_formulation, alg_units, variables, constants) - VALUES (%(alg_name)s, %(alg_for)s, %(alg_description)s, - %(alg_python)s, %(alg_formulation)s, %(alg_units)s, - %(variables)s, %(constants)s)""", - { 'alg_name': alg_name, 'alg_for': alg_for, 'alg_description': alg_description, - 'alg_python': alg_python, 'alg_formulation': alg_formulation, 'alg_units': alg_units, - 'variables': variables, 'constants': constants}) - return None - - def extract_variable_info_on_name(self, c,var_id): - """ - Extracts variable info based on a specific variable name. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - var_id : str - Variable ID. - - Returns - ------- - var_info : List[str] - Variable info including variable name and variable unit - """ - var_info = results[0] - return var_info - - def extract_super_val(self, c,var_id): - """ - Extracts information on the super variable based on a specific variable name. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - var_id : str - Variable ID. - - Returns - ------- - sup_val : List[str] - Super variable info including the name of the super variable. - """ - - if results is not None: - sup_val = results[0] - else: - sup_val = None - return sup_val - - def update_input_variable(self, c,var_id,u_i_var_value, - u_i_var_unit,var_type='', quite=False): - """ - Updates an input variable value and unit based on variable's ID. (Converts unit if needed) - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - var_id : str - Variable ID. - u_i_var_value : float - Variable value. - u_i_var_unit : str - Variable unit. - var_type : str, optional - Variable type, by default '' - quite : bool, optional - Whether or not to print the update info. (By default not, or false) - """ - - if not quite: - print('[Updating] {}Variable {}'.format(var_type,var_id)) - org_var_info = self.extract_variable_info_on_name(c,var_id) - # NOTE: org_var_info is a tuple - org_var_value = float(org_var_info[0]) - org_var_unit = str(org_var_info[1]) - unit_convert = self.check_unit_conversion(org_var_unit,u_i_var_unit) - if unit_convert: - u_i_var_value = self.convert_unit(u_i_var_value,u_i_var_unit,org_var_unit) - u_i_var_unit = org_var_unit - # # DEBUG print - self.update_variable_info_on_name(c,var_id,u_i_var_value,u_i_var_unit) - if not quite: - print('[Updated] Changed from {} {} to {} {}\n'.format(org_var_value,org_var_unit, u_i_var_value, u_i_var_unit)) - return None - - def update_variable_info_on_name(self, c,var_id,var_value,var_unit): - """ - Updates variable info based on variable name. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - var_id : str - Variable ID. - var_value : float - Variable value. - var_unit : str - Variable unit. - """ - return None - - def update_super_variable(self, c,var_id): - """ - Updates super variable info based on variable name. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - var_id : str - Variable ID. - """ - - ### results is a tuple - sup_var_name = result[1] - org_var_value = result[2] - alg_name = result[3] - var_name_lst = [x.strip() for x in result[4].split(',')] - alg_no = result[5] - alg = result[6] - alg_form = result[7] - alg_unit = result[8] - sup_var_unit = result[9] - # # # create a value list for debugging - # # var_value_lst = [] - variables = {} - for var_ind, var_name in enumerate(var_name_lst): - # var_value_lst.append(get_var_value_by_name(c, var_name)) - variables['v_{}'.format(var_ind+1)] = self.get_var_value_by_name(c, var_name) - # print('variables',variables) - print('[Updating] Sup Variable {}, running algorithm: [{}], \n[Updating] with formulation: {}'.format(sup_var_name, alg_name, alg_form)) - alg_value = self.run_pre_alg(alg, **variables) - self.update_input_variable(c,sup_var_name,alg_value,sup_var_unit,quite = True) - if alg_unit == '1': - alg_unit='' - sup_var_unit='' - print('[Updated] Reference value is : {} {}, calculated value is: {} {}'.format(org_var_value,alg_unit,alg_value,sup_var_unit)) - print(' ') - return None - - def extract_total_cost_on_name(self, c,tc_id): - """ - Extracts information of the total cost based on a specific total cost's ID. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - tc_id : str - Total cost ID. - """ - ## Keep the note here for ref - ## example with tuple - # c.execute("""SELECT code_of_account, account_description, total_cost, unit - # FROM `accert_db`.`account` - # WHERE code_of_account = %s;""",(tc_id,)) - - ## example with direct format string - c.execute("""SELECT code_of_account, account_description, total_cost, unit - FROM `accert_db`.`account` - WHERE code_of_account = "{}" ; - """.format(tc_id)) - ## example with direct format string - # c.execute("""SELECT code_of_account, account_description, total_cost, unit - # FROM `accert_db`.`account` - # WHERE code_of_account = %(u_i_tc_name)s ;""",{'u_i_tc_name': str(tc_id).replace('"','')}) - results = c.fetchall() - tc_info = results[0] - return tc_info - - def check_unit_conversion(self, org_unit, new_unit): - """ - Checks if unit conversion is needed. - - Parameters - ---------- - org_unit : str - Original unit. - new_unit : str - New unit. - """ - if org_unit == new_unit: - return False - else: - return True - - def convert_unit(self, current_value, current_unit, to_unit): - """ - Converts the current unit to a new unit. - - Parameters - ---------- - current_value : float - Current value to be converted. - current_unit : str - Current unit. - to_unit : str - Unit to be converted to. - - Returns - ------- - to_value : float - Converted value. - """ - - scale = float(self.convert_unit_scale(current_unit,to_unit)) - to_value = current_value * scale - if to_unit != 'dollar': - print("[Unit Changed] Converted input from {} {} to {} {}".format(current_value, current_unit,to_value,to_unit)) - return to_value - - def convert_unit_scale(self, current_unit, to_unit): - """ - Converts the current unit to a new unit in a scale pattern. (I.e. from kiloWatts to megaWatts or gigaWatts) - - Parameters - ---------- - current_unit : str - current unit - to_unit : str - unit to be converted to - - Returns - ------- - scale : float - """ - if current_unit == to_unit: - return 1 - elif current_unit == 'KW': - if to_unit == 'MW': - return 0.001 - elif to_unit == 'GW': - return 0.000001 - elif current_unit == 'MW': - if to_unit == 'KW': - return 1000 - elif to_unit == 'GW': - return 0.001 - elif current_unit == 'GW': - if to_unit == 'KW': - return 1000000 - elif to_unit == 'MW': - return 1000 - elif current_unit == 'million': - if to_unit == 'dollar': - return 1000000 - elif to_unit == 'thousand': - return 1000 - elif current_unit == 'thousand': - if to_unit == 'million': - return 1/1000 - elif to_unit == 'dollar': - return 1000 - elif current_unit == 'dollar': - if to_unit == 'thousand': - return 1/1000 - elif to_unit == 'million': - return 1/1000000 - elif current_unit == 'lbs': - if to_unit == 'kg': - return 0.453592 - elif to_unit == 'ton': - return 0.000453592 - elif current_unit == 'kg': - if to_unit == 'lbs': - return 2.20462 - elif to_unit == 'ton': - return 0.001 - elif current_unit == 'ton': - if to_unit == 'lbs': - return 2204.62 - elif to_unit == 'kg': - return 1000 - elif current_unit == 'bar': - if to_unit == 'psi': - return 14.5038 - elif to_unit == 'psf': - return 2088.54 - elif current_unit == 'psi': - if to_unit == 'bar': - return 0.068947572927646 - elif to_unit == 'psf': - return 144 - else: - print('Cannot convert unit from ',current_unit,'to',to_unit) - raise ValueError - - def update_total_cost(self, c,tc_id, u_i_tc_value, u_i_tc_unit): - """ - Updates the total cost based on a total cost ID. (Checks if unit conversion is needed) - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - tc_id : str - COA of the total cost. - u_i_tc_value : float - Total cost's value. - u_i_tc_unit : str - Total cost's unit. - """ - print('[Updating] Total cost of account {}'.format(tc_id)) - org_tc_info = self.extract_total_cost_on_name(c,tc_id) - org_tc_value = float(org_tc_info[2]) - org_tc_unit = org_tc_info[3] - unit_convert = self.check_unit_conversion(org_tc_unit,u_i_tc_unit) - if unit_convert: - u_i_tc_value = self.convert_unit(u_i_tc_value,u_i_tc_unit,org_tc_unit) - u_i_tc_unit = org_tc_unit - self.update_total_cost_on_name(c,tc_id,u_i_tc_value,u_i_tc_unit) - print('[Updated] Changed from {:,.2f} {} to {:,.2f} {}\n'.format( org_tc_value,org_tc_unit, int(u_i_tc_value), u_i_tc_unit)) - return None - - def update_total_cost_on_name(self, c, tc_id, u_i_tc_value, u_i_tc_unit): - """ - Updates the total cost based on a total cost ID, without checking for unit conversion. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - tc_id : str - COA of the total cost. - u_i_tc_value : float - Total cost's value. - u_i_tc_unit : str - Total cost's unit. - """ - ## NOTE I'm not sure if this is the best way to update the total cost - ## Statement is not working as expected when passing in a string in a dictionary - ## but it works when passing in the string directly in .format() method - - # c.execute("""UPDATE `accert_db`.`account` - # SET `total_cost` = %(u_i_tc_value)s , - # `unit` = %(u_i_tc_unit)s , - # `review_status` = 'User Input' - # WHERE `code_of_account` = "%(u_i_tc_name)s";""", - # {'u_i_tc_value':int(u_i_tc_value), - # 'u_i_tc_unit':u_i_tc_unit, - # 'u_i_tc_name':tc_id}) - return None - - def get_var_value_by_name(self, c, var_name): - """ - Get a variable value based on a specific variable name. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - var_name : str - Variable name. - - Returns - ------- - var_value : str - Variable value. - """ - return var_value - - def run_pre_alg(self, alg, **kwargs): - """ - Runs pre-algorithms. - - Parameters - ---------- - alg : str - Pre-algorithm name. - **kwargs : dict - Keyword arguments. - """ - # NOTE: comments below is the original note from Patrick, - # I would want to keep the original note for future reference - # add the variables in kwargs to the local - # function namespace - # (equivalent to c1 = 10; c2 = 10; c3 = 40.5) - locals().update(kwargs) - # report back the user algorithm - # evaluate the algorithm - alg_value = eval(alg) - # print('Value: {}'.format(alg_value)) - return alg_value - - def update_cost_element_on_name(self, c, ce_name, alg_value): - """ - Updates the cost element based on cost element name. (Turn off safe update mode) - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - ce_name : str - Cost element name starting with the COA of the account. - alg_value : float - Cost element value. - """ - c.execute("""SET SQL_SAFE_UPDATES = 0;""") - return None - - def update_new_cost_elements(self, c): - """ - Calculates and updates affected cost elements based on the user input. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Updating cost elements '.center(100,'=')) - print('\n') - for row in results: - ce_name = row[1] - org_ce_value = row[2] - alg_name = row[3] - var_name_lst = [x.strip() for x in row[4].split(',')] - alg_no = row[5] - alg = row[6] - alg_form = row[7] - alg_unit = row[8] - # NOTE cost element unit is always in USD dollar - # maybe the unit for cost element can be added to the cost_element table later??? - # # create a value list for debugging - # var_value_lst = [] - variables = {} - for var_ind, var_name in enumerate(var_name_lst): - # var_value_lst.append(get_var_value_by_name(c, var_name)) - variables['v_{}'.format(var_ind+1)] = self.get_var_value_by_name(c, var_name) - print('[Updating] Cost element [{}], running algorithm: [{}], \n[Updating] with formulation: {}'.format(ce_name, alg_name, alg_form)) - alg_value = self.run_pre_alg(alg, **variables) - unit_convert = self.check_unit_conversion('dollar',alg_unit) - if unit_convert: - alg_value = self.convert_unit(alg_value,alg_unit,'dollar') - print('[Updated] Reference value is : ${:<11,.0f}, calculated value is: ${:<11,.0f} '.format(org_ce_value,alg_value)) - self.update_cost_element_on_name(c,ce_name,alg_value) - print(' ') - return None - - def update_account_table_by_cost_elements(self, c): - """ - Updates the account table based on the sum of the cost elements. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Updating account table '.center(100,'=')) - print('\n') - print('[Updating] Updating account table by cost elements') - print('[Updated] Account table updated from cost elements\n') - return None - - def roll_up_cost_elements(self, c): - """ - Rolls up cost elements from level 3 to 0 for pwr. Only rolls up level 3 to 2 for ABR. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Roll up cost elements '.center(100,'=')) - print('\n') - self.roll_up_cost_elements_by_level(c,3,2) - self.roll_up_cost_elements_by_level(c,2,1) - self.roll_up_cost_elements_by_level(c,1,0) - print('[Updated] Cost elements rolled up\n') - return None - - def roll_up_cost_elements_by_level(self, c,from_level,to_level): - """ - Rolls up cost elements from an input lower level to a higher level. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - from_level : int - Roll up from level. - to_level : int - Roll up to level - """ - - print('[Updating] Roll up cost elements from level {} to level {}'.format(from_level,to_level)) - return None - - def roll_up_account_table(self, c): - """ - Rolls up the account table from level 3 to 0. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Rolling up account table '.center(100,'=')) - print('\n') - self.roll_up_account_table_by_level(c,from_level=3,to_level=2) - - print('[Updated] Account table rolled up\n') - - return None - - def roll_up_account_table_by_level(self, c, from_level, to_level): - """ - Rolls up the account table from an input lower level to a higher level. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - from_level : int - Roll up from level. - to_level : int - Roll up to level. - """ - - print('[Updating] Rolling up account table from level {} to level {} '.format(from_level,to_level)) - c.execute(""" - UPDATE account, - (SELECT a%(to)s.code_of_account as ac%(to)s_coa, - sum(ua%(from)s.total_cost) as a%(to)s_cal_total_cost - FROM account as ua%(from)s - JOIN account as a%(to)s on ua%(from)s.supaccount=a%(to)s.code_of_account - where ua%(from)s.level=%(from)s and a%(to)s.level=%(to)s - group by a%(to)s.code_of_account) as updated_ac%(to)s - SET - account.total_cost = updated_ac%(to)s.a%(to)s_cal_total_cost, - account.review_status = 'Updated' - WHERE - account.code_of_account = updated_ac%(to)s.ac%(to)s_coa - """,{'from':from_level,'to':to_level}) - return None - - def roll_up_abr_account(self, c): - """ - Rolls up the account table for ABR from level 3 to 2. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - - print('ABR1000 model only roll up level 3 to 2') - ##NOTE inner join only update 222 - print('[Updating] Rolling up account table from level {} to level {} '.format(3,2)) - c.execute(""" - UPDATE abr_account, - (SELECT a2.code_of_account as ac2_coa, - sum(ua3.total_cost) as a2_cal_total_cost - FROM abr_account as ua3 - JOIN abr_account as a2 on ua3.supaccount=a2.code_of_account - where ua3.level=3 and a2.level=2 - group by a2.code_of_account) as updated_ac2 - SET - abr_account.total_cost = updated_ac2.a2_cal_total_cost, - abr_account.review_status = 'Updated' - WHERE - abr_account.code_of_account = updated_ac2.ac2_coa - """) - return None - - def sum_cost_elements_2C(self, c): - """ - Sums the cost element for ABR COA 2c. (Calculated cost) - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - - print(' Summing cost elements for direct cost '.center(100,'=')) - print('\n') - print('[Updating] Summing cost elements') - c.execute("""SELECT sum(cef.cost_2017) from - (SELECT t1.code_of_account, - SUBSTRING_INDEX(SUBSTRING_INDEX(t1.cost_elements, ',', 1), ',', -1) as fac_name - FROM accert_db.abr_account AS t1 - LEFT JOIN abr_account as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!='2' - and t1.code_of_account!='2C' )as ac - join accert_db.abr_cost_element as cef - on cef.cost_element = ac.fac_name - where ac.code_of_account!='2C'""") - sum_2c_fac = c.fetchone()[0] - c.execute("""UPDATE abr_cost_element - SET cost_2017 = %(sum_2c_fac)s, - updated = %(updated)s - WHERE cost_element = '2C_fac'""",{'sum_2c_fac':float(sum_2c_fac),'updated':1}) - - c.execute("""SELECT sum(cef.cost_2017) from - (SELECT t1.code_of_account, - SUBSTRING_INDEX(SUBSTRING_INDEX(t1.cost_elements, ',', 2), ',', -1) as lab_name - FROM accert_db.abr_account AS t1 - LEFT JOIN abr_account as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!='2' - and t1.code_of_account!='2C' )as ac - join accert_db.abr_cost_element as cef - on cef.cost_element = ac.lab_name - where ac.code_of_account!='2C'""") - sum_2c_lab = c.fetchone()[0] - c.execute("""UPDATE abr_cost_element - SET cost_2017 = %(sum_2c_lab)s, - updated = %(updated)s - WHERE cost_element = '2C_lab'""",{'sum_2c_lab':float(sum_2c_lab),'updated':1}) - c.execute("""SELECT sum(cef.cost_2017) from - (SELECT t1.code_of_account, - SUBSTRING_INDEX(SUBSTRING_INDEX(t1.cost_elements, ',', 3), ',', -1) as mat_name - FROM accert_db.abr_account AS t1 - LEFT JOIN abr_account as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!='2' - and t1.code_of_account!='2C' )as ac - join accert_db.abr_cost_element as cef - on cef.cost_element = ac.mat_name - where ac.code_of_account!='2C'""") - sum_2c_mat = c.fetchone()[0] - c.execute("""UPDATE abr_cost_element - SET cost_2017 = %(sum_2c_mat)s, - updated = %(updated)s - WHERE cost_element = '2C_mat'""",{'sum_2c_mat':float(sum_2c_mat),'updated':1}) - - print('[Updated] Cost elements summed\n') - return None - - def sum_up_abr_account_2C(self, c): - """ - Sums up total cost of account 2C for ABR. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - - print(' Summing up account table '.center(100,'=')) - print('\n') - c.execute("""UPDATE abr_account, - (SELECT sum(t1.total_cost) as tc, sum(t1.prn) as tprn FROM - abr_account AS t1 LEFT JOIN abr_account as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!='2' - and t1.code_of_account!='2C') as dircost - SET abr_account.total_cost = dircost.tc, - abr_account.prn=dircost.tprn, - review_status = 'Ready for Review' - WHERE abr_account.code_of_account = '2C';""") - print('[Updated] Account table summed up for calculated direct cost.\n') - return None - - def sum_up_abr_direct_cost(self, c): - """ - Sums up the total cost of account 2 from account 2c for ABR. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""UPDATE abr_account, - (SELECT (total_cost/prn) as talcost - FROM abr_account as pre_abr - WHERE pre_abr.code_of_account ='2C') as calcost - SET abr_account.total_cost = calcost.talcost, - review_status = 'Ready for Review' - WHERE abr_account.code_of_account = '2';""") - print('[Updated] Account table summed up for direct cost.\n') - return None - - def cal_direct_cost_elements(self, c): - """ - Calculates the direct cost elements for the ABR including the factory, labor, and material costs. (2C_fac, 2C_lab, 2C_mat) - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT sum(t1.prn) as tprn FROM - abr_account AS t1 LEFT JOIN abr_account as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!='2' - and t1.code_of_account!='2C';""") - tprn = c.fetchone()[0] - c.execute("""SELECT cost_2017 FROM accert_db.abr_cost_element - where account='2' - and cost_element='2c_fac' """) - fac = c.fetchone()[0]/tprn - c.execute("""SELECT cost_2017 FROM accert_db.abr_cost_element - where account='2' - and cost_element='2c_lab' """) - lab = c.fetchone()[0]/tprn - c.execute("""SELECT cost_2017 FROM accert_db.abr_cost_element - where account='2' - and cost_element='2c_mat' """) - mat = c.fetchone()[0]/tprn - # print(' Direct cost calculation '.center(100,'=')) - # print(fac, lab,mat) - # print('[Updated] Account table summed up for direct cost.\n') - return fac,lab,mat - - def roll_up_abr_account_table(self, c): - """ - Rolls up the account table for the ABR. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Rolling up account table '.center(100,'=')) - print('\n') - ### only update account 222 and account 2C - self.roll_up_abr_account(c) - print('[Updated] Account table rolled up\n') - self.sum_up_abr_account_2C(c) - self.sum_up_abr_direct_cost(c) - return None - - def print_logo(self): - """ - Prints the logo. - """ - print('\n') - print("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") - print(":::'###:::::'######:::'######::'########:'########::'########:") - print("::'## ##:::'##... ##:'##... ##: ##.....:: ##.... ##:... ##..::") - print(":'##:. ##:: ##:::..:: ##:::..:: ##::::::: ##:::: ##:::: ##::::") - print("'##:::. ##: ##::::::: ##::::::: ######::: ########::::: ##::::") - print(" #########: ##::::::: ##::::::: ##...:::: ##.. ##:::::: ##::::") - print(" ##.... ##: ##::: ##: ##::: ##: ##::::::: ##::. ##::::: ##::::") - print(" ##:::: ##:. ######::. ######:: ########: ##:::. ##:::: ##::::") - print("..:::::..:::.......::::......::........::..:::::..:::::..:::::") - print('\n') - - def generate_results_table(self, c, conn, level=3): - """ - generates the results tables. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - level : int - Level of detail in the results table. (How many levels) - """ - - statement="SELECT rankedcoa.code_of_account, account.account_description, account.total_cost, account.unit, account.level, account.review_status FROM account JOIN (SELECT node.code_of_account AS COA, CONCAT( REPEAT(' ', COUNT(parent.code_of_account) - 1), node.code_of_account) AS code_of_account FROM account AS node, account AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.code_of_account) as rankedcoa ON account.code_of_account=rankedcoa.COA WHERE account.level <={} ORDER BY account.lft;".format(level) - filename = 'ACCERT_updated_account.xlsx' - # filename = 'ACCERT_updated_account.csv' - self.write_to_excel(statement, filename,conn) - - statement="SELECT va.var_name, va.var_description, affectv.ce_affected FROM accert_db.variable as va JOIN (SELECT variable,group_concat(ce) as ce_affected FROM accert_db.variable_links group by variable) as affectv on va.var_name = affectv.variable WHERE va.user_input = 1 order by va.ind" - filename = 'ACCERT_variable_affected_cost_elements.xlsx' - # filename = 'ACCERT_variable_affected_cost_elements.csv' - - self.write_to_excel(statement, filename,conn) - - statement="SELECT ce.cost_element, ce.cost_2017 as cost, ce.sup_cost_ele, ce.alg_name, ce.account FROM accert_db.cost_element as ce WHERE ce.updated != 0 order by ce.ind" - filename = 'ACCERT_updated_cost_element.xlsx' - # filename = 'ACCERT_updated_cost_element.csv' - self.write_to_excel(statement, filename,conn) - - def generate_abr_results_table(self, c, conn, level=3): - """ - Generates results tables for the ABR-1000. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - level : int - Level of detail in the results table. (How many levels) - """ - statement="SELECT rankedcoa.code_of_account, abr_account.account_description, abr_account.total_cost, abr_account.unit, abr_account.level,abr_account.prn as pct,abr_account.review_status FROM abr_account JOIN (SELECT node.code_of_account AS COA, CONCAT( REPEAT(' ', COUNT(parent.code_of_account) - 1), node.code_of_account) AS code_of_account FROM abr_account AS node, abr_account AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.code_of_account) as rankedcoa ON abr_account.code_of_account=rankedcoa.COA WHERE abr_account.level <=3 ORDER BY abr_account.lft;".format(level) - filename = 'ACCERT_updated_account.xlsx' - # filename = 'ACCERT_updated_account.csv' - - self.write_to_excel(statement, filename,conn) - - statement="SELECT va.var_name, va.var_description, affectv.ce_affected FROM accert_db.abr_variable as va JOIN (SELECT variable,group_concat(ce) as ce_affected FROM accert_db.abr_variable_links group by variable) as affectv on va.var_name = affectv.variable WHERE va.user_input = 1 order by va.ind" - filename = 'ACCERT_variable_affected_cost_elements.xlsx' - # filename = 'ACCERT_variable_affected_cost_elements.csv' - - self.write_to_excel(statement, filename,conn) - - statement="SELECT ce.cost_element, ce.cost_2017 as cost, ce.sup_cost_ele, ce.alg_name, ce.account FROM accert_db.abr_cost_element as ce WHERE ce.updated != 0 order by ce.ind" - filename = 'ACCERT_updated_cost_element.xlsx' - # filename = 'ACCERT_updated_cost_element.csv' - - self.write_to_excel(statement, filename,conn) - - def write_to_excel(self, statement, filename,conn): - """ - Writes the results to an excel file. - - Parameters - ---------- - statement : str - SQL statement. - filename : str - Filename of the excel file - conn : MySQLConnection - MySQLConnection class instantiates objects that represent a connection to the MySQL database server. - """ - df=sql.read_sql(statement,conn) - df.to_excel(filename,index=False) - print("Successfully created excel file {}".format(filename)) - - def execute_accert(self, c, ut): - self.print_logo() - ut.print_user_request_parameter(c) - accert = self.load_obj(input_path, accert_path).accert - - print(' Reading user input '.center(100,'=')) - print('\n') - if accert.ref_model is not None: - print('[USER_INPUT]', 'Reference model is',str(accert.ref_model.value),'\n') - if accert.power is not None: - for ind, inp in enumerate(accert.power): - print('[USER_INPUT]', str(inp.id),'power is',str(inp.value.value),str(inp.unit.value),'\n') - if str(inp.id)=='Thermal': - var_id = 'mwth' - if str(inp.id)=='Electric': - var_id = 'mwe' - var_value = str(inp.value.value) - var_unit = str(inp.unit.value) - if "abr1000" in str(accert.ref_model.value).lower(): - self.update_abr_variable_info_on_name(c,var_id,var_value,var_unit) - sup_val_lst= self.extract_abr_super_val(c,var_id) - if "pwr12-be" in str(accert.ref_model.value).lower(): - self.update_variable_info_on_name(c,var_id,var_value,var_unit) - sup_val_lst= self.extract_super_val(c,var_id) - if sup_val_lst: - sup_val_lst= sup_val_lst.split(',') - while sup_val_lst: - sup_val = sup_val_lst.pop(0) - if sup_val: - if "pwr12-be" in str(accert.ref_model.value).lower(): - self.update_super_variable(c,sup_val) - new_sup_val = self.extract_super_val(c,sup_val) - if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) - elif "abr1000" in str(accert.ref_model.value).lower(): - self.update_abr_super_variable(c,sup_val) - new_sup_val = self.extract_abr_super_val(c,sup_val) - if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) - - - if accert.var is not None: - for var_ind, var_inp in enumerate(accert.var): - u_i_var_value = float(str(var_inp.value.value)) - u_i_var_unit = str(var_inp.unit.value) - var_id = str(var_inp.id).replace('"','') - if "pwr12-be" in str(accert.ref_model.value).lower(): - self.update_input_variable(c,var_id,u_i_var_value,u_i_var_unit) - # sup_val = extract_super_val(c,var_id) - sup_val_lst= self.extract_super_val(c,var_id) - if sup_val_lst: - sup_val_lst= sup_val_lst.split(',') - while sup_val_lst: - sup_val = sup_val_lst.pop(0) - if sup_val: - self.update_super_variable(c,sup_val) - new_sup_val = self.extract_super_val(c,sup_val) - if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) - if "abr1000" in str(accert.ref_model.value).lower(): - self.update_abr_input_variable(c,var_id,u_i_var_value,u_i_var_unit) - sup_val_lst= self.extract_abr_super_val(c,var_id) - if sup_val_lst: - sup_val_lst= sup_val_lst.split(',') - while sup_val_lst: - sup_val = sup_val_lst.pop(0) - if sup_val: - self.update_abr_super_variable(c,sup_val) - new_sup_val = self.extract_abr_super_val(c,sup_val) - if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) - if accert.l0COA is not None: - if accert.l0COA.l1COA is not None: - # TODO: check if print info can be verbose or not - # # DEBUG print - # print('l1') - for l1_ind, l1_inp in enumerate(accert.l0COA.l1COA): - # # DEBUG print - # print('',l1_ind, l1_inp.id) - if l1_inp.l2COA is not None: - # # DEBUG print - # print(' l2') - for l2_ind, l2_inp in enumerate(l1_inp.l2COA): - if "new" in str(l2_inp.id): - self.insert_COA(c, str(l1_inp.id)) - # # DEBUG print - # print(' ', l2_inp.id) - if l2_inp.ce is not None: - # # DEBUG print - # print(' l2ce') - for l2ce_ind, l2ce_inp in enumerate(l2_inp.ce): - # # DEBUG print - # print(' ', l2ce_inp.id) - if l2ce_inp.alg is not None: - # # DEBUG print - # print(' l2ce alg') - for l2ce_alg_ind, l2ce_alg_inp in enumerate(l2ce_inp.alg): - # # DEBUG print - # print(' ', l2ce_alg_inp.id) - if l2ce_alg_inp.var is not None: - # # DEBUG print - # print(' l2ce alg var') - for l2ce_alg_var_ind, l2ce_alg_var_inp in enumerate(l2ce_alg_inp.var): - if l2ce_alg_var_inp.alg is None: - ### NOTE variable will be user input values - u_i_var_value = float(str(l2ce_alg_var_inp.value.value)) - u_i_var_unit = str(l2ce_alg_var_inp.unit.value) - var_id = str(l2ce_alg_var_inp.id).replace('"','') - self.update_input_variable(c,var_id,u_i_var_value,u_i_var_unit) - sup_val_lst= self.extract_super_val(c,var_id) - if sup_val_lst: - sup_val_lst= sup_val_lst.split(',') - while sup_val_lst: - sup_val = sup_val_lst.pop(0) - if sup_val: - self.update_super_variable(c,sup_val) - new_sup_val = self.extract_super_val(c,sup_val) - if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) - - - # sup_val = extract_super_val(c,var_id) - # if sup_val is not None: - # update_super_variable(c,sup_val) - else: - ### NOTE variable need to be calculated - for l2ce_alg_var_alg_ind, l2ce_alg_var_alg_inp in enumerate(l2ce_alg_var_inp.alg): - if l2ce_alg_var_alg_inp.var is not None: - ### update sub_variable info for each sup_variable in the algorithm(for sup_variable) - for l2ce_alg_var_alg_var_ind, l2ce_alg_var_alg_var_inp in enumerate(l2ce_alg_var_alg_inp.var): - var_id = str(l2ce_alg_var_alg_var_inp.id).replace('"','') - u_i_var_value = float(str(l2ce_alg_var_alg_var_inp.value.value)) - u_i_var_unit = str(l2ce_alg_var_alg_var_inp.unit.value) - self.update_input_variable(c,var_id,u_i_var_value,u_i_var_unit,var_type='Sub ') - ### updating sup_variable - var_id = str(l2ce_alg_var_inp.id).replace('"','') - self.update_super_variable(c,var_id) - if l2_inp.l3COA is not None: - # # DEBUG print - # print(' l3') - for l3_ind, l3_inp in enumerate(l2_inp.l3COA): - ## NOTE this is not a great way to check if the 'new' - ## is in the string, but it works for now - if "new" in str(l3_inp.id): - self.insert_COA(c, str(l2_inp.id)) - # # DEBUG print - # print(' ', l3_inp.id) - if l3_inp.ce is not None: - # # DEBUG print - # print(' l3ce') - for l3ce_ind, l3ce_inp in enumerate(l3_inp.ce): - # # DEBUG print - # print(' ', l3ce_inp.id) - if l3ce_inp.alg is not None: - # # DEBUG print - # print(' l3ce alg') - for l3ce_alg_ind, l3ce_alg_inp in enumerate(l3ce_inp.alg): - # # DEBUG print - # print(' ', l3ce_alg_inp.id) - if l3ce_alg_inp.var is not None: - # # DEBUG print - # print(' l3ce alg var') - for l3ce_alg_var_ind, l3ce_alg_var_inp in enumerate(l3ce_alg_inp.var): - if l3ce_alg_var_inp.alg is None: - ### NOTE variable will be user input values - u_i_var_value = float(str(l3ce_alg_var_inp.value.value)) - u_i_var_unit = str(l3ce_alg_var_inp.unit.value) - var_id = str(l3ce_alg_var_inp.id).replace('"','') - self.update_input_variable(c,var_id,u_i_var_value,u_i_var_unit) - sup_val_lst= self.extract_super_val(c,var_id) - if sup_val_lst: - sup_val_lst= sup_val_lst.split(',') - while sup_val_lst: - sup_val = sup_val_lst.pop(0) - if sup_val: - self.update_super_variable(c,sup_val) - new_sup_val = self.extract_super_val(c,sup_val) - if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) - - - # sup_val = extract_super_val(c,var_id) - # if sup_val is not None: - # update_super_variable(c,sup_val) - - else: - ### NOTE variable need to be calculated - for l3ce_alg_var_alg_ind, l3ce_alg_var_alg_inp in enumerate(l3ce_alg_var_inp.alg): - if l3ce_alg_var_alg_inp.var is not None: - ### update sub_variable info for each sup_variable in the algorithm(for sup_variable) - for l3ce_alg_var_alg_var_ind, l3ce_alg_var_alg_var_inp in enumerate(l3ce_alg_var_alg_inp.var): - var_id = str(l3ce_alg_var_alg_var_inp.id).replace('"','') - u_i_var_value = float(str(l3ce_alg_var_alg_var_inp.value.value)) - u_i_var_unit = str(l3ce_alg_var_alg_var_inp.unit.value) - self.update_input_variable(c,var_id,u_i_var_value,u_i_var_unit,var_type='Sub ') - ### updating sup_variable - var_id = str(l3ce_alg_var_inp.id).replace('"','') - self.update_super_variable(c,var_id) - if l3_inp.total_cost is not None: - # # DEBUG print - # print(' l3 total cost') - for l3_total_cost_ind, l3_total_cost_inp in enumerate(l3_inp.total_cost): - # # DEBUG print - # print(' ', l3_inp.id, l3_total_cost_inp.value.value, l3_total_cost_inp.unit.value) - tc_id = str(l3_inp.id).replace('"','') - u_i_tc_value = float(str(l3_total_cost_inp.value.value)) - u_i_tc_unit = str(l3_total_cost_inp.unit.value) - self.update_total_cost(c, tc_id, u_i_tc_value, u_i_tc_unit) - if l2_inp.total_cost is not None: - # # DEBUG print - # print(' l2 total cost') - for l2_total_cost_ind, l2_total_cost_inp in enumerate(l2_inp.total_cost): - # # DEBUG print - # print(' ', l2_inp.id, l2_total_cost_inp.value.value, l2_total_cost_inp.unit.value) - tc_id = str(l2_inp.id).replace('"','') - u_i_tc_value = float(str(l2_total_cost_inp.value.value)) - u_i_tc_unit = str(l2_total_cost_inp.unit.value) - if "abr1000" in str(accert.ref_model.value).lower(): - self.update_abr_total_cost(c,tc_id,u_i_tc_value,u_i_tc_unit) - elif "pwr12-be" in str(accert.ref_model.value).lower(): - self.update_total_cost(c,tc_id,u_i_tc_value,u_i_tc_unit) - else: - print("ERROR: model not found ") - print(accert.ref_model.value) - print("Exiting") - sys.exit(1) - # update_total_cost(c,tc_id,u_i_tc_value,u_i_tc_unit) - ###################### - - if "abr1000" in str(accert.ref_model.value).lower(): - ### print changed variables - ut.extract_user_changed_abr_variables(c) - ### print changed total cost_elements - ut.extract_affected_abr_cost_elements(c) - ### calculate and new cost_elements value update to the database in table cost_elements and also update the account table: - self.update_new_abr_cost_elements(c) - ###NOTE: cost elements should be rolled up as well - # ut.print_updated_abr_cost_elements(c) - ### update the account table: - self.roll_up_abr_cost_elements(c) - - self.sum_cost_elements_2C(c) - self.update_abr_account_table_by_cost_elements(c) - - ### roll up the account table: - self.roll_up_abr_account_table(c) - abr_fac,abr_lab,abr_mat = self.cal_direct_cost_elements(c) - print(' Generating results table for review '.center(100,'=')) - print('\n') - ut.print_leveled_abr_accounts(c, abr_fac,abr_lab,abr_mat,all=False,cost_unit='million',level=3) - - self.generate_abr_results_table(c, conn,level=3) - - elif "pwr12-be" in str(accert.ref_model.value).lower(): - ### print changed variables - ut.extract_user_changed_variables(c) - ### print changed total cost_elements - ut.extract_affected_cost_elements(c) - ### NOTE: uncomment to print original and cost element values - # ### print original cost_elements value: - # extract_original_cost_elements(c) - ### calculate and new cost_elements value update to the database in table cost_elements and also update the account table: - self.update_new_cost_elements(c) - # ut.extract_changed_cost_elements(c) - self.roll_up_cost_elements(c) - ### NOTE uncomment below to print new cost_elements value - # print_updated_cost_elements(c) - ### update the account table: - self.update_account_table_by_cost_elements(c) - ### roll up the account table: - self.roll_up_account_table(c) - ### print the account table: - print(' Generating results table for review '.center(100,'=')) - print('\n') - ut.print_leveled_accounts(c, all=False,cost_unit='million',level=3) - self.generate_results_table(c, conn,level=3) - - - ### close the connection: - - conn.close() - - sys.stdout.close() - sys.stdout=stdoutOrigin - - -if __name__ == "__main__": - """ - main driver - """ - - stdoutOrigin=sys.stdout - sys.stdout = open("output.out", "w") - # print_logo() - - if len(sys.argv) == 1: - print("PLEASE ADD [Input_file_for_ACCERT]") - sys.exit(-1) - - code_folder = os.path.dirname(os.path.abspath(__file__)) - initfile = os.path.join(code_folder, 'install.conf') - ins = configparser.ConfigParser() - ins.read(initfile) - passwd = ins.get("INSTALL","PASSWD") - - conn = mysql.connector.connect( - host="localhost", - user="root", - password=passwd, - database="accert_db", - auth_plugin="mysql_native_password" - ) - # conn.commit() - c = conn.cursor() - ut = Utility_methods() - accert_path = os.path.abspath(os.path.join(code_folder, os.pardir)) - user_input = sys.argv[2] - if os.path.exists(user_input): - input_path = os.path.abspath(user_input) - else: - print('ACCERT did not find the input file {}'.format(user_input)) - raise SystemExit - Accert = Accert(input_path,accert_path) - Accert.execute_accert(c,ut) - diff --git a/docs/source/inputsIndex/VarSearch.py b/docs/source/inputsIndex/VarSearch.py deleted file mode 100644 index 85355ca..0000000 --- a/docs/source/inputsIndex/VarSearch.py +++ /dev/null @@ -1,15 +0,0 @@ -### This python file is used to find any added data from an .csv file, and prints it in a format so that sphinx can -### Automatically generate it. - -import pandas as pd - -### Insert the .csv file path here -CSVPath = '../tutorial/ref_tables/ABR1000_account.csv' -CSVRead = pd.read_csv(CSVPath) - -### Insert the columns you want it to read. -CSVColumns = CSVRead[['ind', 'code_of_account', 'account_description', 'level','supaccount', 'cost_elements']] - -### insert the columns in each row[], and if the text is a mix of letters and numbers OR has spaces in it, include quotes. -for idx, row in CSVColumns.iloc[0:102].iterrows(): - print(f"{row['ind']}, {row['code_of_account']}, \"{row['account_description']}\", {row['level']}, {row['supaccount']}, \"{row['cost_elements']}\"") \ No newline at end of file diff --git a/docs/source/inputsIndex/__init__.py b/docs/source/inputsIndex/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/docs/source/inputsIndex/utility_accert.py b/docs/source/inputsIndex/utility_accert.py deleted file mode 100644 index d0e2f1d..0000000 --- a/docs/source/inputsIndex/utility_accert.py +++ /dev/null @@ -1,628 +0,0 @@ -from prettytable import PrettyTable -import textwrap - -class Utility_methods: - - - def __init__(self): - pass - - def print_table(self, c, align_key=None,align=None,format_col=None): - """ - Prints the table in an organized format via the PrettyTable library. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - align_key : list[str], optional - List of column names to align. (By default none) - align : list[str], optional - List of alignments. Left, right or center. (By default none) - format_col : list[str], optional - List of column names to format. (By default none) - """ - results = c.fetchall() - columns = c.description - field_names = [i[0] for i in c.description] - x = PrettyTable(field_names) - for row in results: - row = list(row) - if format_col: - for i in format_col: - row[i-1]= '{:,.2f}'.format(row[i-1]) - x.add_row(row) - if align_key: - for i,k in enumerate(align_key): - x.align[k] = align[i] - print('\n') - print (x) - print('\n') - return None - - def print_account(self, c, all=False, cost_unit='dollar',level=3): - """ - Prints the account table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - all : bool, optional - If True, print all the accounts columns. (By default False) - cost_unit : str, optional - Unit of the total cost. (By default 'dollar') - level : int, optional - Level of account. (By default 3) - """ - if all: - c.execute("""SELECT * - FROM account - WHERE level <= %(u_i_level)s;""",{'u_i_level': str(level)}) - else: - c.execute("""SELECT ind, - code_of_account, - account_description, - total_cost, - unit, - level, - review_status - FROM account - WHERE level <= %(u_i_level)s;""",{'u_i_level': str(level)}) - - align_key=["code_of_accout", "account_description", "total_cost"] - align=[ "l", "l", "r"] - if cost_unit=='million': - results = c.fetchall() - columns = c.description - field_names = [i[0] for i in c.description] - x = PrettyTable(field_names) - for row in results: - row = list(row) - # NOTE the index of the row need to have a function - row[3]= '{:,.3f}'.format(row[3]/1000000) - row[4]= 'million' - x.add_row(row) - if align_key: - for i,k in enumerate(align_key): - x.align[k] = align[i] - print (x) - else: - # print(c) - self.print_table(c, align_key, align) - return None - - def print_leveled_accounts(self, c, all=False, cost_unit='dollar',level=3): - """ - Prints the output account table with COA line up as a nested list. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - all : bool, optional - If True, print all the accounts columns. (By default False) - cost_unit : str, optional - Unit of the total cost. (By default 'dollar') - level : int, optional - Level of account. (By default 3) - """ - if all: - c.execute("""select account.level, - rankedcoa.COA as code_of_account, - account.account_description, - sorted_ce.fac_cost, - sorted_ce.lab_cost, - sorted_ce.mat_cost, - account.total_cost, - account.unit, - account.review_status - FROM account - JOIN - (SELECT node.code_of_account, - CONCAT( REPEAT(' ', COUNT(parent.code_of_account) - 1), node.code_of_account) AS COA - FROM account AS node, - account AS parent - WHERE node.lft BETWEEN parent.lft AND parent.rgt - GROUP BY node.code_of_account) as rankedcoa - ON account.code_of_account=rankedcoa.code_of_account - JOIN (SELECT splt_act.code_of_account, - cef.cost_2017 as fac_cost, - cel.cost_2017 as lab_cost, - cem.cost_2017 as mat_cost - FROM - (SELECT code_of_account,total_cost, - SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ',', 1), ',', -1) as fac_name, - SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ',', 2), ',', -1) as lab_name, - SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ',', 3), ',', -1) as mat_name - FROM accert_db.account) as splt_act - LEFT JOIN cost_element as cef - ON cef.cost_element = splt_act.fac_name - LEFT JOIN cost_element as cel - ON cel.cost_element = splt_act.lab_name - LEFT JOIN cost_element as cem - ON cem.cost_element = splt_act.mat_name - ) as sorted_ce - ON sorted_ce.code_of_account = account.code_of_account - WHERE account.level <= %(u_i_level)s - ORDER BY account.lft;""",{'u_i_level': str(level)}) - align_key=["code_of_account", "account_description", "fac_cost", "lab_cost", "mat_cost", "total_cost"] - align=[ "l", "l", "r", "r", "r", "r"] - else: - c.execute("""SELECT rankedcoa.code_of_account, - account.account_description, - account.total_cost, - account.unit, - account.level, - account.review_status - FROM account - JOIN - ( - SELECT node.code_of_account AS COA, CONCAT( REPEAT(' ', COUNT(parent.code_of_account) - 1), node.code_of_account) AS code_of_account - FROM account AS node, - account AS parent - WHERE node.lft BETWEEN parent.lft AND parent.rgt - GROUP BY node.code_of_account) as rankedcoa - ON account.code_of_account=rankedcoa.COA - WHERE account.level <= %(u_i_level)s - ORDER BY account.lft;""",{'u_i_level': str(level)}) - align_key=["code_of_account", "account_description", "total_cost"] - align=[ "l", "l", "r"] - - if cost_unit=='million': - results = c.fetchall() - columns = c.description - field_names = [i[0] for i in c.description] - x = PrettyTable(field_names) - for row in results: - row = list(row) - # NOTE the index of the row need to have a function - # just place this as a temporary solution - if all: - row[3:7] = list(map(lambda x: '{:,.2f}'.format(x/1000000), row[3:7])) - row[7] = 'million' - else: - row[2] = '{:,.2f}'.format(row[2]/1000000) - row[3] = 'million' - x.add_row(row) - if align_key: - for i,k in enumerate(align_key): - x.align[k] = align[i] - print (x) - else: - self.print_table(c, align_key, align) - return None - - def print_algorithm(self, c): - """Prints the output algorithm table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM algorithm; - """) - self.print_table(c) - return None - - def print_cost_element(self, c): - """Prints the output cost element table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM cost_element; - """) - self.print_table(c) - return None - - def print_facility(self, c): - """Prints the output facility table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM facility; - """) - self.print_table(c) - return None - - def print_escalation(self, c): - """Prints the output escalation table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM escalation; - """) - self.print_table(c) - return None - - def print_variable(self, c): - """Prints the output variable table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM variable; - """) - self.print_table(c) - return None - - def print_abr_account(self, c): - """Prints the output abr account table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM abr_account; - """) - self.print_table(c) - return None - - def print_abr_cost_element(self, c): - """Prints the output abr cost element table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM abr_cost_element; - """) - self.print_table(c) - return None - - def print_abr_variable(self, c): - """Prints the output abr variable table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM abr_variable; - """) - self.print_table(c) - return None - - def print_abr_variable_links(self, c): - """Prints the output abr variable links table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT * - FROM abr_variable_links; - """) - self.print_table(c) - return None - - def print_user_request_parameter(self,c, all=False): - """Prints the output user request parameter table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - all : bool, optional - If True, prints all columns. (By default False) - """ - if all: - c.execute("""SELECT va.ind, va.var_name, affectv.ce_affected - FROM accert_db.variable as va JOIN - (SELECT variable,group_concat(ce) as ce_affected - FROM accert_db.variable_links - group by variable) as affectv - on va.var_name = affectv.variable - where va.var_value IS NULL - order by va.ind;""") - self.print_table(c) - else: - c.execute("""SELECT va.var_name,affectv.ce_affected - FROM accert_db.variable as va JOIN - (SELECT variable,group_concat(ce) as ce_affected - FROM accert_db.variable_links - group by variable) as affectv - on va.var_name = affectv.variable - where va.var_value IS NULL - order by va.ind;""") - results = c.fetchall() - for row in results: - print('Parameter "{}" is required for cost elements:'.format(row[0])) - # print(row[1]) - print('{}\n'.format(textwrap.fill(row[1], 100))) - # print('Parameter "{}" is required\n'.format(row[0])) - return None - - def print_updated_cost_elements(self, c): - """Prints the output updated cost elements table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT ind, - cost_element, - cost_2017, - sup_cost_ele, - account, - updated - FROM cost_element - WHERE updated = 1""") - self.print_table(c) - - def extract_original_cost_elements(self, c): - """Extracts the original affected cost elements from the cost element table. (This function is ONLY used for debugging) - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - # # ce.updated, ce.algno - c.execute(""" SELECT ce.cost_element, ce.cost_2017 as orignal_cost - FROM cost_element as ce JOIN - (SELECT vl.ce - FROM - (SELECT * FROM variable - WHERE user_input = 1) as va - JOIN variable_links as vl - on va.var_name = vl.variable) as ce_affected - on ce.cost_element = ce_affected.ce""") - self.print_table(c) - return None - - def extract_affected_cost_elements(self,c): - """Extracts affected cost elements from cost element table and groups them by changed variables. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Extracting affected cost elements '.center(100,'=')) - print('\n') - c.execute(""" SELECT vl.variable, group_concat(vl.ce) - FROM - (SELECT * FROM variable - WHERE user_input = 1) as va - JOIN variable_links as vl - on va.var_name = vl.variable - GROUP BY vl.variable""") - results = c.fetchall() - for row in results: - print('variable "{}" affects cost element(s):'.format(row[0])) - print('{}\n'.format(textwrap.fill(row[1], 100))) - return None - - def extract_user_changed_variables(self,c): - """Extracts user changed variables from variable table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print('Extracting user changed variables'.center(100,'=')) - c.execute("""SELECT var_name,var_description, var_value, var_unit - FROM `accert_db`.`variable` - WHERE user_input = 1 - ORDER BY var_name;""") - self.print_table(c,format_col=[3]) - return None - - def extract_changed_cost_elements(self,c): - """Extracts changed cost elements from cost element table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print('Extracting changed cost elements'.center(100,'=')) - c.execute("""SELECT cost_element, cost_2017 - FROM `accert_db`.`cost_element` - WHERE updated != 0 - ORDER BY account, cost_element;""") - self.print_table(c,format_col=[2]) - return None - - def extract_user_changed_abr_variables(self,c): - """Extracts user changed abr variables from abr variable table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print('Extracting user changed variables'.center(100,'=')) - c.execute("""SELECT var_name, var_description, var_value, var_unit - FROM `accert_db`.`abr_variable` - WHERE user_input = 1 - ORDER BY var_name;""") - self.print_table(c,format_col=[3]) - return None - - def extract_affected_abr_cost_elements(self,c): - """Extracts the affected abr cost elements from the abr cost element table group by changed variables. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - print(' Extracting affected cost elements '.center(100,'=')) - print('\n') - c.execute(""" SELECT vl.variable, group_concat(vl.ce) - FROM - (SELECT * FROM abr_variable - WHERE user_input = 1) as va - JOIN abr_variable_links as vl - on va.var_name = vl.variable - GROUP BY vl.variable""") - results = c.fetchall() - for row in results: - print('variable "{}" affects cost element(s):'.format(row[0])) - print('{}\n'.format(textwrap.fill(row[1], 100))) - return None - - def print_updated_abr_cost_elements(self,c): - """Prints the output updated abr cost elements table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - """ - c.execute("""SELECT ind, - cost_element, - cost_2017, - sup_cost_ele, - account, - updated - FROM abr_cost_element - WHERE updated = 1""") - self.print_table(c) - return None - - def print_leveled_abr_accounts(self, c, abr_fac,abr_lab,abr_mat,all=False, - cost_unit='dollar',level=3): - """Prints the output leveled abr accounts table. - - Parameters - ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - abr_fac : float - Abr_fac is the ABR-1000 factor for factory cost. - abr_lab : float - Abr_lab is the ABR-1000 factor for labor cost. - abr_mat : float - Abr_mat is the ABR-1000 factor for material cost. - all : bool, optional - All is the flag to print all accounts or not. (By default False, or not) - cost_unit : str, optional - Cost_unit is the cost unit. (By default 'dollar') - level : int, optional - Level is the level of the account. (By default 3) - """ - if all: - c.execute("""SELECT abr_account.level, - rankedcoa.COA as code_of_account, - abr_account.account_description, - sorted_ce.fac_cost, - sorted_ce.lab_cost, - sorted_ce.mat_cost, - abr_account.total_cost, - abr_account.unit, - abr_account.review_status - FROM abr_account - JOIN - (SELECT node.code_of_account, - CONCAT( REPEAT(' ', COUNT(parent.code_of_account) - 1), node.code_of_account) AS COA - FROM abr_account AS node, - abr_account AS parent - WHERE node.lft BETWEEN parent.lft AND parent.rgt - GROUP BY node.code_of_account) as rankedcoa - ON abr_account.code_of_account=rankedcoa.code_of_account - JOIN (SELECT splt_act.code_of_account, - cef.cost_2017 as fac_cost, - cel.cost_2017 as lab_cost, - cem.cost_2017 as mat_cost - FROM - (SELECT code_of_account,total_cost,supaccount, - SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ',', 1), ',', -1) as fac_name, - SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ',', 2), ',', -1) as lab_name, - SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ',', 3), ',', -1) as mat_name - FROM accert_db.abr_account) as splt_act - LEFT JOIN abr_cost_element as cef - ON cef.cost_element = splt_act.fac_name - LEFT JOIN abr_cost_element as cel - ON cel.cost_element = splt_act.lab_name - LEFT JOIN abr_cost_element as cem - ON cem.cost_element = splt_act.mat_name) as sorted_ce - ON sorted_ce.code_of_account = abr_account.code_of_account - WHERE abr_account.level <= 3 - ORDER BY abr_account.lft;""") - align_key=["code_of_account", "account_description", "fac_cost", "lab_cost", "mat_cost", "total_cost"] - align=[ "l", "l", "r", "r", "r", "r"] - else: - c.execute("""SELECT rankedcoa.code_of_account, - abr_account.account_description, - abr_account.total_cost, - abr_account.unit, - abr_account.level, - abr_account.review_status - FROM abr_account - JOIN - ( - SELECT node.code_of_account AS COA, CONCAT( REPEAT(' ', COUNT(parent.code_of_account) - 1), node.code_of_account) AS code_of_account - FROM abr_account AS node, - abr_account AS parent - WHERE node.lft BETWEEN parent.lft AND parent.rgt - GROUP BY node.code_of_account) as rankedcoa - ON abr_account.code_of_account=rankedcoa.COA - WHERE abr_account.level <= %(u_i_level)s - ORDER BY abr_account.lft;""",{'u_i_level': str(level)}) - align_key=["code_of_account", "account_description", "total_cost"] - align=[ "l", "l", "r"] - - if cost_unit=='million': - results = c.fetchall() - columns = c.description - # print() - # field_names = [i[0] for i in c.description] - field_names = [i[0] for i in columns] - x = PrettyTable(field_names) - row0=list(results[0]) - if all: - row0[3]="{:,.2f}".format(abr_fac/1000000) - row0[4]="{:,.2f}".format(abr_lab/1000000) - row0[5]="{:,.2f}".format(abr_mat/1000000) - row0[6]="{:,.2f}".format(row0[6]/1000000) - row0[7]="million" - else: - row0[2] = '{:,.2f}'.format(row0[2]/1000000) - row0[3] = 'million' - x.add_row(row0) - for row in results[1:]: - row = list(row) - # NOTE the index of the row need to have a function - # just place this as a temporary solution - if all: - row[3:7] = list(map(lambda x: '{:,.2f}'.format(x/1000000), row[3:7])) - row[7] = 'million' - else: - row[2] = '{:,.2f}'.format(row[2]/1000000) - row[3] = 'million' - x.add_row(row) - if align_key: - for i,k in enumerate(align_key): - x.align[k] = align[i] - print (x) - else: - self.print_table(c, align_key, align) - return None \ No newline at end of file diff --git a/docs/source/reference/database.rst b/docs/source/reference/database.rst deleted file mode 100644 index ee67222..0000000 --- a/docs/source/reference/database.rst +++ /dev/null @@ -1,51 +0,0 @@ - - -Database Stored Procedures -========================== - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - - database/cal_direct_cost_elements - database/extract_affected_accounts - database/extract_affected_cost_elements - database/extract_affected_cost_elements_w_dis - database/extract_changed_cost_elements - database/extract_super_val - database/extract_total_cost_on_name - database/extract_user_changed_variables - database/extract_variable_info_on_name - database/get_current_COAs - database/get_var_value_by_name - database/insert_new_COA - database/insert_new_COA_gncoa - database/print_account_all - database/print_account_simple - database/print_leveled_accounts_all - database/print_leveled_accounts_gn - database/print_leveled_accounts_gn_all - database/print_leveled_accounts_simple - database/print_table - database/print_updated_cost_elements - database/print_user_request_parameter - database/remove_specific_row - database/roll_up_account_table_by_gn_level - database/roll_up_account_table_by_level - database/roll_up_cost_elements_by_level - database/roll_up_lmt_account_2C - database/roll_up_lmt_direct_cost - database/sum_cost_elements_2C_fac - database/sum_cost_elements_2C_lab - database/sum_cost_elements_2C_mat - database/sum_up_lmt_account_2C - database/sum_up_lmt_direct_cost - database/sup_coa_level - database/update_account_before_insert - database/update_account_table_by_cost_elements - database/update_cost_element_on_name - database/update_new_accounts - database/update_new_cost_elements - database/update_super_variable - database/update_total_cost_on_name - database/update_variable_info_on_name diff --git a/docs/source/reference/main.rst b/docs/source/reference/main.rst deleted file mode 100644 index 1961f55..0000000 --- a/docs/source/reference/main.rst +++ /dev/null @@ -1,110 +0,0 @@ - - -Accert Code Reference -========================== -This section provides detailed information on the Accert codebase. The Accert codebase is divided -into two main sections: the main Accert class and utility functions. The main Accert class contains -the main functions and methods for the Accert model, while the utility functions contain helper -functions for the Accert model. - -.. toctree:: - :maxdepth: 1 - :caption: Contents: - -Accert Class --------------------- - -.. autosummary:: - :toctree: main/ - :template: function.rst - - - Main.Accert.__init__ - Main.Accert.setup_table_names - Main.Accert.load_obj - Main.Accert.get_current_COAs - Main.Accert.update_account_before_insert - Main.Accert.insert_new_COA - Main.Accert.insert_COA - Main.Accert.extract_variable_info_on_name - Main.Accert.extract_super_val - Main.Accert.update_input_variable - Main.Accert.update_variable_info_on_name - Main.Accert.update_super_variable - Main.Accert.extract_total_cost_on_name - Main.Accert.cal_LCOE - Main.Accert.check_unit_conversion - Main.Accert.convert_unit - Main.Accert.convert_unit_scale - Main.Accert.update_total_cost - Main.Accert.update_total_cost_on_name - Main.Accert.get_var_value_by_name - Main.Accert.run_pre_alg - Main.Accert.update_account_value - Main.Accert.update_cost_element_on_name - Main.Accert.update_new_cost_elements - Main.Accert.update_new_accounts - Main.Accert.update_account_table_by_cost_elements - Main.Accert.roll_up_cost_elements - Main.Accert.roll_up_cost_elements_by_level - Main.Accert.roll_up_account_table - Main.Accert.roll_up_account_table_by_level - Main.Accert.roll_up_account_table_GNCOA - Main.Accert.sum_cost_elements_2C - Main.Accert.fetch_sum_and_update - Main.Accert.roll_up_lmt_account_2C - Main.Accert.roll_up_lmt_direct_cost - Main.Accert.cal_direct_cost_elements - Main.Accert.roll_up_lmt_account_table - Main.Accert.print_logo - Main.Accert.execute_accert - Main.Accert.process_reference_model - Main.Accert.process_power_inputs - Main.Accert.process_variables - Main.Accert.process_super_values - Main.Accert.process_COA - Main.Accert.process_level_accounts - Main.Accert.process_ce - Main.Accert.process_var - Main.Accert.process_alg - Main.Accert.check_and_process_total_cost - Main.Accert.check_total_cost_changed - Main.Accert.check_total_cost_accounts - Main.Accert.process_total_cost - Main.Accert.process_total_cost_accounts - Main.Accert.exit_with_error - Main.Accert.finalize_process - Main.Accert.generate_results - Main.Accert._generate_common_results - Main.Accert._common_cost_processing - Main.Accert._print_results - Main.Accert._pwr12be_processing - Main.Accert._no_cost_element_processing - Main.Accert.generate_results_table_with_cost_elements - Main.Accert._generate_excel - Main.Accert.generate_results_table - - -Accert Utility Functions --------------------------- -.. autosummary:: - :toctree: utility/ - :template: function.rst - - utility_accert.Utility_methods.__init__ - utility_accert.Utility_methods.setup_table_names - utility_accert.Utility_methods.print_table - utility_accert.Utility_methods.print_account - utility_accert.Utility_methods.print_leveled_accounts - utility_accert.Utility_methods.print_leveled_accounts_gncoa - utility_accert.Utility_methods.print_algorithm - utility_accert.Utility_methods.print_cost_element - utility_accert.Utility_methods.print_facility - utility_accert.Utility_methods.print_escalation - utility_accert.Utility_methods.print_variable - utility_accert.Utility_methods.print_user_request_parameter - utility_accert.Utility_methods.print_updated_cost_elements - utility_accert.Utility_methods.extract_affected_cost_elements - utility_accert.Utility_methods.extract_affected_accounts - utility_accert.Utility_methods.extract_user_changed_variables - utility_accert.Utility_methods.extract_changed_cost_elements diff --git a/docs/source/reference/table.rst b/docs/source/reference/table.rst index cd4bd9f..b92969d 100644 --- a/docs/source/reference/table.rst +++ b/docs/source/reference/table.rst @@ -3,6 +3,15 @@ Table References This section contains reference tables used in ACCERT. +.. note:: + + ACCERT reference tables use different base-dollar years by model. PWR12-BE, + ABR1000, and LFR reference costs are in 2017 dollars; AP1000, Heatpipe, and + LPSR reference costs are in 2018 dollars; Fusion and Stellarator reference + costs are in 2015 dollars. Runtime account-result tables are displayed in + 2024 dollars using CPI-U escalation, while output CSV files retain the + reference cost column and add a ``*_2024`` escalated column. + .. toctree:: :maxdepth: 1 diff --git a/docs/source/reference/table/ABR1000tables.rst b/docs/source/reference/table/ABR1000tables.rst index ac86164..3e3af97 100644 --- a/docs/source/reference/table/ABR1000tables.rst +++ b/docs/source/reference/table/ABR1000tables.rst @@ -32,7 +32,7 @@ The table includes the following columns: .. csv-table:: [ABR1000 Account Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/ABR1000_account.csv + :file: ../../../../tutorial/accert/ref_tables/ABR1000_account.csv :widths: auto :class: normal-table @@ -40,7 +40,7 @@ ABR1000 Cost Element Table -------------------------- This table contains the cost element information for the ABR1000 model. Each entitiy in the account table is divided into 3 main cost categories: Factory Equipment Costs, Labor Costs, and Material Costs. -The cost element table is associated with a unique identifier, which is used to track and categorize costs. The table is connected to the account table through the `account` column, which links each cost element to a specific account. It is also connected to the variable table through the `variables` column, and the algorithm table through the `alg_name` column. +The cost element table is associated with a unique identifier, which is used to track and categorize costs. The table is connected to the account table through the `account` column, which links each cost element to a specific account. It is also connected to the variable table through the `variables` column, and the Python algorithm registry through the `alg_name` column. The table includes the following columns: @@ -52,18 +52,18 @@ The table includes the following columns: - **fun_unit**: algorithm function output unit - **variables**: variables used in the algorithm - **account**: account associated with the cost element - - **algno**: algorithm number in the algorithm table + - **algno**: legacy algorithm identifier - **updated**: updated status of the cost element, 0 for unchanged and 1 for updated, note that the default value should always be 0 .. csv-table:: [ABR1000 Cost Element Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/ABR1000_cost_element.csv + :file: ../../../../tutorial/accert/ref_tables/ABR1000_cost_element.csv :widths: auto :class: normal-table ABR1000 Variable Table ---------------------- -This table contains the variable information for the ABR1000 model. All variables are needed to be calculated by the algorithm. Some variables are connected to the algorithm table through the `var_alg` column, which links each variable to a specific algorithm. The table is also connected to itself through the `v_linked` and `var_needed` column, which links each variable to a superior variable and the variables needed to calculate it. +This table contains the variable information for the ABR1000 model. All variables are needed to be calculated by the algorithm. Some variables are connected to the Python algorithm registry through the `var_alg` column, which links each variable to a specific algorithm. The table is also connected to itself through the `v_linked` and `var_needed` column, which links each variable to a superior variable and the variables needed to calculate it. The table includes the following columns: @@ -79,6 +79,5 @@ The table includes the following columns: .. csv-table:: [ABR1000 Variable Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/ABR1000_variable.csv + :file: ../../../../tutorial/accert/ref_tables/ABR1000_variable.csv :class: wide-table - diff --git a/docs/source/reference/table/Fusiontables.rst b/docs/source/reference/table/Fusiontables.rst index 6c33fbc..8f71d6e 100644 --- a/docs/source/reference/table/Fusiontables.rst +++ b/docs/source/reference/table/Fusiontables.rst @@ -26,7 +26,7 @@ The table includes the following columns: .. csv-table:: Fusion Account Table :header-rows: 1 - :file: ../../../../tutorial/ref_tables/fusion_acc.csv + :file: ../../../../tutorial/accert/ref_tables/fusion_acc.csv :widths: auto :class: wide-table @@ -45,11 +45,8 @@ The table includes the following columns: - **alg_formulation**: Formulation of the algorithm - **alg_units**: Unit of the algorithm output -.. csv-table:: Fusion Algorithm Table - :header-rows: 1 - :file: ../../../../tutorial/ref_tables/fusion_alg.csv - :widths: auto - :class: wide-table +.. literalinclude:: ../../../../tutorial/accert/ref_tables/fusion_alg.csv + :language: text Fusion Variable Table --------------------- @@ -70,6 +67,6 @@ The table includes the following columns: .. csv-table:: Fusion Variable Table :header-rows: 1 - :file: ../../../../tutorial/ref_tables/fusion_var.csv + :file: ../../../../tutorial/accert/ref_tables/fusion_var.csv :widths: auto :class: wide-table diff --git a/docs/source/reference/table/Heatpipetables.rst b/docs/source/reference/table/Heatpipetables.rst index b496054..9081135 100644 --- a/docs/source/reference/table/Heatpipetables.rst +++ b/docs/source/reference/table/Heatpipetables.rst @@ -27,37 +27,37 @@ The table includes the following columns: .. csv-table:: [Heatpipe Account Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/heatpipe_account.csv + :file: ../../../../tutorial/accert/ref_tables/heatpipe_account.csv :widths: auto :class: normal-table Heatpipe Cost Element Table ---------------------------- -This table contains the cost element information for the Heat pipe microreactor model. Most entities in the account table are divided into 3 main cost categories: Factory Equipment Costs, Labor Costs, and Material Costs. Some accounts might only have one or two of these categories. The cost element table is associated with a unique identifier, which is used to track and categorize costs. The table is connected to the account table through the `account` column, which links each cost element to a specific account. It is also connected to the variable table through the `variables` column, and the algorithm table through the `alg_name` column. +This table contains the cost element information for the Heat pipe microreactor model. Most entities in the account table are divided into 3 main cost categories: Factory Equipment Costs, Labor Costs, and Material Costs. Some accounts might only have one or two of these categories. The cost element table is associated with a unique identifier, which is used to track and categorize costs. The table is connected to the account table through the `account` column, which links each cost element to a specific account. It is also connected to the variable table through the `variables` column, and the Python algorithm registry through the `alg_name` column. The table includes the following columns: - **ind**: unique identifier for each cost element - **cost_element**: cost element name - - **cost_2017**: cost of the element in 2017 dollars + - **cost_2017**: cost of the element in 2018 dollars - **sup_cost_ele**: superior cost element - **alg_name**: algorithm name - **fun_unit**: algorithm function output unit - **variables**: variables used in the algorithm - **account**: account associated with the cost element - - **algno**: algorithm number in the algorithm table + - **algno**: legacy algorithm identifier - **updated**: updated status of the cost element, 0 for unchanged and 1 for updated, note that the default value should always be 0 .. csv-table:: [Heatpipe Cost Element Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/heatpipe_cost_element.csv + :file: ../../../../tutorial/accert/ref_tables/heatpipe_cost_element.csv :widths: auto :class: normal-table Heatpipe Variable Table -------------------------- -This table contains the variable information for the Heat pipe microreactor model. All variables are needed to calculate the cost of the cost element or a super variable. Some variables are connected to the algorithm table through the `var_alg` column, which links each variable to a specific algorithm. The table is also connected to itself through the `v_linked` and `var_needed` column, which links each variable to a superior variable and the variables needed to calculate it. +This table contains the variable information for the Heat pipe microreactor model. All variables are needed to calculate the cost of the cost element or a super variable. Some variables are connected to the Python algorithm registry through the ``var_alg`` column, which links each variable to a specific algorithm. The table is also connected to itself through the ``v_linked`` and ``var_needed`` column, which links each variable to a superior variable and the variables needed to calculate it. The table includes the following columns: @@ -71,8 +71,5 @@ The table includes the following columns: - **v_linked**: superior variable if any - **user_input**: user input status of the variable, 0 for not user input and 1 for user input, note that the default value should always be 0 -.. csv-table:: [Heatpipe Variable Table] - :header-rows: 1 - :file: ../../../../tutorial/ref_tables/heatpipe_variable.csv - :widths: auto - :class: wide-table +.. literalinclude:: ../../../../tutorial/accert/ref_tables/heatpipe_variable.csv + :language: text diff --git a/docs/source/reference/table/PWR12tables.rst b/docs/source/reference/table/PWR12tables.rst index 64ba7df..b4f7a2c 100644 --- a/docs/source/reference/table/PWR12tables.rst +++ b/docs/source/reference/table/PWR12tables.rst @@ -27,7 +27,7 @@ The table includes the following columns: .. csv-table:: [PWR12-BE Account Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/PWR12-BE_accounts.csv + :file: ../../../../tutorial/accert/ref_tables/PWR12-BE_accounts.csv :widths: auto :class: normal-table @@ -35,7 +35,7 @@ PWR12-BE Cost Element Table ---------------------------- This table contains the cost element information for the PWR12-BE model. Each entitiy in the account table is divided into 3 main cost categories: Factory Equipment Costs, Labor Costs, and Material Costs. -The cost element table is associated with a unique identifier, which is used to track and categorize costs. The table is connected to the account table through the `account` column, which links each cost element to a specific account. It is also connected to the variable table through the `variables` column, and the algorithm table through the `alg_name` column. +The cost element table is associated with a unique identifier, which is used to track and categorize costs. The table is connected to the account table through the `account` column, which links each cost element to a specific account. It is also connected to the variable table through the `variables` column, and the Python algorithm registry through the `alg_name` column. The table includes the following columns: @@ -47,18 +47,18 @@ The table includes the following columns: - **fun_unit**: algorithm function output unit - **variables**: variables used in the algorithm - **account**: account associated with the cost element - - **algno**: algorithm number in the algorithm table + - **algno**: legacy algorithm identifier - **updated**: updated status of the cost element, 0 for unchanged and 1 for updated, note that the default value should always be 0 .. csv-table:: [PWR12-BE Cost Element Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/PWR12-BE_cost_element.csv + :file: ../../../../tutorial/accert/ref_tables/PWR12-BE_cost_element.csv :widths: auto :class: wide-table PWR12-BE Variable Table -------------------------- -This table contains the variable information for the PWR12-BE model. Each variable. All variables are needed to calculate the cost of the PWR12-BE model, either directly or indirectly. Some variables are connected to the algorithm table through the `var_alg` column, which links each variable to a specific algorithm. The table is also connected to itself through the `v_linked` and `var_needed` column, which links each variable to a superior variable and the variables needed to calculate it. +This table contains the variable information for the PWR12-BE model. Each variable. All variables are needed to calculate the cost of the PWR12-BE model, either directly or indirectly. Some variables are connected to the Python algorithm registry through the `var_alg` column, which links each variable to a specific algorithm. The table is also connected to itself through the `v_linked` and `var_needed` column, which links each variable to a superior variable and the variables needed to calculate it. The table includes the following columns: @@ -74,6 +74,6 @@ The table includes the following columns: .. csv-table:: [PWR12-BE Variable Table] :header-rows: 1 - :file: ../../../../tutorial/ref_tables/PWR12-BE_variable.csv + :file: ../../../../tutorial/accert/ref_tables/PWR12-BE_variable.csv :widths: auto :class: wide-table diff --git a/docs/source/user/build_your_own.rst b/docs/source/user/build_your_own.rst index 406d1b5..b2c7258 100644 --- a/docs/source/user/build_your_own.rst +++ b/docs/source/user/build_your_own.rst @@ -1,12 +1,14 @@ Build Your Own Reference Model ============================== -ACCERT now accept user-defined model with user defined code of account structure. +ACCERT accepts user-defined models with a custom code-of-account structure. Build your own account table ----------------------------- -Create a raw_account.csv file, that table should includes with the following columns: ind, code_of_account, account_description, total_cost, level, supaccount, alg_name, fun_unit, variables. +Create a ``raw_account.csv`` file with the following columns: ``ind``, +``code_of_account``, ``account_description``, ``total_cost``, ``level``, +``supaccount``, ``alg_name``, ``fun_unit``, and ``variables``. - **ind**: [REQUIRED] Unique identifier for each account - **code_of_account**: [REQUIRED] Code of account @@ -25,7 +27,11 @@ Create a raw_account.csv file, that table should includes with the following col :widths: auto :class: normal-table -Make sure that all the hierarchy accounts can be connected from the top level to the bottom level. And for each account, the supaccount should be the code_of_account of its parent account. If any algorithm is applied to the account, the alg_name should be specified. The fun_unit is the unit of the algorithm function. The variables are the variables that are used in the algorithm. Total cost is the in the unit of dollar. +Make sure every account is connected from the top level to the bottom level. +For each account, ``supaccount`` should be the ``code_of_account`` of its parent +account. If an algorithm is applied to the account, specify ``alg_name``. +``fun_unit`` is the output unit of the algorithm function, and ``variables`` +lists the variables used by the algorithm. ``total_cost`` is in dollars. Run the following commands from the repository root to generate the user-defined account table. @@ -35,7 +41,11 @@ user-defined account table. cd tutorial/accert/user_defined python ../../../src/scripts/gen_user_defined.py -The script will generate a `user_defined_account.csv` file in the same directory, and also generate a `raw_variable_automated_generated.csv` file. The `user_defined_account.csv` file will be used in the next step to generate the user-defined algorithm table. The `raw_variable_automated_generated.csv` file will be filled in by the user to provide the values of the variables used in the algorithm. +The script generates ``user_defined_account.csv`` and +``raw_variable_automated_generated.csv`` in the same directory. +``user_defined_account.csv`` is used in the next step to generate the +user-defined algorithm table. Fill in ``raw_variable_automated_generated.csv`` +with the values of the variables used in the algorithm. .. csv-table:: [Generated account Table with added review_status and prn columns] :header-rows: 1 @@ -43,7 +53,7 @@ The script will generate a `user_defined_account.csv` file in the same directory :widths: auto :class: normal-table -The `raw_variable_automated_generated.csv` file will be filled in by the user to provide the values of the variables used in the algorithm, the following columns are required: +The following columns are required in the filled variable file: - **var_value**: value of the variable - **var_unit**: unit of the variable @@ -70,18 +80,19 @@ If some variables are calculated from other variables, the user can fill in the Fill in your own algorithm --------------------------- -Save the filled in variable file as `raw_variable.csv`, then run the command +Save the filled variable file as ``raw_variable.csv``, then run the command again from ``tutorial/accert/user_defined`` to generate the algorithm table, -database SQL file, and algorithm Python file. +SQLite load script, and algorithm Python file. .. code-block:: bash python ../../../src/scripts/gen_user_defined.py -The script will generate 3 files: -- `user_defined_algorithm.csv` will a reference table. -- `user_defined_algorithm.sql` will be used to create the database table. -- `user_defined_func.py` will be used to calculate the total cost of each account or variable. +The script generates three files: + +- ``user_defined_algorithm.csv`` is the algorithm reference table. +- ``user_defined.sql`` creates and loads the user-defined SQLite tables. +- ``user_defined_func.py`` calculates the total cost of each account or variable. .. csv-table:: [Generated algorithm Table] :header-rows: 1 @@ -89,15 +100,21 @@ The script will generate 3 files: :widths: auto :class: normal-table -This table will be used to create the database table. the column `alg_for` is the account or variable that the algorithm is applied to, `c` means the algorithm is applied to the account, `v` means the algorithm is applied to the variable. The `alg_name` is the name of the algorithm. The `alg_unit` is the unit of the algorithm function output. +This table is used to create the database table. The ``alg_for`` column +identifies whether the algorithm is applied to an account or a variable: +``c`` means account, and ``v`` means variable. ``alg_name`` is the name of the +algorithm. ``alg_unit`` is the output unit of the algorithm function. -And the `user_defined_func.py` file will be used to calculate the total cost of each account. User can modify the `user_defined_func.py` file to implement the algorithm. Each algorithm function will have the notes to explain the algorithm with the needed variables. +The ``user_defined_func.py`` file calculates the total cost of each account. +Modify ``user_defined_func.py`` to implement the algorithms. Each generated +algorithm function includes notes explaining the variables it needs. .. include:: ../../../tutorial/accert/user_defined/user_defined_func_generated.py :literal: -After filled in the algorithm function, it should be saved as `user_defined_func.py` in the same directory. Here is an example of the filled in algorithm function. +After filling in the algorithm functions, save them as ``user_defined_func.py`` +in the same directory. Here is an example of a filled algorithm function. .. include:: ../../../tutorial/accert/user_defined/user_defined_func.py :literal: @@ -106,33 +123,22 @@ After filled in the algorithm function, it should be saved as `user_defined_func Create the database table ------------------------- -In the same folder a `user_defined_algorithm.sql` file will be generated. Run the following command to implement all the tables in the database. +In the same folder, ``user_defined.sql`` is generated. Run the following command +to create and load the user-defined tables in the SQLite database. .. code-block:: bash python ../../../src/scripts/run_sql.py -The script will create the database table and insert the data from the `user_defined_account.csv`, `user_defined_variable.csv` and `user_defined_algorithm.csv` files into the database. +The script creates the database tables and inserts the data from +``user_defined_account.csv``, ``user_defined_variable.csv``, and +``user_defined_algorithm.csv``. -You can also run mysql command and source the `user_defined_algorithm.sql` file to create the database table. +To apply the SQL to a different SQLite database file, pass ``--db``: .. code-block:: bash - $ mysql -h localhost -u root -p - Enter password: - Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 2475 - Server version: 8.0.27 MySQL Community Server - GPL - - Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. - - Oracle is a registered trademark of Oracle Corporation and/or its - affiliates. Other names may be trademarks of their respective - owners. - - Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. - - mysql>source user_defined_algorithm.sql + python ../../../src/scripts/run_sql.py user_defined.sql --db /path/to/accertdb.sqlite Prepare the input file diff --git a/docs/source/user/crf.rst b/docs/source/user/crf.rst index 834f4dd..0e4068e 100644 --- a/docs/source/user/crf.rst +++ b/docs/source/user/crf.rst @@ -20,6 +20,7 @@ cost-reduction levers. "f_22": 250_000_000, "f_2321": 150_000_000, "land_cost_per_acre_0": 22_000, + "construction_duration_0": 76, "startup_0": 28, "staggering_ratio": 0.75, } @@ -93,13 +94,15 @@ Configuration * - ``reactor_type`` - Built-in Cost Reduction Framework baseline: ``AP1000``, ``SFR``, or ``HTGR``. * - ``baseline_csv`` - - Optional CSV path used instead of the built-in reactor baseline. This is useful when passing an International Adjustment Tool output into CRF. If the CSV contains International Adjustment Tool (IAT) adjusted columns, CRF uses those adjusted costs as the baseline and leaves the packaged baseline in ``src/crf/data`` unchanged. + - Optional CSV path used instead of the built-in reactor baseline. This is useful when passing an International Adjustment Tool output or an ACCERT-derived baseline into CRF. If the CSV contains International Adjustment Tool (IAT) adjusted columns, CRF uses those adjusted costs as the baseline and leaves the packaged baseline in ``src/crf/data`` unchanged. * - ``f_22`` - Reactor building cost adjustment. * - ``f_2321`` - Turbine generator cost adjustment. * - ``land_cost_per_acre_0`` - Baseline land cost per acre. + * - ``construction_duration_0`` + - Optional reference construction duration in months. If omitted, CRF uses the built-in duration for the selected reactor type; the current AP1000 base case uses ``76`` months. * - ``startup_0`` - First-unit startup duration in months. * - ``staggering_ratio`` @@ -146,6 +149,72 @@ inputs use ``0`` or ``1`` and are converted internally to model labels. * - ``rb_grade_code`` - ``0`` for nuclear-grade reactor building, ``1`` for non-nuclear-grade reactor building. +Using ACCERT Output as a Baseline +--------------------------------- + +ACCERT updated-account CSV files, such as ``ap1000_upd_acc_*.csv``, contain +account totals but not the CRF category split or labor-hour inputs. Use +``accert_output_to_crf_baseline`` to convert that ACCERT output into the same +CSV shape as ``AP1000_baseline.csv``. The converter maps ACCERT accounts into +the CRF/IAT account structure, uses the selected CRF base case to allocate +factory, material, and labor cost shares, and distributes a user-provided total +20s labor-hour value using the selected CRF base case labor-hour proportions. + +The AP1000 mapping is: + +.. list-table:: + :header-rows: 1 + + * - ACCERT output account + - CRF/IAT input account + * - ``211`` + - ``211`` + * - ``212`` + - ``212`` + * - ``213`` + - ``213`` + * - ``214`` + - ``216`` + * - ``215`` + - ``214`` + * - ``216`` + - ``215`` + * - ``217`` + - ``214`` + * - ``218A`` through ``218V`` + - ``214`` + * - ``22`` + - ``22`` + * - ``23`` + - ``232.1`` + * - ``24`` + - ``24`` + * - ``25`` + - ``26`` + * - ``26`` + - ``233`` + +.. code-block:: python + + from crf import accert_output_to_crf_baseline, run_one_scenario + + converted = accert_output_to_crf_baseline( + "ap1000_upd_acc_20260518_215922.csv", + "ap1000_accert_for_crf_iat.csv", + reactor_type="AP1000", + total_20s_labor_hours=28_902_455.46, + ) + + result = run_one_scenario( + {**config, "baseline_csv": "ap1000_accert_for_crf_iat.csv"}, + levers, + ) + +The same converted CSV can be passed to IAT as ``input_csv`` because it has the +standard ``Account``, ``Title``, ``Total Cost (USD)``, ``Factory Equipment +Cost``, ``Site Labor Hours``, ``Site Labor Cost``, and ``Site Material Cost`` +columns. + Sampling from Excel ------------------- @@ -214,6 +283,26 @@ CSV and then passes that CSV to CRF without modifying ``src/crf/data``: python tutorial/combined/crf_iat_ap1000_china_example.py +The ACCERT-to-CRF/IAT example first runs the AP1000 ACCERT tutorial, converts +the generated ``ap1000_upd_acc_*.csv`` file into a CRF/IAT baseline, then runs +both CRF and IAT from that converted file: + +The AP1000 and LPSR ACCERT direct-cost basis used by this workflow follows +Stewart W.R. and Shirvan K., "Capital cost estimation for advanced nuclear +power plants," *Renewable and Sustainable Energy Reviews*, Nov. 2021, 111880, +https://doi.org/10.1016/j.rser.2021.111880, and the TIMCAT reference +implementation at https://github.com/mit-crpg/TIMCAT. + +.. code-block:: bash + + python tutorial/combined/accert_output_to_crf_iat_example.py + +The same workflow is also available as a Jupyter notebook: + +.. code-block:: bash + + jupyter notebook tutorial/combined/accert_ap1000_iat_crf_workflow.ipynb + To use the local GUI for CRF, IAT, or the connected IAT-then-CRF workflow, run: .. code-block:: bash diff --git a/docs/source/user/gui_combined.rst b/docs/source/user/gui_combined.rst index 025686d..3f23097 100644 --- a/docs/source/user/gui_combined.rst +++ b/docs/source/user/gui_combined.rst @@ -41,9 +41,13 @@ In the ``IAT Inputs`` panel: COA inputs, or ``SMR`` for SMR-style inputs. * Set ``Country`` to the destination country, such as ``China``, ``Korea``, or ``UAE``. -* Set ``Year dollar`` to the cost year, such as ``2024``. -* Set ``ACCERT CSV file`` to the input CSV path. For the packaged AP1000 CRF - baseline, use ``src/crf/data/AP1000_baseline.csv``. +* ``Year dollar`` is shown as a fixed message. The GUI reports the workflow on + a ``2024`` CPI-U basis. +* Set ``ACCERT CSV file`` to the input CSV path. This can be either a + CRF/IAT-ready baseline such as ``src/crf/data/AP1000_baseline.csv`` or a raw + ACCERT updated-account CSV such as ``ap1000_upd_acc_*.csv``. When a raw + ACCERT account CSV is selected, the GUI automatically converts it to the + CRF/IAT baseline format before running IAT. * Set ``Electric output (MWe)`` to the plant electric output used for ``$/kWe`` displays. @@ -60,7 +64,11 @@ In the ``CRF Fixed Inputs`` panel: * Leave ``Optional CRF baseline CSV`` blank for the combined workflow. The GUI automatically passes the IAT output CSV to CRF. * Set fixed project values such as ``f_22``, ``f_2321``, ``Land $/acre``, - ``Startup months``, and ``Staggering ratio``. + ``Startup months``, ``Construction duration months``, ``20s labor hours``, + and ``Staggering ratio``. +* ``Construction duration months`` defaults to ``76`` for AP1000, ``80`` for + SFR, and ``125`` for HTGR. ``20s labor hours`` is an integer input used when + converting a raw ACCERT account CSV into a CRF/IAT baseline. * Keep ``Include lever table in dashboard image`` unchecked for a compact dashboard image, or check it when you want the lever table included in the exported PNG. @@ -90,15 +98,21 @@ Run and Read the Results Click ``Run workflow``. The result area will show: +* A ``Base Case`` section at the top with the original baseline COA table and + factory, material, and labor cost-category columns. * An IAT result table comparing the original U.S. OCC baseline with the - adjusted country OCC result. + adjusted country OCC result, including factory, material, and labor cost + category breakdowns for each displayed COA row. * A CRF result summary with FOAK, NOAK, average OCC, average TCI, construction duration, and reduction percentage metrics. +* A note explaining that the IAT value is the internationally adjusted WE-FOAK + OCC baseline, while CRF recalculates FOAK OCC using the CRF fixed inputs and + first-unit project effects. * Interactive plots for capital cost, reduction levers, construction duration, - cost breakdown, and the dashboard image. + cost breakdown, a results-table tab, and the dashboard image. Hover over bars and chart points to see exact values. Use the result buttons to -download the generated IAT CSV and CRF dashboard PNG. +download the generated IAT CSV, CRF results CSV, and CRF dashboard PNG. Generated Outputs ----------------- @@ -107,6 +121,7 @@ The GUI writes generated files under ``tutorial/gui_outputs``. For the combined workflow, the important outputs are: * The IAT-adjusted CSV, which becomes the CRF baseline for this run. +* The CRF results CSV shown in the GUI results-table tab. * The CRF dashboard PNG. * Any additional CSV or image outputs linked in the result panel. diff --git a/docs/source/user/install.rst b/docs/source/user/install.rst index b37eaee..faba0c3 100644 --- a/docs/source/user/install.rst +++ b/docs/source/user/install.rst @@ -1,608 +1,109 @@ - Installation Guide ================== -This guide provides step-by-step instructions to install ACCERT on **Windows**, **macOS**, and **Linux** systems. Please ensure you have administrative privileges on your device, as some steps require it. - +This guide describes how to install ACCERT on Windows, macOS, and Linux. +ACCERT uses the bundled SQLite database at ``src/accertdb.sqlite``. Prerequisites ------------- -- **Git**: Ensure Git is installed on your system. - - - Download from `Git - Downloads `_ if not already installed. - - Verify installation by typing ``git`` in your terminal; if commands appear, Git is installed. -- **Python Coding Environment**: While not required, using an IDE like Visual Studio Code is recommended. -- **MySQL Community Server**: Required for database functionalities. -- **NEAMS Workbench**: Necessary for integrating ACCERT with the Workbench interface. - -Installation Instructions -------------------------- - -Choose your operating system to proceed with the installation: - -- `Installation on Windows`_ -- `Installation on macOS`_ -- `Installation on Linux`_ - -Installation on Windows ------------------------ - -.. _Installation on Windows: - -For certain aspects of this process, you will need administrative privileges. - -Cloning ACCERT -~~~~~~~~~~~~~~ - -1. **Create a Directory for ACCERT**: - - - Open your file explorer and create a folder where you want to install ACCERT (e.g., ``CODE``). - -2. **Open Git Bash or Terminal**: - - - Navigate to the directory you just created. - -3. **Clone the ACCERT Repository**: - - .. code-block:: shell - - $ cd /path/to/CODE - $ git clone https://github.com/accert-dev/ACCERT.git - $ cd ACCERT - - - Replace ``/path/to/CODE`` with the actual path to your ``CODE`` directory. - -4. **Verify Cloning**: - - - Ensure the ACCERT folder contains files similar to the ACCERT Git repository. - -Install MySQL Community Server -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Download MySQL**: - - - Visit `MySQL Community Server `_ and download the recommended version for Windows. - -2. **Install MySQL**: - - - Follow the installation prompts, selecting the **Developer Default** setup when available. - - .. admonition:: Important - :class: important - - During installation, you will be prompted to create a **root password** for MySQL. **Keep this password secure and accessible**; resetting it can be time-consuming and difficult. - - .. image:: ../_static/password1.png - :width: 600 - :alt: MySQL Password Setup +- **Git**: Install from `Git Downloads `_ if needed. +- **Python**: Python 3.9 or newer is recommended. +- **NEAMS Workbench**: Required for the Workbench interface and SON validation tools. - .. image:: ../_static/password2.png - :width: 600 - :alt: MySQL Configuration +Clone ACCERT +------------ -Install NEAMS Workbench -~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Download NEAMS Workbench**: - - - Go to `NEAMS Workbench Downloads `_. - - Download the `.exe` file for Windows. - -2. **Run the Installer**: - - - Execute the downloaded file and follow the installation instructions. - - **Note**: Your system may flag the installer as unsafe. The file is safe; proceed by selecting the option to keep or run the file. - -3. **Launch NEAMS Workbench**: - - - Open the Workbench application before proceeding to the next steps. - -Setting Up ACCERT -~~~~~~~~~~~~~~~~~ - -1. **Navigate to the `src` Directory**: +1. Create a directory for ACCERT. +2. Open Git Bash, Terminal, or another shell. +3. Clone the repository: .. code-block:: shell - $ cd src - -2. **Edit the `workbench.sh` File**: - - - Open `workbench.sh` in your Python coding application. - - Set the `workbench_path` variable to point to your NEAMS Workbench installation directory. - - For example: - - .. code-block:: shell - - workbench_path="C:/Path/To/Workbench-" - - - Replace `` with the actual version number (e.g., `Workbench-5.3.1`). - - **Ensure there are no spaces in the folder path**, as this may cause issues. - - Save the file. - -3. **Run the Setup Script**: - - - Open a terminal in the `src` directory. - - Execute the setup script: - - .. code-block:: shell - - $ ./setup_accert.sh - - - **Note**: If you encounter issues running the script, ensure that Git Bash or a Unix-compatible terminal is used. - -4. **Copy Executables to ACCERT `bin` Directory**: - - - Manually create a `bin` directory inside your `ACCERT` folder if it doesn't exist. - - Navigate to the `bin` folder inside your NEAMS Workbench installation. - - Copy `sonvalidxml` from the Workbench `bin` folder to the `ACCERT/bin` folder. - -Create and Edit `install.conf` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Create `install.conf`**: - - - In the `src` directory, create a new file named `install.conf`. - -2. **Add the Following Content**: - - .. code-block:: ini - - [INSTALL] - PASSWD = yourpassword - - # NOTE: ALL OTHER information should be set up later - # INSTALL_PATH = /usr/local - # DATADIR = /mysql/data - # INSTALL_PACKAGE = - # EXP_DIR = - - - Replace ``yourpassword`` with your MySQL root password. - - Save the file with the exact name `install.conf`. - - **Ensure file extensions are visible**: - - In File Explorer, go to `View` > `Show` > `File name extensions`. - - Verify that the file is not saved as `install.conf.txt`. - -Install database -~~~~~~~~~~~~~~~~ - -1. **Navigate to ACCERT/src folder**: - - type "cmd" in the address bar of the file explorer and press enter. - - .. code-block:: shell - - $ mysql -h localhost -u root -p - - - Enter your MySQL root password when prompted. - - Run the following command to create the ACCERT database: - - .. code-block:: shell - - mysql> source accertdb.sql - - - Verify that the database has been created by running the following command: - - .. code-block:: shell - - mysql> show databases; - - - You should see `accert_db` in the list of databases. Then exit the MySQL shell by typing: - - .. code-block:: shell - - mysql> \q - - - - - -Installation on macOS ---------------------- - -.. _Installation on macOS: - -For certain aspects of this process, you will need administrative privileges. - -Cloning ACCERT -~~~~~~~~~~~~~~ - -1. **Create a Directory for ACCERT**: - - - Open your file explorer and create a folder where you want to install ACCERT (e.g., ``CODE``). - -2. **Open Git Bash or Terminal**: - - - Navigate to the directory you just created. - -3. **Clone the ACCERT Repository**: - - .. code-block:: shell - - $ cd /path/to/CODE - $ git clone https://github.com/accert-dev/ACCERT.git - $ cd ACCERT - - - Replace ``/path/to/CODE`` with the actual path to your ``CODE`` directory. - -4. **Verify Cloning**: - - - Ensure the ACCERT folder contains files similar to the ACCERT Git repository. - -Install MySQL Community Server -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Download MySQL**: - - - Visit `MySQL Community Server `_ and download the recommended version for macOS. - -2. **Install MySQL**: - - - Follow the installation prompts, selecting the **Developer Default** setup when available. - - Remember to keep your MySQL root password secure. - -Install NEAMS Workbench -~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Download NEAMS Workbench**: - - - Go to `NEAMS Workbench Downloads `_. - - Download the `.dmg` file for macOS. - -2. **Run the Installer**: - - - Open the downloaded `.dmg` file and follow the installation instructions. - - **Note**: Your system may flag the installer as unsafe. The file is safe; proceed accordingly. - -3. **Launch NEAMS Workbench**: - - - Open the Workbench application before proceeding to the next steps. - -Setting Up ACCERT -~~~~~~~~~~~~~~~~~ - -1. **Navigate to the `src` Directory**: - - .. code-block:: shell - - $ cd src - -2. **Edit the `workbench.sh` File**: - - - Open `workbench.sh` in your Python coding application. - - Set the `workbench_path` variable to point to your NEAMS Workbench installation directory: - - .. code-block:: shell - - workbench_path="/Applications/Workbench-.app/Contents" - - - Replace `` with the actual version number (e.g., `Workbench-5.3.1`). - - Save the file. - -3. **Run the Setup Script**: - - - Make the setup script executable: - - .. code-block:: shell - - $ chmod +x setup_accert.sh - - - Execute the setup script: - - .. code-block:: shell - - $ ./setup_accert.sh - -Create and Edit `install.conf` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Create `install.conf`**: - - - In the `src` directory, create a new file named `install.conf`. - -2. **Add the Following Content**: - - .. code-block:: ini - - [INSTALL] - PASSWD = yourpassword - - # NOTE: ALL OTHER information should be set up later - # INSTALL_PATH = /usr/local - # DATADIR = /mysql/data - # INSTALL_PACKAGE = - # EXP_DIR = - - - Replace ``yourpassword`` with your MySQL root password. - - Save the file with the exact name `install.conf`. - - **Ensure file extensions are visible**: - - In File Explorer, go to `View` > `Show` > `File name extensions`. - - Verify that the file is not saved as `install.conf.txt`. - -Install database -~~~~~~~~~~~~~~~~ - -1. ** connect to MySQL**: - .. code-block:: shell - - $ mysql -h localhost -u root -p - - - Enter your MySQL root password when prompted. - - Run the following command to create the ACCERT database: - - .. code-block:: shell - - mysql> source accertdb.sql - - - Verify that the database has been created by running the following command: - - .. code-block:: shell - - mysql> show databases; - - - You should see `accert_db` in the list of databases. Then exit the MySQL shell by typing: - - .. code-block:: shell - - mysql> \q - - - - - -Installation on Linux ---------------------- - -.. _Installation on Linux: - -For certain aspects of this process, you will need administrative privileges. - -Cloning ACCERT -~~~~~~~~~~~~~~ - -1. **Create a Directory for ACCERT**: - - - Open your file explorer and create a folder where you want to install ACCERT (e.g., ``CODE``). - -2. **Open Git Bash or Terminal**: - - - Navigate to the directory you just created. - -3. **Clone the ACCERT Repository**: - - .. code-block:: shell - - $ cd /path/to/CODE - $ git clone https://github.com/accert-dev/ACCERT.git - $ cd ACCERT - - - Replace ``/path/to/CODE`` with the actual path to your ``CODE`` directory. - -4. **Verify Cloning**: - - - Ensure the ACCERT folder contains files similar to the ACCERT Git repository. - -Install MySQL Community Server -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Download and Install MySQL**: - - - Install MySQL using your distribution's package manager, or download it from `MySQL Community Server `_. - - .. code-block:: shell - - # For Debian/Ubuntu - $ sudo apt-get update - $ sudo apt-get install mysql-server - - # For CentOS/RHEL - $ sudo yum install mysql-server - -2. **Secure MySQL Installation**: - - .. code-block:: shell - - $ sudo mysql_secure_installation - - - Set the root password and follow the prompts. + $ cd /path/to/CODE + $ git clone https://github.com/accert-dev/ACCERT.git + $ cd ACCERT Install NEAMS Workbench -~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Download NEAMS Workbench**: - - - Go to `NEAMS Workbench Downloads `_. - - Download the `.tar.gz` file for Linux. - -2. **Extract and Install**: - - .. code-block:: shell - - $ tar -xzvf Workbench-.tar.gz - $ cd Workbench- - -3. **Run the Installer**: - - - Follow any additional installation instructions provided. - -4. **Launch NEAMS Workbench**: - - - Run the Workbench application before proceeding to the next steps. - -Setting Up ACCERT -~~~~~~~~~~~~~~~~~ - -1. **Navigate to the `src` Directory**: - - .. code-block:: shell - - $ cd src - -2. **Edit the `workbench.sh` File**: - - - Open `workbench.sh` in your Python coding application. - - Set the `workbench_path` variable to point to your NEAMS Workbench installation directory: - - .. code-block:: shell - - workbench_path="/path/to/Workbench-" - - - Replace `` with the actual version number. - - Save the file. - -3. **Run the Setup Script**: +----------------------- - - Make the setup script executable: +Download NEAMS Workbench from +`NEAMS Workbench Downloads `_. - .. code-block:: shell +- Windows: download and run the ``.exe`` installer. +- macOS: download and open the ``.dmg`` installer. +- Linux: download and extract the ``.tar.gz`` package, then follow the bundled instructions. - $ chmod +x setup_accert.sh +Launch Workbench once before running the ACCERT setup script. - - Execute the setup script: +Configure Workbench Path +------------------------ - .. code-block:: shell +Edit ``src/workbench.sh`` and set ``workbench_path`` to your Workbench +installation. Examples: - $ ./setup_accert.sh +.. code-block:: shell -Create and Edit `install.conf` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Windows, from Git Bash + workbench_path="C:/Path/To/Workbench-5.3.1" -1. **Create `install.conf`**: + # macOS + workbench_path="/Applications/Workbench-5.3.1.app/Contents" - - In the `src` directory, create a new file named `install.conf`. + # Linux + workbench_path="/path/to/Workbench-5.3.1" -2. **Add the Following Content**: +Run Setup +--------- - .. code-block:: ini +From the ``src`` directory, run: - [INSTALL] - PASSWD = yourpassword +.. code-block:: shell - # NOTE: ALL OTHER information should be set up later - # INSTALL_PATH = /usr/local - # DATADIR = /mysql/data - # INSTALL_PACKAGE = - # EXP_DIR = + $ cd src + $ chmod +x setup_accert.sh + $ ./setup_accert.sh - - Replace ``yourpassword`` with your MySQL root password. - - Save the file with the exact name `install.conf`. +The setup script installs Python requirements, refreshes +``src/accertdb.sqlite`` from ``src/accertdb_sqlite_schema_data.sql``, copies the +Workbench integration file, and creates the local ``bin/sonvalidxml`` link. -Install database -~~~~~~~~~~~~~~~~ +SQLite Database +--------------- -1. ** connect to MySQL**: - .. code-block:: shell +The default database file is: - $ mysql -h localhost -u root -p +.. code-block:: shell - - Enter your MySQL root password when prompted. - - Run the following command to create the ACCERT database: - - .. code-block:: shell + src/accertdb.sqlite - mysql> source accertdb.sql - - - Verify that the database has been created by running the following command: - - .. code-block:: shell +To rebuild it manually, run: - mysql> show databases; +.. code-block:: shell - - You should see `accert_db` in the list of databases. Then exit the MySQL shell by typing: + $ python src/database_install.py - .. code-block:: shell +To use a different database file for a run, set ``ACCERT_SQLITE_DB``: - mysql> \q +.. code-block:: shell + $ ACCERT_SQLITE_DB=/path/to/accertdb.sqlite python src/Main.py tutorial/accert/ABR1000.son Testing the Installation -------------------------- -1. **Navigate to the Test Directory**: - - .. code-block:: shell - - $ cd ../test - -2. **Run Tests Using Pytest**: - - .. code-block:: shell - - $ pytest +------------------------ - - This will run the test suite to verify that ACCERT is installed correctly. +Run the test suite from the repository root: -Configuration with NEAMS Workbench ----------------------------------- +.. code-block:: shell -1. **Open NEAMS Workbench**. - -2. **Add ACCERT Configuration**: - - - Go to `Workbench` > `Configurations` and click `Add`. - - Select `Accert` from the drop-down menu and click `OK`. - -3. **Set Executable Path**: - - - In the configuration settings, set the **Executable** field to the full path of `Main.py` in the `ACCERT/src/` directory. - -4. **Load Grammar**: - - - In the configuration, click `Load Grammar` to load ACCERT's input grammar into Workbench. - -ACCERT Execution ----------------- - -**Through NEAMS Workbench** - - -- Press the `Run` button within the Workbench interface to execute ACCERT with your selected input file. - -**Through Command Line** - - -- Execute ACCERT using Python from the repository root: - - .. code-block:: shell - - $ cd ACCERT - $ python src/Main.py -i tutorial/accert/PWR12-BE.son - - - Replace ``tutorial/accert/PWR12-BE.son`` with your input file, such as - ``tutorial/accert/ABR1000.son`` or another ``.son`` file. + $ pytest test Troubleshooting --------------- -- **Conda Errors**: - - - Ensure that Conda is correctly installed and accessible in your system's PATH. - - Running ``conda install -r requirements.txt`` should be done in the environment where ACCERT will run. - - If you encounter an error like ``bash: ./conda: Is a directory``, ensure you're referencing the correct path to the Conda executable. - -- **Workbench Connection Issues**: - - - If ACCERT cannot connect to Workbench: - - Verify that the `workbench_path` in `workbench.sh` is correct and does not contain spaces. - - Ensure that you have the necessary permissions to execute scripts. - -- **Password Issues**: - - - If you forget your MySQL root password, refer to MySQL's official documentation on how to reset the password. - - It's crucial to keep your password secure and accessible. - -- **File Extensions on Windows**: - - - Ensure that file extensions are visible: - - In File Explorer, go to `View` > `Show` > `File name extensions`. - - Verify that `install.conf` is not mistakenly saved as `install.conf.txt`. - -Additional Resources --------------------- - -- **ACCERT GitHub Repository**: - - `https://github.com/accert-dev/ACCERT `_ -- **NEAMS Workbench Documentation**: - - `NEAMS Workbench User Guide `_ - - - +- If setup cannot find Workbench, check the ``workbench_path`` value in + ``src/workbench.sh``. +- If ``sonvalidxml`` is missing, verify that Workbench has a ``bin`` directory + and rerun ``src/setup_accert.sh``. +- If the SQLite database is missing or stale, rerun + ``python src/database_install.py``. diff --git a/docs/source/user/introduction.rst b/docs/source/user/introduction.rst index 28afca7..04ac3cf 100644 --- a/docs/source/user/introduction.rst +++ b/docs/source/user/introduction.rst @@ -37,6 +37,7 @@ Central to ACCERT is the **Code of Accounts (COA)** system, which offers a stand .. admonition:: Important :class: important + ACCERT now allows cost estimates without cost categories, providing flexibility for users to customize their cost breakdowns. Using ACCERT with NEAMS Workbench @@ -73,4 +74,4 @@ New Features - Redundant tables and columns have been eliminated to streamline the database structure. - Fusion algorithms have been segregated from the main `accert_algorithm.csv` file, reducing clutter and improving code organization. - - Unnecessary stored procedures have been removed, simplifying database operations and improving performance. + - Unnecessary database procedures have been removed, simplifying database operations and improving performance. diff --git a/docs/source/user/output_structure.rst b/docs/source/user/output_structure.rst index 2d49a63..dc3bacb 100644 --- a/docs/source/user/output_structure.rst +++ b/docs/source/user/output_structure.rst @@ -71,6 +71,8 @@ Generating the Results Table The final section of the output presents a comprehensive summary table. This table displays the rolled-up costs, including: +ACCERT prints the account-result table in 2024 million dollars using CPI-U escalation. The underlying reference tables remain in their model-specific base years: 2017 dollars for PWR12-BE, ABR1000, and LFR; 2018 dollars for Heatpipe and LPSR; and 2015 dollars for Fusion and Stellarator. CSV outputs retain the reference-year cost column and add a ``*_2024`` column for the escalated value. + - **Code of Account**: The identifier for each account. - **Account Description**: A brief description of the account (e.g., turbine plant equipment). - **Costs**: The factory, labor, material, and total costs for each account. @@ -616,4 +618,3 @@ output.out :: Successfully created excel file pwr12-be_variable_affected_cost_elements.xlsx Successfully created excel file pwr12-be_updated_cost_element.xlsx Successfully created excel file pwr12-be_updated_account.xlsx - diff --git a/docs/source/user/using_necost.rst b/docs/source/user/using_necost.rst index 9833836..39457df 100644 --- a/docs/source/user/using_necost.rst +++ b/docs/source/user/using_necost.rst @@ -29,7 +29,13 @@ Using NE-COST via Python fuel_costs fuel_inputs - An example input file is provided in the tutorial directory `necost.son`. + Example input files are provided in ``tutorial/necost``: + + * ``EG01.OT01A.son``: once-through PWR UOX reference case. + * ``EG02.OT01B.son``: HTGR LEU once-through case with report comments and a single-island 175 MWe weighting basis. + * ``EG03.OT01C.son`` through ``EG40.MC12.son``: structured examples generated from Appendix A of FCRD-FCO-2013-000196, with normal ``fuel_cycles``, ``reactors``, ``capital_costs``, ``om_costs``, ``fuel_costs``, and ``fuels`` sections. + * ``AP1000.ACCERT.NECost.son``: runs ACCERT first, reads the ACCERT OCC post-process CSV, and uses that OCC as the NEcost capital cost input. + * ``Example.OnceThrough.TwoStageEnrichment.son``: compact legacy syntax example for a single once-through island with two-stage enrichment. 3. Run NECOST @@ -37,9 +43,60 @@ Using NE-COST via Python .. code-block:: shell - $ python necostmain.py -i + $ python src/necostmain.py -i tutorial/necost/EG01.OT01A.son + $ python src/necostmain.py -i tutorial/necost/EG13.ML02.son + $ python src/necostmain.py -i tutorial/necost/EG23.SC05.son + + To run ACCERT and NEcost together: + + .. code-block:: shell + + $ python src/necostmain.py -i tutorial/necost/AP1000.ACCERT.NECost.son + + You can also run the Python workflow driver: + + .. code-block:: shell + + $ python tutorial/necost/accert_necost_workflow.py + + To run the EG23 two-island Python example: + + .. code-block:: shell + + $ python tutorial/necost/eg23_two_island_example.py + + To run the generated EG03-EG40 examples and compare the 5% discount-rate mean LCAE against the report comments: + + .. code-block:: shell + + $ python tutorial/necost/check_report_examples.py The output file 'NECOST_results.csv' will contain the LCAE and other relevant information. + Multi-reactor cases also write ``NECOST_reactor_results.csv`` with the per-reactor details before the weighted cycle result is calculated. + + The report-generated examples keep the report preparer/reviewer, fuel-cycle description, LCAE report values, and multi-island ``energy_fraction`` comments while exposing the inputs through the same structured blocks used by ``EG01`` and ``EG23``. + + In a ``fuel_cycles`` reactor block, ``fleet_capacity`` is the reactor island's electric capacity in MWe. It is calculated from the reactor power block as ``reference_thermal * net_thermal_efficiency / 100 / 1e6`` when the reactor is specified by thermal power, or from ``reference_net_electrical / 1e6`` when the reactor is specified by net electrical power. ``fleet_capacity`` is optional when ``fleet_energy``, ``energy_fraction``, or ``mass_fraction`` is supplied. If ``fleet_capacity`` is supplied together with ``energy_fraction`` or ``mass_fraction``, ACCERT checks that the MWe value is consistent with the reactor power block. + + ``EG13.ML02.son`` follows the report's two-island LCAE weighting. The UOX LWR island uses ``energy_fraction = 0.902`` and the MOX PWR island uses ``energy_fraction = 0.098``. + ``EG23.SC05.son`` follows the report's two-island structure. The driver island uses ``energy_fraction = 0.954`` and the blanket island uses ``energy_fraction = 0.046`` for the weighted LCAE calculation. + +ACCERT to NEcost coupling +------------------------- + +The optional ``accert_coupling`` block lets a NEcost SON file use ACCERT's total OCC as the NEcost ``capital_cost`` input. +The bridge reads ACCERT post-processing metric ``total_OCC`` from ``value_2024_dollar_per_kw`` and writes it into the selected NEcost capital cost item in ``$/kWe``. + +.. code-block:: son + + accert_coupling { + accert_input = "../accert/AP1000.son" + capital_cost_id = "capital_cost" + occ_metric = "total_OCC" + uncertainty_fraction = 0.0 + } + +If ``accert_post_csv`` is provided instead of ``accert_input``, NEcost uses the existing ACCERT post-process CSV without rerunning ACCERT. 4. Analyze the Results @@ -88,7 +145,7 @@ Using NE-COST via NEAMS Workbench - Navigate to `Workbench` > `Configurations`. - Click `Add` and select `Necost` from the list of available configurations. - - Set the **Executable** path to `Main.py` located in the `ACCERT/src/` directory. + - Set the **Executable** path to ``necostmain.py`` located in the ``ACCERT/src/`` directory. - Load the grammar by clicking `Load Grammar`. .. admonition:: Windows Users! @@ -97,7 +154,6 @@ Using NE-COST via NEAMS Workbench 3. **Run Necost** - - Open your input file within the Workbench environment. + - Open one of the ``tutorial/necost/*.son`` input files within the Workbench environment. - Click the `Run` button to execute Necost. - Review the results in `NECOST_results.csv` directly within Workbench. - diff --git a/pyproject.toml b/pyproject.toml index 6b60edd..fdbba8d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,3 +36,8 @@ Homepage = "https://github.com/accert-dev/ACCERT" [tool.setuptools.packages.find] where = ["src"] + +[tool.pytest.ini_options] +filterwarnings = [ + "ignore:datetime\\.datetime\\.utcnow\\(\\) is deprecated and scheduled for removal in a future version:DeprecationWarning:openpyxl\\.packaging\\.core", +] diff --git a/requirements.txt b/requirements.txt index 1b979ca..b8cf399 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -mysql.connector-python==8.0.24 prettytable==3.4.0 configparser openpyxl diff --git a/scripts/generate_necost_report_examples.py b/scripts/generate_necost_report_examples.py new file mode 100644 index 0000000..c36f68b --- /dev/null +++ b/scripts/generate_necost_report_examples.py @@ -0,0 +1,460 @@ +"""Generate structured NEcost EG03-EG40 SON examples from the LCAE report.""" + +from __future__ import annotations + +import re +import unicodedata +from pathlib import Path +from xml.etree import ElementTree as ET +from zipfile import ZipFile + + +PROJECT_ROOT = Path(__file__).resolve().parents[1] +REPORT_DOCX = Path( + "/Users/jia.zhou/Library/CloudStorage/Box-Box/ne-cost/" + "LCAE_calculations_FCRD-FCO-2013-000196_Feb_6_2014.docx" +) +OUTPUT_DIR = PROJECT_ROOT / "tutorial" / "necost" + +NS = {"w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main"} + +WEIGHT_OVERRIDES = { + "EG12": [0.774, 0.226], + "EG13": [0.902, 0.098], + "EG14": [0.706, 0.294], + "EG15": [0.881, 0.119], + "EG16": [0.9256, 0.0744], + "EG17": [0.9049, 0.0951], + "EG18": [0.687, 0.313], + "EG23": [0.954, 0.046], + "EG25": [0.48, 0.52], + "EG27": [0.584, 0.02, 0.396], + "EG28": [0.878, 0.122], + "EG29": [0.611, 0.389], + "EG30": [0.87, 0.13], + "EG31": [0.682, 0.318], + "EG32": [0.6202, 0.3798], + "EG33": [0.772, 0.065, 0.163], + "EG34": [0.757, 0.064, 0.179], + "EG35": [0.847, 0.153], + "EG36": [0.935, 0.065], + "EG37": [0.119, 0.434, 0.067, 0.38], + "EG38": [0.796, 0.059, 0.145], + "EG39": [0.6964, 0.2434, 0.0602], + "EG40": [0.205, 0.795], +} + + +def ascii_clean(text: str) -> str: + text = unicodedata.normalize("NFKD", text) + text = text.encode("ascii", "ignore").decode("ascii") + return re.sub(r"\s+", " ", text).strip() + + +def son_string(text: str) -> str: + return '"' + ascii_clean(text).replace("\\", "\\\\").replace('"', '\\"') + '"' + + +def num(text: str) -> float: + value = ascii_clean(text).replace(",", "") + if value in {"", "-", "NA", "N/A"}: + raise ValueError(f"Blank numeric value: {text!r}") + try: + return float(value) + except ValueError: + match = re.search(r"[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?", value) + if not match: + raise + return float(match.group(0)) + + +def fmt(value: float) -> str: + if abs(value) >= 100000 or (value and abs(value) < 0.001): + return f"{value:.8g}" + return f"{value:.10g}" + + +def doc_items(): + root = ET.fromstring(ZipFile(REPORT_DOCX).read("word/document.xml")) + body = root.find("w:body", NS) + items = [] + for child in body: + if child.tag.endswith("}p"): + text = "".join(t.text or "" for t in child.findall(".//w:t", NS)).strip() + if text: + items.append(("p", ascii_clean(text))) + elif child.tag.endswith("}tbl"): + rows = [] + for tr in child.findall("w:tr", NS): + cells = [] + for tc in tr.findall("w:tc", NS): + parts = [] + for para in tc.findall("w:p", NS): + parts.append("".join(t.text or "" for t in para.findall(".//w:t", NS)).strip()) + cells.append(ascii_clean(" ".join(parts))) + rows.append(cells) + items.append(("tbl", rows)) + return items + + +def section_heads(items): + heads = [] + for idx, (typ, data) in enumerate(items): + if typ != "p": + continue + if re.match(r"^EG\d{2}/", data) and "System Data" not in data and "System Datasheet" not in data: + heads.append((idx, data)) + return heads + + +def option_code(title: str) -> tuple[str, str]: + match = re.match(r"^(EG\d{2})/([A-Z]+\d+)(?:/([A-Z]))?", title) + if not match: + raise ValueError(f"Could not parse title: {title}") + eg = match.group(1) + code = match.group(2) + (match.group(3) or "") + return eg, code + + +def is_input_table(rows) -> bool: + if not rows or len(rows[0]) < 6: + return False + header = " ".join(rows[0]).lower() + return "low" in header and "nominal" in header and "high" in header and "line" in header + + +def is_result_table(rows) -> bool: + return bool(rows and rows[0] and "lcae" in rows[0][0].lower() and "discount" in rows[0][0].lower()) + + +def parse_input_table(rows): + header = [cell.lower() for cell in rows[0]] + line_idx = next(i for i, cell in enumerate(header) if "line" in cell) + desc_idx = next((i for i, cell in enumerate(header) if "variable description" in cell), len(rows[0]) - 1) + entries = [] + for row in rows[1:]: + if line_idx >= len(row) or not row[line_idx].strip(): + continue + line_match = re.search(r"\d+", row[line_idx]) + if not line_match: + continue + entries.append( + { + "line": int(line_match.group(0)), + "low": num(row[0]), + "nominal": num(row[1]), + "high": num(row[2]), + "distribution": int(num(row[3])), + "description": row[desc_idx] if desc_idx < len(row) else "", + } + ) + return entries + + +def parse_result_table(rows): + out = {} + for row in rows[1:]: + if len(row) < 3: + continue + rate_match = re.search(r"\d+", row[0]) + if rate_match: + out[int(rate_match.group(0))] = {"mean": num(row[1]), "std": num(row[2])} + return out + + +def section_notes(section): + notes = [] + for typ, data in section: + if typ != "p": + continue + if data.startswith("NE-COST input preparer:") or data.startswith("Technical Reviewer:"): + notes.append(data) + if data.startswith("In fuel cycle option") or data.startswith("Fuel cycle option"): + notes.append(data) + if "modeled using" in data and "NE-COST island" in data: + notes.append(data) + if "fractional energy generated" in data: + notes.append(data) + return notes[:8] + + +def weights_for(eg: str, n_cases: int): + if n_cases == 1: + return [1.0] + weights = WEIGHT_OVERRIDES.get(eg) + if weights and len(weights) == n_cases: + return weights + return [1.0 / n_cases] * n_cases + + +def entry_map(entries): + return {item["line"]: item for item in entries} + + +def get_entry(entries, line, low=None, nominal=None, high=None, distribution=0, description=""): + found = entry_map(entries).get(line) + if found: + return found + value = 0 if nominal is None else nominal + return { + "line": line, + "low": value if low is None else low, + "nominal": value, + "high": value if high is None else high, + "distribution": distribution, + "description": description, + } + + +def dist_type(code: int) -> str: + return "uniform" if int(code) == 2 else "triangular" + + +def distribution_values(entry): + low = entry["low"] + nominal = entry["nominal"] + high = entry["high"] + if int(entry["distribution"]) == 1 and not low <= nominal <= high: + low, high = min(low, nominal, high), max(low, nominal, high) + return low, nominal, high + + +def cost_item_block( + indent, + item_id, + entry, + cost_type=None, + expenditure_time=None, + lead_time=None, + value_key="cost_value", +): + pad = " " * indent + lines = [f"{pad}item({item_id}) {{"] + if cost_type: + lines.append(f"{pad} cost_type = {cost_type}") + if expenditure_time is not None: + lines.append(f"{pad} expenditure_time = {fmt(expenditure_time)}") + if value_key: + lines.append(f"{pad} {value_key} = {fmt(entry['nominal'])}") + if lead_time is not None: + lines.append(f"{pad} lead_time = {fmt(lead_time)}") + low, nominal, high = distribution_values(entry) + lines.append( + f"{pad} distribution {{ type = {dist_type(entry['distribution'])} " + f"low = {fmt(low)} high = {fmt(high)} " + f"nominal = {fmt(nominal)} }}" + ) + lines.append(f"{pad}}}") + return lines + + +def named(entries, line, fallback): + return get_entry(entries, line, nominal=fallback) + + +def reactor_id(eg, table_count, idx): + return eg if table_count == 1 else f"{eg}_ISLAND_{idx}" + + +def fuel_id(eg, table_count, idx): + return f"{reactor_id(eg, table_count, idx)}_FUEL" + + +def render_son(title, notes, tables, results): + eg, code = option_code(title) + weights = weights_for(eg, len(tables)) + lines = [ + "necost {", + f" % {title}", + " % Source: FCRD-FCO-2013-000196, Appendix A report input tables.", + " % Structured from the report into fuel_cycles, reactors, cost tables, and fuels.", + ] + for note in notes: + lines.append(f" % {note}") + if results: + for rate in sorted(results): + row = results[rate] + lines.append( + f" % Report LCAE at {rate}% discount rate: mean {row['mean']} mills/kWh, " + f"std {row['std']} mills/kWh." + ) + lines.extend( + [ + "", + " construction_interest_rate = 0.05", + " operations_interest_rate = 0.05", + " sample_size = 2000", + "", + " fuel_cycles {", + f" cycle({eg}) {{", + ] + ) + for idx, entries in enumerate(tables, start=1): + rid = reactor_id(eg, len(tables), idx) + lines.append(f" reactor({rid}) {{") + if len(tables) > 1: + lines.append(f" % Report LCAE energy weight for this island.") + else: + lines.append(f" % Single NE-COST island, so the LCAE weight is 100%.") + lines.append(f" energy_fraction = {fmt(weights[idx - 1])}") + lines.append(" }") + lines.extend([" }", " }", "", " reactors {"]) + + for idx, entries in enumerate(tables, start=1): + rid = reactor_id(eg, len(tables), idx) + fid = fuel_id(eg, len(tables), idx) + ref_power = named(entries, 1, 3.0e9) + efficiency = named(entries, 3, 33) + hm_mass = named(entries, 4, 88.23) + capacity = named(entries, 21, 0.9) + lines.extend( + [ + f" reactor({rid}) {{", + f" capacity_factor = {fmt(capacity['nominal'])}", + " cycle_length = 1.5", + " lifetime_years = 60", + f" power_level {{ reference_thermal = {fmt(ref_power['nominal'])} net_thermal_efficiency = {fmt(efficiency['nominal'])} }}", + " capital_costs { scaling_factor(capital_cost) = 1 }", + " om_costs {", + " scaling_factor(OM_per_year) = 1", + " scaling_factor(OM_per_MWh) = 1", + " }", + " fuel_reloads {", + f" quantity({fid}) {{ heavy_metal_mass = {fmt(hm_mass['nominal'])} fuel_fraction = 1 }}", + " }", + " }", + ] + ) + lines.extend([" }", "", " capital_costs {"]) + + cap = get_entry(tables[0], 13, low=2300, nominal=4000, high=5800, distribution=1) + construction = get_entry(tables[0], 19, nominal=5) + lines.extend(cost_item_block(8, "capital_cost", cap, cost_type="s_curve", expenditure_time=construction["nominal"])) + lines.extend([" }", "", " om_costs {"]) + + om_year = get_entry(tables[0], 27, low=58, nominal=70, high=84, distribution=1) + om_mwh = get_entry(tables[0], 28, low=0.84, nominal=1.9, high=2.6, distribution=1) + lines.extend(cost_item_block(8, "OM_per_year", om_year, cost_type="fixed", value_key="nominal_value")) + lines.extend(cost_item_block(8, "OM_per_MWh", om_mwh, cost_type="variable", value_key="nominal_value")) + lines.extend([" }", "", " fuel_costs {"]) + + fuel_cost_lines = [ + ("cost_U", 40, "lead_time_purchase", 36, 110), + ("cost_SWU", 41, "lead_time_nrchmt", 38, 100), + ("cost_fuel_fab", 42, "lead_time_fab", 39, 350), + ("cost_conv", 45, "lead_time_conv", 37, 12), + ("cost_deconv", 46, None, None, 6), + ("cost_SNF_cond", 48, None, None, 100), + ("cost_rprocsng", 60, "lead_time_rprocsng", 64, 1850), + ("cost_MOX_fab", 61, "lead_time_refab", 65, 3200), + ("cost_FP_cond", 62, "lead_time_FP_cond", 66, 5000), + ("cost_FP_geologic", 63, "lead_time_FP_disposal", 67, 6500), + ("cost_conv_rec", 71, "lead_time_conv_rec", 73, 11), + ("cost_nrchmt_rec", 72, "lead_time_nrchmt_rec", 74, 110), + ("cost_geologic_disposal", 81, "lead_time_FP_disposal", 67, 550), + ("cost_ec_rprocsng", 82, "lead_time_rprocsng", 64, 6000), + ("cost_Th", 89, None, None, 75), + ("cost_RU_disposal", 94, "lead_time_FP_disposal", 67, 0), + ("cost_DU_disposal", 96, None, None, 4), + ] + first = tables[0] + for item_id, line_no, _lead_name, lead_line, fallback in fuel_cost_lines: + cost = get_entry(first, line_no, nominal=fallback) + lead = get_entry(first, lead_line, nominal=0)["nominal"] if lead_line else None + lines.extend(cost_item_block(8, item_id, cost, lead_time=lead)) + + lines.extend([" }", "", " fuels {"]) + for idx, entries in enumerate(tables, start=1): + fid = fuel_id(eg, len(tables), idx) + burnup = get_entry(entries, 11, nominal=50) + batches = get_entry(entries, 12, nominal=3) + product = get_entry(entries, 33, nominal=4.2) + feed = get_entry(entries, 34, nominal=0.711) + tails = get_entry(entries, 35, nominal=0.25) + fab_loss = get_entry(entries, 49, nominal=0.2) + conv_loss = get_entry(entries, 50, nominal=0) + reproc_loss = get_entry(entries, 51, nominal=1) + recovered_fraction = get_entry(entries, 53, nominal=0)["nominal"] + primary_fissile = get_entry(entries, 54, nominal=1) + pu_new = get_entry(entries, 55, nominal=0.098) + ma_new = get_entry(entries, 56, nominal=0.04) + pu_prev = get_entry(entries, 57, nominal=0.012) + ma_prev = get_entry(entries, 58, nominal=0.002) + fp_prev = get_entry(entries, 59, nominal=0.053) + rec_product = get_entry(entries, 68, nominal=4.95) + rec_tails = get_entry(entries, 69, nominal=0.3) + rec_feed = get_entry(entries, 70, nominal=1.5) + lines.extend( + [ + f" fuel({fid}) {{", + f" avg_discharge_burnup = {fmt(burnup['nominal'])}", + f" num_batches = {fmt(batches['nominal'])}", + " avg_specific_power = 1", + " fresh_fuel {", + f" fabrication {{ loss_fraction = {fmt(max(fab_loss['nominal'] / 100, 1e-12))} costs = [cost_fuel_fab] }}", + " EU { fuel_fraction = 1 costs = [cost_U] }", + " }", + " spent_fuel {", + " costs = [cost_SNF_cond cost_geologic_disposal]", + " }", + " EU {", + f" conversion {{ loss_fraction = {fmt(max(conv_loss['nominal'] / 100, 1e-12))} costs = [cost_conv] }}", + " enrichment {", + " type = one_stage", + " loss_fraction = 0.01", + f" stage_1 {{ feed = {fmt(feed['nominal'])} product = {fmt(product['nominal'])} tails = {fmt(tails['nominal'])} }}", + " SWU_costs = [cost_SWU]", + " NU_costs = [cost_U]", + " DU_costs = [cost_DU_disposal]", + " }", + " }", + ] + ) + if recovered_fraction > 0: + lines.extend( + [ + " RU {", + f" reprocess {{ loss_fraction = {fmt(max(reproc_loss['nominal'] / 100, 1e-12))} costs = [cost_rprocsng] }}", + f" conversion {{ loss_fraction = {fmt(max(conv_loss['nominal'] / 100, 1e-12))} costs = [cost_conv_rec] }}", + " reenrichment {", + " loss_fraction = 0.01", + f" stage_1 {{ feed = {fmt(rec_feed['nominal'])} product = {fmt(rec_product['nominal'])} tails = {fmt(rec_tails['nominal'])} }}", + " SWU_costs = [cost_nrchmt_rec]", + " DU_costs = [cost_DU_disposal]", + " }", + " }", + f" % Reprocessed stream details from report: primary_fissile={fmt(primary_fissile['nominal'])}, Pu_new={fmt(pu_new['nominal'])}, MA_new={fmt(ma_new['nominal'])}, Pu_prev={fmt(pu_prev['nominal'])}, MA_prev={fmt(ma_prev['nominal'])}, FP_prev={fmt(fp_prev['nominal'])}.", + ] + ) + lines.append(" }") + + lines.extend([" }", "}"]) + filename = OUTPUT_DIR / f"{eg}.{code}.son" + return filename, "\n".join(lines) + "\n" + + +def main(): + for stale in OUTPUT_DIR.glob("EG??.[A-Z][A-Z].son"): + stale.unlink() + items = doc_items() + heads = section_heads(items) + generated = [] + for pos, (start, title) in enumerate(heads): + eg, _ = option_code(title) + if not (3 <= int(eg[2:]) <= 40) or eg in {"EG13", "EG23"}: + continue + end = heads[pos + 1][0] if pos + 1 < len(heads) else len(items) + section = items[start:end] + input_tables = [parse_input_table(data) for typ, data in section if typ == "tbl" and is_input_table(data)] + if not input_tables: + raise RuntimeError(f"No input table found for {title}") + result_tables = [parse_result_table(data) for typ, data in section if typ == "tbl" and is_result_table(data)] + results = result_tables[-1] if result_tables else {} + filename, text = render_son(title, section_notes(section), input_tables, results) + filename.write_text(text) + generated.append(filename.name) + print("\n".join(generated)) + + +if __name__ == "__main__": + main() diff --git a/src/ACCERT_README.html b/src/ACCERT_README.html deleted file mode 100644 index 092e617..0000000 --- a/src/ACCERT_README.html +++ /dev/null @@ -1,1575 +0,0 @@ - - - - - -

Getting Started

-

The main function of ACCERT (The Algorithm for the Capital Cost -Estimation of Reactor Technologies) is to provide an item-by-item -estimate of the cost of a facility, at present a nuclear reactor -complex, primarily nuclear power stations. The core of ACCERT is the -large number of algorithms that have been developed and will continue to -be developed. ACCERT is also a general methodology for identifying and -organizing the individual items that are estimated using the ACCERT -algorithms. ACCERT also summarize status and results; to save results -and pull information from previous analyses; and to provide an -interactive dynamic graphical user interface for a wide range of -functions and visualizations.

-

The software comprises three major components: * Relational Database -* Creation, editing, and linking of different element types * Report -generation (queries) * Search * Equation solvers (extraction of -information from elements and evaluation/updating of fields in the -database) * Algorithms * Escalation * Cost aggregation * Interactive -Graphical User Interface * Dynamic windows

-

ACCERT is designed for integration with the NEAMS Workbench -and relies on input files using Workbench’s SON format. Instructions for -installing ACCERT both with and without Workbench are provided in this -README.

-

Installation

-

Clone ACCERT

-
    -
  • Open a terminal window and cd into the folder where you want to -install ACCERT (e.g., CODE)
  • -
-
[~]> mkdir CODE  
-[~]> cd CODE   
-[~/CODE]> git clone https://git-out.gss.anl.gov/jia.zhou/accert.git   
-[~/CODE]> cd accert
-

Installation of MySQL -Community Server

-
    -
  • Obtain the MySQL -Community Server

  • -
  • Install MySQL Community Server

    -

    [NOTE] You’ll need to enter a strong -password under Root Account Password. Don’t forget your -password! It’s extremely important that you keep track of your root -password for MySQL, as it’s difficult to reset. Write it down somewhere -easily accessible, or add it to a password manager to keep it -secure.

  • -
-

Installation of ACCERT -libraries

-
    -
  • Install ACCERT libraries
  • -
-
[~/accert]>pip install -r requirements.txt
-

Installation of NEAMS -Workbench

-
    -
  • Obtain and install the NEAMS -Workbench
  • -
  • Create symbolic link into ACCERT, cd into ACCERT directory
  • -
-
[~/accert]> cp src/etc/accert_wb.py /Applications/Workbench-5.0.0.app/Contents/rte/accert.py
-[~/accert]> ln -s /Applications/Workbench-5.0.0.app/Contents/wasppy ./
-[~/accert]> ln -s /Applications/Workbench-5.0.0.app/Contents/bin/sonvalidxml ./bin/sonvalidxml 
-[~/accert]> ln -s /Applications/Workbench-5.0.0.app/Contents/bin/docprint ./bin/docprint
-

Test installation

-
    -
  • Edit install.conf file in ‘src’ folder, change line -‘PASSWD =’, add your own MySQL root password, and commit your -changes.
  • -
  • Test python MySQL connection and installation
  • -
-
[~/ACCERT]> cd src 
-[~/src]> python installCheck.py
-

-

Table Of Contents

- -
-

/

- -------- - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
accertSubObject0 or 1[optional] for accert calculations
-
-

/accert

-

[optional] for accert -calculations

-
How Many: 0 or 1
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
ref_modelKeyedValue1StringChoices
pwr12-be
abr1000
[required] User input reference -model
powerSubObject1 or more[required] User input power
varSubObject0 or morechanged variable value
l0COASubObject0 or morelevel 0 code of account
-
-

/accert/power

-

[required] User input power

-
How Many: 1 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
thermal
electric
rejectedthermal
valueValue1RealRange
(0.0,+INF)
[required] variable value
unitKeyedValue1StringChoices
w
kw
mw
[required] variable unit
-
-

/accert/var

-

changed variable value

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
c_213_fac
c_213_lab
c_213_mat
c_220a.2121_ss_weight
c_220a.2122_ss_weight
c_220a.222_ss_weight
c_222_fac
c_222_lab
c_222_mat
c_222.11_fac
c_222.11_lab
c_222.11_mat
c_222.12_fac
c_222.12_lab
c_222.12_mat
c_222.13_fac
c_222.14_fac
c_222.14_lab
c_222.14_mat
c_231_fac
c_231_lab
c_231_mat
c_233_fac
c_233_lab
c_233_mat
c_241_fac
c_241_lab
c_241_mat
c_242_fac
c_242_lab
c_242_mat
c_245_fac
c_245_lab
c_245_mat
c_246_fac
c_246_lab
c_246_mat
c_262_fac
c_262_lab
c_262_mat
c_cr_per_unit_fac
c_crd_per_unit_fac
c_pump_ap1000
c_pump_per_unit_fac
c_turbine
c_zero
ch_abr1000
ch_ap1000
escalate_1987
mwe
mwreth
mwth
no_of_cr
no_of_crd
no_of_rcpump
prn_235_of_231_fac
prn_235_of_231_lab
prn_235_of_231_mat
prn_fac_231_lab
prn_fac_231_mat
r_222.13_lab
r_222.13_mat
r_78_220a224_fac
r_78_226.4_fac
ref_211_fac
ref_211_lab
ref_211_mat
ref_224_fac
ref_224_lab
ref_224_mat
ref_227_fac
ref_227_lab
ref_227_mat
ref_252_fac
ref_252_lab
ref_252_mat
scale_0.4
scale_0.52
scale_0.8
scale_1.0
scale_tur_231_fac
cpi
void_fraction
liner_fraction
cont_h_tot_m
cont_rad_out_m
cont_shell_t_m
cont_h_wall_m
basemat_t_m
dome_t_m
intern_wall_t
react_cav_a_m2
cont_rad_in_m
basemat_s_m2
basemat_v_m3
walls_s_m2
walls_v_m3
dome_rad_in_m
dome_s_m2
dome_v_m3
intern_tot_v_m3
internal_v_m3
internal_s_m2
struct_v_m3
inside_liner_s
liner_s_m2
surf_paint_m2
infl
unit_eedb_labor_cadweld_substr
unit_eedb_labor_cadweld_superstr
unit_eedb_labor_cadweld_dome
unit_eedb_labor_cadweld_interior
unit_eedb_labor_concrete_substr
unit_eedb_labor_concrete_superstr
unit_eedb_labor_concrete_dome
unit_eedb_labor_concrete_interior
unit_eedb_labor_constr_joints_substr
unit_eedb_labor_constr_joints_superstr
unit_eedb_labor_constr_joints_dome
unit_eedb_labor_constr_joints_interior
unit_eedb_labor_embedded_steel_substr
unit_eedb_labor_embedded_steel_superstr
unit_eedb_labor_embedded_steel_dome
unit_eedb_labor_embedded_steel_interior
unit_eedb_labor_formwork_substr
unit_eedb_labor_formwork_superstr
unit_eedb_labor_formwork_dome
unit_eedb_labor_formwork_interior
unit_eedb_labor_maj_supp_embedments_interior
unit_eedb_labor_reinforc_steel_substr
unit_eedb_labor_reinforc_steel_superstr
unit_eedb_labor_reinforc_steel_dome
unit_eedb_labor_reinforc_steel_interior
unit_eedb_labor_rubbing_surfaces_superstr
unit_eedb_labor_rubbing_surfaces_dome
unit_eedb_labor_rubbing_surfaces_interior
unit_eedb_labor_waterproofing_substr
unit_eedb_labor_waterproofing_superstr
unit_eedb_labor_waterproofing_dome
unit_eedb_labor_welded_wire_fabric_substr
unit_eedb_labor_lighting_power
unit_eedb_labor_plumb_drains
unit_eedb_labor_special_hvac
unit_eedb_labor_other
unit_eedb_labor_misc_steel_frames
unit_eedb_labor_react_cav_liner
unit_eedb_labor_struct_steel
unit_eedb_labor_cont_liner
unit_eedb_labor_fl_grate_handrail_stairs
unit_eedb_labor_painting
unit_eedb_mat_cadweld_substr
unit_eedb_mat_cadweld_superstr
unit_eedb_mat_cadweld_dome
unit_eedb_mat_cadweld_interior
unit_eedb_mat_concrete_substr
unit_eedb_mat_concrete_superstr
unit_eedb_mat_concrete_dome
unit_eedb_mat_concrete_interior
unit_eedb_mat_constr_joints_substr
unit_eedb_mat_constr_joints_superstr
unit_eedb_mat_constr_joints_dome
unit_eedb_mat_constr_joints_interior
unit_eedb_mat_embedded_steel_substr
unit_eedb_mat_embedded_steel_superstr
unit_eedb_mat_embedded_steel_dome
unit_eedb_mat_embedded_steel_interior
unit_eedb_mat_formwork_substr
unit_eedb_mat_formwork_superstr
unit_eedb_mat_formwork_dome
unit_eedb_mat_formwork_interior
unit_eedb_mat_maj_supp_embedments_interior
unit_eedb_mat_reinforc_steel_substr
unit_eedb_mat_reinforc_steel_superstr
unit_eedb_mat_reinforc_steel_dome
unit_eedb_mat_reinforc_steel_interior
unit_eedb_mat_rubbing_surfaces_superstr
unit_eedb_mat_rubbing_surfaces_dome
unit_eedb_mat_rubbing_surfaces_interior
unit_eedb_mat_waterproofing_substr
unit_eedb_mat_waterproofing_superstr
unit_eedb_mat_waterproofing_dome
unit_eedb_mat_welded_wire_fabric_substr
unit_eedb_mat_lighting_power
unit_eedb_mat_plumb_drains
unit_eedb_mat_special_hvac
unit_eedb_mat_other
unit_eedb_mat_misc_steel_frames
unit_eedb_mat_react_cav_liner
unit_eedb_mat_struct_steel
unit_eedb_mat_cont_liner
unit_eedb_mat_fl_grate_handrail_stairs
unit_eedb_mat_painting
unit_labor_cadweld_substr
unit_labor_cadweld_superstr
unit_labor_cadweld_dome
unit_labor_cadweld_interior
unit_labor_concrete_substr
unit_labor_concrete_superstr
unit_labor_concrete_dome
unit_labor_concrete_interior
unit_labor_constr_joints_substr
unit_labor_constr_joints_superstr
unit_labor_constr_joints_dome
unit_labor_constr_joints_interior
unit_labor_embedded_steel_substr
unit_labor_embedded_steel_superstr
unit_labor_embedded_steel_dome
unit_labor_embedded_steel_interior
unit_labor_formwork_substr
unit_labor_formwork_superstr
unit_labor_formwork_dome
unit_labor_formwork_interior
unit_labor_maj_supp_embedments_interior
unit_labor_reinforc_steel_substr
unit_labor_reinforc_steel_superstr
unit_labor_reinforc_steel_dome
unit_labor_reinforc_steel_interior
unit_labor_rubbing_surfaces_superstr
unit_labor_rubbing_surfaces_dome
unit_labor_rubbing_surfaces_interior
unit_labor_waterproofing_substr
unit_labor_waterproofing_superstr
unit_labor_waterproofing_dome
unit_labor_welded_wire_fabric_substr
unit_labor_lighting_power
unit_labor_plumb_drains
unit_labor_special_hvac
unit_labor_other
unit_labor_misc_steel_frames
unit_labor_react_cav_liner
unit_labor_struct_steel
unit_labor_cont_liner
unit_labor_fl_grate_handrail_stairs
unit_labor_painting
unit_mat_cadweld_substr
unit_mat_cadweld_superstr
unit_mat_cadweld_dome
unit_mat_cadweld_interior
unit_mat_concrete_substr
unit_mat_concrete_superstr
unit_mat_concrete_dome
unit_mat_concrete_interior
unit_mat_constr_joints_substr
unit_mat_constr_joints_superstr
unit_mat_constr_joints_dome
unit_mat_constr_joints_interior
unit_mat_embedded_steel_substr
unit_mat_embedded_steel_superstr
unit_mat_embedded_steel_dome
unit_mat_embedded_steel_interior
unit_mat_formwork_substr
unit_mat_formwork_superstr
unit_mat_formwork_dome
unit_mat_formwork_interior
unit_mat_maj_supp_embedments_interior
unit_mat_reinforc_steel_substr
unit_mat_reinforc_steel_superstr
unit_mat_reinforc_steel_dome
unit_mat_reinforc_steel_interior
unit_mat_rubbing_surfaces_superstr
unit_mat_rubbing_surfaces_dome
unit_mat_rubbing_surfaces_interior
unit_mat_waterproofing_substr
unit_mat_waterproofing_superstr
unit_mat_waterproofing_dome
unit_mat_welded_wire_fabric_substr
unit_mat_lighting_power
unit_mat_plumb_drains
unit_mat_special_hvac
unit_mat_other
unit_mat_misc_steel_frames
unit_mat_react_cav_liner
unit_mat_struct_steel
unit_mat_cont_liner
unit_mat_fl_grate_handrail_stairs
unit_mat_painting
total_labor_cadweld_substr
total_labor_cadweld_superstr
total_labor_cadweld_dome
total_labor_cadweld_interior
total_labor_concrete_substr
total_labor_concrete_superstr
total_labor_concrete_dome
total_labor_concrete_interior
total_labor_constr_joints_substr
total_labor_constr_joints_superstr
total_labor_constr_joints_dome
total_labor_constr_joints_interior
total_labor_embedded_steel_substr
total_labor_embedded_steel_superstr
total_labor_embedded_steel_dome
total_labor_embedded_steel_interior
total_labor_formwork_substr
total_labor_formwork_superstr
total_labor_formwork_dome
total_labor_formwork_interior
total_labor_maj_supp_embedments_interior
total_labor_reinforc_steel_substr
total_labor_reinforc_steel_superstr
total_labor_reinforc_steel_dome
total_labor_reinforc_steel_interior
total_labor_rubbing_surfaces_superstr
total_labor_rubbing_surfaces_dome
total_labor_rubbing_surfaces_interior
total_labor_waterproofing_substr
total_labor_waterproofing_superstr
total_labor_waterproofing_dome
total_labor_welded_wire_fabric_substr
total_labor_lighting_power
total_labor_plumb_drains
total_labor_special_hvac
total_labor_other
total_labor_misc_steel_frames
total_labor_react_cav_liner
total_labor_struct_steel
total_labor_cont_liner
total_labor_fl_grate_handrail_stairs
total_labor_painting
total_mat_cadweld_substr
total_mat_cadweld_superstr
total_mat_cadweld_dome
total_mat_cadweld_interior
total_mat_concrete_substr
total_mat_concrete_superstr
total_mat_concrete_dome
total_mat_concrete_interior
total_mat_constr_joints_substr
total_mat_constr_joints_superstr
total_mat_constr_joints_dome
total_mat_constr_joints_interior
total_mat_embedded_steel_substr
total_mat_embedded_steel_superstr
total_mat_embedded_steel_dome
total_mat_embedded_steel_interior
total_mat_formwork_substr
total_mat_formwork_superstr
total_mat_formwork_dome
total_mat_formwork_interior
total_mat_maj_supp_embedments_interior
total_mat_reinforc_steel_substr
total_mat_reinforc_steel_superstr
total_mat_reinforc_steel_dome
total_mat_reinforc_steel_interior
total_mat_rubbing_surfaces_superstr
total_mat_rubbing_surfaces_dome
total_mat_rubbing_surfaces_interior
total_mat_waterproofing_substr
total_mat_waterproofing_superstr
total_mat_waterproofing_dome
total_mat_welded_wire_fabric_substr
total_mat_lighting_power
total_mat_plumb_drains
total_mat_special_hvac
total_mat_other
total_mat_misc_steel_frames
total_mat_react_cav_liner
total_mat_struct_steel
total_mat_cont_liner
total_mat_fl_grate_handrail_stairs
total_mat_painting
sum_labor_cadweld
sum_labor_concrete
sum_labor_constr_joints
sum_labor_embedded_steel
sum_labor_formwork
sum_labor_maj_supp_embedments
sum_labor_reinforc_steel
sum_labor_rubbing_surfaces
sum_labor_waterproofing
sum_labor_welded_wire_fabric
sum_mat_cadweld
sum_mat_concrete
sum_mat_constr_joints
sum_mat_embedded_steel
sum_mat_formwork
sum_mat_maj_supp_embedments
sum_mat_reinforc_steel
sum_mat_rubbing_surfaces
sum_mat_waterproofing
sum_mat_welded_wire_fabric
tot_labor_concr
tot_labor_equipment
tot_labor_others
tot_mat_concr
tot_mat_equipment
tot_mat_others
tot_labor_containment
tot_mat_containment
valueValue1RealRange
[0.0,+INF)
unitKeyedValue1StringChoices
mw
w
lbs
ton
kg
million
gpm*feet
1
m
m2
m
3
dollar/m3
dollar/m
2
-
-

/accert/l0COA

-

level 0 code of account

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
1
2
3
4
5
new
l1COASubObject0 or more
-
-

/accert/l0COA/l1COA

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
21
22
23
24
25
26
new
total_costSubObject0 or moretotal cost value
l2COASubObject0 or more
-
-

/accert/l0COA/l1COA/total_cost

-

total cost value

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
valueValue1RealRange
[0.0,+INF)
unitKeyedValue1StringChoices
million
dollar
-
-

/accert/l0COA/l1COA/l2COA

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
211
212
213
214
215
216
217
218
220a
221
222
223
224
225
226
227
228
231
233
234
235
236
237
241
242
243
244
245
246
251
252
253
254
255
261
262
new
total_costSubObject0 or moretotal cost value
ceSubObject0 or more
l3COASubObject0 or more
-
-

/accert/l0COA/l1COA/l2COA/total_cost

-

total cost value

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
valueValue1RealRange
[0.0,+INF)
unitKeyedValue1StringChoices
million
dollar
-
-

/accert/l0COA/l1COA/l2COA/ce

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
211_fac
212_fac
213_fac
214_fac
215_fac
216_fac
217_fac
218_fac
220a_fac
221_fac
222_fac
223_fac
224_fac
225_fac
226_fac
227_fac
228_fac
231_fac
233_fac
234_fac
235_fac
236_fac
237_fac
241_fac
242_fac
243_fac
244_fac
245_fac
246_fac
251_fac
252_fac
253_fac
254_fac
255_fac
261_fac
262_fac
211_lab
212_lab
213_lab
214_lab
215_lab
216_lab
217_lab
218_lab
220a_lab
221_lab
222_lab
223_lab
224_lab
225_lab
226_lab
227_lab
228_lab
231_lab
233_lab
234_lab
235_lab
236_lab
237_lab
241_lab
242_lab
243_lab
244_lab
245_lab
246_lab
251_lab
252_lab
253_lab
254_lab
255_lab
261_lab
262_lab
211_mat
212_mat
213_mat
214_mat
215_mat
216_mat
217_mat
218_mat
220a_mat
221_mat
222_mat
223_mat
224_mat
225_mat
226_mat
227_mat
228_mat
231_mat
233_mat
234_mat
235_mat
236_mat
237_mat
241_mat
242_mat
243_mat
244_mat
245_mat
246_mat
251_mat
252_mat
253_mat
254_mat
255_mat
261_mat
262_mat
algSubObject0 or more
-
-

/accert/l0COA/l1COA/l2COA/ce/alg

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
esc_1987
no_alg
mwth_scale
default_0
dev_factor_ref
ptn_account
mwe_scale
sum_multi_accounts
varSubObject1 or morechanged variable value
-
-

/accert/l0COA/l1COA/l2COA/ce/alg/var

-

changed variable value

-
How Many: 1 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
ref_211_mat
ref_211_lab
ref_211_fac
escalate_1987
c_213_mat
c_213_lab
c_213_fac
scale_0.8
mwth
c_222_mat
c_222_lab
c_222_fac
scale_1.0
ref_224_mat
ref_224_lab
ref_224_fac
ref_227_mat
ref_227_lab
ref_227_fac
ref_228_mat
ref_228_lab
prn_fac_231_mat
prn_fac_231_lab
c_231_fac
scale_tur_231_fac
n_231
c_turbine
c_233_mat
c_233_lab
c_233_fac
c_234_mat
c_234_lab
c_234_fac
prn_235_of_231_mat
prn_235_of_231_lab
prn_235_of_231_fac
c_231_mat
c_231_lab
ref_236_mat
ref_236_lab
ref_236_fac
c_237_mat
c_237_lab
c_241_mat
c_241_lab
c_241_fac
scale_0.4
mwe
c_242_mat
c_242_lab
c_242_fac
c_245_mat
c_245_lab
c_246_mat
c_246_lab
c_246_fac
c_251.17_mat
c_251.16_mat
c_251.112_mat
c_251.111_mat
c_251.12_mat
c_251.17_lab
c_251.16_lab
c_251.112_lab
c_251.111_lab
c_251.12_lab
c_251.17_fac
c_251.16_fac
c_251.112_fac
c_251.111_fac
c_251.12_fac
ref_252_mat
ref_252_lab
ref_252_fac
ref_253_mat
ref_253_lab
ref_253_fac
c_262_mat
c_262_lab
c_262_fac
valueValue0 or 1RealRange
[0.0,+INF)
unitKeyedValue0 or 1StringChoices
ton
lbs
million
1
gpm*feet
bar
m3
dollar/m
3
mw
psi
psf
dollar
thousand
algSubObject0 or 1valriable algorithm
-
-

/accert/l0COA/l1COA/l2COA/ce/alg/var/alg

-

valriable algorithm

-
How Many: 0 or 1
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
tur_exp_n
rpv_mass
pump
varSubObject1 or morechanged variable value
-
-

/accert/l0COA/l1COA/l2COA/ce/alg/var/alg/var

-

changed variable value

-
How Many: 1 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
p_in
c_221.12_cs_weight
c_221.12_ss_weight
c_pump_ap1000
ch_12be
ch_ap1000
scale_0.52
valueValue1RealRange
[0.0,+INF)
unitKeyedValue1StringChoices
bar
psi
psf
lbs
ton
million
gpm*feet
1
-
-

/accert/l0COA/l1COA/l2COA/l3COA

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
218a
218b
218d
218e
218f
218g
218h
218j
218k
218l
218p
218s
218t
218v
220a.211
220a.2121
220a.2122
220a.2131
220a.2132
220a.221
220a.222
220a.223
220a.224
220a.225
220a.2311
220a.2312
220a.2321
220a.2322
220a.2323
220a.2324
220a.2325
220a.251
220a.254
220a.2611
220a.2612
220a.2613
220a.2614
220a.262
220a.27
221.11
221.12
221.13
221.14
221.21
222.11
222.12
222.13
222.14
223.1
223.3
223.4
223.5
226.1
226.3
226.4
226.6
226.7
226.8
226.9
new
total_costSubObject0 or moretotal cost value
ceSubObject0 or more
-
-

/accert/l0COA/l1COA/l2COA/l3COA/total_cost

-

total cost value

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
valueValue1RealRange
[0.0,+INF)
unitKeyedValue1StringChoices
million
dollar
-
-

/accert/l0COA/l1COA/l2COA/l3COA/ce

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag0 or 1StringChoices
218a_fac
218b_fac
218d_fac
218e_fac
218f_fac
218g_fac
218h_fac
218j_fac
218k_fac
218l_fac
218p_fac
218s_fac
218t_fac
218v_fac
220a.211_fac
220a.2121_fac
220a.2122_fac
220a.2131_fac
220a.2132_fac
220a.221_fac
220a.222_fac
220a.223_fac
220a.224_fac
220a.225_fac
220a.2311_fac
220a.2312_fac
220a.2321_fac
220a.2322_fac
220a.2323_fac
220a.2324_fac
220a.2325_fac
220a.251_fac
220a.254_fac
220a.2611_fac
220a.2612_fac
220a.2613_fac
220a.2614_fac
220a.262_fac
220a.27_fac
221.11_fac
221.12_fac
221.13_fac
221.14_fac
221.21_fac
222.11_fac
222.12_fac
222.13_fac
222.14_fac
223.1_fac
223.3_fac
223.4_fac
223.5_fac
226.1_fac
226.3_fac
226.4_fac
226.6_fac
226.7_fac
226.8_fac
226.9_fac
218a_lab
218b_lab
218d_lab
218e_lab
218f_lab
218g_lab
218h_lab
218j_lab
218k_lab
218l_lab
218p_lab
218s_lab
218t_lab
218v_lab
220a.211_lab
220a.2121_lab
220a.2122_lab
220a.2131_lab
220a.2132_lab
220a.221_lab
220a.222_lab
220a.223_lab
220a.224_lab
220a.225_lab
220a.2311_lab
220a.2312_lab
220a.2321_lab
220a.2322_lab
220a.2323_lab
220a.2324_lab
220a.2325_lab
220a.251_lab
220a.254_lab
220a.2611_lab
220a.2612_lab
220a.2613_lab
220a.2614_lab
220a.262_lab
220a.27_lab
221.11_lab
221.12_lab
221.13_lab
221.14_lab
221.21_lab
222.11_lab
222.12_lab
222.13_lab
222.14_lab
223.1_lab
223.3_lab
223.4_lab
223.5_lab
226.1_lab
226.3_lab
226.4_lab
226.6_lab
226.7_lab
226.8_lab
226.9_lab
218a_mat
218b_mat
218d_mat
218e_mat
218f_mat
218g_mat
218h_mat
218j_mat
218k_mat
218l_mat
218p_mat
218s_mat
218t_mat
218v_mat
220a.211_mat
220a.2121_mat
220a.2122_mat
220a.2131_mat
220a.2132_mat
220a.221_mat
220a.222_mat
220a.223_mat
220a.224_mat
220a.225_mat
220a.2311_mat
220a.2312_mat
220a.2321_mat
220a.2322_mat
220a.2323_mat
220a.2324_mat
220a.2325_mat
220a.251_mat
220a.254_mat
220a.2611_mat
220a.2612_mat
220a.2613_mat
220a.2614_mat
220a.262_mat
220a.27_mat
221.11_mat
221.12_mat
221.13_mat
221.14_mat
221.21_mat
222.11_mat
222.12_mat
222.13_mat
222.14_mat
223.1_mat
223.3_mat
223.4_mat
223.5_mat
226.1_mat
226.3_mat
226.4_mat
226.6_mat
226.7_mat
226.8_mat
226.9_mat
algSubObject0 or more
-
-

/accert/l0COA/l1COA/l2COA/l3COA/ce/alg

-
How Many: 0 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
no_alg
complex
unit_weights
unit_facility
unit_weights_plate
unit_weights_factor
total_weight_prn
esc_1978
sum_multi_accounts
default_0
mwth_scale
esc_1987
factor_sum
unit_volume
cost_by_weight
varSubObject1 or morechanged variable value
-
-

/accert/l0COA/l1COA/l2COA/l3COA/ce/alg/var

-

changed variable value

-
How Many: 1 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
c_218b_mat
c_218b_lab
c_218b_fac
c_218j_mat
c_218j_lab
c_218j_fac
c_218t_mat
c_218t_lab
c_218t_fac
c_221.12_ss_weight
c_221.12_cs_weight
c_220a.2121_ss_weight
c_zero
c_220a.2122_ss_weight
c_cr_per_unit_fac
no_of_cr
c_crd_per_unit_fac
no_of_crd
c_pump_per_unit_fac
no_of_rcpump
c_220a.222_ss_weight
c_220a.224_ss_weight
c_220a.224_cs_weight_plate
c_220a.225_ss_weight
c_220a.2311_fac
factor_220a.2312
c_220a.2312_ss_weight
c_220a.2312_cs_weight
c_220a.2321_fac
no_of_acu
prn_220a.2322ss
prn_220a.2322cs
c_220a.2322_tot_weight
no_of_bit
prn_220a.2323ss
prn_220a.2323cs
c_220a.2323_tot_weight
c_220a.2324_ss_weight
c_220a.2325_fac
factor_220a.251
c_220a.251_ss_weight
c_220a.251_cs_weight
ref_220a.254_1978
escalate_1978
c_226.41152_fac
c_226.41151_fac
c_226.4114_fac
c_226.41132_fac
c_226.41131_fac
c_226.4112_fac
c_226.4111_fac
c_226.4128_fac
c_226.4127_fac
c_226.4126_fac
c_226.4125_fac
c_226.4124_fac
c_226.4123_fac
c_226.4122_fac
c_226.4121_fac
c_226.4131_fac
c_226.4135_fac
c_226.4134_fac
c_226.4133_fac
c_226.4145_fac
c_226.4144_fac
c_226.4143_fac
c_226.4142_fac
c_226.4141_fac
c_rpv_mat
c_rpv_lab
c_221.12_tol_weight
ref_221.14_mat
escalate_1987
c_222.11_mat
c_222.11_lab
c_222.11_fac
scale_1.0
mwth
c_222.12_mat
c_222.12_lab
c_222.12_fac
c_sg_per_unit_mat
c_sg_per_unit_lab
no_of_sg
ref_222.13_fac
c_222.14_mat
c_222.14_lab
c_222.14_fac
c_220a.2312_fac
prn_223.1_mat
prn_223.1_lab
prn_223.1_fac
fac_223.1
c_220a.2324_fac
c_220a.2323_fac
c_220a.2322_fac
prn_223.3_mat
prn_223.3_lab
prn_223.3_fac
fac_223.3
c_223.4_unit_vol_mat
c_223.4_unit_vol_lab
c_223.4_unit_vol_fac
vol_223.4
c_226.4_mat
c_226.4_lab
c_226.4_fac
c_226.7_mat
c_226.7_lab
c_226.7_fac
valueValue0 or 1RealRange
[0.0,+INF)
unitKeyedValue0 or 1StringChoices
million
ton
lbs
1
million/ton
algSubObject0 or 1valriable algorithm
-
-

/accert/l0COA/l1COA/l2COA/l3COA/ce/alg/var/alg

-

valriable algorithm

-
How Many: 0 or 1
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
tur_exp_n
rpv_mass
pump
varSubObject1 or morechanged variable value
-
-

/accert/l0COA/l1COA/l2COA/l3COA/ce/alg/var/alg/var

-

changed variable value

-
How Many: 1 or more
- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeHowManyValueTypeRestrictionsDescription
idTag1StringChoices
p_in
c_221.12_cs_weight
c_221.12_ss_weight
c_pump_ap1000
ch_12be
ch_ap1000
scale_0.52
valueValue1RealRange
[0.0,+INF)
unitKeyedValue1StringChoices
bar
lbs
ton
million
gpm*feet
1
psi
psf
-
diff --git a/src/Algorithm/AP1000DirectCostFunc.py b/src/Algorithm/AP1000DirectCostFunc.py new file mode 100644 index 0000000..df55a45 --- /dev/null +++ b/src/Algorithm/AP1000DirectCostFunc.py @@ -0,0 +1,6 @@ +from .LPSRDirectCostFunc import LPSRDirectCostFunc + + +class AP1000DirectCostFunc(LPSRDirectCostFunc): + """AP1000 direct-cost algorithms using the TIMCAT-derived formula set.""" + diff --git a/src/Algorithm/LPSRDirectCostFunc.py b/src/Algorithm/LPSRDirectCostFunc.py new file mode 100644 index 0000000..f3a8b25 --- /dev/null +++ b/src/Algorithm/LPSRDirectCostFunc.py @@ -0,0 +1,195 @@ +import numpy as np + +try: + from .Algorithm import Algorithm +except Exception: + class Algorithm: + def __init__(self, ind=None, alg_name=None, alg_for=None, alg_description=None, alg_formulation=None, alg_units=None, variables=None, constants=None): + self.ind = ind + self.name = alg_name + self.alg_for = alg_for + self.alg_description = alg_description + self.alg_formulation = alg_formulation + self.alg_units = alg_units + self.variables = variables or "" + self.constants = constants + + +class LPSRDirectCostFunc(Algorithm): + """ACCERT-style algorithms for the LPSR direct-cost table. + + Cost elements use category_scale(ref, scale, optional multipliers). + Scale variables use named scale-law or direct-formula methods grouped by scale basis. + """ + + def __init__(self, ind=None, alg_name=None, alg_for=None, alg_description=None, alg_formulation=None, alg_units=None, variables=None, constants=None): + super().__init__(ind, alg_name, alg_for, alg_description, alg_formulation, alg_units, variables, constants) + + def run(self, inputs: dict) -> float: + values = [inputs[var.strip()] for var in self.variables.split(",") if var.strip()] + return self._run_algorithm(self.name, values) + + def _run_algorithm(self, alg_name: str, values: list) -> float: + method = alg_name.strip() + try: + algorithm = getattr(self, method) + except AttributeError as exc: + raise ValueError(f"Algorithm {alg_name} not found in LPSRDirectCostFunc") from exc + return algorithm(*values) + + @staticmethod + def category_scale(*values): + result = 1.0 + for value in values: + result *= value + return result + + @staticmethod + def _scale_law(*values): + x_unit_value, eedb_base_unit_value, exp = values + if eedb_base_unit_value == 0: + return 0.0 + return np.power(x_unit_value / eedb_base_unit_value, exp) + + @staticmethod + def _formula_scale(*values): + uc_coef, x_unit_value, ref_cost = values + if ref_cost == 0: + return 0.0 + return uc_coef * x_unit_value / ref_cost + + @staticmethod + def cal_sup_str_S(*values): + D, H = values + return np.pi * np.power(D, 2) / 2 + np.pi * D * H + + @staticmethod + def calc_rej_th_P(*values): + rx_P, elec_P = values + return rx_P - elec_P + + @staticmethod + def formula_scale_flow_rate(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_fuel_cask_capacity(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_fuel_crane_capacity(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_ht_surface_S(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_pressurizer_mass(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_surface_S(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_surface_S_9_71886e_06(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def formula_scale_vessel_mass(*values): + return LPSRDirectCostFunc._formula_scale(*values) + + @staticmethod + def scale_law_admin_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_bldg_V(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_containment(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_control_dg_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_elec_P(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_electrical_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_flow_rate(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_fuel_storage(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_heat_rejection(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_piping_mass(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_plant_power(*values): + return LPSRDirectCostFunc._scale_law(*values) + + + @staticmethod + def scale_law_power(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_primary_aux_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_reactor_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_reactor_equipment(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_site_S(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_turbine_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_turbine_equipment(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_V_of_212_213_215_216_217(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_waste_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_wastewater_bldg(*values): + return LPSRDirectCostFunc._scale_law(*values) + + @staticmethod + def scale_law_yardwork(*values): + return LPSRDirectCostFunc._scale_law(*values) + + + @staticmethod + def sum_all(*values): + return sum(values) diff --git a/src/Algorithm/PWRABRFunc.py b/src/Algorithm/PWRABRFunc.py new file mode 100644 index 0000000..ff4ac21 --- /dev/null +++ b/src/Algorithm/PWRABRFunc.py @@ -0,0 +1,357 @@ +import numpy as np +from .Algorithm import Algorithm + + +ALGORITHM_ALIASES = { + 'dome_inside_diameter ': 'dome_inside_diameter', + 'building_internal _surface': 'building_internal_surface', + 'volume_of_the_structures ': 'volume_of_the_structures', +} + + +class PWRABRFunc(Algorithm): + """Python implementations of the ACCERT reference algorithms.""" + + def __init__(self, ind, alg_name, alg_for, alg_description, alg_formulation, alg_units, variables, constants): + super().__init__(ind, alg_name, alg_for, alg_description, alg_formulation, alg_units, variables, constants) + + def run(self, inputs: dict) -> float: + values = [inputs[var.strip()] for var in self.variables.split(",") if var.strip()] + return self._run_algorithm(self.name, values) + + def _run_algorithm(self, alg_name: str, values: list) -> float: + method = ALGORITHM_ALIASES.get(alg_name, alg_name.strip()) + try: + algorithm = getattr(self, method) + except AttributeError as exc: + raise ValueError(f"Algorithm {alg_name} not found") from exc + return algorithm(*values) + + @staticmethod + def sum_multi_accounts(*values): + return sum(values) + + @staticmethod + def sum_multi_weights(*values): + return sum(values) + + @staticmethod + def sum_multi_pumps(*values): + return sum(values) + + @staticmethod + def ptn_account(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def unit_weights(*values): + v_1, v_2 = values + return v_1*0.14+v_2*0.31 + + @staticmethod + def pump(*values): + v_1, v_2, v_3, v_4 = values + return v_1*np.power((v_2/v_3),v_4) + + @staticmethod + def containment(*values): + v_1, = values + return v_1/1000000 + + @staticmethod + def MWth_scale(*values): + v_1, v_2, v_3 = values + return v_1*np.power((v_2/3431),v_3) + + @staticmethod + def unit_volume(*values): + v_1, v_2 = values + return v_1*v_2/1000000 + + @staticmethod + def dev_factor_ref(*values): + v_1, v_2, v_3 = values + return v_1*v_2/v_3 + + @staticmethod + def tur_exp_n(*values): + v_1, = values + return (-0.0032) *v_1+ 1.2497 + + @staticmethod + def esc_1987(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def cost_by_weight(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def default_0(*values): + return 0 + + @staticmethod + def rpv_mass(*values): + v_1, v_2 = values + return v_1+v_2 + + @staticmethod + def unit_facility(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def MWe_scale(*values): + v_1, v_2, v_3 = values + return v_1*np.power((v_2/1144),v_3) + + @staticmethod + def unit_weights_plate(*values): + v_1, v_2 = values + return v_1*0.075+v_2*0.31 + + @staticmethod + def esc_1978(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def total_weight_prn(*values): + v_1, v_2, v_3, v_4 = values + return v_1*(v_2*0.075+v_3*0.31)*v_4 + + @staticmethod + def unit_weights_factor(*values): + v_1, v_2, v_3 = values + return (v_1*0.075+v_2*0.31)*v_3 + + @staticmethod + def factor_sum(*values): + v_1, v_2, v_3, v_4 = values + return v_1 * v_2 * (v_3 + v_4) + + @staticmethod + def complex(*values): + v_1, = values + return v_1 + + @staticmethod + def MWth_lmfbrscale(*values): + v_1, v_2, v_3 = values + return v_1*np.power((v_2/2287),v_3) + + @staticmethod + def MWreth_scale(*values): + v_1, v_2, v_3 = values + return v_1*np.power((v_2/3800),v_3) + + @staticmethod + def Sgsum(*values): + v_1, v_2, v_3 = values + return v_1*v_2*v_3 + + @staticmethod + def containmentsum(*values): + raise NotImplementedError("Algorithm containmentsum is not implemented") + + @staticmethod + def inside_rad(*values): + v_1, v_2 = values + return v_1-v_2 + + @staticmethod + def round_surface(*values): + v_1, = values + return np.pi*np.power(v_1,2) + + @staticmethod + def basemat_volume(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def wall_height(*values): + v_1, v_2 = values + return v_1-v_2 + + @staticmethod + def walls_surface(*values): + v_1, v_2, v_3 = values + return v_1*2*np.pi*(v_2+v_3) + + @staticmethod + def wall_volume(*values): + v_1, v_2, v_3 = values + return v_1*np.pi*(np.power(v_2,2)-np.power(v_3,2)) + + @staticmethod + def dome_inside_diameter(*values): + v_1, v_2 = values + return v_1-v_2 + + @staticmethod + def roof_surface(*values): + v_1, v_2 = values + return 0.5*4*np.pi*(np.power(v_1,2)+np.power(v_2,2)) + + @staticmethod + def roof_volume(*values): + v_1, v_2 = values + return 0.5*4/3*np.pi*(np.power(v_1,3)-np.power(v_2,3)) + + @staticmethod + def tot_internal_volume(*values): + v_1, v_2, v_3 = values + return (np.pi*np.power(v_1,2)*v_2)+(0.5*(4/3)*np.pi*np.power(v_3,3)) + + @staticmethod + def building_internal_volume(*values): + v_1, v_2 = values + return v_1*(1-v_2) + + @staticmethod + def building_internal_surface(*values): + v_1, v_2 = values + return 2*v_1/v_2 + + @staticmethod + def volume_of_the_structures(*values): + v_1, v_2, v_3, v_4 = values + return v_1+v_2+v_3+v_4 + + @staticmethod + def Inside_liner_surface(*values): + v_1, v_2, v_3 = values + return (np.power(v_1,2)*np.pi)+(v_2*2*np.pi*v_1)+(0.5*4*np.pi*np.power(v_3,2)) + + @staticmethod + def liner_Surface(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def painted_surface(*values): + v_1, v_2, v_3, v_4 = values + return v_1+(v_2*2*np.pi*v_3)+(0.5*4*np.pi*np.power(v_3,2))+v_4 + + @staticmethod + def Inflation_rate(*values): + v_1, = values + return (1.03 ** (1996 - 1987)) * v_1 + + @staticmethod + def unitcost_v_eedb_to_accert(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def unitcost_s_eedb_to_accert(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def tol_contaiment_ce_cost(*values): + v_1, v_2 = values + return v_1*v_2 + + @staticmethod + def sum_ce(*values): + return sum(values) + + @staticmethod + def Yardwork_cost(*values): + v_1, = values + return 81.5*v_1 + + @staticmethod + def Reactor_containment_mat_cost(*values): + v_1, = values + return 130.8*v_1 + + @staticmethod + def Reactor_containment_lab_cost(*values): + v_1, = values + return 915.6*v_1 + + @staticmethod + def Building_and_utilities_mat_cost(*values): + v_1, = values + return 6458.3*v_1 + + @staticmethod + def Building_and_utilities_lab_cost(*values): + v_1, v_2 = values + return 9843*v_1+10000*v_2 + + @staticmethod + def Reactor_startup_facility_cost(*values): + v_1, = values + return 7600*v_1+1100 + + @staticmethod + def Outer_vessel_mat_cost(*values): + v_1, = values + return 310000*v_1 + + @staticmethod + def Outer_vessel_lab_cost(*values): + v_1, = values + return 14080*v_1 + + @staticmethod + def Inner_vessel_cost(*values): + v_1, = values + return 310000*v_1 + + @staticmethod + def Reactivity_control_system_cost(*values): + v_1, v_2, v_3 = values + return 950*v_1+610000*(v_2+v_3) + + @staticmethod + def Reflector_cost(*values): + v_1, v_2, v_3 = values + return 310000*v_1+120000*v_2+1000000*v_3 + + @staticmethod + def Shield_cost(*values): + v_1, = values + return 949.9*v_1 + + @staticmethod + def Moderator_cost(*values): + v_1, = values + return 310000*v_1 + + @staticmethod + def cooling_heat_pipes_cost(*values): + v_1, v_2 = values + return 10000*v_1*(1-v_2) + + @staticmethod + def heat_exchangers_mat_cost(*values): + v_1, = values + return 50000*v_1 + + @staticmethod + def heat_exchangers_lab_cost(*values): + v_1, = values + return 530000*v_1 + + @staticmethod + def heat_exchangers_fac_cost(*values): + v_1, v_2 = values + return 120000*v_1*v_2 + + @staticmethod + def instrumentation_contorl_cost(*values): + v_1, = values + return 2000*v_1+6500000 + + @staticmethod + def turb_and_elec_sys_cost(*values): + v_1, v_2 = values + return 282553*v_1+213800000*(pow(v_2/1144, 0.4) + pow(v_1/3431, 0.8)) diff --git a/src/Algorithm/__init__.py b/src/Algorithm/__init__.py index 2635c99..896beb4 100644 --- a/src/Algorithm/__init__.py +++ b/src/Algorithm/__init__.py @@ -1,5 +1,8 @@ from .Algorithm import Algorithm from .FusionFunc import FusionFunc +from .PWRABRFunc import PWRABRFunc from .user_defined_func import user_defined_func from .Stellarator import Stellarator -from .LCOE import LCOE \ No newline at end of file +from .LCOE import LCOE +from .LPSRDirectCostFunc import LPSRDirectCostFunc +from .AP1000DirectCostFunc import AP1000DirectCostFunc diff --git a/src/Main.py b/src/Main.py index c07ad29..50b264e 100755 --- a/src/Main.py +++ b/src/Main.py @@ -1,22 +1,76 @@ -import mysql.connector +from sqlite_accert_connection import connect as accert_sqlite_connect +import atexit import os +import shutil +import tempfile from prettytable import PrettyTable import configparser import xml2obj from utility_accert import Utility_methods from Algorithm import Algorithm +from post_process_accert import AccertPostProcessor +from cost_escalation import TARGET_DOLLAR_YEAR, cpi_escalation_factor, model_cost_year import importlib import numpy as np import sys import pandas.io.sql as sql import pandas as pd import warnings +from datetime import datetime from typing import Union warnings.filterwarnings('ignore') PathLike = Union[str, bytes, os.PathLike] + +def _accert_sqlite_db_path() -> str: + """Return a run-local SQLite database path for ACCERT. + + Normal ACCERT runs update many rows while calculating results. To keep the + bundled reference database reusable, run against a temporary copy by default. + Set ACCERT_SQLITE_DB only when you intentionally want to use a specific + writable database file. + """ + db_env = os.environ.get("ACCERT_SQLITE_DB") + if db_env: + return db_env + + source_db = os.path.join(os.path.dirname(os.path.abspath(__file__)), "accertdb.sqlite") + fd, run_db = tempfile.mkstemp(prefix="accert_run_", suffix=".sqlite") + os.close(fd) + shutil.copy2(source_db, run_db) + atexit.register(lambda path=run_db: os.path.exists(path) and os.remove(path)) + return run_db + + class Accert: + NO_UNIT_VALUES = {"", "1", "n/a", "none", "null"} + UNIT_ALIASES = {"$": "dollar"} + UNIT_CONVERSIONS = { + ("KW", "MW"): 0.001, + ("KW", "GW"): 0.000001, + ("MW", "KW"): 1000, + ("MW", "GW"): 0.001, + ("GW", "KW"): 1000000, + ("GW", "MW"): 1000, + ("million", "dollar"): 1000000, + ("million", "thousand"): 1000, + ("thousand", "million"): 1 / 1000, + ("thousand", "dollar"): 1000, + ("dollar", "thousand"): 1 / 1000, + ("dollar", "million"): 1 / 1000000, + ("lbs", "kg"): 0.453592, + ("lbs", "ton"): 0.000453592, + ("kg", "lbs"): 2.20462, + ("kg", "ton"): 0.001, + ("ton", "lbs"): 2204.62, + ("ton", "kg"): 1000, + ("bar", "psi"): 14.5038, + ("bar", "psf"): 2088.54, + ("psi", "bar"): 0.068947572927646, + ("psi", "psf"): 144, + } + def __init__(self, input_path, accert_path): """ Initialize the Accert class. @@ -40,6 +94,9 @@ def __init__(self, input_path, accert_path): self.fac_tabl = None self.use_gncoa = False self.gncoa_map = 'gncoamapping' + self.output_timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + self.post_processor = AccertPostProcessor() + self.target_dollar_year = TARGET_DOLLAR_YEAR def setup_table_names(self,xml2obj): """Setup different table names in the database. @@ -79,6 +136,22 @@ def setup_table_names(self,xml2obj): self.alg_tabl = 'algorithm' self.esc_tabl = 'escalation' self.fac_tabl = 'facility' + elif "lpsr" in str(xml2obj.ref_model.value).lower(): + self.ref_model = 'lpsr' + self.acc_tabl = 'lpsr_account' + self.cel_tabl = 'lpsr_cost_element' + self.var_tabl = 'lpsr_variable' + self.alg_tabl = 'lpsr_algorithm' + self.esc_tabl = 'escalation' + self.fac_tabl = 'facility' + elif "ap1000" in str(xml2obj.ref_model.value).lower(): + self.ref_model = 'ap1000' + self.acc_tabl = 'ap1000_account' + self.cel_tabl = 'ap1000_cost_element' + self.var_tabl = 'ap1000_variable' + self.alg_tabl = 'ap1000_algorithm' + self.esc_tabl = 'escalation' + self.fac_tabl = 'facility' elif "lfr" in str(xml2obj.ref_model.value).lower(): self.ref_model = 'lfr' self.acc_tabl = 'lfr_account' @@ -142,8 +215,8 @@ def get_current_COAs(self, c, inp_id): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. inp_id : str COA ID @@ -154,18 +227,6 @@ def get_current_COAs(self, c, inp_id): coa_others List of a COA's other info, including ind, lft, rgt. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `get_current_COAs`(IN table_name VARCHAR(50), - # IN inp_id VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT code_of_account, - # ind FROM ', table_name, ' WHERE supaccount = ?'); - # PREPARE stmt FROM @stmt; - # SET @inp_id = inp_id; - # EXECUTE stmt USING @inp_id; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('get_current_COAs',(self.acc_tabl, inp_id)) for row in c.stored_results(): coa_info = row.fetchall() @@ -181,24 +242,12 @@ def update_account_before_insert(self, c, min_ind): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. min_ind : int Original index of the account next to the inserted COA. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_account_before_insert`(IN table_name VARCHAR(50), - # IN min_ind INT) - # BEGIN - # SET @stmt = CONCAT('UPDATE ', table_name, - # ' SET ind = ind + 1 WHERE ind > ?'); - # PREPARE stmt FROM @stmt; - # SET @min_ind = min_ind-1; - # EXECUTE stmt USING @max_ind; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('update_account_before_insert',(self.acc_tabl, min_ind-1)) return None @@ -210,8 +259,8 @@ def insert_new_COA(self, c, ind, supaccount, level, Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ind : int Index of the new inserted COA. supaccount : str @@ -229,45 +278,6 @@ def insert_new_COA(self, c, ind, supaccount, level, prn : str(float), optional Percentage of the total cost of new inserted COA. (Set to 0% by default) """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_new_COA`(IN table_name VARCHAR(50), - # IN ind INT, - # IN supaccount VARCHAR(50), - # IN level INT, - # IN lft INT, - # IN rgt INT, - # IN code_of_account VARCHAR(50), - # IN account_description VARCHAR(50), - # IN total_cost INT, - # IN unit VARCHAR(50), - # IN main_subaccounts VARCHAR(100), - # IN cost_elements VARCHAR(50), - # IN review_status VARCHAR(50), - # IN prn VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('INSERT INTO ', table_name, - # ' (ind, supaccount, level, lft, rgt, code_of_account, account_description, - # total_cost, unit, main_subaccounts, cost_elements, review_status, prn) - # VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); - # PREPARE stmt FROM @stmt; - # SET @ind = ind; - # SET @supaccount = supaccount; - # SET @level = level; - # SET @lft = lft; - # SET @rgt = rgt; - # SET @code_of_account = code_of_account; - # SET @account_description = account_description; - # SET @total_cost = total_cost; - # SET @unit = unit; - # SET @main_subaccounts = main_subaccounts; - # SET @cost_elements = cost_elements; - # SET @review_status = review_status; - # SET @prn = prn; - # EXECUTE stmt USING @ind, @supaccount, @level, @lft, @rgt, @code_of_account, @account_description, - # @total_cost, @unit, @main_subaccounts, @cost_elements, @review_status, @prn; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('insert_new_COA',(self.acc_tabl, ind, supaccount, level, code_of_account, account_description, total_cost, @@ -280,8 +290,8 @@ def insert_COA(self, c, sup_coa,user_added_coa,user_added_coa_desc, Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. sup_coa : str Super account of the new inserted COA. user_added_coa : str @@ -307,17 +317,6 @@ def insert_COA(self, c, sup_coa,user_added_coa,user_added_coa_desc, # TODO : return a new COA id with the COA list as input # new_COA = get_new_COA_id(current_COAs) - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `sup_coa_level`(IN table_name VARCHAR(50), - # IN supaccount VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT level FROM ', table_name, ' WHERE code_of_account = ?'); - # PREPARE stmt FROM @stmt; - # SET @supaccount = supaccount; - # EXECUTE stmt USING @supaccount; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('sup_coa_level',(self.acc_tabl, sup_coa)) @@ -344,8 +343,8 @@ def extract_variable_info_on_name(self, c,var_id): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_id : str Variable ID. @@ -355,17 +354,6 @@ def extract_variable_info_on_name(self, c,var_id): Variable info including variable name and variable unit """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_variable_info_on_name`(IN table_name VARCHAR(50), - # IN var_name VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT var_value, var_unit FROM ', table_name, ' WHERE var_name = ?'); - # PREPARE stmt FROM @stmt; - # SET @var_name = var_name; - # EXECUTE stmt USING @var_name; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; var_id = str(var_id).replace("'","").replace('"','') c.callproc('extract_variable_info_on_name',(self.var_tabl, var_id)) for row in c.stored_results(): @@ -379,8 +367,8 @@ def extract_super_val(self, c,var_id): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_id : str Variable ID. @@ -389,17 +377,6 @@ def extract_super_val(self, c,var_id): sup_val : List[str] Super variable info including the name of the super variable. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_super_val`(IN table_name VARCHAR(50), - # IN var_name VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT v_linked FROM ', table_name, ' WHERE var_name = ?'); - # PREPARE stmt FROM @stmt; - # SET @var_name = var_name; - # EXECUTE stmt USING @var_name; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('extract_super_val',(self.var_tabl, var_id)) for row in c.stored_results(): results = row.fetchone() @@ -416,8 +393,8 @@ def update_input_variable(self, c,var_id,u_i_var_value, Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_id : str Variable ID. u_i_var_value : float @@ -460,8 +437,8 @@ def update_variable_info_on_name(self, c,var_id,var_value,var_unit): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_id : str Variable ID. var_value : float @@ -469,22 +446,6 @@ def update_variable_info_on_name(self, c,var_id,var_value,var_unit): var_unit : str Variable unit. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_variable_info_on_name`(IN table_name VARCHAR(50), - # IN `u_i_var_name` VARCHAR(50), IN `value` FLOAT, IN `unit` VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('UPDATE ', table_name, ' SET var_value = ?, - # var_unit = ?, - # user_input = ? WHERE var_name = ?'); - # PREPARE stmt FROM @stmt; - # SET @var_value = value; - # SET @var_unit = unit; - # SET @user_input = 1; - # SET @var_name = u_i_var_name; - # EXECUTE stmt USING @var_value, @var_unit, @user_input, @var_name; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; args = (self.var_tabl, var_id, float(var_value), var_unit) c.callproc('update_variable_info_on_name', args) return None @@ -495,37 +456,24 @@ def update_super_variable(self, c,var_id): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_id : str Variable ID. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_super_variable`(IN var_table_name VARCHAR(50), - # IN alg_table_name VARCHAR(50), IN `u_i_var_name` VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT var.ind, var.var_name, var.var_value, - # var.var_alg, var.var_need, alg.ind, alg.alg_python, - # alg.alg_formulation, alg.alg_units, var.var_unit - # FROM ', var_table_name, ' as var JOIN ', alg_table_name, ' as alg - # ON var.var_alg=alg.alg_name - # WHERE var.var_name=?'); - # PREPARE stmt FROM @stmt; - # SET @var_name = u_i_var_name; - # EXECUTE stmt USING @var_name; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; + var_id = str(var_id).strip() c.callproc('update_super_variable',(self.var_tabl, self.alg_tabl, var_id)) for row in c.stored_results(): result = row.fetchone() + if result is None: + return None ### results is a tuple sup_var_name = result[1] org_var_value = result[2] alg_name = result[3] var_name_lst = [x.strip() for x in result[4].split(',')] alg_no = result[5] - alg = result[6] + alg_py = result[6] alg_form = result[7] alg_unit = result[8] sup_var_unit = result[9] @@ -537,12 +485,12 @@ def update_super_variable(self, c,var_id): # var_value_lst.append(get_var_value_by_name(c, var_name)) variables['v_{}'.format(var_ind+1)] = self.get_var_value_by_name(c, var_name) print('[Updating] Sup Variable {}, running algorithm: [{}], \n[Updating] with formulation: {}'.format(sup_var_name, alg_name, alg_form)) - alg_value = self.run_pre_alg(alg, **variables) + alg_value = self.update_account_value(alg_py, alg_name, variables) else: for var_ind, var_name in enumerate(var_name_lst): variables[var_name] = self.get_var_value_by_name(c, var_name) print('[Updating] Sup Variable {}, running algorithm: [{}], \n[Updating] with formulation: {}'.format(sup_var_name, alg_name, alg_form)) - alg_value= self.update_account_value(alg, alg_name, variables) + alg_value= self.update_account_value(alg_py, alg_name, variables) self.update_input_variable(c,sup_var_name,alg_value,sup_var_unit,quite = True) if alg_unit == '1': alg_unit='' @@ -559,8 +507,8 @@ def extract_total_cost_on_name(self, c,tc_id): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. tc_id : str Total cost ID. """ @@ -575,19 +523,7 @@ def extract_total_cost_on_name(self, c,tc_id): # FROM account # WHERE code_of_account = "{}" ; # """.format(tc_id)) - # Stored procedure - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_total_cost_on_name`(IN tc_id VARCHAR(50), - # IN table_name VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT code_of_account, account_description, total_cost, unit - # FROM ', table_name, ' WHERE code_of_account = ?'); - # PREPARE stmt FROM @stmt; - # SET @tc_id = tc_id; - # EXECUTE stmt USING @tc_id; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; + # procedure tc_id = str(tc_id).replace("'","").replace('"','') # remove single quotes or double quotes from the string # c.execute("""SELECT code_of_account, account_description, total_cost @@ -605,8 +541,8 @@ def cal_LCOE(self, c, ut, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility_methods Utility_methods class instantiates objects that can perform utility methods. accert : Accert @@ -627,6 +563,15 @@ def cal_LCOE(self, c, ut, accert): else: pass + def _normalize_unit(self, unit): + if unit is None: + return "" + unit = str(unit).strip() + return self.UNIT_ALIASES.get(unit, unit) + + def _has_unit(self, unit): + return self._normalize_unit(unit).lower() not in self.NO_UNIT_VALUES + def check_unit_conversion(self, org_unit, new_unit): """ Checks if unit conversion is needed. @@ -638,13 +583,13 @@ def check_unit_conversion(self, org_unit, new_unit): new_unit : str New unit. """ + org_unit = self._normalize_unit(org_unit) + new_unit = self._normalize_unit(new_unit) if org_unit == new_unit: return False - elif org_unit == "N/A" or org_unit == "none" or org_unit == "None": - print('[Note] Original unit is not available, no conversion needed') + if not self._has_unit(org_unit) or not self._has_unit(new_unit): return False - else: - return True + return True def convert_unit(self, current_value, current_unit, to_unit): """ @@ -666,7 +611,7 @@ def convert_unit(self, current_value, current_unit, to_unit): """ scale = float(self.convert_unit_scale(current_unit,to_unit)) to_value = current_value * scale - if to_unit != 'dollar': + if self._normalize_unit(to_unit) != 'dollar': print("[Unit Changed] Converted input from {} {} to {} {}".format(current_value, current_unit,to_value,to_unit)) return to_value @@ -685,66 +630,14 @@ def convert_unit_scale(self, current_unit, to_unit): ------- scale : float """ + current_unit = self._normalize_unit(current_unit) + to_unit = self._normalize_unit(to_unit) if current_unit == to_unit: return 1 - elif current_unit == 'KW': - if to_unit == 'MW': - return 0.001 - elif to_unit == 'GW': - return 0.000001 - elif current_unit == 'MW': - if to_unit == 'KW': - return 1000 - elif to_unit == 'GW': - return 0.001 - elif current_unit == 'GW': - if to_unit == 'KW': - return 1000000 - elif to_unit == 'MW': - return 1000 - elif current_unit == 'million': - if to_unit == 'dollar': - return 1000000 - elif to_unit == 'thousand': - return 1000 - elif current_unit == 'thousand': - if to_unit == 'million': - return 1/1000 - elif to_unit == 'dollar': - return 1000 - elif current_unit == 'dollar': - if to_unit == 'thousand': - return 1/1000 - elif to_unit == 'million': - return 1/1000000 - elif current_unit == 'lbs': - if to_unit == 'kg': - return 0.453592 - elif to_unit == 'ton': - return 0.000453592 - elif current_unit == 'kg': - if to_unit == 'lbs': - return 2.20462 - elif to_unit == 'ton': - return 0.001 - elif current_unit == 'ton': - if to_unit == 'lbs': - return 2204.62 - elif to_unit == 'kg': - return 1000 - elif current_unit == 'bar': - if to_unit == 'psi': - return 14.5038 - elif to_unit == 'psf': - return 2088.54 - elif current_unit == 'psi': - if to_unit == 'bar': - return 0.068947572927646 - elif to_unit == 'psf': - return 144 - else: - print('Cannot convert unit from ',current_unit,'to',to_unit) - raise ValueError + try: + return self.UNIT_CONVERSIONS[(current_unit, to_unit)] + except KeyError as exc: + raise ValueError(f"Cannot convert unit from {current_unit} to {to_unit}") from exc def update_total_cost(self, c,tc_id, u_i_tc_value, u_i_tc_unit): """ @@ -752,8 +645,8 @@ def update_total_cost(self, c,tc_id, u_i_tc_value, u_i_tc_unit): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. tc_id : str COA of the total cost. u_i_tc_value : float @@ -784,8 +677,8 @@ def update_total_cost_on_name(self, c, tc_id, u_i_tc_value): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. tc_id : str COA of the total cost. u_i_tc_value : float @@ -801,22 +694,6 @@ def update_total_cost_on_name(self, c, tc_id, u_i_tc_value): ## Statement is not working as expected when passing in a string in a dictionary ## but it works when passing in the string directly in .format() method - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_total_cost_on_name`(IN table_name VARCHAR(50), - # IN `tc_id` VARCHAR(50), - # IN `u_i_tc_value` FLOAT, - # IN `u_i_tc_unit` VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('UPDATE ', table_name, ' SET total_cost = ?, unit = ?, - # review_status = "User Input" WHERE code_of_account = ?'); - # PREPARE stmt FROM @stmt; - # SET @tc_id = tc_id; - # SET @u_i_tc_value = u_i_tc_value; - # SET @u_i_tc_unit = u_i_tc_unit; - # EXECUTE stmt USING @u_i_tc_value, @u_i_tc_unit, @tc_id; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; u_i_tc_value= float(u_i_tc_value) c.callproc('update_total_cost_on_name',(self.acc_tabl,tc_id,u_i_tc_value)) @@ -828,8 +705,8 @@ def get_var_value_by_name(self, c, var_name): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_name : str Variable name. @@ -838,17 +715,6 @@ def get_var_value_by_name(self, c, var_name): var_value : str Variable value. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `get_var_value_by_name`(IN table_name VARCHAR(50), - # IN `var_name` VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT var_value FROM ', table_name, ' WHERE var_name = ?'); - # PREPARE stmt FROM @stmt; - # SET @var_name = var_name; - # EXECUTE stmt USING @var_name; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('get_var_value_by_name',(self.var_tabl,var_name)) for row in c.stored_results(): var_value = row.fetchone()[0] @@ -856,7 +722,7 @@ def get_var_value_by_name(self, c, var_name): def run_pre_alg(self, alg, **kwargs): """ - Runs pre-algorithms. + Runs a reference algorithm without evaluating database text. Parameters ---------- @@ -870,31 +736,20 @@ def run_pre_alg(self, alg, **kwargs): alg_value : float Algorithm value """ - # NOTE: comments below is the original note from Patrick, - # I would want to keep the original note for future reference - # add the variables in kwargs to the local - # function namespace - # (equivalent to c1 = 10; c2 = 10; c3 = 40.5) - locals().update(kwargs) - # report back the user algorithm - # evaluate the algorithm - alg_value = eval(alg) - return alg_value + if alg == 'sum(kwargs.values())': + return sum(kwargs.values()) + return self.update_account_value('PWRABRFunc', alg, kwargs) def update_account_value(self, alg_py, alg_name, variables): """ - Calls the specified algorithm with the given variables. Only called for fusion model now. - For PWR, ABR,LFR, HEATPIPE the alg_py is in the form of a string that will be - evaluated in the Algorithm table stored in database. For Fusion, the algorithm is in - the form of a python file name that stored in Algorithm folder. For example, in - Fusion model, the alg_py value is 'FusionFunc' then it should look for FusionFunc.py - in the Algorithm folder. + Calls the specified algorithm with the given variables. The algorithm + module name points to a Python file in the Algorithm folder. Parameters ---------- alg_py : str - Algorithm in python. + Algorithm Python module name. alg_name : str Algorithm name.my variables : dict @@ -907,13 +762,8 @@ def update_account_value(self, alg_py, alg_name, variables): """ - # Dynamically import the module module = importlib.import_module(f'Algorithm.{alg_py}') - - # Get the class from the module class_ = getattr(module, alg_py) - - # Create an instance of the class algorithm_instance = class_( ind=1, # Dummy value, may be needed for future reference alg_name=alg_name, @@ -925,7 +775,6 @@ def update_account_value(self, alg_py, alg_name, variables): constants='' # Dummy value, replace as needed ) - # Run the algorithm and get the result result = algorithm_instance.run(variables) return result @@ -935,8 +784,8 @@ def update_cost_element_on_name(self, c, ce_name, alg_value): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ce_name : str Cost element name starting with the COA of the account. alg_value : float @@ -946,38 +795,8 @@ def update_cost_element_on_name(self, c, ce_name, alg_value): ------- None """ - # Turn off safe update mode - # keep the original note for future reference - c.execute("""SET SQL_SAFE_UPDATES = 0;""") - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_cost_element_on_name`( - # IN table_name VARCHAR(50), - # IN ce_name VARCHAR(50), - # IN alg_value DECIMAL(20,5) - # ) - # BEGIN - # -- Disable safe updates for this operation - # SET SQL_SAFE_UPDATES = 0; - - # -- Build the dynamic SQL query - # SET @stmt = CONCAT('UPDATE ', table_name, - # ' SET cost_2017 = ', alg_value, - # ', updated = 1 WHERE cost_element = ''', ce_name, ''''); - - # -- Prepare and execute the dynamic statement - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - - # -- Deallocate the prepared statement - # DEALLOCATE PREPARE stmt; - - # END;$$ - # DELIMITER ; - - # NOTE, float is used for alg_value, but it can be changed to DECIMAL(20,15) in the - # stored procedure, since float in python is equivalent to double in MySQL, tested - # for several values but using float in stored procedure is not recommended since - # the rolled up value may not be accurate. + # NOTE, float is used for alg_value. The rolled up value may not be + # accurate if the procedure needs higher decimal precision. c.callproc('update_cost_element_on_name',(self.cel_tabl,ce_name,float(alg_value))) return None @@ -988,43 +807,21 @@ def update_new_cost_elements(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Updating cost elements '.center(100,'=')) print('\n') c.callproc('update_new_cost_elements',(self.cel_tabl,self.var_tabl,self.alg_tabl)) for row in c.stored_results(): results = row.fetchall() - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_new_cost_elements`(IN cel_tabl_name VARCHAR(50), - # IN var_tabl_name VARCHAR(50), - # IN alg_tabl_name VARCHAR(50)) - # BEGIN - # SET SQL_SAFE_UPDATES = 0; - # SET @stmt = CONCAT("SELECT ce.ind, ce.cost_element, - # ce.cost_2017, ce.alg_name, - # ce.variables, ce.algno, - # alg.alg_python, alg.alg_formulation, alg.alg_units - # FROM ", cel_tabl_name, " AS ce - # JOIN ", alg_tabl_name, " AS alg ON ce.alg_name = alg.alg_name - # WHERE EXISTS ( - # SELECT 1 - # FROM ", var_tabl_name, " AS va - # WHERE va.user_input = 1 - # AND FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0);"); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; for row in results: ce_name = row[1] org_ce_value = row[2] alg_name = row[3] var_name_lst = [x.strip() for x in row[4].split(',')] alg_no = row[5] - alg = row[6] + alg_py = row[6] alg_form = row[7] alg_unit = row[8] # NOTE cost element unit is always in USD dollar @@ -1036,7 +833,7 @@ def update_new_cost_elements(self, c): # var_value_lst.append(get_var_value_by_name(c, var_name)) variables['v_{}'.format(var_ind+1)] = self.get_var_value_by_name(c, var_name) print('[Updating] Cost element [{}], running algorithm: [{}], \n[Updating] with formulation: {}'.format(ce_name, alg_name, alg_form)) - alg_value = self.run_pre_alg(alg, **variables) + alg_value = self.update_account_value(alg_py, alg_name, variables) unit_convert = self.check_unit_conversion('dollar',alg_unit) if unit_convert: alg_value = self.convert_unit(alg_value,alg_unit,'dollar') @@ -1052,34 +849,13 @@ def update_new_accounts(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ # for fusion or user defined table, there is no cost_element table # so the update_new_cost_elements will not be executed # instead, the update_new_accounts will be executed print(' Updating accounts '.center(100,'=')) - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_new_accounts`(IN acc_tabl_name VARCHAR(50), - # IN var_tabl_name VARCHAR(50), - # IN alg_tabl_name VARCHAR(50)) - # BEGIN - # SET SQL_SAFE_UPDATES = 0; - # SET @stmt = CONCAT("SELECT ac.ind, ac.code_of_account, - # ac.total_cost, ac.alg_name, - # ac.variables, - # alg.alg_python, alg.alg_formulation, alg.alg_units - # FROM ", acc_tabl_name, " AS ac - # JOIN ", alg_tabl_name, " AS alg ON ac.alg_name = alg.alg_name - # WHERE EXISTS ( - # SELECT 1 - # FROM ", var_tabl_name, " AS va - # WHERE va.user_input = 1 - # AND FIND_IN_SET(va.var_name, REPLACE(ac.variables, ' ', '')) > 0);"); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ c.callproc('update_new_accounts',(self.acc_tabl,self.var_tabl,self.alg_tabl)) for row in c.stored_results(): results = row.fetchall() @@ -1105,6 +881,7 @@ def update_new_accounts(self, c): alg_value = self.convert_unit(alg_value,alg_unit,'dollar') self.update_total_cost(c, acc_name, alg_value, 'dollar') print(' ') + return None def update_account_table_by_cost_elements(self, c): """ @@ -1112,99 +889,53 @@ def update_account_table_by_cost_elements(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Updating account table '.center(100,'=')) print('\n') print('[Updating] Updating account table by cost elements') - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `update_account_table_by_cost_elements`(IN acc_tabl_name varchar(50), - # IN cel_tabl_name varchar(50)) - # BEGIN - # SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',', - # '(SELECT ', acc_tabl_name, '.code_of_account, - # ce.total_cost as cost, - # ce.updated as updated, - # ', acc_tabl_name, '.unit - # FROM ', acc_tabl_name, ' - # JOIN (SELECT account, - # sum(cost_2017) as total_cost, - # sum(updated) as updated - # FROM ', cel_tabl_name, ' - # GROUP BY ', cel_tabl_name, '.account ) as ce - # on ', acc_tabl_name, '.code_of_account = ce.account - # ORDER BY ', acc_tabl_name, '.ind) as updated_account - # SET ', acc_tabl_name, '.total_cost = updated_account.cost, - # review_status = \'Ready for Review\' - # WHERE updated_account.updated > 0 - # and ', acc_tabl_name, '.code_of_account = updated_account.code_of_account;'); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('update_account_table_by_cost_elements', (self.acc_tabl, self.cel_tabl)) print('[Updated] Account table updated from cost elements\n') return None - def roll_up_cost_elements(self, c): + def roll_up_cost_elements(self, c, passes=1): """ Rolls up cost elements from level 3 to 0 for pwr. Only rolls up level 3 to 2 for ABR. Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Roll up cost elements '.center(100,'=')) print('\n') - self.roll_up_cost_elements_by_level(c,3,2) - if self.ref_model=="pwr12-be": - self.roll_up_cost_elements_by_level(c,2,1) - self.roll_up_cost_elements_by_level(c,1,0) + for pass_no in range(passes): + if passes > 1: + print('[Updating] Roll up cost element hierarchy pass {} of {}'.format(pass_no + 1, passes)) + self.roll_up_cost_elements_by_level(c,3,2, quiet=passes > 1) + if self.ref_model=="pwr12-be": + self.roll_up_cost_elements_by_level(c,2,1) + self.roll_up_cost_elements_by_level(c,1,0) print('[Updated] Cost elements rolled up\n') return None - def roll_up_cost_elements_by_level(self, c,from_level,to_level): + def roll_up_cost_elements_by_level(self, c,from_level,to_level, quiet=False): """ Rolls up cost elements from an input lower level to a higher level. Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. from_level : int Roll up from a given level. to_level : int Roll up to a given level. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `roll_up_cost_elements_by_level`(IN table_name varchar(50), - # IN from_level int, IN to_level int) - # BEGIN - # SET @stmt = CONCAT('UPDATE ', table_name, ',', - # '(SELECT c',to_level,'.cost_element as ce',to_level,'_ce, ', - # 'sum(uc',from_level,'.cost_2017) as c',to_level,'_cal_total_cost ', - # 'FROM ', table_name, ' as uc',from_level, - # ' JOIN ', table_name, ' as c',to_level, - # ' on uc',from_level,'.sup_cost_ele=c',to_level,'.cost_element ', - # 'join account as ac',to_level, - # ' on c',to_level,'.account = ac',to_level,'.code_of_account ', - # 'where ac',to_level,'.level=',to_level, - # ' group by c',to_level,'.cost_element) as updated_ce',to_level, - # ' SET ', - # table_name,'.cost_2017 = updated_ce',to_level,'.c',to_level,'_cal_total_cost,', - # table_name,'.updated = 1 ', - # 'WHERE ', - # table_name,'.cost_element = updated_ce',to_level,'.ce',to_level,'_ce'); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('roll_up_cost_elements_by_level',(self.cel_tabl,from_level,to_level)) - print('[Updating] Roll up cost elements from level {} to level {}'.format(from_level,to_level)) + if not quiet: + print('[Updating] Roll up cost elements from level {} to level {}'.format(from_level,to_level)) return None def roll_up_account_table(self, c, from_level=3, to_level=0, gncoa=False): @@ -1213,8 +944,8 @@ def roll_up_account_table(self, c, from_level=3, to_level=0, gncoa=False): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Rolling up account table '.center(100,'=')) print('\n') @@ -1229,8 +960,8 @@ def roll_up_account_table_by_level(self, c, from_level, to_level, gncoa=False): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. from_level : int Roll up from a given level. to_level : int @@ -1250,8 +981,8 @@ def roll_up_account_table_GNCOA(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Rolling up account table by GNCOA '.center(100,'=')) # remove 220A first @@ -1266,8 +997,8 @@ def sum_cost_elements_2C(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ def fetch_sum_and_update(cost_type, proc_name): @@ -1281,7 +1012,7 @@ def fetch_sum_and_update(cost_type, proc_name): proc_name : str Procedure name. """ - # Call stored procedure and fetch results + # Call procedure and fetch results print(f'[Updating] Summing cost element for {cost_type}') c.callproc(proc_name, (self.cel_tabl, self.acc_tabl)) for row in c.stored_results(): @@ -1311,8 +1042,8 @@ def roll_up_lmt_account_2C(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Rolling up account table '.center(100,'=')) @@ -1329,8 +1060,8 @@ def roll_up_lmt_direct_cost(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ c.callproc('roll_up_lmt_direct_cost',(self.acc_tabl,)) print('[Updated] Account table rolled up for direct cost.\n') @@ -1342,13 +1073,13 @@ def cal_direct_cost_elements(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ c.callproc('cal_direct_cost_elements', (self.acc_tabl, self.cel_tabl)) # After the procedure execution, fetch the OUT parameters from the cursor - # The stored procedure call doesn't return results, but the OUT parameters are updated + # The procedure call doesn't return results, but the OUT parameters are updated for row in c.stored_results(): results = row.fetchall() fac, lab, mat = results[0] @@ -1360,8 +1091,8 @@ def roll_up_lmt_account_table(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements """ ### only update account 222 and account 2C self.roll_up_account_table(c, from_level=3, to_level=2) @@ -1392,15 +1123,14 @@ def execute_accert(self, c, ut): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : UserTable UserTable class instantiates objects that can execute user input statements. """ self.print_logo() accert = self.load_obj(input_path, accert_path).accert - c.execute("USE accert_db") print(' Reading user input '.center(100, '=')) print('\n') @@ -1415,6 +1145,7 @@ def execute_accert(self, c, ut): self.finalize_process(c, ut, accert) self.generate_results(c, ut, accert) self.cal_LCOE(c, ut, accert) + conn.commit() conn.close() sys.stdout.close() sys.stdout = stdoutOrigin @@ -1425,8 +1156,8 @@ def process_reference_model(self, c, ut, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility class Utility class for processing user input. accert : ACCERT @@ -1436,6 +1167,11 @@ def process_reference_model(self, c, ut, accert): print('[USER_INPUT]', 'Reference model is', str(accert.ref_model.value), '\n') self.setup_table_names(accert) ut.setup_table_names(c, Accert) + ut.setup_cost_escalation( + model_cost_year(self.ref_model), + self.target_dollar_year, + self._cost_escalation_factor(), + ) # if ref.model is not fusion or user defined then process cost elements: if self.cel_tabl: ut.print_user_request_parameter(c) @@ -1448,22 +1184,91 @@ def process_power_inputs(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ - if accert.power: - for inp in accert.power: - print('[USER_INPUT]', str(inp.id), 'power is', str(inp.value.value), str(inp.unit.value), '\n') - var_id = 'mwth' if str(inp.id) == 'Thermal' else 'mwe' if str(inp.id) == 'Electric' else None + power_inputs = self._power_inputs_by_type(accert) + if self.ref_model in ("lpsr", "ap1000"): + power_inputs = self._apply_direct_default_power_inputs(power_inputs) + + if power_inputs: + changed_vars = [] + for power_type, power_input in power_inputs.items(): + var_id, var_unit = self._power_variable_for_model(power_type) if var_id: - self.update_variable_info_on_name(c, var_id, str(inp.value.value), str(inp.unit.value)) - self.process_super_values(c, var_id) + if power_input.get("is_default"): + continue + print('[USER_INPUT]', power_type, 'power is', power_input["value"], power_input["input_unit"], '\n') + if not self._variable_value_changed(c, var_id, power_input["value"]): + print('[Unchanged] {} is the same as the reference value; dependent variables will not be recalculated\n'.format(var_id)) + continue + self.update_variable_info_on_name(c, var_id, power_input["value"], var_unit) + changed_vars.append(var_id) + if changed_vars: + self.process_super_values(c, changed_vars) else: # warning - print('WARNING: No power input found in the user input file\n') + print('WARNING: No power input found in the user input file\n') + + def _power_inputs_by_type(self, accert): + power_inputs = {} + if accert.power: + for inp in accert.power: + power_type = str(inp.id) + power_inputs[power_type] = { + "value": float(str(inp.value.value)), + "input_unit": str(inp.unit.value), + "is_default": False, + } + return power_inputs + + def _apply_direct_default_power_inputs(self, power_inputs): + if self.ref_model == "ap1000": + defaults = { + "Thermal": {"value": 6800.0, "input_unit": "MW", "is_default": True}, + "Electric": {"value": 2234.0, "input_unit": "MW", "is_default": True}, + } + else: + defaults = { + "Thermal": {"value": 3400.0, "input_unit": "MW", "is_default": True}, + "Electric": {"value": 1117.0, "input_unit": "MW", "is_default": True}, + } + resolved = dict(power_inputs) + for power_type, default in defaults.items(): + if power_type not in resolved: + resolved[power_type] = default + print('[Default] {} {} power was not provided; using {} {}'.format( + self.ref_model.upper(), + power_type, + default["value"], + default["input_unit"], + )) + return resolved + + def _power_variable_for_model(self, power_type): + if self.ref_model in ("lpsr", "ap1000"): + if power_type == "Thermal": + return "rx_P", "MWt" + if power_type == "Electric": + return "elec_P", "MWe" + return None, None + if power_type == "Thermal": + return "mwth", "MW" + if power_type == "Electric": + return "mwe", "MW" + return None, None + + def _variable_value_changed(self, c, var_id, new_value): + c.execute("""SELECT var_value + FROM {} + WHERE var_name = ?;""".format(self.var_tabl), (var_id,)) + row = c.fetchone() + if row is None or row[0] is None: + return True + return abs(float(row[0]) - float(new_value)) > 1e-9 def process_variables(self, c, accert): """ @@ -1471,8 +1276,8 @@ def process_variables(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ @@ -1490,26 +1295,32 @@ def process_super_values(self, c, var_id): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_id : str Variable ID. """ - var_id = str(var_id).replace('"', '').replace("'", "") - sup_val_lst = self.extract_super_val(c, var_id) - if sup_val_lst: - sup_val_lst = sup_val_lst.split(',') - # also remove the space after the comma - sup_val_lst = [x.strip() for x in sup_val_lst] + var_ids = var_id if isinstance(var_id, (list, tuple, set)) else [var_id] + sup_val_lst = [] + for single_var_id in var_ids: + single_var_id = str(single_var_id).replace('"', '').replace("'", "") + linked = self.extract_super_val(c, single_var_id) + if linked: + sup_val_lst.extend([x.strip() for x in linked.split(',')]) + sup_val_lst = list(dict.fromkeys([x for x in sup_val_lst if x])) if sup_val_lst: - print('[Updating] Other variable(s) should be updated based on {} are {} \n'.format(var_id, sup_val_lst)) + print('[Updating] Other variable(s) should be updated based on {} are {} \n'.format(var_ids, sup_val_lst)) + processed = set() while sup_val_lst: sup_val = sup_val_lst.pop(0) - if sup_val: + if sup_val and sup_val not in processed: + processed.add(sup_val) self.update_super_variable(c, sup_val) new_sup_val = self.extract_super_val(c, sup_val) if new_sup_val: - sup_val_lst.extend(new_sup_val.split(',')) + for linked in [x.strip() for x in new_sup_val.split(',') if x.strip()]: + if linked not in processed and linked not in sup_val_lst: + sup_val_lst.append(linked) def process_COA(self, c, accert): """ @@ -1518,8 +1329,8 @@ def process_COA(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ @@ -1534,8 +1345,8 @@ def process_level_accounts(self, c, level_accounts, accert, parent_id=None): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. level_accounts : list List of level accounts. accert : ACCERT @@ -1584,8 +1395,8 @@ def process_ce(self, c, account): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. account : Account Account class instantiates objects that can parse the account. """ @@ -1609,8 +1420,8 @@ def process_var(self, c, var_inp): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. var_inp : Variable """ @@ -1626,8 +1437,8 @@ def process_alg(self, c, alg_inp): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. alg_inp : Algorithm """ @@ -1652,8 +1463,8 @@ def check_and_process_total_cost(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ @@ -1668,8 +1479,8 @@ def check_total_cost_changed(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ @@ -1686,8 +1497,8 @@ def check_total_cost_accounts(self, c, level_accounts, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. level_accounts : list List of level accounts. accert : ACCERT @@ -1709,8 +1520,8 @@ def process_total_cost(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ @@ -1726,8 +1537,8 @@ def process_total_cost_accounts(self, c, level_accounts, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. level_accounts : list List of level accounts. accert : ACCERT @@ -1775,8 +1586,8 @@ def finalize_process(self, c, ut, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility class Utility class for processing user input. accert : ACCERT @@ -1791,7 +1602,8 @@ def finalize_process(self, c, ut, accert): ut.extract_affected_cost_elements(c) self.update_new_cost_elements(c) ut.print_updated_cost_elements(c) - self.roll_up_cost_elements(c) + if self.ref_model not in ("lpsr", "ap1000"): + self.roll_up_cost_elements(c) else: # if the model is fusion or user assigned model without cost elements # then the update_new_accounts will be executed otherwise the update_new_cost_elements should be executed @@ -1804,8 +1616,8 @@ def generate_results(self, c, ut, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility class Utility class for processing user input. accert : ACCERT @@ -1815,18 +1627,63 @@ def generate_results(self, c, ut, accert): if model: # generate results for the models in the future we can add more models self._generate_common_results(c, ut, accert, model) + self.post_process_results(c, accert) if self.cel_tabl: self.generate_results_table_with_cost_elements(c, conn, level=3) self.generate_results_table(c, conn, level=3) + def post_process_results(self, c, accert): + if not self._post_process_occ_enabled(accert): + return None + + results = self.post_processor.calculate_occ( + c, + self.acc_tabl, + self._electric_power_mw(c), + self.ref_model, + self._cost_escalation_factor(), + ) + self.post_processor.print_occ_summary(results) + self.post_processor.write_occ_csv(results, self.ref_model, self.output_timestamp) + return results.as_dict() + + def _post_process_occ_enabled(self, accert): + post_process = getattr(accert, "post_process", None) + if not post_process: + return False + occ = getattr(post_process, "occ", None) + if occ is None: + return True + return str(occ.value).lower() == "true" + + def calculate_occ_post_process(self, c): + return self.post_processor.calculate_occ( + c, + self.acc_tabl, + self._electric_power_mw(c), + self.ref_model, + self._cost_escalation_factor(), + ).as_dict() + + def _electric_power_mw(self, c): + var_name = "elec_P" if self.ref_model in ("lpsr", "ap1000") else "mwe" + try: + value = self.get_var_value_by_name(c, var_name) + except Exception: + return None + return float(value) if value is not None else None + + def _cost_escalation_factor(self): + return cpi_escalation_factor(model_cost_year(self.ref_model), self.target_dollar_year) + def _generate_common_results(self, c, ut, accert, model): """ Generates the common results for the models. Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility class Utility class for processing user input. accert : ACCERT @@ -1839,6 +1696,8 @@ def _generate_common_results(self, c, ut, accert, model): fac, lab, mat = self.cal_direct_cost_elements(c) all_flag = model != "lfr" self._print_results(ut, c, fac, lab, mat, all_flag) + elif model in ("lpsr", "ap1000"): + self._lpsr_processing(c, ut, accert) elif model == "pwr12-be": self._pwr12be_processing(c, ut, accert) else: @@ -1850,8 +1709,8 @@ def _common_cost_processing(self, c, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. accert : ACCERT xml2obj class instantiates objects that can parse the ACCERT XML file. """ @@ -1869,8 +1728,8 @@ def _print_results(self, ut, c, fac, lab, mat, all_flag): ---------- ut : Utility class Utility class for processing user input. - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. fac : float Factory cost. lab : float @@ -1881,6 +1740,7 @@ def _print_results(self, ut, c, fac, lab, mat, all_flag): Flag to print all accounts. """ print(' Generating results table for review '.center(100, '=')) + self._print_cost_basis_note() print('\n') if self.use_gncoa: ut.print_leveled_accounts_gncoa(c, all=False, cost_unit='million', level=3) @@ -1893,8 +1753,8 @@ def _pwr12be_processing(self, c, ut, accert): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility class Utility class for processing user input. accert : ACCERT @@ -1905,22 +1765,34 @@ def _pwr12be_processing(self, c, ut, accert): if self.use_gncoa: self.roll_up_account_table_GNCOA(c) print(' Generating results table for review '.center(100, '=')) + self._print_cost_basis_note() print('\n') ut.print_leveled_accounts_gncoa(c, all=False, cost_unit='million', level=3) else: self.roll_up_account_table(c, from_level=3, to_level=0) print(' Generating results table for review '.center(100, '=')) + self._print_cost_basis_note() print('\n') ut.print_leveled_accounts(c, all=True, cost_unit='million', level=3) + def _lpsr_processing(self, c, ut, accert): + self.roll_up_cost_elements(c, passes=4) + self.update_account_table_by_cost_elements(c) + self.check_and_process_total_cost(c, accert) + self.roll_up_account_table(c, from_level=4, to_level=0) + print(' Generating results table for review '.center(100, '=')) + self._print_cost_basis_note() + print('\n') + ut.print_leveled_accounts(c, all=True, cost_unit='million', level=4) + def _no_cost_element_processing(self, c, ut, accert): """ Processing for the fusion model. Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. ut : Utility class Utility class for processing user input. accert : ACCERT @@ -1929,39 +1801,46 @@ def _no_cost_element_processing(self, c, ut, accert): self.check_and_process_total_cost(c, accert) self.roll_up_account_table(c, from_level=4, to_level=0) print(' Generating results table for review '.center(100, '=')) + self._print_cost_basis_note() print('\n') ut.print_leveled_accounts(c, all=False, cost_unit='million', level=4) + def _print_cost_basis_note(self): + print('[Note] Reference costs are in {} dollars. Displayed account costs are escalated to {} dollars using CPI-U.\n'.format( + model_cost_year(self.ref_model), + self.target_dollar_year, + )) + def generate_results_table_with_cost_elements(self, c, conn, level=3): """ Generates the results table with cost elements. Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. - conn : MySQLConnection - MySQLConnection class instantiates objects that represent a connection to the MySQL database server. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. + conn : SQLiteConnectionAdapter + SQLiteConnectionAdapter class instantiates objects that represent a connection to the SQLite database file. level : int Level of the account. """ - self._generate_excel(c, '_variable_affected_cost_elements.xlsx', 'extract_affected_cost_elements_w_dis', self.cel_tabl, self.var_tabl) - self._generate_excel(c, '_updated_cost_element.xlsx', 'print_updated_cost_elements', self.cel_tabl, remove_last_col=True) + self._generate_csv(c, 'aff_ce', 'extract_affected_cost_elements_w_dis', self.cel_tabl, self.var_tabl) + self._generate_csv(c, 'upd_ce', 'print_updated_cost_elements', self.cel_tabl, remove_last_col=True) - def _generate_excel(self, c, filename_suffix, proc_name, *args, remove_last_col=False): + def _generate_csv(self, c, output_name, proc_name, *args, remove_last_col=False): """ - Generate an Excel file from stored procedure results. + Generate a timestamped CSV file from procedure results. Parameters: - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. proc_name : str - Name of the stored procedure. - filename_suffix : str - Suffix of the filename. + Name of the procedure. + output_name : str + Short output filename label. args : tuple - Arguments for the stored procedure. + Arguments for the procedure. remove_last_col : bool Remove the last column if required. """ @@ -1972,16 +1851,24 @@ def _generate_excel(self, c, filename_suffix, proc_name, *args, remove_last_col df = pd.DataFrame(results, columns=field_names) if remove_last_col: df = df.iloc[:, :-1] # Remove the last column if required - filename = str(self.ref_model) + filename_suffix - df.to_excel(filename, index=False) - print(f"Successfully created excel file {filename}") + df = self._add_2024_cost_columns(df) + filename = "{}_{}_{}.csv".format(self.ref_model, output_name, self.output_timestamp) + df.to_csv(filename, index=False) + print(f"Successfully created CSV file {filename}") + + def _add_2024_cost_columns(self, df): + factor = self._cost_escalation_factor() + cost_columns = [column for column in df.columns if column in ("total_cost", "cost_2017", "cost_2018")] + for column in cost_columns: + df[f"{column}_2024"] = pd.to_numeric(df[column], errors="coerce") * factor + return df def generate_results_table(self, c, conn, level=3): """ Generates the results tables. """ - self._generate_excel(c, '_updated_account.xlsx', 'print_leveled_accounts_simple', self.acc_tabl, level) + self._generate_csv(c, 'upd_acc', 'print_leveled_accounts_simple', self.acc_tabl, level) if __name__ == "__main__": """ @@ -1995,20 +1882,9 @@ def generate_results_table(self, c, conn, level=3): sys.exit(-1) code_folder = os.path.dirname(os.path.abspath(__file__)) - initfile = os.path.join(code_folder, 'install.conf') - ins = configparser.ConfigParser() - ins.read(initfile) - passwd = ins.get("INSTALL","PASSWD") - - conn = mysql.connector.connect( - host="localhost", - user="root", - password=passwd, - database="accert_db", - auth_plugin="mysql_native_password" - ) + conn = accert_sqlite_connect(db_path=_accert_sqlite_db_path()) # conn.commit() - # NOTE: cursor is a class that instantiates objects that can execute MySQL statements + # NOTE: cursor is a class that instantiates objects that can execute SQLite statements # only commit when you are sure that the transaction is complete c = conn.cursor() ut = Utility_methods() @@ -2020,4 +1896,4 @@ def generate_results_table(self, c, conn, level=3): print('ACCERT did not find the input file {}'.format(user_input)) raise SystemExit Accert = Accert(input_path,accert_path) - Accert.execute_accert(c,ut) \ No newline at end of file + Accert.execute_accert(c,ut) diff --git a/src/accert_sqlite_procedures.py b/src/accert_sqlite_procedures.py new file mode 100644 index 0000000..4c48dab --- /dev/null +++ b/src/accert_sqlite_procedures.py @@ -0,0 +1,595 @@ +""" +SQLite procedure implementations for ACCERT. + +Design +------ +Each procedure is a Python function that accepts a sqlite3.Connection and +normal Python arguments. The functions return rows for SELECT-style procedures +and return None for UPDATE/INSERT/DELETE procedures. + +The companion SQLiteCursorAdapter class lets existing ACCERT code keep the +same c.callproc(...); c.stored_results() pattern with minimal changes. +""" +from __future__ import annotations + +import re +import sqlite3 +from dataclasses import dataclass +from typing import Any, Iterable, List, Optional, Sequence, Tuple + +_IDENTIFIER_RE = re.compile(r"^[A-Za-z_][A-Za-z0-9_]*$") + + +def qident(name: str) -> str: + """Safely quote a SQLite table/column identifier.""" + if not isinstance(name, str) or not _IDENTIFIER_RE.match(name): + raise ValueError(f"Unsafe SQL identifier: {name!r}") + return f'"{name}"' + + +def _fetchall(conn: sqlite3.Connection, sql: str, params: Sequence[Any] = ()) -> list[tuple]: + return conn.execute(sql, tuple(params)).fetchall() + + +def _fetchone(conn: sqlite3.Connection, sql: str, params: Sequence[Any] = ()) -> Optional[tuple]: + return conn.execute(sql, tuple(params)).fetchone() + + +def _execute(conn: sqlite3.Connection, sql: str, params: Sequence[Any] = ()) -> sqlite3.Cursor: + return conn.execute(sql, tuple(params)) + + +def _split_csv(value: Any) -> list[str]: + if value is None: + return [] + return [x.strip() for x in str(value).replace(" ", "").split(",") if x.strip()] + + +def _decode_text(value: Any) -> Any: + if isinstance(value, str): + return value.replace("\\n", "\n").replace("\\t", "\t") + return value + + +def _with_decoded_text(rows: Iterable[tuple]) -> list[tuple]: + return [tuple(_decode_text(value) for value in row) for row in rows] + + +def _contains_csv_var(variables: Any, var_name: str) -> bool: + return str(var_name).strip() in _split_csv(variables) + + +def _table_columns(conn: sqlite3.Connection, table_name: str) -> list[str]: + return [r[1] for r in conn.execute(f"PRAGMA table_info({qident(table_name)})").fetchall()] + + +def _has_column(conn: sqlite3.Connection, table_name: str, column: str) -> bool: + return column in _table_columns(conn, table_name) + + +def _cost_column(conn: sqlite3.Connection, table_name: str) -> str: + if _has_column(conn, table_name, "cost_2018"): + return "cost_2018" + return "cost_2017" + + +@dataclass +class StoredResult: + rows: list[tuple] + description: Optional[list[tuple]] = None + + def fetchall(self) -> list[tuple]: + return self.rows + + def fetchone(self) -> Optional[tuple]: + return self.rows[0] if self.rows else None + + +class SQLiteCursorAdapter: + """Small adapter that provides the cursor API used by ACCERT. + + Use this when you want to keep existing ACCERT methods that do: + c.callproc('procedure_name', args) + for row in c.stored_results(): ... + """ + + def __init__(self, conn: sqlite3.Connection): + self.conn = conn + self._stored_results: list[StoredResult] = [] + self._last_cursor: Optional[sqlite3.Cursor] = None + + def callproc(self, procname: str, args: Sequence[Any] = ()) -> None: + result = callproc(self.conn, procname, args) + rows, description = ([], None) + if isinstance(result, sqlite3.Cursor): + rows = result.fetchall() + description = result.description + elif result is None: + rows = [] + else: + rows = list(result) + description = _description_for(procname, rows) + self._stored_results = [StoredResult(rows=rows, description=description)] + + def stored_results(self) -> list[StoredResult]: + return self._stored_results + + def execute(self, sql: str, params: Sequence[Any] = ()) -> sqlite3.Cursor: + self._last_cursor = self.conn.execute(sql, tuple(params)) + return self._last_cursor + + def fetchall(self) -> list[tuple]: + return [] if self._last_cursor is None else self._last_cursor.fetchall() + + def fetchone(self) -> Optional[tuple]: + return None if self._last_cursor is None else self._last_cursor.fetchone() + + @property + def description(self): + return None if self._last_cursor is None else self._last_cursor.description + + +# --------------------------------------------------------------------------- +# Procedure implementations registered by name for ACCERT call sites. +# --------------------------------------------------------------------------- + +def cal_direct_cost_elements(conn: sqlite3.Connection, acc_table: str, cel_table: str) -> list[tuple]: + acc = qident(acc_table); cel = qident(cel_table) + cost_col = qident(_cost_column(conn, cel_table)) + row = _fetchone(conn, f""" + SELECT COALESCE(SUM(t1.prn), 0) + FROM {acc} AS t1 + LEFT JOIN {acc} AS t2 ON t1.code_of_account = t2.supaccount + WHERE t2.code_of_account IS NULL + AND t1.code_of_account NOT IN ('2','2C') + """) + tprn = row[0] if row else 0 + if not tprn: + return [(None, None, None)] + vals = {} + for kind in ("fac", "lab", "mat"): + r = _fetchone(conn, f"SELECT {cost_col} / ? FROM {cel} WHERE account='2' AND lower(cost_element)=?", (tprn, f"2c_{kind}")) + vals[kind] = r[0] if r else None + return [(vals["fac"], vals["lab"], vals["mat"])] + + +def extract_affected_accounts(conn: sqlite3.Connection, acc_table: str, var_table: str) -> list[tuple]: + rows = [] + for var_name, in _fetchall(conn, f"SELECT var_name FROM {qident(var_table)} WHERE user_input = 1"): + affected = [r[0] for r in _fetchall(conn, f"SELECT code_of_account, variables FROM {qident(acc_table)}") if _contains_csv_var(r[1], var_name)] + if affected: + rows.append((var_name, ", ".join(affected))) + return rows + + +def extract_affected_cost_elements(conn: sqlite3.Connection, cel_table: str, var_table: str) -> list[tuple]: + rows = [] + ce_rows = _fetchall(conn, f"SELECT cost_element, variables FROM {qident(cel_table)}") + for var_name, in _fetchall(conn, f"SELECT var_name FROM {qident(var_table)} WHERE user_input = 1"): + affected = [ce for ce, variables in ce_rows if _contains_csv_var(variables, var_name)] + if affected: + rows.append((var_name, ", ".join(affected))) + return rows + + +def extract_affected_cost_elements_w_dis(conn: sqlite3.Connection, cel_table: str, var_table: str) -> list[tuple]: + rows = [] + ce_rows = _fetchall(conn, f"SELECT cost_element, variables FROM {qident(cel_table)}") + for var_name, desc in _fetchall(conn, f"SELECT var_name, var_description FROM {qident(var_table)} WHERE user_input = 1"): + affected = [ce for ce, variables in ce_rows if _contains_csv_var(variables, var_name)] + if affected: + rows.append((var_name, desc, ", ".join(affected))) + return rows + + +def extract_changed_cost_elements(conn: sqlite3.Connection, cel_table: str) -> list[tuple]: + cost_col = qident(_cost_column(conn, cel_table)) + return _fetchall(conn, f"SELECT cost_element, {cost_col} FROM {qident(cel_table)} WHERE updated != 0 ORDER BY account, cost_element") + + +def extract_super_val(conn: sqlite3.Connection, table_name: str, var_name: str) -> list[tuple]: + return _fetchall(conn, f"SELECT v_linked FROM {qident(table_name)} WHERE var_name = ?", (var_name,)) + + +def extract_total_cost_on_name(conn: sqlite3.Connection, table_name: str, tc_name: str) -> list[tuple]: + return _fetchall(conn, f"SELECT code_of_account, account_description, total_cost FROM {qident(table_name)} WHERE code_of_account = ?", (tc_name,)) + + +def extract_user_changed_variables(conn: sqlite3.Connection, table_name: str) -> list[tuple]: + return _fetchall(conn, f"SELECT var_name, var_description, var_value, var_unit FROM {qident(table_name)} WHERE user_input = 1 ORDER BY ind") + + +def extract_variable_info_on_name(conn: sqlite3.Connection, table_name: str, var_name: str) -> list[tuple]: + return _fetchall(conn, f"SELECT var_value, var_unit FROM {qident(table_name)} WHERE var_name = ?", (var_name,)) + + +def get_current_COAs(conn: sqlite3.Connection, table_name: str, inp_id: str) -> list[tuple]: + return _fetchall(conn, f"SELECT code_of_account, ind FROM {qident(table_name)} WHERE supaccount = ?", (inp_id,)) + + +def get_var_value_by_name(conn: sqlite3.Connection, table_name: str, var_name: str) -> list[tuple]: + return _fetchall(conn, f"SELECT var_value FROM {qident(table_name)} WHERE var_name = ?", (var_name,)) + + +def insert_new_COA(conn: sqlite3.Connection, table_name: str, ind: int, supaccount: str, level: int, code_of_account: str, account_description: str, total_cost: float, review_status: str, prn: Any) -> None: + _execute(conn, f""" + INSERT INTO {qident(table_name)} + (ind, supaccount, level, code_of_account, account_description, total_cost, review_status, prn) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + """, (ind, supaccount, level, code_of_account, account_description, total_cost, review_status, prn)) + + +def insert_new_COA_gncoa(conn: sqlite3.Connection, table_name: str, ind: int, supaccount: str, level: int, code_of_account: str, account_description: str, total_cost: float, review_status: str, prn: Any, gncoa: str, gn_level: int, gn_supaccount: str, gn_ind: int) -> None: + _execute(conn, f""" + INSERT INTO {qident(table_name)} + (ind, supaccount, level, code_of_account, account_description, total_cost, review_status, prn, gncoa, gn_level, gn_supaccount, gn_ind) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, (ind, supaccount, level, code_of_account, account_description, total_cost, review_status, prn, gncoa, gn_level, gn_supaccount, gn_ind)) + + +def print_account_all(conn: sqlite3.Connection, table_name: str, level: int) -> list[tuple]: + return _fetchall(conn, f"SELECT * FROM {qident(table_name)} WHERE level <= ?", (level,)) + + +def print_account_simple(conn: sqlite3.Connection, table_name: str, level: int) -> list[tuple]: + return _fetchall(conn, f""" + SELECT ind, code_of_account, account_description, total_cost, level, review_status + FROM {qident(table_name)} WHERE level <= ? + """, (level,)) + + +def print_leveled_accounts_all(conn: sqlite3.Connection, acc_table: str, cel_table: str, level: int) -> list[tuple]: + cost_expr = "cost_elements" if _has_column(conn, acc_table, "cost_elements") else "NULL AS cost_elements" + cost_col = qident(_cost_column(conn, cel_table)) + rows = _fetchall(conn, f""" + SELECT level, code_of_account, account_description, total_cost, review_status, {cost_expr} + FROM {qident(acc_table)} + WHERE level <= ? + ORDER BY ind + """, (level,)) + out = [] + for acc_level, coa, desc, total, status, cost_elements in rows: + names = _split_csv(cost_elements) or [f"{coa}_fac", f"{coa}_lab", f"{coa}_mat"] + values = [] + for name in names[:3]: + row = _fetchone(conn, f"SELECT {cost_col} FROM {qident(cel_table)} WHERE cost_element = ?", (name,)) + if row is None: + row = _fetchone(conn, f"SELECT {cost_col} FROM {qident(cel_table)} WHERE cost_element = ?", (name.lower(),)) + values.append(row[0] if row else None) + values.extend([None] * (3 - len(values))) + out.append((acc_level, f"{' ' * int(acc_level)}{coa}", desc, values[0], values[1], values[2], total, status)) + return out + + +def print_leveled_accounts_gn(conn: sqlite3.Connection, acc_table: str, map_table: str, level: int) -> list[tuple]: + acc = qident(acc_table); mp = qident(map_table) + return _fetchall(conn, f""" + SELECT printf('%*s%s', acc.gn_level, '', acc.gncoa) AS gncoa, + map.gncoa_description, + acc.total_cost, + acc.gn_level, + acc.review_status + FROM {acc} AS acc + JOIN {mp} AS map ON acc.gncoa = map.gncoa + WHERE acc.gn_level <= ? + ORDER BY acc.gn_ind + """, (level,)) + + +def print_leveled_accounts_gn_all(conn: sqlite3.Connection, acc_table: str, cel_table: str, level: int) -> list[tuple]: + cost_expr = "cost_elements" if _has_column(conn, acc_table, "cost_elements") else "NULL AS cost_elements" + cost_col = qident(_cost_column(conn, cel_table)) + rows = _fetchall(conn, f""" + SELECT gn_level, gncoa, account_description, total_cost, review_status, {cost_expr} + FROM {qident(acc_table)} + WHERE gn_level <= ? + ORDER BY gn_ind + """, (level,)) + out = [] + for gn_level, gncoa, desc, total, status, cost_elements in rows: + names = _split_csv(cost_elements) or [f"{gncoa}_fac", f"{gncoa}_lab", f"{gncoa}_mat"] + values = [] + for name in names[:3]: + row = _fetchone(conn, f"SELECT {cost_col} FROM {qident(cel_table)} WHERE cost_element = ?", (name,)) + if row is None: + row = _fetchone(conn, f"SELECT {cost_col} FROM {qident(cel_table)} WHERE cost_element = ?", (name.lower(),)) + values.append(row[0] if row else None) + values.extend([None] * (3 - len(values))) + out.append((gn_level, f"{' ' * int(gn_level)}{gncoa}", desc, values[0], values[1], values[2], total, status)) + return out + + +def print_leveled_accounts_simple(conn: sqlite3.Connection, acc_table: str, level: int) -> list[tuple]: + return _fetchall(conn, f""" + SELECT printf('%*s%s', level, '', code_of_account) AS code_of_account, + account_description, + total_cost, + level, + review_status + FROM {qident(acc_table)} + WHERE level <= ? + ORDER BY ind + """, (level,)) + + +def print_table(conn: sqlite3.Connection, table_name: str) -> list[tuple]: + return _fetchall(conn, f"SELECT * FROM {qident(table_name)}") + + +def print_updated_cost_elements(conn: sqlite3.Connection, cel_table: str) -> list[tuple]: + cost_name = _cost_column(conn, cel_table) + cost_col = qident(cost_name) + return conn.execute(f""" + SELECT ind, cost_element, ROUND({cost_col}, 5) AS {qident(cost_name)}, sup_cost_ele, account, updated + FROM {qident(cel_table)} WHERE updated = 1 + """) + + +def print_user_request_parameter(conn: sqlite3.Connection, all_col: bool, var_table: str, cel_table: str) -> list[tuple]: + ce_rows = _fetchall(conn, f"SELECT cost_element, variables FROM {qident(cel_table)}") + rows = [] + cols = "ind, var_name" if all_col else "var_name" + for r in _fetchall(conn, f"SELECT {cols} FROM {qident(var_table)} WHERE var_value IS NULL ORDER BY ind"): + if all_col: + ind, var_name = r + else: + (var_name,) = r + affected = [ce for ce, variables in ce_rows if _contains_csv_var(variables, var_name)] + rows.append((ind, var_name, ", ".join(affected)) if all_col else (var_name, ", ".join(affected))) + return rows + + +def remove_specific_row(conn: sqlite3.Connection, table_name: str, target_code: str) -> None: + _execute(conn, f"DELETE FROM {qident(table_name)} WHERE code_of_account = ?", (target_code,)) + + +def roll_up_account_table_by_gn_level(conn: sqlite3.Connection, table_name: str, from_level: int, to_level: int) -> None: + table = qident(table_name) + rows = _fetchall(conn, f""" + SELECT parent.gncoa, COALESCE(SUM(child.total_cost), 0) + FROM {table} AS child + JOIN {table} AS parent ON child.gn_supaccount = parent.gncoa + WHERE child.gn_level = ? AND parent.gn_level = ? + GROUP BY parent.gncoa + """, (from_level, to_level)) + for gncoa, total in rows: + _execute(conn, f"UPDATE {table} SET total_cost = ?, review_status = 'Updated' WHERE gncoa = ?", (total, gncoa)) + + +def roll_up_account_table_by_level(conn: sqlite3.Connection, table_name: str, from_level: int, to_level: int) -> None: + table = qident(table_name) + rows = _fetchall(conn, f""" + SELECT parent.code_of_account, COALESCE(SUM(child.total_cost), 0) + FROM {table} AS child + JOIN {table} AS parent ON child.supaccount = parent.code_of_account + WHERE child.level = ? AND parent.level = ? + GROUP BY parent.code_of_account + """, (from_level, to_level)) + for coa, total in rows: + _execute(conn, f"UPDATE {table} SET total_cost = ?, review_status = 'Updated' WHERE code_of_account = ?", (total, coa)) + + +def roll_up_cost_elements_by_level(conn: sqlite3.Connection, table_name: str, from_level: int, to_level: int) -> None: + table = qident(table_name) + cost_col = qident(_cost_column(conn, table_name)) + # The original procedure joins the global account table. For model-specific + # tables, infer parent cost elements directly from sup_cost_ele. + rows = _fetchall(conn, f""" + SELECT parent.cost_element, COALESCE(SUM(child.{cost_col}), 0) + FROM {table} AS child + JOIN {table} AS parent ON child.sup_cost_ele = parent.cost_element + GROUP BY parent.cost_element + """) + for ce, total in rows: + _execute(conn, f"UPDATE {table} SET {cost_col} = ? WHERE cost_element = ?", (total, ce)) + + +def roll_up_lmt_account_2C(conn: sqlite3.Connection, acc_tabl_name: str) -> None: + table = qident(acc_tabl_name) + row = _fetchone(conn, f""" + SELECT COALESCE(SUM(t1.total_cost), 0), COALESCE(SUM(t1.prn), 0) + FROM {table} AS t1 + LEFT JOIN {table} AS t2 ON t1.code_of_account = t2.supaccount + WHERE t2.code_of_account IS NULL AND t1.code_of_account NOT IN ('2','2C') + """) + tc, tprn = row if row else (0, 0) + _execute(conn, f"UPDATE {table} SET total_cost = ?, prn = ?, review_status = 'Ready for Review' WHERE code_of_account = '2C'", (tc, tprn)) + + +def roll_up_lmt_direct_cost(conn: sqlite3.Connection, acc_tabl_name: str) -> None: + table = qident(acc_tabl_name) + row = _fetchone(conn, f"SELECT total_cost, prn FROM {table} WHERE code_of_account = '2C'") + val = None if not row or not row[1] else row[0] / row[1] + _execute(conn, f"UPDATE {table} SET total_cost = ?, review_status = 'Ready for Review' WHERE code_of_account = '2'", (val,)) + + +def _sum_cost_elements_2c(conn: sqlite3.Connection, cel_tabl_name: str, acc_tabl_name: str, suffix: str) -> list[tuple]: + acc = qident(acc_tabl_name); cel = qident(cel_tabl_name) + cost_col = qident(_cost_column(conn, cel_tabl_name)) + return _fetchall(conn, f""" + SELECT SUM(ce.{cost_col}) + FROM ( + SELECT t1.code_of_account, t1.code_of_account || ? AS ce_name + FROM {acc} AS t1 + LEFT JOIN {acc} AS t2 ON t1.code_of_account = t2.supaccount + WHERE t2.code_of_account IS NULL AND t1.code_of_account NOT IN ('2','2C') + ) AS leaf + JOIN {cel} AS ce ON ce.cost_element = leaf.ce_name + WHERE leaf.code_of_account != '2C' + """, (suffix,)) + + +def sum_cost_elements_2C_fac(conn: sqlite3.Connection, cel_tabl_name: str, acc_tabl_name: str) -> list[tuple]: + return _sum_cost_elements_2c(conn, cel_tabl_name, acc_tabl_name, "_fac") + + +def sum_cost_elements_2C_lab(conn: sqlite3.Connection, cel_tabl_name: str, acc_tabl_name: str) -> list[tuple]: + return _sum_cost_elements_2c(conn, cel_tabl_name, acc_tabl_name, "_lab") + + +def sum_cost_elements_2C_mat(conn: sqlite3.Connection, cel_tabl_name: str, acc_tabl_name: str) -> list[tuple]: + return _sum_cost_elements_2c(conn, cel_tabl_name, acc_tabl_name, "_mat") + + +def sum_up_lmt_account_2C(conn: sqlite3.Connection, acc_tabl_name: str) -> None: + return roll_up_lmt_account_2C(conn, acc_tabl_name) + + +def sum_up_lmt_direct_cost(conn: sqlite3.Connection, acc_tabl_name: str) -> None: + return roll_up_lmt_direct_cost(conn, acc_tabl_name) + + +def sup_coa_level(conn: sqlite3.Connection, table_name: str, supaccount: str) -> list[tuple]: + return _fetchall(conn, f"SELECT level FROM {qident(table_name)} WHERE code_of_account = ?", (supaccount,)) + + +def update_account_before_insert(conn: sqlite3.Connection, table_name: str, min_ind: int) -> None: + _execute(conn, f"UPDATE {qident(table_name)} SET ind = ind + 1 WHERE ind > ?", (min_ind,)) + + +def update_account_table_by_cost_elements(conn: sqlite3.Connection, acc_tabl_name: str, cel_tabl_name: str) -> None: + acc = qident(acc_tabl_name); cel = qident(cel_tabl_name) + cost_col = qident(_cost_column(conn, cel_tabl_name)) + rows = _fetchall(conn, f"SELECT account, SUM({cost_col}), SUM(updated) FROM {cel} GROUP BY account") + for account, total_cost, updated in rows: + if updated and updated > 0: + _execute(conn, f"UPDATE {acc} SET total_cost = ?, review_status = 'Ready for Review' WHERE code_of_account = ?", (total_cost, account)) + + +def update_cost_element_on_name(conn: sqlite3.Connection, table_name: str, ce_name: str, alg_value: float) -> None: + cost_col = qident(_cost_column(conn, table_name)) + _execute(conn, f"UPDATE {qident(table_name)} SET {cost_col} = ?, updated = 1 WHERE cost_element = ?", (alg_value, ce_name)) + + +def update_new_accounts(conn: sqlite3.Connection, acc_tabl_name: str, var_tabl_name: str, alg_tabl_name: str) -> list[tuple]: + acc_rows = _fetchall(conn, f""" + SELECT ac.ind, ac.code_of_account, ac.total_cost, ac.alg_name, ac.variables, + alg.alg_python, alg.alg_formulation, alg.alg_units + FROM {qident(acc_tabl_name)} AS ac + JOIN {qident(alg_tabl_name)} AS alg ON ac.alg_name = alg.alg_name + """) + user_vars = [r[0] for r in _fetchall(conn, f"SELECT var_name FROM {qident(var_tabl_name)} WHERE user_input = 1")] + return _with_decoded_text(r for r in acc_rows if any(_contains_csv_var(r[4], v) for v in user_vars)) + + +def update_new_cost_elements(conn: sqlite3.Connection, cel_tabl_name: str, var_tabl_name: str, alg_tabl_name: str) -> list[tuple]: + cost_col = qident(_cost_column(conn, cel_tabl_name)) + ce_rows = _fetchall(conn, f""" + SELECT ce.ind, ce.cost_element, ce.{cost_col}, ce.alg_name, ce.variables, ce.algno, + alg.alg_python, alg.alg_formulation, alg.alg_units + FROM {qident(cel_tabl_name)} AS ce + JOIN {qident(alg_tabl_name)} AS alg ON ce.alg_name = alg.alg_name + """) + user_vars = [r[0] for r in _fetchall(conn, f"SELECT var_name FROM {qident(var_tabl_name)} WHERE user_input = 1")] + return _with_decoded_text(r for r in ce_rows if any(_contains_csv_var(r[4], v) for v in user_vars)) + + +def update_super_variable(conn: sqlite3.Connection, var_table_name: str, alg_table_name: str, u_i_var_name: str) -> list[tuple]: + return _with_decoded_text(_fetchall(conn, f""" + SELECT var.ind, var.var_name, var.var_value, var.var_alg, var.var_need, + alg.ind, alg.alg_python, alg.alg_formulation, alg.alg_units, var.var_unit + FROM {qident(var_table_name)} AS var + JOIN {qident(alg_table_name)} AS alg ON var.var_alg = alg.alg_name + WHERE var.var_name = ? + """, (u_i_var_name,))) + + +def update_total_cost_on_name(conn: sqlite3.Connection, table_name: str, tc_id: str, u_i_tc_value: float) -> None: + _execute(conn, f"UPDATE {qident(table_name)} SET total_cost = ?, review_status = 'User Input' WHERE code_of_account = ?", (u_i_tc_value, tc_id)) + + +def update_variable_info_on_name(conn: sqlite3.Connection, table_name: str, u_i_var_name: str, value: float, unit: str) -> None: + _execute(conn, f"UPDATE {qident(table_name)} SET var_value = ?, var_unit = ?, user_input = 1 WHERE var_name = ?", (value, unit, u_i_var_name)) + + +PROC_COLUMNS = { + "cal_direct_cost_elements": ["fac", "lab", "mat"], + "extract_affected_accounts": ["var_name", "ac_affected"], + "extract_affected_cost_elements": ["var_name", "ce_affected"], + "extract_affected_cost_elements_w_dis": ["var_name", "var_description", "ce_affected"], + "extract_changed_cost_elements": ["cost_element", "cost_2017"], + "extract_super_val": ["v_linked"], + "extract_total_cost_on_name": ["code_of_account", "account_description", "total_cost"], + "extract_user_changed_variables": ["var_name", "var_description", "var_value", "var_unit"], + "extract_variable_info_on_name": ["var_value", "var_unit"], + "get_current_COAs": ["code_of_account", "ind"], + "get_var_value_by_name": ["var_value"], + "print_account_simple": ["ind", "code_of_account", "account_description", "total_cost", "level", "review_status"], + "print_leveled_accounts_all": ["level", "code_of_account", "account_description", "fac_cost", "lab_cost", "mat_cost", "total_cost", "review_status"], + "print_leveled_accounts_gn": ["gncoa", "gncoa_description", "total_cost", "gn_level", "review_status"], + "print_leveled_accounts_gn_all": ["gn_level", "gncoa", "account_description", "fac_cost", "lab_cost", "mat_cost", "total_cost", "review_status"], + "print_leveled_accounts_simple": ["code_of_account", "account_description", "total_cost", "level", "review_status"], + "print_updated_cost_elements": ["ind", "cost_element", "cost_2017", "sup_cost_ele", "account", "updated"], + "print_user_request_parameter": None, + "sum_cost_elements_2C_fac": ["sum"], + "sum_cost_elements_2C_lab": ["sum"], + "sum_cost_elements_2C_mat": ["sum"], + "sup_coa_level": ["level"], + "update_new_accounts": ["ind", "code_of_account", "total_cost", "alg_name", "variables", "alg_python", "alg_formulation", "alg_units"], + "update_new_cost_elements": ["ind", "cost_element", "cost_2017", "alg_name", "variables", "algno", "alg_python", "alg_formulation", "alg_units"], + "update_super_variable": ["var_ind", "var_name", "var_value", "var_alg", "var_need", "alg_ind", "alg_python", "alg_formulation", "alg_units", "var_unit"], +} + +def _description_for(procname: str, rows: list[tuple]) -> list[tuple]: + cols = PROC_COLUMNS.get(procname) + if cols is None: + if procname == "print_user_request_parameter": + cols = ["ind", "var_name", "ce_affected"] if rows and len(rows[0]) == 3 else ["var_name", "ce_affected"] + else: + width = len(rows[0]) if rows else 0 + cols = [f"col_{i+1}" for i in range(width)] + return [(c, None, None, None, None, None, None) for c in cols] + + +PROCEDURES = { + "cal_direct_cost_elements": cal_direct_cost_elements, + "extract_affected_accounts": extract_affected_accounts, + "extract_affected_cost_elements": extract_affected_cost_elements, + "extract_affected_cost_elements_w_dis": extract_affected_cost_elements_w_dis, + "extract_changed_cost_elements": extract_changed_cost_elements, + "extract_super_val": extract_super_val, + "extract_total_cost_on_name": extract_total_cost_on_name, + "extract_user_changed_variables": extract_user_changed_variables, + "extract_variable_info_on_name": extract_variable_info_on_name, + "get_current_COAs": get_current_COAs, + "get_var_value_by_name": get_var_value_by_name, + "insert_new_COA": insert_new_COA, + "insert_new_COA_gncoa": insert_new_COA_gncoa, + "print_account_all": print_account_all, + "print_account_simple": print_account_simple, + "print_leveled_accounts_all": print_leveled_accounts_all, + "print_leveled_accounts_gn": print_leveled_accounts_gn, + "print_leveled_accounts_gn_all": print_leveled_accounts_gn_all, + "print_leveled_accounts_simple": print_leveled_accounts_simple, + "print_table": print_table, + "print_updated_cost_elements": print_updated_cost_elements, + "print_user_request_parameter": print_user_request_parameter, + "remove_specific_row": remove_specific_row, + "roll_up_account_table_by_gn_level": roll_up_account_table_by_gn_level, + "roll_up_account_table_by_level": roll_up_account_table_by_level, + "roll_up_cost_elements_by_level": roll_up_cost_elements_by_level, + "roll_up_lmt_account_2C": roll_up_lmt_account_2C, + "roll_up_lmt_direct_cost": roll_up_lmt_direct_cost, + "sum_cost_elements_2C_fac": sum_cost_elements_2C_fac, + "sum_cost_elements_2C_lab": sum_cost_elements_2C_lab, + "sum_cost_elements_2C_mat": sum_cost_elements_2C_mat, + "sum_up_lmt_account_2C": sum_up_lmt_account_2C, + "sum_up_lmt_direct_cost": sum_up_lmt_direct_cost, + "sup_coa_level": sup_coa_level, + "update_account_before_insert": update_account_before_insert, + "update_account_table_by_cost_elements": update_account_table_by_cost_elements, + "update_cost_element_on_name": update_cost_element_on_name, + "update_new_accounts": update_new_accounts, + "update_new_cost_elements": update_new_cost_elements, + "update_super_variable": update_super_variable, + "update_total_cost_on_name": update_total_cost_on_name, + "update_variable_info_on_name": update_variable_info_on_name, +} + + +def callproc(conn: sqlite3.Connection, procname: str, args: Sequence[Any] = ()) -> Any: + try: + func = PROCEDURES[procname] + except KeyError as exc: + raise KeyError(f"No SQLite procedure registered for {procname!r}") from exc + return func(conn, *tuple(args)) diff --git a/src/accertdb.sql b/src/accertdb.sql deleted file mode 100644 index 539daa6..0000000 --- a/src/accertdb.sql +++ /dev/null @@ -1,2139 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `accert_db` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; -USE `accert_db`; --- MySQL dump 10.13 Distrib 8.0.38, for macos14 (arm64) --- --- Host: 127.0.0.1 Database: accert_db --- ------------------------------------------------------ --- Server version 8.0.27 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!50503 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `abr_account` --- - -DROP TABLE IF EXISTS `abr_account`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `abr_account` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - `gncoa` text, - `gn_level` int DEFAULT NULL, - `gn_supaccount` text, - `gn_ind` int DEFAULT NULL, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `abr_account` --- - -LOCK TABLES `abr_account` WRITE; -/*!40000 ALTER TABLE `abr_account` DISABLE KEYS */; -INSERT INTO `abr_account` VALUES (1,'2','TOTAL DIRECT COST',1419783854,0,'','Unchanged',1,'20',0,'',1),(3,'211','Yardwork',71213859.06,2,'21','Unchanged',0.027628981,'211',2,'21',3),(4,'212','Reactor containment building',81425435.33,2,'21','Unchanged',0.071675596,'212.1',3,'212',4),(5,'213','Turbine room and heater bay',24604390.8,2,'21','Unchanged',0.02559467,'213.1',3,'213',5),(6,'215','Primary auxiliary building and tunnels',12470000,2,'21','Unchanged',0.020420772,'214.2',3,'214',8),(7,'216','Waste processing building',38750000,2,'21','Unchanged',0.015882927,'215',2,'213',9),(8,'217','Fuel storage building',28149583.82,2,'21','Unchanged',0.010921249,'214.1',3,'21',7),(9,'218A','Control Room/Diesel Generator Building',16250000,3,'218','Unchanged',0.020007875,'213.21',3,'214',6),(10,'220A.211','Vessel Structure (NSSS)',137000000,3,'220A','Unchanged',0.027158047,'221.121',3,'221',10),(11,'220A.2121','Lower Internals (NSSS)',45204200,3,'220A','Unchanged',0.012329754,'221.131',3,'221',11),(12,'220A.2122','Upper Internals (NSSS)',45204200,3,'220A','Unchanged',0.012329754,'221.132',3,'221',12),(13,'220A.2131','Control Rods (NSSS)',1320000,3,'220A','Unchanged',0.001202713,'221.211',3,'221',13),(14,'220A.2132','Control Rod Drives (NSSS)',13453440,3,'220A','Unchanged',0.013540226,'221.212',3,'221',14),(15,'220A.221','Main Coolant Pumps (NSSS)',55696873.29,3,'220A','Unchanged',0.048589625,'222.11',3,'222',16),(16,'220A.222','Reactor Coolant Piping (NSSS)',7464800,3,'220A','Unchanged',0.004422882,'222.21',3,'222',18),(17,'220A.223','Steam Generators (NSSS)',122087095.9,3,'220A','Unchanged',0.058118221,'222.31',3,'222',20),(18,'220A.224','Pressurizer (NSSS)',1379368.421,3,'220A','Unchanged',0.003220169,'222.41',3,'222',22),(19,'222','Main heat transfer transport system',8220525.704,2,'22','Unchanged',0.010942603,'222',2,'222',15),(20,'222.11','Fluid Circulation Drive System (Field Cost 222)',2504335.453,3,'222','Unchanged',0.003333601,'222.12',3,'222',17),(21,'222.12','Reactor Coolant Piping System (Field Cost 222)',4924232.687,3,'222','Unchanged',0.006554803,'222.22',3,'22',19),(22,'222.13','Steam Generator Equipment (Field Cost 222)',697187.7179,3,'222','Unchanged',0.000928049,'222.32',3,'222',21),(23,'222.14','Pressurizing System (Field Cost 222)',94769.84553,3,'222','Unchanged',0.000126151,'222.43',3,'222',23),(24,'224','Radwaste processing',59673441.34,2,'22','Unchanged',0.023151622,'224',2,'22',24),(25,'226.4','Coolant Treatment & Recycle',34304867.39,3,'226','Unchanged',0.015817883,'226.35',3,'226',25),(26,'226.7','Aux Cool Sys (Broken Down Further)',0,3,'226','Unchanged',0.021415357,'226.7',3,'226',26),(27,'227','Reactor instrumentation and control',61419737.22,2,'22','Unchanged',0.023829136,'227.2',3,'227',27),(28,'231','Turbine generator',57399816.35,2,'23','Unchanged',0.148118277,'232.1',3,'232',28),(29,'233','Condensing systems',29065851.25,2,'23','Unchanged',0.032039296,'233.21',3,'23',30),(30,'234','Feedwater heating system',0,2,'23','Unchanged',0.026077184,'234',2,'24',32),(31,'235','Other turbine plant equipment',9563415.121,2,'23','Unchanged',0.024678068,'232.2',3,'233',29),(32,'241','Switchgear',21904347.8,2,'24','Unchanged',0.013206497,'241',2,'24',33),(33,'242','Station service equipment',36970984.98,2,'24','Unchanged',0.022290424,'242',2,'24',34),(34,'245','Electric structure and wiring contnr.',40891698.73,2,'24','Unchanged',0.024654288,'245',2,'24',35),(35,'246','Power and control wiring',37773534.79,2,'24','Unchanged',0.022774295,'246',2,'26',36),(36,'252','Air, water and steam service systems',81851078.87,2,'25','Unchanged',0.031755924,'262',2,'233',37),(37,'262','Mechanical equipment',44777444.42,2,'26','Unchanged',0.04935819,'233.22',3,'232',31),(2,'2C','Calculated DIRECT COST',1225489991,0,'','Unchanged',0.863152505,'2C',0,'',2); -/*!40000 ALTER TABLE `abr_account` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `abr_cost_element` --- - -DROP TABLE IF EXISTS `abr_cost_element`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `abr_cost_element` ( - `ind` int NOT NULL AUTO_INCREMENT, - `cost_element` text, - `cost_2017` double DEFAULT NULL, - `sup_cost_ele` text, - `alg_name` text, - `fun_unit` text, - `variables` text, - `account` text, - `algno` text, - `updated` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `abr_cost_element` --- - -LOCK TABLES `abr_cost_element` WRITE; -/*!40000 ALTER TABLE `abr_cost_element` DISABLE KEYS */; -INSERT INTO `abr_cost_element` VALUES (1,'211_fac',810015.17,'21_fac','esc_1987','million','escalate_1987, ref_211_fac','211','12',0),(2,'212_fac',0,'21_fac','default_0','million','N/A','212','N/A',0),(3,'213_fac',660388.72,'21_fac','MWth_scale','million','c_213_fac, mwth, scale_0.8','213','8',0),(4,'215_fac',2121224.73,'21_fac','NO_ALG','million','N/A','215','N/A',0),(5,'216_fac',1756069.67,'21_fac','NO_ALG','million','N/A','216','N/A',0),(6,'217_fac',2842399.83,'21_fac','NO_ALG','million','N/A','217','N/A',0),(7,'218A_fac',1314294.08,'218_fac','NO_ALG','million','N/A','218A','N/A',0),(8,'220A.211_fac',127380000,'220A_fac','unit_weights','million','c_220A.221_cs_weight, c_220A.221_ss_weight','220A.211','N/A',0),(9,'220A.2121_fac',45204200,'220A_fac','unit_weights','million','c_zero, c_220A.2121_ss_weight','220A.2121','5',0),(10,'220A.2122_fac',45204200,'220A_fac','unit_weights','million','c_zero, c_220A.2122_ss_weight','220A.2122','5',0),(11,'220A.2131_fac',1320000,'220A_fac','unit_facility','million','no_of_cr, c_cr_per_unit_fac','220A.2131','16',0),(12,'220A.2132_fac',13453440,'220A_fac','unit_facility','million','no_of_crd, c_crd_per_unit_fac','220A.2132','16',0),(13,'220A.221_fac',55696873.29,'220A_fac','unit_facility','million','no_of_rcpump, c_pump_per_unit_fac','220A.221','16',0),(14,'220A.222_fac',7464800,'220A_fac','unit_weights','million','c_zero, c_220A.222_ss_weight','220A.222','5',0),(15,'220A.223_fac',118647119.77,'220A_fac','Sgsum','million','sg_weight, c_sg_weight, no_sg','220A.223','N/A',0),(16,'220A.224_fac',1379368.42,'220A_fac','MWth_lmfbrscale','million','r_78_220A224_fac, mwth, scale_1.0','220A.224','24',0),(17,'222.11_fac',1101963.79,'222_fac','MWth_scale','million','c_222.11_fac, mwth, scale_1.0','222.11','8',0),(18,'222.12_fac',1280778.06,'222_fac','MWth_scale','million','c_222.12_fac, mwth, scale_1.0','222.12','8',0),(19,'222.13_fac',21900.68,'222_fac','MWth_scale','million','c_222.13_fac, mwth, scale_1.0','222.13','8',0),(20,'222.14_fac',4380.14,'222_fac','MWth_scale','million','c_222.14_fac, mwth, scale_1.0','222.14','8',0),(21,'222_fac',2409022.68,'22_fac','MWth_scale','million','c_222_fac, mwth, scale_1.0','222','8',0),(22,'224_fac',46047915.43,'22_fac','esc_1987','million','escalate_1987, ref_224_fac','224','12',0),(23,'226.4_fac',34304867.39,'226_fac','MWth_scale','million','r_78_226.4_fac, mwth, scale_1.0','226.4','8',0),(24,'226.7_fac',0,'226_fac','default_0','million','N/A','226.7','14',0),(25,'227_fac',37538349.96,'22_fac','esc_1987','million','escalate_1987, ref_227_fac','227','12',0),(26,'231_fac',53544604.81,'23_fac','dev_factor_ref','million','c_turbine, scale_tur_231_fac, scale_1.0','231','10',0),(27,'233_fac',19829554.55,'23_fac','MWreth_scale','million','c_233_fac, mwreth, scale_0.8','233','25',0),(28,'234_fac',0,'23_fac','default_0','million','N/A','234','14',0),(29,'235_fac',4788444.35,'23_fac','ptn_account','million','c_231_fac, prn_235_of_231_fac','235','4',0),(30,'241_fac',20635161.28,'24_fac','MWe_scale','million','c_241_fac, mwe, scale_0.4','241','17',0),(31,'242_fac',33563126.13,'24_fac','MWe_scale','million','c_242_fac, mwe, scale_0.4','242','17',0),(32,'245_fac',0,'24_fac','MWe_scale','million','c_245_fac, mwe, scale_0.4','245','17',0),(33,'246_fac',2902733.98,'24_fac','MWe_scale','million','c_246_fac, mwe, scale_0.4','246','17',0),(34,'252_fac',24869567.31,'25_fac','esc_1987','million','escalate_1987, ref_252_fac','252','12',0),(35,'262_fac',30555532.85,'26_fac','MWreth_scale','million','c_262_fac, mwreth, scale_0.8','262','25',0),(36,'2c_fac',736246154.62,'','NO_ALG','million','N/A','2','N/A',0),(37,'211_lab',41328822.54,'21_lab','esc_1987','million','escalate_1987, ref_211_lab','211','12',0),(38,'212_lab',43940775.98,'21_lab','containment','million','Tot_Labor_containment','212','7',0),(39,'213_lab',11873274.12,'21_lab','MWth_scale','million','c_213_lab, mwth, scale_0.8','213','8',0),(40,'215_lab',7101615.96,'21_lab','NO_ALG','million','N/A','215','N/A',0),(41,'216_lab',24337584.5,'21_lab','NO_ALG','million','N/A','216','N/A',0),(42,'217_lab',12836637.9,'21_lab','NO_ALG','million','N/A','217','N/A',0),(43,'218A_lab',10038481.64,'218_lab','NO_ALG','million','N/A','218A','N/A',0),(44,'220A.211_lab',8750000,'220A_lab','NO_ALG','million','N/A','220A.211','N/A',0),(45,'220A.2121_lab',0,'220A_lab','default_0','million','N/A','220A.2121','14',0),(46,'220A.2122_lab',0,'220A_lab','default_0','million','N/A','220A.2122','14',0),(47,'220A.2131_lab',0,'220A_lab','default_0','million','N/A','220A.2131','14',0),(48,'220A.2132_lab',0,'220A_lab','default_0','million','N/A','220A.2132','14',0),(49,'220A.221_lab',0,'220A_lab','default_0','million','N/A','220A.221','14',0),(50,'220A.222_lab',0,'220A_lab','default_0','million','N/A','220A.222','14',0),(51,'220A.223_lab',3173085.99,'220A_lab','Sgsum','million','N/A','220A.223','N/A',0),(52,'220A.224_lab',0,'220A_lab','default_0','million','N/A','220A.224','14',0),(53,'222.11_lab',1274883.33,'222_lab','MWth_scale','million','c_222.11_lab, mwth, scale_1.0','222.11','8',0),(54,'222.12_lab',3317279.46,'222_lab','MWth_scale','million','c_222.12_lab, mwth, scale_1.0','222.12','8',0),(55,'222.13_lab',613897.3,'222_lab','MWth_scale','million','r_222.13_lab, mwth, scale_1.0','222.13','8',0),(56,'222.14_lab',82172.71,'222_lab','MWth_scale','million','c_222.14_lab, mwth, scale_1.0','222.14','8',0),(57,'222_lab',5288232.81,'22_mat','MWth_scale','million','c_222_lab, mwth, scale_1.0','222','8',0),(58,'224_lab',11434348.55,'22_lab','esc_1987','million','escalate_1987, ref_224_lab','224','12',0),(59,'226.4_lab',0,'226_lab','default_0','million','N/A','226.4','14',0),(60,'226.7_lab',0,'226_lab','default_0','million','N/A','226.7','14',0),(61,'227_lab',21960889.79,'22_lab','esc_1987','million','escalate_1987, ref_227_lab','227','12',0),(62,'231_lab',588990.65,'23_lab','ptn_account','million','c_231_fac, prn_fac_231_lab','231','4',0),(63,'233_lab',8082642.16,'23_lab','MWreth_scale','million','c_233_lab, mwreth, scale_0.8','233','25',0),(64,'234_lab',0,'23_lab','default_0','million','N/A','234','14',0),(65,'235_lab',4258930.48,'23_lab','ptn_account','million','c_231_lab, prn_235_of_231_lab','235','4',0),(66,'241_lab',1107205.12,'24_lab','MWe_scale','million','c_241_lab, mwe, scale_0.4','241','17',0),(67,'242_lab',2861071.44,'24_lab','MWe_scale','million','c_242_lab, mwe, scale_0.4','242','17',0),(68,'245_lab',32970390.22,'24_lab','MWe_scale','million','c_245_lab, mwe, scale_0.4','245','17',0),(69,'246_lab',21514837.92,'24_lab','MWe_scale','million','c_246_lab, mwe, scale_0.4','246','17',0),(70,'252_lab',44371766.01,'25_lab','esc_1987','million','escalate_1987, ref_252_lab','252','12',0),(71,'262_lab',12634376.8,'26_lab','MWreth_scale','million','c_262_lab, mwreth, scale_0.8','262','25',0),(72,'2c_lab',330450874.57,'','NO_ALG','million','N/A','2','N/A',0),(73,'211_mat',29075021.35,'21_mat','esc_1987','million','escalate_1987, ref_211_mat','211','12',0),(74,'212_mat',37484659.34,'21_mat','containment','million','Tot_Mat_containment','212','7',0),(75,'213_mat',12070727.96,'21_mat','MWth_scale','million','c_213_mat, mwth, scale_0.8','213','8',0),(76,'215_mat',3247159.31,'21_mat','NO_ALG','million','N/A','215','N/A',0),(77,'216_mat',12656345.83,'21_mat','NO_ALG','million','N/A','216','N/A',0),(78,'217_mat',12470546.09,'21_mat','NO_ALG','million','N/A','217','N/A',0),(79,'218A_mat',4897224.28,'218_mat','NO_ALG','million','N/A','218A','N/A',0),(80,'220A.211_mat',870000,'220A_mat','NO_ALG','million','N/A','220A.211','N/A',0),(81,'220A.2121_mat',0,'220A_mat','default_0','million','N/A','220A.2121','14',0),(82,'220A.2122_mat',0,'220A_mat','default_0','million','N/A','220A.2122','14',0),(83,'220A.2131_mat',0,'220A_mat','default_0','million','N/A','220A.2131','14',0),(84,'220A.2132_mat',0,'220A_mat','default_0','million','N/A','220A.2132','14',0),(85,'220A.221_mat',0,'220A_mat','default_0','million','N/A','220A.221','14',0),(86,'220A.222_mat',0,'220A_mat','default_0','million','N/A','220A.222','14',0),(87,'220A.223_mat',266890.16,'220A_mat','Sgsum','million','N/A','220A.223','N/A',0),(88,'220A.224_mat',0,'220A_mat','default_0','million','N/A','220A.224','14',0),(89,'222.11_mat',127488.33,'222_mat','MWth_scale','million','c_222.11_mat, mwth, scale_1.0','222.11','8',0),(90,'222.12_mat',326175.16,'222_mat','MWth_scale','million','c_222.12_mat, mwth, scale_1.0','222.12','8',0),(91,'222.13_mat',61389.73,'222_mat','MWth_scale','million','r_222.13_mat, mwth, scale_1.0','222.13','8',0),(92,'222.14_mat',8217,'222_mat','MWth_scale','million','c_222.14_mat, mwth, scale_1.0','222.14','8',0),(93,'222_mat',523270.22,'22_mat','MWth_scale','million','c_222_mat, mwth, scale_1.0','222','8',0),(94,'224_mat',2191177.36,'22_mat','esc_1987','million','escalate_1987, ref_224_mat','224','12',0),(95,'226.4_mat',0,'226_mat','default_0','million','N/A','226.4','14',0),(96,'226.7_mat',0,'226_mat','default_0','million','N/A','226.7','14',0),(97,'227_mat',1920497.47,'22_mat','esc_1987','million','escalate_1987, ref_227_mat','227','12',0),(98,'231_mat',3266220.89,'23_mat','ptn_account','million','c_231_fac, prn_fac_231_mat','231','4',0),(99,'233_mat',1153654.54,'23_mat','MWreth_scale','million','c_233_mat, mwreth, scale_0.8','233','25',0),(100,'234_mat',0,'23_mat','default_0','million','N/A','234','14',0),(101,'235_mat',516040.29,'23_mat','ptn_account','million','c_231_mat, prn_235_of_231_mat','235','4',0),(102,'241_mat',161981.4,'24_mat','MWe_scale','million','c_241_mat, mwe, scale_0.4','241','17',0),(103,'242_mat',546787.41,'24_mat','MWe_scale','million','c_242_mat, mwe, scale_0.4','242','17',0),(104,'245_mat',7921308.52,'24_mat','MWe_scale','million','c_245_mat, mwe, scale_0.4','245','17',0),(105,'246_mat',13355962.89,'24_mat','MWe_scale','million','c_246_mat, mwe, scale_0.4','246','17',0),(106,'252_mat',12609745.55,'25_mat','esc_1987','million','escalate_1987, ref_252_mat','252','12',0),(107,'262_mat',1587534.77,'26_mat','MWreth_scale','million','c_262_mat, mwreth, scale_0.8','262','25',0),(108,'2c_mat',158795865.48,'','NO_ALG','million','N/A','2','N/A',0); -/*!40000 ALTER TABLE `abr_cost_element` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `abr_variable` --- - -DROP TABLE IF EXISTS `abr_variable`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `abr_variable` ( - `ind` int NOT NULL AUTO_INCREMENT, - `var_name` text, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB AUTO_INCREMENT=404 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `abr_variable` --- - -LOCK TABLES `abr_variable` WRITE; -/*!40000 ALTER TABLE `abr_variable` DISABLE KEYS */; -INSERT INTO `abr_variable` VALUES (1,'c_213_fac','Turbine building structure factory cost',1.7706643,'million',NULL,NULL,NULL,0),(2,'c_213_lab','Turbine building structure labor cost',31.835162,'million',NULL,NULL,NULL,0),(3,'c_213_mat','Turbine building structure material cost',32.364585,'million',NULL,NULL,NULL,0),(4,'c_220A.2121_ss_weight','weight of the stainless steel lower internals',145.82,'ton',NULL,NULL,NULL,0),(5,'c_220A.2122_ss_weight','weight of the stainless steel upper internals',145.82,'ton',NULL,NULL,NULL,0),(6,'c_220A.222_ss_weight','weight of the stainless steel reactor coolant piping',24.08,'ton',NULL,NULL,NULL,0),(7,'c_222_fac','Main heat transfer transport system factory cost',8.265356805,'million',NULL,NULL,NULL,0),(8,'c_222_lab','Main heat transfer transport system labor cost',18.14392675,'million',NULL,NULL,NULL,0),(9,'c_222_mat','Main heat transfer transport system material cost',1.795340116,'million',NULL,NULL,NULL,0),(10,'c_222.11_fac','Fluid Circulation Drive System (Field Cost 222) factory cost',3.780837782,'million',NULL,NULL,NULL,0),(11,'c_222.11_lab','Fluid Circulation Drive System (Field Cost 222) labor cost',4.374124686,'million',NULL,NULL,NULL,0),(12,'c_222.11_mat','Fluid Circulation Drive System (Field Cost 222) material cost',0.437412469,'million',NULL,NULL,NULL,0),(13,'c_222.12_fac','Reactor Coolant Piping System (Field Cost 222) factory cost',4.394349539,'million',NULL,NULL,NULL,0),(14,'c_222.12_lab','Reactor Coolant Piping System (Field Cost 222) labor cost',11.38158584,'million',NULL,NULL,NULL,0),(15,'c_222.12_mat','Reactor Coolant Piping System (Field Cost 222) material cost',1.119106974,'million',NULL,NULL,NULL,0),(16,'c_222.13_fac','Steam Generator Equipment (Field Cost 222) factory cost',0.7514124,'million',NULL,NULL,NULL,0),(17,'c_222.14_fac','Pressurizing System (Field Cost 222) factory cost',0.015028247,'million',NULL,NULL,NULL,0),(18,'c_222.14_lab','Pressurizing System (Field Cost 222) labor cost',0.281934576,'million',NULL,NULL,NULL,0),(19,'c_222.14_mat','Pressurizing System (Field Cost 222) material cost',0.028192508,'million',NULL,NULL,NULL,0),(20,'c_231_fac','Turbine factory cost',53.54460481,'million',NULL,NULL,NULL,0),(21,'c_231_lab','Turbine labor cost',0.588990653,'million',NULL,NULL,NULL,0),(22,'c_231_mat','Turbine material cost',3.26622089,'million',NULL,NULL,NULL,0),(23,'c_233_fac','Condensing Systems factory cost',56.339442,'million',NULL,NULL,NULL,0),(24,'c_233_lab','Condensing Systems labor cost',22.964285,'million',NULL,NULL,NULL,0),(25,'c_233_mat','Condensing Systems material cost',3.2777465,'million',NULL,NULL,NULL,0),(26,'c_241_fac','Switchgear factory cost',32.06748045,'million',NULL,NULL,NULL,0),(27,'c_241_lab','Switchgear labor cost',1.720620353,'million',NULL,NULL,NULL,0),(28,'c_241_mat','Switchgear material cost',0.251722551,'million',NULL,NULL,NULL,0),(29,'c_242_fac','Station service equipment factory cost',52.15781338,'million',NULL,NULL,NULL,0),(30,'c_242_lab','Station service equipment labor cost',4.446166005,'million',NULL,NULL,NULL,0),(31,'c_242_mat','Station service equipment material cost',0.849719287,'million',NULL,NULL,NULL,0),(32,'c_245_fac','Electric structure and wiring contnr. factory cost',0,'million',NULL,NULL,NULL,0),(33,'c_245_lab','Electric structure and wiring contnr. labor cost',51.23668914,'million',NULL,NULL,NULL,0),(34,'c_245_mat','Electric structure and wiring contnr. material cost',12.30988227,'million',NULL,NULL,NULL,0),(35,'c_246_fac','Power and control wiring factory cost',4.510910469,'million',NULL,NULL,NULL,0),(36,'c_246_lab','Power and control wiring labor cost',33.4345167,'million',NULL,NULL,NULL,0),(37,'c_246_mat','Power and control wiring material cost',20.75545101,'million',NULL,NULL,NULL,0),(38,'c_262_fac','Heat Rejection System factory cost',86.81393498,'million',NULL,NULL,NULL,0),(39,'c_262_lab','Heat Rejection System labor cost',35.89660737,'million',NULL,NULL,NULL,0),(40,'c_262_mat','Heat Rejection System material cost',4.510480683,'million',NULL,NULL,NULL,0),(41,'c_cr_per_unit_fac','unit cost of rod',0.06,'million',NULL,NULL,NULL,0),(42,'c_crd_per_unit_fac','unit cost of rod drive',0.61152,'million',NULL,NULL,NULL,0),(43,'c_pump_ap1000','AP1000 factory cost of main coolant pumps',31.25,'million',NULL,NULL,'c_pump_per_unit_fac',0),(44,'c_pump_per_unit_fac','Reactor coolant pumps Factory Equipment Cost',13.92421832,'million','pump','c_pump_ap1000,CH_abr1000,CH_AP1000,scale_0.52',NULL,0),(45,'c_turbine','Turbine equipment cost',52.64956225,'million',NULL,NULL,NULL,0),(46,'c_zero','place holder for weight',0,'ton',NULL,NULL,NULL,0),(47,'CH_abr1000','CH factor of PWR-12 BE',6072830,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0),(48,'CH_AP1000','CH factor of AP1000',28743750,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0),(49,'escalate_1987','escalator 1987 to 2017',2.849407,'1',NULL,NULL,NULL,0),(50,'mwe','user_input MWE',NULL,'MW',NULL,NULL,NULL,0),(51,'mwreth','rejected thermal power',620,'MW',NULL,NULL,NULL,0),(52,'mwth','user_input mwth',NULL,'MW',NULL,NULL,NULL,0),(53,'no_of_cr','Total control rods',22,'1',NULL,NULL,NULL,0),(54,'no_of_crd','Total control rod drives',22,'1',NULL,NULL,NULL,0),(55,'no_of_rcpump','total number of reactor coolant pumps',4,'1',NULL,NULL,NULL,0),(56,'prn_235_of_231_fac','factory portion of cost from factory of 231',0.089454842,'1',NULL,NULL,NULL,0),(57,'prn_235_of_231_lab','labor portion of cost from labor of 231',1.302615598,'1',NULL,NULL,NULL,0),(58,'prn_235_of_231_mat','material portion of cost from labor of 231',0.858473379,'1',NULL,NULL,NULL,0),(59,'prn_fac_231_lab','labor portion of cost from factory of 231',0.061,'1',NULL,NULL,NULL,0),(60,'prn_fac_231_mat','material portion of cost from factory of 231',0.0112,'1',NULL,NULL,NULL,0),(61,'r_222.13_lab','labor cost of Steam Generator Equipment (Field Cost 222)',2.10628,'million',NULL,NULL,NULL,0),(62,'r_222.13_mat','material cost of Steam Generator Equipment (Field Cost 222)',0.210628,'million',NULL,NULL,NULL,0),(63,'r_78_220A224_fac','factory cost of pressurizer in ref',5.2416,'million',NULL,NULL,NULL,0),(64,'r_78_226.4_fac','Coolant Treatment & Recycle factory cost',117.7,'million',NULL,NULL,NULL,0),(65,'ref_211_fac','yardwork factory cost',0.284275,'million',NULL,NULL,NULL,0),(66,'ref_211_lab','yardwork labor cost',14.504359,'million',NULL,NULL,NULL,0),(67,'ref_211_mat','yardwork material cost',10.203885,'million',NULL,NULL,NULL,0),(68,'ref_224_fac','Radwaste processing factory cost',16.16052583,'million',NULL,NULL,NULL,0),(69,'ref_224_lab','Radwaste processing labor cost',4.012887083,'million',NULL,NULL,NULL,0),(70,'ref_224_mat','Radwaste processing material cost',0.768994167,'million',NULL,NULL,NULL,0),(71,'ref_227_fac','Reactor instrumentation and control factory cost',13.174092,'million',NULL,NULL,NULL,0),(72,'ref_227_lab','Reactor instrumentation and control labor cost',7.707179,'million',NULL,NULL,NULL,0),(73,'ref_227_mat','Reactor instrumentation and control material cost',0.673999,'million',NULL,NULL,NULL,0),(74,'ref_252_fac','Air, water and steam service systems factory cost ',8.72798,'million',NULL,NULL,NULL,0),(75,'ref_252_lab','Air, water and steam service systems labor cost ',15.572281,'million',NULL,NULL,NULL,0),(76,'ref_252_mat','Air, water and steam service systems material cost ',4.425393,'million',NULL,NULL,NULL,0),(77,'scale_0.4','electric scale 0.4',0.4,'1',NULL,NULL,NULL,0),(78,'scale_0.52','SH scale 1.0',0.52,'1',NULL,NULL,'c_pump_per_unit_fac',0),(79,'scale_0.8','thermal scale 0.8',0.8,'1',NULL,NULL,NULL,0),(80,'scale_1.0','thermal scale 1.0',1,'1',NULL,NULL,NULL,0),(81,'scale_tur_231_fac','factory scale of cost from turbine',1.017,'1',NULL,NULL,NULL,0),(82,'CPI','The Consumer Price Index',2.2,'1',NULL,NULL,'infl',0),(83,'Void_fraction','Void fraction of the inside of the containment ',0.917,'1',NULL,NULL,'Internal_v_m3',0),(84,'liner_fraction','liner fraction of containment',1,'1',NULL,NULL,'Liner_s_m2',0),(85,'Cont_H_tot_m','Containment total height ',50.5968,'m',NULL,NULL,'Cont_H_wall_m',0),(86,'Cont_rad_out_m','Containment outside radius ',15.24,'m',NULL,NULL,'Cont_H_wall_m,Cont_rad_in_m,Basemat_s_m2,Walls_s_m2,Walls_v_m3,Dome_rad_in_m,Dome_s_m2,Dome_v_m3,Surf_paint_m2',0),(87,'Cont_shell_t_m','Shell wall thickness ',1.3716,'m',NULL,NULL,'Cont_rad_in_m',0),(88,'Cont_H_wall_m','Containment wall height ',35.3568,'m','wall_height','Cont_H_tot_m,Cont_rad_out_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s,Surf_paint_m2',0),(89,'Basemat_t_m','Basemat thickness ',3.048,'m',NULL,NULL,'Basemat_v_m3',0),(90,'Dome_t_m','Dome thickness ',1.0668,'m',NULL,NULL,'Dome_rad_in_m',0),(91,'Intern_wall_t','Internal wall average thickness ',1.2192,'m',NULL,NULL,'Internal_s_m2',0),(92,'React_cav_A_m2','Reactor cavity area ',1021.93344,'m^2',NULL,NULL,'Total_Labor_React_cav_liner,Total_Mat_React_cav_liner',0),(93,'Cont_rad_in_m','Containment inside radius ',13.8684,'m','inside_rad','Cont_rad_out_m,Cont_shell_t_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s',0),(94,'Basemat_s_m2','Basemat surface',729.6587699,'m^2','round_surface','Cont_rad_out_m','Basemat_v_m3,Total_Labor_Constr_joints_Substr,Total_Labor_Formwork_Substr,Total_Labor_Waterproofing_Substr,Total_Labor_Welded_wire_fabric_Substr,Total_Mat_Constr_joints_Substr,Total_Mat_Formwork_Substr,Total_Mat_Waterproofing_Substr,Total_Mat_Welded_wire_fabric_Substr',0),(95,'Basemat_v_m3','Basemat volume',2223.999931,'m^3','basemat_volume','Basemat_s_m2,Basemat_t_m','Struct_v_m3,Total_Labor_Cadweld_Substr,Total_Labor_Concrete_Substr,Total_Labor_Embedded_steel_Substr,Total_Labor_Reinforc_steel_Substr,Total_Mat_Cadweld_Substr,Total_Mat_Concrete_Substr,Total_Mat_Embedded_steel_Substr,Total_Mat_Reinforc_steel_Substr',0),(96,'Walls_s_m2','Walls surface',6466.527882,'m^2','walls_surface','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Total_Labor_Constr_joints_Superstr,Total_Labor_Formwork_Superstr,Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Waterproofing_Superstr,Total_Mat_Constr_joints_Superstr,Total_Mat_Formwork_Superstr,Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Waterproofing_Superstr',0),(97,'Walls_v_m3','Walls volume',4434.744822,'m^3','wall_volume','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Superstr,Total_Labor_Concrete_Superstr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Reinforc_steel_Superstr,Total_Mat_Cadweld_Superstr,Total_Mat_Concrete_Superstr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Reinforc_steel_Superstr',0),(98,'Dome_rad_in_m','Dome inside radius ',14.1732,'m','inside_rad','Cont_rad_out_m,Dome_t_m','Dome_s_m2,Dome_v_m3,Intern_tot_v_m3,Inside_liner_s',0),(99,'Dome_s_m2','Roof surface',2721.48128,'m^2','roof_surface','Cont_rad_out_m,Dome_rad_in_m','Total_Labor_Constr_joints_Dome,Total_Labor_Formwork_Dome,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Waterproofing_Dome,Total_Mat_Constr_joints_Dome,Total_Mat_Formwork_Dome,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Waterproofing_Dome',0),(100,'Dome_v_m3','Roof volume',1450.366728,'m^3','roof_volume','Cont_rad_out_m,Dome_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Dome,Total_Labor_Concrete_Dome,Total_Labor_Embedded_steel_Dome,Total_Labor_Reinforc_steel_Dome,Total_Mat_Cadweld_Dome,Total_Mat_Concrete_Dome,Total_Mat_Embedded_steel_Dome,Total_Mat_Reinforc_steel_Dome',0),(101,'Intern_tot_v_m3','Tot intenal Volume',27326.62075,'m^3','tot_internal_volume','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Internal_v_m3,Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other,Total_Labor_fl_grate_handrail_stairs,Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other,Total_Mat_fl_grate_handrail_stairs',0),(102,'Internal_v_m3','Building internal volume',2268.109522,'m^3','building_internal_volume','Intern_tot_v_m3,Void_fraction','Internal_s_m2,Struct_v_m3,Total_Labor_Cadweld_Interior,Total_Labor_Concrete_Interior,Total_Labor_Embedded_steel_Interior,Total_Labor_Maj_supp_embedments_Interior,Total_Labor_Reinforc_steel_Interior,Total_Mat_Cadweld_Interior,Total_Mat_Concrete_Interior,Total_Mat_Embedded_steel_Interior,Total_Mat_Maj_supp_embedments_Interior,Total_Mat_Reinforc_steel_Interior',0),(103,'Internal_s_m2','Building internal surface',3720.652103,'m^2','building_internal _surface','Internal_v_m3,Intern_wall_t','Surf_paint_m2,Total_Labor_Constr_joints_Interior,Total_Labor_Formwork_Interior,Total_Labor_Rubbing_surfaces_Interior,Total_Mat_Constr_joints_Interior,Total_Mat_Formwork_Interior,Total_Mat_Rubbing_surfaces_Interior',0),(104,'Struct_v_m3','volume of the structures ',10377.221,'m^3','volume_of_the_structures ','Basemat_v_m3,Walls_v_m3,Dome_v_m3,Internal_v_m3','Total_Labor_Misc_steel_frames,Total_Labor_Struct_steel,Total_Mat_Misc_steel_frames,Total_Mat_Struct_steel',0),(105,'Inside_liner_s','Inside liner surface',4947.305358,'m^2','Inside_liner_surface','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Liner_s_m2,Surf_paint_m2,',0),(106,'Liner_s_m2','Liner Surface',4947.305358,'m^2','liner_Surface','Inside_liner_s,liner_fraction','Total_Labor_cont_liner,Total_Mat_cont_liner',0),(107,'Surf_paint_m2','painted surface',13512.89169,'m^2','painted_surface','Inside_liner_s,Cont_H_wall_m,Cont_rad_out_m,Internal_s_m2','Total_Labor_painting,Total_Mat_painting',0),(108,'infl','Inflation rate',2.870501004,'1','Inflation_rate','CPI','Unit_Labor_Cadweld_Substr,Unit_Labor_Cadweld_Superstr,Unit_Labor_Cadweld_Dome,Unit_Labor_Cadweld_Interior,Unit_Labor_Concrete_Substr,Unit_Labor_Concrete_Superstr,Unit_Labor_Concrete_Dome,Unit_Labor_Concrete_Interior,Unit_Labor_Constr_joints_Substr,Unit_Labor_Constr_joints_Superstr,Unit_Labor_Constr_joints_Dome,Unit_Labor_Constr_joints_Interior,Unit_Labor_Embedded_steel_Substr,Unit_Labor_Embedded_steel_Superstr,Unit_Labor_Embedded_steel_Dome,Unit_Labor_Embedded_steel_Interior,Unit_Labor_Formwork_Substr,Unit_Labor_Formwork_Superstr,Unit_Labor_Formwork_Dome,Unit_Labor_Formwork_Interior,Unit_Labor_Maj_supp_embedments_Interior,Unit_Labor_Reinforc_steel_Substr,Unit_Labor_Reinforc_steel_Superstr,Unit_Labor_Reinforc_steel_Dome,Unit_Labor_Reinforc_steel_Interior,Unit_Labor_Rubbing_surfaces_Superstr,Unit_Labor_Rubbing_surfaces_Dome,Unit_Labor_Rubbing_surfaces_Interior,Unit_Labor_Waterproofing_Substr,Unit_Labor_Waterproofing_Superstr,Unit_Labor_Waterproofing_Dome,Unit_Labor_Welded_wire_fabric_Substr,Unit_Labor_Lighting_Power,Unit_Labor_Plumb_drains,Unit_Labor_Special_HVAC,Unit_Labor_other,Unit_Labor_Misc_steel_frames,Unit_Labor_React_cav_liner,Unit_Labor_Struct_steel,Unit_Labor_cont_liner,Unit_Labor_fl_grate_handrail_stairs,Unit_Labor_painting,Unit_Mat_Cadweld_Substr,Unit_Mat_Cadweld_Superstr,Unit_Mat_Cadweld_Dome,Unit_Mat_Cadweld_Interior,Unit_Mat_Concrete_Substr,Unit_Mat_Concrete_Superstr,Unit_Mat_Concrete_Dome,Unit_Mat_Concrete_Interior,Unit_Mat_Constr_joints_Substr,Unit_Mat_Constr_joints_Superstr,Unit_Mat_Constr_joints_Dome,Unit_Mat_Constr_joints_Interior,Unit_Mat_Embedded_steel_Substr,Unit_Mat_Embedded_steel_Superstr,Unit_Mat_Embedded_steel_Dome,Unit_Mat_Embedded_steel_Interior,Unit_Mat_Formwork_Substr,Unit_Mat_Formwork_Superstr,Unit_Mat_Formwork_Dome,Unit_Mat_Formwork_Interior,Unit_Mat_Maj_supp_embedments_Interior,Unit_Mat_Reinforc_steel_Substr,Unit_Mat_Reinforc_steel_Superstr,Unit_Mat_Reinforc_steel_Dome,Unit_Mat_Reinforc_steel_Interior,Unit_Mat_Rubbing_surfaces_Superstr,Unit_Mat_Rubbing_surfaces_Dome,Unit_Mat_Rubbing_surfaces_Interior,Unit_Mat_Waterproofing_Substr,Unit_Mat_Waterproofing_Superstr,Unit_Mat_Waterproofing_Dome,Unit_Mat_Welded_wire_fabric_Substr,Unit_Mat_Lighting_Power,Unit_Mat_Plumb_drains,Unit_Mat_Special_HVAC,Unit_Mat_other,Unit_Mat_Misc_steel_frames,Unit_Mat_React_cav_liner,Unit_Mat_Struct_steel,Unit_Mat_cont_liner,Unit_Mat_fl_grate_handrail_stairs,Unit_Mat_painting',0),(109,'Unit_EEDB_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in EEDB',85.46,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Substr',0),(110,'Unit_EEDB_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in EEDB',114.62,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Superstr',0),(111,'Unit_EEDB_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in EEDB',231.09,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Dome',0),(112,'Unit_EEDB_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in EEDB',48.2,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Interior',0),(113,'Unit_EEDB_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in EEDB',72.52,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Substr',0),(114,'Unit_EEDB_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in EEDB',87.39,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Superstr',0),(115,'Unit_EEDB_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in EEDB',78.02,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Dome',0),(116,'Unit_EEDB_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in EEDB',97.57,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Interior',0),(117,'Unit_EEDB_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in EEDB',14.51,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Substr',0),(118,'Unit_EEDB_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in EEDB',12.44,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Superstr',0),(119,'Unit_EEDB_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in EEDB',4.75,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Dome',0),(120,'Unit_EEDB_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in EEDB',2.05,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Interior',0),(121,'Unit_EEDB_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in EEDB',3.98,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Substr',0),(122,'Unit_EEDB_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in EEDB',15.98,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Superstr',0),(123,'Unit_EEDB_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in EEDB',0,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Dome',0),(124,'Unit_EEDB_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in EEDB',337.14,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Interior',0),(125,'Unit_EEDB_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in EEDB',93.11,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Substr',0),(126,'Unit_EEDB_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in EEDB',109.83,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Superstr',0),(127,'Unit_EEDB_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in EEDB',58.66,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Dome',0),(128,'Unit_EEDB_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in EEDB',231.52,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Interior',0),(129,'Unit_EEDB_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in EEDB',153.53,'dollar/m^3',NULL,NULL,'Unit_Labor_Maj_supp_embedments_Interior',0),(130,'Unit_EEDB_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in EEDB',322.55,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Substr',0),(131,'Unit_EEDB_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in EEDB',326.13,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Superstr',0),(132,'Unit_EEDB_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in EEDB',300.56,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Dome',0),(133,'Unit_EEDB_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in EEDB',306.72,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Interior',0),(134,'Unit_EEDB_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in EEDB',8.32,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Superstr',0),(135,'Unit_EEDB_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in EEDB',5.74,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Dome',0),(136,'Unit_EEDB_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in EEDB',9.91,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Interior',0),(137,'Unit_EEDB_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in EEDB',4.58,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Substr',0),(138,'Unit_EEDB_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in EEDB',0.84,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Superstr',0),(139,'Unit_EEDB_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in EEDB',0,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Dome',0),(140,'Unit_EEDB_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in EEDB',10.07,'dollar/m^2',NULL,NULL,'Unit_Labor_Welded_wire_fabric_Substr',0),(141,'Unit_EEDB_Labor_Lighting_Power','Unit cost of Labor Lighting Power in EEDB',9.83,'dollar/m^3',NULL,NULL,'Unit_Labor_Lighting_Power',0),(142,'Unit_EEDB_Labor_Plumb_drains','Unit cost of Labor Plumb drains in EEDB',3.02,'dollar/m^3',NULL,NULL,'Unit_Labor_Plumb_drains',0),(143,'Unit_EEDB_Labor_Special_HVAC','Unit cost of Labor Special HVAC in EEDB',11.09,'dollar/m^3',NULL,NULL,'Unit_Labor_Special_HVAC',0),(144,'Unit_EEDB_Labor_other','Unit cost of Labor other in EEDB',0.53,'dollar/m^3',NULL,NULL,'Unit_Labor_other',0),(145,'Unit_EEDB_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in EEDB',9.94,'dollar/m^3',NULL,NULL,'Unit_Labor_Misc_steel_frames',0),(146,'Unit_EEDB_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in EEDB',745.94,'dollar/m^2',NULL,NULL,'Unit_Labor_React_cav_liner',0),(147,'Unit_EEDB_Labor_Struct_steel','Unit cost of Labor Struct steel in EEDB',13.98,'dollar/m^3',NULL,NULL,'Unit_Labor_Struct_steel',0),(148,'Unit_EEDB_Labor_cont_liner','Unit cost of Labor Containment liner in EEDB',780.33,'dollar/m^2',NULL,NULL,'Unit_Labor_cont_liner',0),(149,'Unit_EEDB_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in EEDB',1.75,'dollar/m^3',NULL,NULL,'Unit_Labor_fl_grate_handrail_stairs',0),(150,'Unit_EEDB_Labor_painting','Unit cost of Labor painting in EEDB',86.8,'dollar/m^2',NULL,NULL,'Unit_Labor_painting',0),(151,'Unit_EEDB_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in EEDB',44.32,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Substr',0),(152,'Unit_EEDB_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in EEDB',59.44,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Superstr',0),(153,'Unit_EEDB_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in EEDB',119.85,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Dome',0),(154,'Unit_EEDB_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in EEDB',25,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Interior',0),(155,'Unit_EEDB_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in EEDB',79.1,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Substr',0),(156,'Unit_EEDB_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in EEDB',54.47,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Superstr',0),(157,'Unit_EEDB_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in EEDB',48.63,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Dome',0),(158,'Unit_EEDB_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in EEDB',53.21,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Interior',0),(159,'Unit_EEDB_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in EEDB',8.9,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Substr',0),(160,'Unit_EEDB_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in EEDB',7.63,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Superstr',0),(161,'Unit_EEDB_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in EEDB',2.91,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Dome',0),(162,'Unit_EEDB_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in EEDB',1.26,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Interior',0),(163,'Unit_EEDB_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in EEDB',1.88,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Substr',0),(164,'Unit_EEDB_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in EEDB',7.57,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Superstr',0),(165,'Unit_EEDB_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in EEDB',0,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Dome',0),(166,'Unit_EEDB_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in EEDB',159.73,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Interior',0),(167,'Unit_EEDB_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in EEDB',13.22,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Substr',0),(168,'Unit_EEDB_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in EEDB',13.65,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Superstr',0),(169,'Unit_EEDB_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in EEDB',7.67,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Dome',0),(170,'Unit_EEDB_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in EEDB',21.85,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Interior',0),(171,'Unit_EEDB_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in EEDB',225.35,'dollar/m^3',NULL,NULL,'Unit_Mat_Maj_supp_embedments_Interior',0),(172,'Unit_EEDB_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in EEDB',364.73,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Substr',0),(173,'Unit_EEDB_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in EEDB',258.95,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Superstr',0),(174,'Unit_EEDB_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in EEDB',238.65,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Dome',0),(175,'Unit_EEDB_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in EEDB',205.66,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Interior',0),(176,'Unit_EEDB_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in EEDB',0.68,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Superstr',0),(177,'Unit_EEDB_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in EEDB',0.47,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Dome',0),(178,'Unit_EEDB_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in EEDB',0.82,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Interior',0),(179,'Unit_EEDB_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in EEDB',2.43,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Substr',0),(180,'Unit_EEDB_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in EEDB',0.45,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Superstr',0),(181,'Unit_EEDB_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in EEDB',0,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Dome',0),(182,'Unit_EEDB_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in EEDB',5.19,'dollar/m^2',NULL,NULL,'Unit_Mat_Welded_wire_fabric_Substr',0),(183,'Unit_EEDB_Mat_Lighting_Power','Unit cost of Material Lighting Power in EEDB',4.96,'dollar/m^3',NULL,NULL,'Unit_Mat_Lighting_Power',0),(184,'Unit_EEDB_Mat_Plumb_drains','Unit cost of Material Plumb drains in EEDB',1.54,'dollar/m^3',NULL,NULL,'Unit_Mat_Plumb_drains',0),(185,'Unit_EEDB_Mat_Special_HVAC','Unit cost of Material Special HVAC in EEDB',8.79,'dollar/m^3',NULL,NULL,'Unit_Mat_Special_HVAC',0),(186,'Unit_EEDB_Mat_other','Unit cost of Material other in EEDB',1.96,'dollar/m^3',NULL,NULL,'Unit_Mat_other',0),(187,'Unit_EEDB_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in EEDB',16.56,'dollar/m^3',NULL,NULL,'Unit_Mat_Misc_steel_frames',0),(188,'Unit_EEDB_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in EEDB',607.96,'dollar/m^2',NULL,NULL,'Unit_Mat_React_cav_liner',0),(189,'Unit_EEDB_Mat_Struct_steel','Unit cost of Material Struct steel in EEDB',27.41,'dollar/m^3',NULL,NULL,'Unit_Mat_Struct_steel',0),(190,'Unit_EEDB_Mat_cont_liner','Unit cost of Material Containment liner in EEDB',1203,'dollar/m^2',NULL,NULL,'Unit_Mat_cont_liner',0),(191,'Unit_EEDB_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in EEDB',1.98,'dollar/m^3',NULL,NULL,'Unit_Mat_fl_grate_handrail_stairs',0),(192,'Unit_EEDB_Mat_painting','Unit cost of Material painting in EEDB',24.68,'dollar/m^2',NULL,NULL,'Unit_Mat_painting',0),(193,'Unit_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in 2017',245.31,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Substr,infl','Total_Labor_Cadweld_Substr',0),(194,'Unit_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in 2017',329.02,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Superstr,infl','Total_Labor_Cadweld_Superstr',0),(195,'Unit_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in 2017',663.34,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Dome,infl','Total_Labor_Cadweld_Dome',0),(196,'Unit_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in 2017',138.36,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Interior,infl','Total_Labor_Cadweld_Interior',0),(197,'Unit_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in 2017',208.17,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Substr,infl','Total_Labor_Concrete_Substr',0),(198,'Unit_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in 2017',250.85,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Superstr,infl','Total_Labor_Concrete_Superstr',0),(199,'Unit_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in 2017',223.96,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Dome,infl','Total_Labor_Concrete_Dome',0),(200,'Unit_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in 2017',280.07,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Interior,infl','Total_Labor_Concrete_Interior',0),(201,'Unit_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in 2017',41.65,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Substr,infl','Total_Labor_Constr_joints_Substr',0),(202,'Unit_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in 2017',35.71,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Superstr,infl','Total_Labor_Constr_joints_Superstr',0),(203,'Unit_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in 2017',13.63,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Dome,infl','Total_Labor_Constr_joints_Dome',0),(204,'Unit_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in 2017',5.88,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Interior,infl','Total_Labor_Constr_joints_Interior',0),(205,'Unit_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in 2017',11.42,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Substr,infl','Total_Labor_Embedded_steel_Substr',0),(206,'Unit_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in 2017',45.87,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Superstr,infl','Total_Labor_Embedded_steel_Superstr',0),(207,'Unit_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in 2017',0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Dome,infl','Total_Labor_Embedded_steel_Dome',0),(208,'Unit_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in 2017',967.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Interior,infl','Total_Labor_Embedded_steel_Interior',0),(209,'Unit_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in 2017',267.27,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Substr,infl','Total_Labor_Formwork_Substr',0),(210,'Unit_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in 2017',315.27,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Superstr,infl','Total_Labor_Formwork_Superstr',0),(211,'Unit_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in 2017',168.38,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Dome,infl','Total_Labor_Formwork_Dome',0),(212,'Unit_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in 2017',664.58,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Interior,infl','Total_Labor_Formwork_Interior',0),(213,'Unit_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in 2017',440.71,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Maj_supp_embedments_Interior,infl','Total_Labor_Maj_supp_embedments_Interior',0),(214,'Unit_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in 2017',925.88,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Substr,infl','Total_Labor_Reinforc_steel_Substr',0),(215,'Unit_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in 2017',936.16,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Superstr,infl','Total_Labor_Reinforc_steel_Superstr',0),(216,'Unit_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in 2017',862.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Dome,infl','Total_Labor_Reinforc_steel_Dome',0),(217,'Unit_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in 2017',880.44,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Interior,infl','Total_Labor_Reinforc_steel_Interior',0),(218,'Unit_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in 2017',23.88,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Superstr,infl','Total_Labor_Rubbing_surfaces_Superstr',0),(219,'Unit_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in 2017',16.48,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Dome,infl','Total_Labor_Rubbing_surfaces_Dome',0),(220,'Unit_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in 2017',28.45,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Interior,infl','Total_Labor_Rubbing_surfaces_Interior',0),(221,'Unit_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in 2017',13.15,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Substr,infl','Total_Labor_Waterproofing_Substr',0),(222,'Unit_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in 2017',2.41,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Superstr,infl','Total_Labor_Waterproofing_Superstr',0),(223,'Unit_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in 2017',0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Dome,infl','Total_Labor_Waterproofing_Dome',0),(224,'Unit_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in 2017',28.91,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Welded_wire_fabric_Substr,infl','Total_Labor_Welded_wire_fabric_Substr',0),(225,'Unit_Labor_Lighting_Power','Unit cost of Labor Lighting Power in 2017',28.22,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Lighting_Power,infl','Total_Labor_Lighting_Power',0),(226,'Unit_Labor_Plumb_drains','Unit cost of Labor Plumb drains in 2017',8.67,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Plumb_drains,infl','Total_Labor_Plumb_drains',0),(227,'Unit_Labor_Special_HVAC','Unit cost of Labor Special HVAC in 2017',31.83,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Special_HVAC,infl','Total_Labor_Special_HVAC',0),(228,'Unit_Labor_other','Unit cost of Labor other in 2017',1.52,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_other,infl','Total_Labor_other',0),(229,'Unit_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in 2017',28.53,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Misc_steel_frames,infl','Total_Labor_Misc_steel_frames',0),(230,'Unit_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in 2017',2141.22,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_React_cav_liner,infl','Total_Labor_React_cav_liner',0),(231,'Unit_Labor_Struct_steel','Unit cost of Labor Struct steel in 2017',40.13,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Struct_steel,infl','Total_Labor_Struct_steel',0),(232,'Unit_Labor_cont_liner','Unit cost of Labor Containment liner in 2017',2239.94,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_cont_liner,infl','Total_Labor_cont_liner',0),(233,'Unit_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',5.02,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_fl_grate_handrail_stairs,infl','Total_Labor_fl_grate_handrail_stairs',0),(234,'Unit_Labor_painting','Unit cost of Labor painting in 2017',249.16,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_painting,infl','Total_Labor_painting',0),(235,'Unit_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in 2017',127.22,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Substr,infl','Total_Mat_Cadweld_Substr',0),(236,'Unit_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in 2017',170.62,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Superstr,infl','Total_Mat_Cadweld_Superstr',0),(237,'Unit_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in 2017',344.03,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Dome,infl','Total_Mat_Cadweld_Dome',0),(238,'Unit_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in 2017',71.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Interior,infl','Total_Mat_Cadweld_Interior',0),(239,'Unit_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in 2017',227.06,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Substr,infl','Total_Mat_Concrete_Substr',0),(240,'Unit_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in 2017',156.36,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Superstr,infl','Total_Mat_Concrete_Superstr',0),(241,'Unit_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in 2017',139.59,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Dome,infl','Total_Mat_Concrete_Dome',0),(242,'Unit_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in 2017',152.74,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Interior,infl','Total_Mat_Concrete_Interior',0),(243,'Unit_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in 2017',25.55,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Substr,infl','Total_Mat_Constr_joints_Substr',0),(244,'Unit_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in 2017',21.9,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Superstr,infl','Total_Mat_Constr_joints_Superstr',0),(245,'Unit_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in 2017',8.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Dome,infl','Total_Mat_Constr_joints_Dome',0),(246,'Unit_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in 2017',3.62,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Interior,infl','Total_Mat_Constr_joints_Interior',0),(247,'Unit_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in 2017',5.4,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Substr,infl','Total_Mat_Embedded_steel_Substr',0),(248,'Unit_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in 2017',21.73,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Superstr,infl','Total_Mat_Embedded_steel_Superstr',0),(249,'Unit_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in 2017',0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Dome,infl','Total_Mat_Embedded_steel_Dome',0),(250,'Unit_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in 2017',458.51,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Interior,infl','Total_Mat_Embedded_steel_Interior',0),(251,'Unit_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in 2017',37.95,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Substr,infl','Total_Mat_Formwork_Substr',0),(252,'Unit_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in 2017',39.18,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Superstr,infl','Total_Mat_Formwork_Superstr',0),(253,'Unit_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in 2017',22.02,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Dome,infl','Total_Mat_Formwork_Dome',0),(254,'Unit_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in 2017',62.72,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Interior,infl','Total_Mat_Formwork_Interior',0),(255,'Unit_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in 2017',646.87,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Maj_supp_embedments_Interior,infl','Total_Mat_Maj_supp_embedments_Interior',0),(256,'Unit_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in 2017',1046.96,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Substr,infl','Total_Mat_Reinforc_steel_Substr',0),(257,'Unit_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in 2017',743.32,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Superstr,infl','Total_Mat_Reinforc_steel_Superstr',0),(258,'Unit_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in 2017',685.05,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Dome,infl','Total_Mat_Reinforc_steel_Dome',0),(259,'Unit_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in 2017',590.35,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Interior,infl','Total_Mat_Reinforc_steel_Interior',0),(260,'Unit_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in 2017',1.95,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Superstr,infl','Total_Mat_Rubbing_surfaces_Superstr',0),(261,'Unit_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in 2017',1.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Dome,infl','Total_Mat_Rubbing_surfaces_Dome',0),(262,'Unit_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in 2017',2.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Interior,infl','Total_Mat_Rubbing_surfaces_Interior',0),(263,'Unit_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in 2017',6.98,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Substr,infl','Total_Mat_Waterproofing_Substr',0),(264,'Unit_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in 2017',1.29,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Superstr,infl','Total_Mat_Waterproofing_Superstr',0),(265,'Unit_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in 2017',0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Dome,infl','Total_Mat_Waterproofing_Dome',0),(266,'Unit_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in 2017',14.9,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Welded_wire_fabric_Substr,infl','Total_Mat_Welded_wire_fabric_Substr',0),(267,'Unit_Mat_Lighting_Power','Unit cost of Material Lighting Power in 2017',14.24,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Lighting_Power,infl','Total_Mat_Lighting_Power',0),(268,'Unit_Mat_Plumb_drains','Unit cost of Material Plumb drains in 2017',4.42,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Plumb_drains,infl','Total_Mat_Plumb_drains',0),(269,'Unit_Mat_Special_HVAC','Unit cost of Material Special HVAC in 2017',25.23,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Special_HVAC,infl','Total_Mat_Special_HVAC',0),(270,'Unit_Mat_other','Unit cost of Material other in 2017',5.63,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_other,infl','Total_Mat_other',0),(271,'Unit_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in 2017',47.54,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Misc_steel_frames,infl','Total_Mat_Misc_steel_frames',0),(272,'Unit_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in 2017',1745.15,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_React_cav_liner,infl','Total_Mat_React_cav_liner',0),(273,'Unit_Mat_Struct_steel','Unit cost of Material Struct steel in 2017',78.68,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Struct_steel,infl','Total_Mat_Struct_steel',0),(274,'Unit_Mat_cont_liner','Unit cost of Material Containment liner in 2017',3453.21,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_cont_liner,infl','Total_Mat_cont_liner',0),(275,'Unit_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',5.68,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_fl_grate_handrail_stairs,infl','Total_Mat_fl_grate_handrail_stairs',0),(276,'Unit_Mat_painting','Unit cost of Material painting in 2017',70.84,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_painting,infl','Total_Mat_painting',0),(277,'Total_Labor_Cadweld_Substr','Total cost of Labor Cadweld Substructure (base mat) in 2017',545576.13,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Substr,Basemat_v_m3','Sum_Labor_Cadweld',0),(278,'Total_Labor_Cadweld_Superstr','Total cost of Labor Cadweld Superstructure (shell) in 2017',1459105.66,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Superstr,Walls_v_m3','Sum_Labor_Cadweld',0),(279,'Total_Labor_Cadweld_Dome','Total cost of Labor Cadweld Superstructure (dome) in 2017',962092.18,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Dome,Dome_v_m3','Sum_Labor_Cadweld',0),(280,'Total_Labor_Cadweld_Interior','Total cost of Labor Cadweld Interior structure in 2017',313811.43,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Interior,Internal_v_m3','Sum_Labor_Cadweld',0),(281,'Total_Labor_Concrete_Substr','Total cost of Labor Concrete Substructure (base mat) in 2017',462967.25,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Substr,Basemat_v_m3','Sum_Labor_Concrete',0),(282,'Total_Labor_Concrete_Superstr','Total cost of Labor Concrete Superstructure (shell) in 2017',1112469.41,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Superstr,Walls_v_m3','Sum_Labor_Concrete',0),(283,'Total_Labor_Concrete_Dome','Total cost of Labor Concrete Superstructure (dome) in 2017',324819.04,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Dome,Dome_v_m3','Sum_Labor_Concrete',0),(284,'Total_Labor_Concrete_Interior','Total cost of Labor Concrete Interior structure in 2017',635240.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Interior,Internal_v_m3','Sum_Labor_Concrete',0),(285,'Total_Labor_Constr_joints_Substr','Total cost of Labor Construction joints Substructure (base mat) in 2017',30391,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Substr,Basemat_s_m2','Sum_Labor_Constr_joints',0),(286,'Total_Labor_Constr_joints_Superstr','Total cost of Labor Construction joints Superstructure (shell) in 2017',230913.45,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Superstr,Walls_s_m2','Sum_Labor_Constr_joints',0),(287,'Total_Labor_Constr_joints_Dome','Total cost of Labor Construction joints Superstructure (dome) in 2017',37107.07,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Dome,Dome_s_m2','Sum_Labor_Constr_joints',0),(288,'Total_Labor_Constr_joints_Interior','Total cost of Labor Construction joints Interior structure in 2017',21894.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Interior,Internal_s_m2','Sum_Labor_Constr_joints',0),(289,'Total_Labor_Embedded_steel_Substr','Total cost of Labor Embedded steel Substructure (base mat) in 2017',25408.3,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Substr,Basemat_v_m3','Sum_Labor_Embedded_steel',0),(290,'Total_Labor_Embedded_steel_Superstr','Total cost of Labor Embedded steel Superstructure (shell) in 2017',203424.43,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Superstr,Walls_v_m3','Sum_Labor_Embedded_steel',0),(291,'Total_Labor_Embedded_steel_Dome','Total cost of Labor Embedded steel Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Dome,Dome_v_m3','Sum_Labor_Embedded_steel',0),(292,'Total_Labor_Embedded_steel_Interior','Total cost of Labor Embedded steel Interior structure in 2017',2194987.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Interior,Internal_v_m3','Sum_Labor_Embedded_steel',0),(293,'Total_Labor_Formwork_Substr','Total cost of Labor Formwork Substructure (base mat) in 2017',195017.61,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Substr,Basemat_s_m2','Sum_Labor_Formwork',0),(294,'Total_Labor_Formwork_Superstr','Total cost of Labor Formwork Superstructure (shell) in 2017',2038683.66,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Superstr,Walls_s_m2','Sum_Labor_Formwork',0),(295,'Total_Labor_Formwork_Dome','Total cost of Labor Formwork Superstructure (dome) in 2017',458252.79,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Dome,Dome_s_m2','Sum_Labor_Formwork',0),(296,'Total_Labor_Formwork_Interior','Total cost of Labor Formwork Interior structure in 2017',2472664.99,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Interior,Internal_s_m2','Sum_Labor_Formwork',0),(297,'Total_Labor_Maj_supp_embedments_Interior','Total cost of Labor Major Support Embedments Interior structure in 2017',999574.05,'dollar','tol_contaiment_ce_cost','Unit_Labor_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Labor_Maj_supp_embedments',0),(298,'Total_Labor_Reinforc_steel_Substr','Total cost of Labor Reinforc steel Substructure (base mat) in 2017',2059157.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Substr,Basemat_v_m3','Sum_Labor_Reinforc_steel',0),(299,'Total_Labor_Reinforc_steel_Superstr','Total cost of Labor Reinforc steel Superstructure (shell) in 2017',4151615.16,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Superstr,Walls_v_m3','Sum_Labor_Reinforc_steel',0),(300,'Total_Labor_Reinforc_steel_Dome','Total cost of Labor Reinforc steel Superstructure (dome) in 2017',1251315.18,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Dome,Dome_v_m3','Sum_Labor_Reinforc_steel',0),(301,'Total_Labor_Reinforc_steel_Interior','Total cost of Labor Reinforc steel Interior structure in 2017',1996934.5,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Interior,Internal_v_m3','Sum_Labor_Reinforc_steel',0),(302,'Total_Labor_Rubbing_surfaces_Superstr','Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017',154437.29,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Labor_Rubbing_surfaces',0),(303,'Total_Labor_Rubbing_surfaces_Dome','Total cost of Labor Rubbing surfaces Superstructure (dome) in 2017',44840.96,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Labor_Rubbing_surfaces',0),(304,'Total_Labor_Rubbing_surfaces_Interior','Total cost of Labor Rubbing surfaces Interior structure in 2017',105840.14,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Labor_Rubbing_surfaces',0),(305,'Total_Labor_Waterproofing_Substr','Total cost of Labor Waterproofing Substructure (base mat) in 2017',9592.75,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Substr,Basemat_s_m2','Sum_Labor_Waterproofing',0),(306,'Total_Labor_Waterproofing_Superstr','Total cost of Labor Waterproofing Superstructure (shell) in 2017',15592.23,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Superstr,Walls_s_m2','Sum_Labor_Waterproofing',0),(307,'Total_Labor_Waterproofing_Dome','Total cost of Labor Waterproofing Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Dome,Dome_s_m2','Sum_Labor_Waterproofing',0),(308,'Total_Labor_Welded_wire_fabric_Substr','Total cost of Labor Welded wire fabric Substructure (base mat) in 2017',21091.48,'dollar','tol_contaiment_ce_cost','Unit_Labor_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Labor_Welded_wire_fabric',0),(309,'Total_Labor_Lighting_Power','Total cost of Labor Lighting Power in 2017',771075.94,'dollar','tol_contaiment_ce_cost','Unit_Labor_Lighting_Power,Intern_tot_v_m3','Tot_Labor_equipment',0),(310,'Total_Labor_Plumb_drains','Total cost of Labor Plumb drains in 2017',236892.1,'dollar','tol_contaiment_ce_cost','Unit_Labor_Plumb_drains,Intern_tot_v_m3','Tot_Labor_equipment',0),(311,'Total_Labor_Special_HVAC','Total cost of Labor Special HVAC in 2017',869911.71,'dollar','tol_contaiment_ce_cost','Unit_Labor_Special_HVAC,Intern_tot_v_m3','Tot_Labor_equipment',0),(312,'Total_Labor_other','Total cost of Labor other in 2017',41573.78,'dollar','tol_contaiment_ce_cost','Unit_Labor_other,Intern_tot_v_m3','Tot_Labor_equipment',0),(313,'Total_Labor_Misc_steel_frames','Total cost of Labor miscellaneous steel frames in 2017',296090.96,'dollar','tol_contaiment_ce_cost','Unit_Labor_Misc_steel_frames,Struct_v_m3','Tot_Labor_others',0),(314,'Total_Labor_React_cav_liner','Total cost of Labor Reactor cavity liner plate in 2017',2188185.87,'dollar','tol_contaiment_ce_cost','Unit_Labor_React_cav_liner,React_cav_A_m2','Tot_Labor_others',0),(315,'Total_Labor_Struct_steel','Total cost of Labor Struct steel in 2017',416433.77,'dollar','tol_contaiment_ce_cost','Unit_Labor_Struct_steel,Struct_v_m3','Tot_Labor_others',0),(316,'Total_Labor_cont_liner','Total cost of Labor Containment liner in 2017',11081657.51,'dollar','tol_contaiment_ce_cost','Unit_Labor_cont_liner,Liner_s_m2','Tot_Labor_others',0),(317,'Total_Labor_fl_grate_handrail_stairs','Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',137271.91,'dollar','tol_contaiment_ce_cost','Unit_Labor_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Labor_others',0),(318,'Total_Labor_painting','Total cost of Labor painting in 2017',3366865.17,'dollar','tol_contaiment_ce_cost','Unit_Labor_painting,Surf_paint_m2','Tot_Labor_others',0),(319,'Total_Mat_Cadweld_Substr','Total cost of Material Cadweld Substructure (base mat) in 2017',282938.62,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Substr,Basemat_v_m3','Sum_Mat_Cadweld',0),(320,'Total_Mat_Cadweld_Superstr','Total cost of Material Cadweld Superstructure (shell) in 2017',756667.6,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Superstr,Walls_v_m3','Sum_Mat_Cadweld',0),(321,'Total_Mat_Cadweld_Dome','Total cost of Material Cadweld Superstructure (dome) in 2017',498969.01,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Dome,Dome_v_m3','Sum_Mat_Cadweld',0),(322,'Total_Mat_Cadweld_Interior','Total cost of Material Cadweld Interior structure in 2017',162765.27,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Interior,Internal_v_m3','Sum_Mat_Cadweld',0),(323,'Total_Mat_Concrete_Substr','Total cost of Material Concrete Substructure (base mat) in 2017',504973.93,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Substr,Basemat_v_m3','Sum_Mat_Concrete',0),(324,'Total_Mat_Concrete_Superstr','Total cost of Material Concrete Superstructure (shell) in 2017',693399.8,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Superstr,Walls_v_m3','Sum_Mat_Concrete',0),(325,'Total_Mat_Concrete_Dome','Total cost of Material Concrete Superstructure (dome) in 2017',202460.27,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Dome,Dome_v_m3','Sum_Mat_Concrete',0),(326,'Total_Mat_Concrete_Interior','Total cost of Material Concrete Interior structure in 2017',346429.59,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Interior,Internal_v_m3','Sum_Mat_Concrete',0),(327,'Total_Mat_Constr_joints_Substr','Total cost of Material Construction joints Substructure (base mat) in 2017',18640.93,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Substr,Basemat_s_m2','Sum_Mat_Constr_joints',0),(328,'Total_Mat_Constr_joints_Superstr','Total cost of Material Construction joints Superstructure (shell) in 2017',141629.39,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Superstr,Walls_s_m2','Sum_Mat_Constr_joints',0),(329,'Total_Mat_Constr_joints_Dome','Total cost of Material Construction joints Superstructure (dome) in 2017',22732.96,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Dome,Dome_s_m2','Sum_Mat_Constr_joints',0),(330,'Total_Mat_Constr_joints_Interior','Total cost of Material Construction joints Interior structure in 2017',13456.97,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Interior,Internal_s_m2','Sum_Mat_Constr_joints',0),(331,'Total_Mat_Embedded_steel_Substr','Total cost of Material Embedded steel Substructure (base mat) in 2017',12001.91,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Substr,Basemat_v_m3','Sum_Mat_Embedded_steel',0),(332,'Total_Mat_Embedded_steel_Superstr','Total cost of Material Embedded steel Superstructure (shell) in 2017',96365.64,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Superstr,Walls_v_m3','Sum_Mat_Embedded_steel',0),(333,'Total_Mat_Embedded_steel_Dome','Total cost of Material Embedded steel Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Dome,Dome_v_m3','Sum_Mat_Embedded_steel',0),(334,'Total_Mat_Embedded_steel_Interior','Total cost of Material Embedded steel Interior structure in 2017',1039939.84,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Interior,Internal_v_m3','Sum_Mat_Embedded_steel',0),(335,'Total_Mat_Formwork_Substr','Total cost of Material Formwork Substructure (base mat) in 2017',27689.11,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Substr,Basemat_s_m2','Sum_Mat_Formwork',0),(336,'Total_Mat_Formwork_Superstr','Total cost of Material Formwork Superstructure (shell) in 2017',253373.69,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Superstr,Walls_s_m2','Sum_Mat_Formwork',0),(337,'Total_Mat_Formwork_Dome','Total cost of Material Formwork Superstructure (dome) in 2017',59918.15,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Dome,Dome_s_m2','Sum_Mat_Formwork',0),(338,'Total_Mat_Formwork_Interior','Total cost of Material Formwork Interior structure in 2017',233360.96,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Interior,Internal_s_m2','Sum_Mat_Formwork',0),(339,'Total_Mat_Maj_supp_embedments_Interior','Total cost of Material Major Support Embedments Interior structure in 2017',1467166.11,'dollar','tol_contaiment_ce_cost','Unit_Mat_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Mat_Maj_supp_embedments',0),(340,'Total_Mat_Reinforc_steel_Substr','Total cost of Material Reinforc steel Substructure (base mat) in 2017',2328434.14,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Substr,Basemat_v_m3','Sum_Mat_Reinforc_steel',0),(341,'Total_Mat_Reinforc_steel_Superstr','Total cost of Material Reinforc steel Superstructure (shell) in 2017',3296417.82,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Superstr,Walls_v_m3','Sum_Mat_Reinforc_steel',0),(342,'Total_Mat_Reinforc_steel_Dome','Total cost of Material Reinforc steel Superstructure (dome) in 2017',993566.57,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Dome,Dome_v_m3','Sum_Mat_Reinforc_steel',0),(343,'Total_Mat_Reinforc_steel_Interior','Total cost of Material Reinforc steel Interior structure in 2017',1338972.19,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Interior,Internal_v_m3','Sum_Mat_Reinforc_steel',0),(344,'Total_Mat_Rubbing_surfaces_Superstr','Total cost of Material Rubbing surfaces Superstructure (shell) in 2017',12622.28,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Mat_Rubbing_surfaces',0),(345,'Total_Mat_Rubbing_surfaces_Dome','Total cost of Material Rubbing surfaces Superstructure (dome) in 2017',3671.65,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Mat_Rubbing_surfaces',0),(346,'Total_Mat_Rubbing_surfaces_Interior','Total cost of Material Rubbing surfaces Interior structure in 2017',8757.71,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Mat_Rubbing_surfaces',0),(347,'Total_Mat_Waterproofing_Substr','Total cost of Material Waterproofing Substructure (base mat) in 2017',5089.6,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Substr,Basemat_s_m2','Sum_Mat_Waterproofing',0),(348,'Total_Mat_Waterproofing_Superstr','Total cost of Material Waterproofing Superstructure (shell) in 2017',8352.98,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Superstr,Walls_s_m2','Sum_Mat_Waterproofing',0),(349,'Total_Mat_Waterproofing_Dome','Total cost of Material Waterproofing Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Dome,Dome_s_m2','Sum_Mat_Waterproofing',0),(350,'Total_Mat_Welded_wire_fabric_Substr','Total cost of Material Welded wire fabric Substructure (base mat) in 2017',10870.38,'dollar','tol_contaiment_ce_cost','Unit_Mat_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Mat_Welded_wire_fabric',0),(351,'Total_Mat_Lighting_Power','Total cost of Material Lighting Power in 2017',389067.82,'dollar','tol_contaiment_ce_cost','Unit_Mat_Lighting_Power,Intern_tot_v_m3','Tot_Mat_equipment',0),(352,'Total_Mat_Plumb_drains','Total cost of Material Plumb drains in 2017',120799.28,'dollar','tol_contaiment_ce_cost','Unit_Mat_Plumb_drains,Intern_tot_v_m3','Tot_Mat_equipment',0),(353,'Total_Mat_Special_HVAC','Total cost of Material Special HVAC in 2017',689497.2,'dollar','tol_contaiment_ce_cost','Unit_Mat_Special_HVAC,Intern_tot_v_m3','Tot_Mat_equipment',0),(354,'Total_Mat_other','Total cost of Material other in 2017',153744.54,'dollar','tol_contaiment_ce_cost','Unit_Mat_other,Intern_tot_v_m3','Tot_Mat_equipment',0),(355,'Total_Mat_Misc_steel_frames','Total cost of Material miscellaneous steel frames in 2017',493286.35,'dollar','tol_contaiment_ce_cost','Unit_Mat_Misc_steel_frames,Struct_v_m3','Tot_Mat_others',0),(356,'Total_Mat_React_cav_liner','Total cost of Material Reactor cavity liner plate in 2017',1783426.93,'dollar','tol_contaiment_ce_cost','Unit_Mat_React_cav_liner,React_cav_A_m2','Tot_Mat_others',0),(357,'Total_Mat_Struct_steel','Total cost of Material Struct steel in 2017',816484.24,'dollar','tol_contaiment_ce_cost','Unit_Mat_Struct_steel,Struct_v_m3','Tot_Mat_others',0),(358,'Total_Mat_cont_liner','Total cost of Material Containment liner in 2017',17084097.73,'dollar','tol_contaiment_ce_cost','Unit_Mat_cont_liner,Liner_s_m2','Tot_Mat_others',0),(359,'Total_Mat_fl_grate_handrail_stairs','Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',155313.36,'dollar','tol_contaiment_ce_cost','Unit_Mat_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Mat_others',0),(360,'Total_Mat_painting','Total cost of Material painting in 2017',957306.82,'dollar','tol_contaiment_ce_cost','Unit_Mat_painting,Surf_paint_m2','Tot_Mat_others',0),(361,'Sum_Labor_Cadweld','Total cost of Labor Cadweld',3280585.404,'dollar','sum_ce','Total_Labor_Cadweld_Substr,Total_Labor_Cadweld_Superstr,Total_Labor_Cadweld_Dome,Total_Labor_Cadweld_Interior','Tot_Labor_concr',0),(362,'Sum_Labor_Concrete','Total cost of Labor Concrete',2535495.979,'dollar','sum_ce','Total_Labor_Concrete_Substr,Total_Labor_Concrete_Superstr,Total_Labor_Concrete_Dome,Total_Labor_Concrete_Interior','Tot_Labor_concr',0),(363,'Sum_Labor_Constr_joints','Total cost of Labor Constr joints',320305.7975,'dollar','sum_ce','Total_Labor_Constr_joints_Substr,Total_Labor_Constr_joints_Superstr,Total_Labor_Constr_joints_Dome,Total_Labor_Constr_joints_Interior','Tot_Labor_concr',0),(364,'Sum_Labor_Embedded_steel','Total cost of Labor Embedded steel',2423820.007,'dollar','sum_ce','Total_Labor_Embedded_steel_Substr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Embedded_steel_Dome,Total_Labor_Embedded_steel_Interior','Tot_Labor_concr',0),(365,'Sum_Labor_Formwork','Total cost of Labor Formwork',5164619.048,'dollar','sum_ce','Total_Labor_Formwork_Substr,Total_Labor_Formwork_Superstr,Total_Labor_Formwork_Dome,Total_Labor_Formwork_Interior','Tot_Labor_concr',0),(366,'Sum_Labor_Maj_supp_embedments','Total cost of Labor Maj supp embedments',999574.0548,'dollar','sum_ce','Total_Labor_Maj_supp_embedments_Interior','Tot_Labor_concr',0),(367,'Sum_Labor_Reinforc_steel','Total cost of Labor Reinforc steel',9459022.117,'dollar','sum_ce','Total_Labor_Reinforc_steel_Substr,Total_Labor_Reinforc_steel_Superstr,Total_Labor_Reinforc_steel_Dome,Total_Labor_Reinforc_steel_Interior','Tot_Labor_concr',0),(368,'Sum_Labor_Rubbing_surfaces','Total cost of Labor Rubbing surfaces',305118.4026,'dollar','sum_ce','Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Rubbing_surfaces_Interior','Tot_Labor_concr',0),(369,'Sum_Labor_Waterproofing','Total cost of Labor Waterproofing',25184.97376,'dollar','sum_ce','Total_Labor_Waterproofing_Substr,Total_Labor_Waterproofing_Superstr,Total_Labor_Waterproofing_Dome','Tot_Labor_concr',0),(370,'Sum_Labor_Welded_wire_fabric','Total cost of Labor Welded wire fabric',21091.47636,'dollar','sum_ce','Total_Labor_Welded_wire_fabric_Substr','Tot_Labor_concr',0),(371,'Sum_Mat_Cadweld','Total cost of Material Cadweld',1701340.49,'dollar','sum_ce','Total_Mat_Cadweld_Substr,Total_Mat_Cadweld_Superstr,Total_Mat_Cadweld_Dome,Total_Mat_Cadweld_Interior','Tot_Mat_concr',0),(372,'Sum_Mat_Concrete','Total cost of Material Concrete',1747263.589,'dollar','sum_ce','Total_Mat_Concrete_Substr,Total_Mat_Concrete_Superstr,Total_Mat_Concrete_Dome,Total_Mat_Concrete_Interior','Tot_Mat_concr',0),(373,'Sum_Mat_Constr_joints','Total cost of Material Constr joints',196460.25,'dollar','sum_ce','Total_Mat_Constr_joints_Substr,Total_Mat_Constr_joints_Superstr,Total_Mat_Constr_joints_Dome,Total_Mat_Constr_joints_Interior','Tot_Mat_concr',0),(374,'Sum_Mat_Embedded_steel','Total cost of Material Embedded steel',1148307.391,'dollar','sum_ce','Total_Mat_Embedded_steel_Substr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Embedded_steel_Dome,Total_Mat_Embedded_steel_Interior','Tot_Mat_concr',0),(375,'Sum_Mat_Formwork','Total cost of Material Formwork',574341.9097,'dollar','sum_ce','Total_Mat_Formwork_Substr,Total_Mat_Formwork_Superstr,Total_Mat_Formwork_Dome,Total_Mat_Formwork_Interior','Tot_Mat_concr',0),(376,'Sum_Mat_Maj_supp_embedments','Total cost of Material Maj supp embedments',1467166.11,'dollar','sum_ce','Total_Mat_Maj_supp_embedments_Interior','Tot_Mat_concr',0),(377,'Sum_Mat_Reinforc_steel','Total cost of Material Reinforc steel',7957390.727,'dollar','sum_ce','Total_Mat_Reinforc_steel_Substr,Total_Mat_Reinforc_steel_Superstr,Total_Mat_Reinforc_steel_Dome,Total_Mat_Reinforc_steel_Interior','Tot_Mat_concr',0),(378,'Sum_Mat_Rubbing_surfaces','Total cost of Material Rubbing surfaces',25051.63697,'dollar','sum_ce','Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Rubbing_surfaces_Interior','Tot_Mat_concr',0),(379,'Sum_Mat_Waterproofing','Total cost of Material Waterproofing',13442.5802,'dollar','sum_ce','Total_Mat_Waterproofing_Substr,Total_Mat_Waterproofing_Superstr,Total_Mat_Waterproofing_Dome','Tot_Mat_concr',0),(380,'Sum_Mat_Welded_wire_fabric','Total cost of Material Welded wire fabric',10870.38,'dollar','sum_ce','Total_Mat_Welded_wire_fabric_Substr','Tot_Mat_concr',0),(381,'Tot_Labor_concr','Total cost of labor of containment construction',24534817.26,'dollar','sum_ce','Sum_Labor_Cadweld,Sum_Labor_Concrete,Sum_Labor_Constr_joints,Sum_Labor_Embedded_steel,Sum_Labor_Formwork,Sum_Labor_Maj_supp_embedments,Sum_Labor_Reinforc_steel,Sum_Labor_Rubbing_surfaces,Sum_Labor_Waterproofing,Sum_Labor_Welded_wire_fabric','Tot_Labor_containment',0),(382,'Tot_Labor_equipment','Total cost of labor of containment equipments',1919453.529,'dollar','sum_ce','Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other','Tot_Labor_containment',0),(383,'Tot_Labor_others','Total cost of labor of other non-concrete related items ',17486505.19,'dollar','sum_ce','Total_Labor_Misc_steel_frames,Total_Labor_React_cav_liner,Total_Labor_Struct_steel,Total_Labor_cont_liner,Total_Labor_fl_grate_handrail_stairs,Total_Labor_painting','Tot_Labor_containment',0),(384,'Tot_Mat_concr','Total cost of material of containment construction',14841635.07,'dollar','sum_ce','Sum_Mat_Cadweld,Sum_Mat_Concrete,Sum_Mat_Constr_joints,Sum_Mat_Embedded_steel,Sum_Mat_Formwork,Sum_Mat_Maj_supp_embedments,Sum_Mat_Reinforc_steel,Sum_Mat_Rubbing_surfaces,Sum_Mat_Waterproofing,Sum_Mat_Welded_wire_fabric','Tot_Mat_containment',0),(385,'Tot_Mat_equipment','Total cost of material of containment equipments',1353108.842,'dollar','sum_ce','Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other','Tot_Mat_containment',0),(386,'Tot_Mat_others','Total cost of material of other non-concrete related items ',21289915.44,'dollar','sum_ce','Total_Mat_Misc_steel_frames,Total_Mat_React_cav_liner,Total_Mat_Struct_steel,Total_Mat_cont_liner,Total_Mat_fl_grate_handrail_stairs,Total_Mat_painting','Tot_Mat_containment',0),(387,'Tot_Labor_containment','Total cost of labor of containment',43940775.98,'dollar','sum_ce','Tot_Labor_concr,Tot_Labor_equipment,Tot_Labor_others',NULL,0),(388,'Tot_Mat_containment','Total cost of material of containment',37484659.35,'dollar','sum_ce','Tot_Mat_concr,Tot_Mat_equipment,Tot_Mat_others',NULL,0),(389,'c_220A.221_ss_weight','weight of the stainless steel Vessel',323.7,'ton',NULL,NULL,NULL,0),(399,'c_220A.221_cs_weight','weight of the carbon steel Vessel',62.7,'ton',NULL,NULL,NULL,0),(400,'sg_weight','weight of SG',144,'ton',NULL,NULL,NULL,0),(401,'c_sg_weight','cost of SG by weight',0.14,'million/ton',NULL,NULL,NULL,0),(402,'no_sg','number of SG',4,'1',NULL,NULL,NULL,0); -/*!40000 ALTER TABLE `abr_variable` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `account` --- - -DROP TABLE IF EXISTS `account`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `account` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - `gncoa` text, - `gn_level` int DEFAULT NULL, - `gn_supaccount` text, - `gn_ind` int DEFAULT NULL, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `account` --- - -LOCK TABLES `account` WRITE; -/*!40000 ALTER TABLE `account` DISABLE KEYS */; -INSERT INTO `account` VALUES (1,'2','TOTAL DIRECT COST',2579172917,0,'','Unchanged',1,'20',0,'',1),(2,'21','Structures and improvements subtotal',569959917,1,'2','Unchanged',0.221920381,'21',1,'20',2),(3,'211','Yardwork',71213900,2,'21','Unchanged',0.027628952,'211',2,'21',3),(4,'212','Reactor containment building',182702257,2,'21','Unchanged',0.071675377,'212.1',3,'212',5),(5,'213','Turbine room and heater bay',65970400,2,'21','Unchanged',0.025594624,'213.1',3,'213',9),(6,'214','Security building',3880760,2,'21','Unchanged',0.001505624,'216.2',3,'216',25),(7,'215','Primary auxiliary building and tunnels',52634700,2,'21','Unchanged',0.020420755,'214.2',3,'214',17),(8,'216','Waste processing building',40938300,2,'21','Unchanged',0.015882887,'215',2,'21',22),(9,'217','Fuel storage building',28149600,2,'21','Unchanged',0.010921238,'214.1',3,'214',16),(10,'218','Other structures',124470000,2,'21','Unchanged',0.048290792,'216',2,'22',23),(11,'218A','Control Room/Diesel Generator Building',51570400,3,'218','Unchanged',0.020007837,'213.21',3,'213',10),(12,'218B','Administration + Services Building',18938200,3,'218','Unchanged',0.007347479,'216.1',3,'216',24),(13,'218D','Fire Pump House, Including Foundations',1216200,3,'218','Unchanged',0.000471851,'214.5',3,'214',19),(14,'218E','Emergency Feed Pump Building',7119140,3,'218','Unchanged',0.002762022,'214.7',3,'214',21),(15,'218F','Manway Tnls. (Radiological Ctrl Access Tunnels)',2170960,3,'218','Unchanged',0.00084227,'212.2',3,'212',6),(16,'218G','Elec. Tunnels',193104,3,'218','Unchanged',0.0000749,'213.4',3,'213',14),(17,'218H','Non- Essen. Switchgear Bldg.',1526990,3,'218','Unchanged',0.000592428,'214.6',3,'214',20),(18,'218J','Main Steam + Feedwater Pipe Enc.',22416800,3,'218','Unchanged',0.008697076,'213.31',3,'213',12),(19,'218K','Pipe Tunnels',904119,3,'218','Unchanged',0.000350772,'213.32',3,'213',13),(20,'218L','Technical Support Center',2249450,3,'218','Unchanged',0.000872722,'216.4',3,'216',26),(21,'218P','Containment Equipment Hatch Missile Shield',626665,3,'218','Unchanged',0.000243128,'212.3',3,'212',7),(22,'218S','Waste Water Treatment',2186330,3,'218','Unchanged',0.000848233,'214.3',3,'214',18),(23,'218T','Ultimate Heat Sink Structures',13097500,3,'218','Unchanged',0.005081455,'233.11',4,'233.1',98),(24,'218V','Control Rm Emergency Air Intake Building',253976,3,'218','Unchanged',0.0000985,'213.22',3,'213',11),(25,'22','Reactor plant equipment',867215000,1,'2','Unchanged',0.336454563,'22',1,'20',27),(26,'220A','Nuclear steam supply (NSSS)',514720000,2,'22','Unchanged',0.199696606,'221.3',3,'221',123),(27,'220A.211','Vessel Structure (NSSS)',70000000,3,'220A','Unchanged',0.027157994,'221.121',4,'221.12',31),(28,'220A.2121','Lower Internals (NSSS)',31780000,3,'220A','Unchanged',0.012329729,'221.131',4,'221.13',34),(29,'220A.2122','Upper Internals (NSSS)',31780000,3,'220A','Unchanged',0.012329729,'221.132',4,'221.13',35),(30,'220A.2131','Control Rods (NSSS)',3100000,3,'220A','Unchanged',0.001202711,'221.211',4,'221.2',38),(31,'220A.2132','Control Rod Drives (NSSS)',34900000,3,'220A','Unchanged',0.0135402,'221.212',4,'221.2',39),(32,'220A.221','Main Coolant Pumps (NSSS)',125240000,3,'220A','Unchanged',0.04858953,'222.11',4,'222.1',43),(33,'220A.222','Reactor Coolant Piping (NSSS)',11400000,3,'220A','Unchanged',0.004422873,'222.21',4,'222.2',46),(34,'220A.223','Steam Generators (NSSS)',149800000,3,'220A','Unchanged',0.058118106,'222.31',4,'222.3',49),(35,'220A.224','Pressurizer (NSSS)',8300000,3,'220A','Unchanged',0.003220162,'222.41',4,'222.4',52),(36,'220A.225','Pressurizer Relief Tank (NSSS)',1850000,3,'220A','Unchanged',0.000717747,'222.42',4,'222.4',53),(37,'220A.2311','Residual Heat Removal Pumps & Drives (NSSS)',1940000,3,'220A','Unchanged',0.000752664,'223.11',4,'223.1',57),(38,'220A.2312','Residual Heat Removal Heat Exchanger (NSSS)',6260000,3,'220A','Unchanged',0.002428701,'223.12',4,'223.1',58),(39,'220A.2321','Safety Injection Pumps And Drives (NSSS)',1720000,3,'220A','Unchanged',0.000667311,'223.31',4,'223.3',61),(40,'220A.2322','Accumulator Tank (NSSS)',15300000,3,'220A','Unchanged',0.005935961,'223.32',4,'223.3',62),(41,'220A.2323','Boron Injection Tank (NSSS)',899999,3,'220A','Unchanged',0.000349174,'223.33',4,'223.3',63),(42,'220A.2324','Boron Injection Surge Tank (NSSS)',50001,3,'220A','Unchanged',0.000019399,'223.34',4,'223.3',64),(43,'220A.2325','Boron Injection Recirc. Pump & Drives (NSSS)',40000,3,'220A','Unchanged',0.0000155,'223.35',4,'223.3',65),(44,'220A.251','Fuel Handling Tools (NSSS)',400000,3,'220A','Unchanged',0.000155189,'225.1',3,'225',71),(45,'220A.254','Fuel Storage Racks (NSSS)',2510000,3,'220A','Unchanged',0.000973808,'225.3',3,'225',73),(46,'220A.2611','Rotating Machinery (Pumps And Motors) (NSSS)',2220000,3,'220A','Unchanged',0.000861296,'226.31',4,'226.3',78),(47,'220A.2612','Heat Transfer Equipment (NSSS)',2450000,3,'220A','Unchanged',0.00095053,'226.32',4,'226.3',79),(48,'220A.2613','Tanks And Pressure Vessels (NSSS)',1140000,3,'220A','Unchanged',0.000442287,'226.33',4,'226.3',80),(49,'220A.2614','Purification And Filtration Equipment (NSSS)',2450000,3,'220A','Unchanged',0.00095053,'226.34',4,'226.3',81),(50,'220A.262','Maintenance Equipment (NSSS)',9190000,3,'220A','Unchanged',0.003565457,'226.81',4,'226.8',86),(51,'220A.27','Instrumentation And Control (NSSS)',0,3,'220A','Unchanged',0,'227.11',3,'227',90),(52,'221','Reactor equipment',29966900,2,'22','Unchanged',0.011626298,'221',2,'22',28),(53,'221.11','Reactor Support (Field Cost 221)',3910160,3,'221','Unchanged',0.00151703,'221.11',3,'221',29),(54,'221.12','Vessel Structure (Field Cost 221)',7037480,3,'221','Unchanged',0.002730341,'221.122',4,'221.12',32),(55,'221.13','Vessel Internals (Field Cost 221)',1703810,3,'221','Unchanged',0.000661029,'221.133',4,'221.13',36),(56,'221.14','Transport To Site (Field Cost 221)',15781400,3,'221','Unchanged',0.006122731,'342',2,'34',120),(57,'221.21','Control Rod System (Field Cost 221)',1533970,3,'221','Unchanged',0.000595136,'221.213',4,'221.2',40),(58,'222','Main heat transfer transport system',28204600,2,'22','Unchanged',0.010942576,'222',2,'22',41),(59,'222.11','Fluid Circulation Drive System (Field Cost 222)',8592380,3,'222','Unchanged',0.003333597,'222.12',4,'222.1',44),(60,'222.12','Reactor Coolant Piping System (Field Cost 222)',16895000,3,'222','Unchanged',0.006554776,'222.22',4,'222.2',47),(61,'222.13','Steam Generator Equipment (Field Cost 222)',2392050,3,'222','Unchanged',0.000928047,'222.32',4,'222.3',50),(62,'222.14','Pressurizing System (Field Cost 222)',325156,3,'222','Unchanged',0.000126151,'222.43',4,'222.4',54),(63,'223','Safeguards system',35379000,2,'22','Unchanged',0.013726038,'223',2,'22',55),(64,'223.1','Residual Heat Removal Sys (Field Cost 223)',6810250,3,'223','Unchanged',0.002642182,'223.13',4,'223.1',59),(65,'223.3','Safety Injection System (Field Cost 223)',10383200,3,'223','Unchanged',0.004028384,'223.36',4,'223.3',66),(66,'223.4','Containment Spray System (Field Cost 223)',15105600,3,'223','Unchanged',0.00586054,'223.4',3,'223',67),(67,'223.5','Combustible Gas Control System (Field Cost 223)',3079990,3,'223','Unchanged',0.001194948,'223.5',3,'223',68),(68,'224','Radwaste processing',59673400,2,'22','Unchanged',0.023151569,'224',2,'22',69),(69,'225','Fuel handling and storage',9024530,2,'22','Unchanged',0.003501259,'225.2',3,'225',72),(70,'226','Other reactor plant equipment',107592000,2,'22','Unchanged',0.041742612,'226',2,'22',74),(71,'226.1','Inert Gas Sys',3533410,3,'226','Unchanged',0.001370862,'226.1',3,'226',75),(72,'226.3','Reactor Makeup Water Sys',4252970,3,'226','Unchanged',0.00165003,'226.2',3,'226',76),(73,'226.4','Coolant Treatment & Recycle',40770700,3,'226','Unchanged',0.015817863,'226.35',4,'226.3',82),(74,'226.6','Fluid Leak Detection Sys',492958,3,'226','Unchanged',0.000191254,'226.6',3,'226',83),(75,'226.7','Aux Cool Sys (Broken Down Further)',55198200,3,'226','Unchanged',0.021415319,'226.7',3,'226',84),(76,'226.8','Maintenance Equipment',1519680,3,'226','Unchanged',0.000589592,'226.82',4,'226.8',87),(77,'226.9','Sampling Equip',1831380,3,'226','Unchanged',0.000710523,'226.9',3,'226',88),(78,'227','Reactor instrumentation and control',61419700,2,'22','Unchanged',0.023829083,'227.12',3,'227',91),(79,'228','Reactor plant miscellaneous items',21234600,2,'22','Unchanged',0.008238416,'228',2,'22',92),(80,'23','Turbine plant equipment',637636000,1,'2','Unchanged',0.247384491,'23',1,'20',93),(81,'231','Turbine generator',381776000,2,'23','Unchanged',0.148118145,'232.1',3,'232',94),(82,'233','Condensing systems',82581500,2,'23','Unchanged',0.032039255,'233.21',4,'233.1',100),(83,'234','Feedwater heating system',67214100,2,'23','Unchanged',0.026077144,'234',2,'23',102),(84,'235','Other turbine plant equipment',63607900,2,'23','Unchanged',0.024678042,'232.2',3,'232',95),(85,'236','Instrumentation and control',19530400,2,'23','Unchanged',0.007577235,'236',2,'23',103),(86,'237','Turbine plant miscellaneous items',22926000,2,'23','Unchanged',0.008894631,'237',2,'23',104),(87,'24','Electric plant equipment',231722000,1,'2','Unchanged',0.089901494,'24',1,'20',105),(88,'241','Switchgear',34039800,2,'24','Unchanged',0.013206467,'241',2,'24',107),(89,'242','Station service equipment',57453700,2,'24','Unchanged',0.022290389,'242',2,'24',108),(90,'243','Switchboards',5838140,2,'24','Unchanged',0.002265031,'243',2,'24',109),(91,'244','Protective equipment',12142400,2,'24','Unchanged',0.004710903,'244',2,'24',110),(92,'245','Electric structure and wiring contnr.',63546600,2,'24','Unchanged',0.024654259,'245',2,'24',111),(93,'246','Power and control wiring',58700900,2,'24','Unchanged',0.022774267,'246',2,'24',112),(94,'25','Miscellaneous plant equipment subtotal',133073000,1,'2','Unchanged',0.05162851,'26',1,'20',113),(95,'251','Transportation and lifting equipment',17078900,2,'25','Unchanged',0.006626124,'261',2,'26',114),(96,'252','Air, water and steam service systems',81851100,2,'25','Unchanged',0.031755881,'262.1',3,'262',116),(97,'253','Communications equipment',18279100,2,'25','Unchanged',0.007091767,'263',2,'26',118),(98,'254','Furnishings and fixtures',7795930,2,'25','Unchanged',0.003024597,'264',2,'26',119),(99,'255','Waste water treatment equipment',8067760,2,'25','Unchanged',0.00313006,'262.2',3,'262',117),(100,'26','Main condenser heat rejection system',139567000,1,'2','Unchanged',0.054147996,'233',2,'23',96),(101,'261','Structures',12345700,2,'26','Unchanged',0.004789778,'233.12',4,'233.1',99),(102,'262','Mechanical equipment',127221000,2,'26','Unchanged',0.049358101,'233.22',4,'233.1',101),(103,'DUMMY212','Reactor Island Civil Structures',NULL,NULL,NULL,'Unchanged',0,'212',2,'21',4),(104,'DUMMY213','Main Function Buildings',NULL,NULL,NULL,'Unchanged',0,'213',2,'21',8),(105,'DUMMY214','Buildings to Support Main Function ',NULL,NULL,NULL,'Unchanged',0,'214',2,'21',15),(112,'DUMMY221.12','Outer vessel structure',NULL,NULL,NULL,'Unchanged',0,'221.12',3,'221',30),(113,'DUMMY221.13','Inner vessel structure',NULL,NULL,NULL,'Unchanged',0,'221.13',3,'221',33),(114,'DUMMY221.2','Reactivity control system',NULL,NULL,NULL,'Unchanged',0,'221.2',3,'221',37),(115,'DUMMY222.1','Fluid circulation drive system',NULL,NULL,NULL,'Unchanged',0,'222.1',3,'222',42),(116,'DUMMY222.2','Reactor heat transfer piping system',NULL,NULL,NULL,'Unchanged',0,'222.2',3,'222',45),(117,'DUMMY222.3','Heat exchangers',NULL,NULL,NULL,'Unchanged',0,'222.3',3,'222',48),(118,'DUMMY222.4','Pressurizer system',NULL,NULL,NULL,'Unchanged',0,'222.4',3,'222',51),(119,'DUMMY223.1','Internal Residual Heat Removal System',NULL,NULL,NULL,'Unchanged',0,'223.1',3,'223',56),(120,'DUMMY223.2','Reactivity Safety Injection System',NULL,NULL,NULL,'Unchanged',0,'223.3',3,'223',60),(106,'DUMMY225','Fuel Handling Systems',NULL,NULL,NULL,'Unchanged',0,'225',2,'22',70),(121,'DUMMY226.3','Other Reactor Plant Equipment Coolant treatment systems ',NULL,NULL,NULL,'Unchanged',0,'226.3',3,'226',77),(122,'DUMMY226.8','Other Reactor Plant Equipment Maintenance',NULL,NULL,NULL,'Unchanged',0,'226.8',3,'226',85),(107,'DUMMY227','Reactor Instrumentation and Control (I&C)',NULL,NULL,NULL,'Unchanged',0,'227',2,'22',89),(108,'DUMMY232','Energy Applications',NULL,NULL,NULL,'Unchanged',0,'232',2,'23',106),(123,'DUMMY233.1','Water Condensing Systems',NULL,NULL,NULL,'Unchanged',0,'233.1',3,'233',97),(109,'DUMMY262','Air, Water, Plant Fuel Oil, and Steam Systems',NULL,NULL,NULL,'Unchanged',0,'262',2,'26',115),(110,'DUMMY30','Capitalized Indirect Services Cost',NULL,NULL,NULL,'Unchanged',0,'30',0,NULL,121),(111,'DUMMY34','Shipping and Transportation Costs',NULL,NULL,NULL,'Unchanged',0,'34',1,'30',122); -/*!40000 ALTER TABLE `account` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `algorithm` --- - -DROP TABLE IF EXISTS `algorithm`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `algorithm` ( - `ind` int NOT NULL, - `alg_name` text, - `alg_for` text, - `alg_description` text, - `alg_python` text, - `alg_formulation` text, - `alg_units` text, - `variables` text, - `constants` text, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `algorithm` --- - -LOCK TABLES `algorithm` WRITE; -/*!40000 ALTER TABLE `algorithm` DISABLE KEYS */; -INSERT INTO `algorithm` VALUES (1,'sum_multi_accounts','c','sum of multiple accounts','sum(kwargs.values())','sum(account_1,account_2...account_n)','million','account1, account2.accountn',NULL),(2,'sum_multi_weights','v','sum of multiple weights ','sum(kwargs.values())','sum(Weight_1+Weight_2...Weight_n)','ton','weight1,weight2weight3,weit4,weight5',NULL),(3,'sum_multi_pumps','c','sum cost of multiple pumps','sum(kwargs.values())','sum(Pump_1+Pump_2+Pump_n)','million','pump1,pump2,pump3,pump4,pump5',NULL),(4,'ptn_account','c','portion of account cost','v_1*v_2','account_cost*portion','million','c_ref,prn_fac',NULL),(5,'unit_weights','c','unit cost of weight','v_1*0.14+v_2*0.31','weight_of_carbon_steel*0.14+weight_of_stainless_steel*0.31','million','Csweight, Ssweight','0.140000, 0.310000'),(6,'pump','v','cost per pump based on ref','v_1*np.power((v_2/v_3),v_4)','ref_cost_of_pump*(CH_of_pump/CH_of_ref)^scale_of_power','million','c_pump_ref,CH,CH_ref,scale',NULL),(7,'containment','c','containment calculation','v_1/1000000','containment structure + equipment + others','million','NOT YET',NULL),(8,'MWth_scale','c','thermal power scale from pwr12be','v_1*np.power((v_2/3431),v_3)','cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale','million','c_ref,mwth,scale','3431'),(9,'unit_volume','c','cost by unit volume','v_1*v_2/1000000','dollar_cost_per_unit_vol*vol/1000000','million','V1_unit_vol, V2_vol',NULL),(10,'dev_factor_ref','c','factor of the reference','v_1*v_2/v_3','cost_of_ref*scale/factor','million','c_ref,scale,n',NULL),(11,'tur_exp_n','v','scaling exponent law ','(-0.0032) *v_1+ 1.2497','(-0.0032) *v_1+ 1.2497','1','p_in',''),(12,'esc_1987','c','escalate from 1987','v_1*v_2','escalator*cost_in_1987','million','escalate_1987,refCost',NULL),(13,'cost_by_weight','c','per-unit mass costs','v_1*v_2','tol_weight*coat_per_unit','million','tolweight, unitcost',NULL),(14,'default_0','c','default as 0','0','set the total cost to 0','million',NULL,'0'),(15,'rpv_mass','v','mass of RPV','v_1+v_2','weight_of_carbon_steel+weight_of_stainless_steel','ton','c_221.12_cs_weight,c_221.12_ss_weight',NULL),(16,'unit_facility','c','per-unit facility costs','v_1*v_2','no_of_facility*cost_per_facility','million','no_of_unit, unitcost',NULL),(17,'MWe_scale','c','electric power scale from pwr12be','v_1*np.power((v_2/1144),v_3)','cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale','million','c_ref,mwe,scale','1144'),(18,'unit_weights_plate','c','unit cost of weight with plate installation','v_1*0.075+v_2*0.31','weight_of_carbon_steel_plate_install*0.075+weight_of_stainless_steel*0.31','million','Csweight_plate, Ssweight','0.075000, 0.310000'),(19,'esc_1978','c','escalate from 1978','v_1*v_2','escalator*cost_in_1978','million','escalate_1978,refCost',NULL),(20,'total_weight_prn','c','unit cost of total weight by portion','v_1*(v_2*0.075+v_3*0.31)*v_4','tol_weight*(portion_of_carbon_steel*0.075+portion_of_stainless_steel*0.31)*no_of_facility','million','V1_totweight, V2_csprn,V3_ssprn,V4_no_of_facility','0.075000, 0.310000'),(21,'unit_weights_factor','c','unit cost of weight with factor','(v_1*0.075+v_2*0.31)*v_3','(weight_of_carbon_steel_plate_install*0.075+weight_of_stainless_steel*0.31)*factor','million','Csweight, Ssweight,factor','0.075000, 0.310000'),(22,'factor_sum','c','sum of multiple accounts with factor','v_1*v_2*sum(v_3,v_4)','factor*prn*sum(account_2..account_n)','million','factor1, portion,account2.accountn',NULL),(23,'complex','c','complex algorithm','v_1','simple cost','million','cost',NULL),(24,'MWth_lmfbrscale','c','thermal power scale from lmfbr','v_1*np.power((v_2/2287),v_3)','cost_of_ref*(thermal_power/thermal_power_of_LMFBR)^thermal_power_scale','million','c_ref,mwth,scale','2287'),(25,'MWreth_scale','c','rejected thermal power scale from pwr12be','v_1*np.power((v_2/3800),v_3)','cost_of_ref*(rejected_hermal_power/rejected_thermal_power_of_LMFBR)^thermal_power_scale','million','c_ref,mwreth,scale','3800'),(26,'Sgsum','c','sum the SG cost','v_1*v_2*v_3','weight*unitcost*unit','million','sg_weight, c_unit, no_unit ',NULL),(27,'containmentsum','c','NOT YET','NOT YET','NOT implemented YET','million','NOT YET',NULL),(28,'inside_rad','v','calculate inside radius','v_1-v_2','radius_out-thickness','m','r_out, t',NULL),(29,'round_surface','v','calculate surface base on radius','np.pi*np.power(v_1,2)','radius','m^2','r','PI'),(30,'basemat_volume','v','calculate basemat volume base on surface','v_1*v_2','basemat_surface*thickness','m^3','S,t',NULL),(31,'wall_height','v','calculate wall height base on total height','v_1-v_2','total_height-roof_rad','m',NULL,NULL),(32,'walls_surface','v','calculate Walls surface','v_1*2*np.pi*(v_2+v_3)','Cont_H_wall_m*2*PI()*(Cont_rad_out_m+Cont_rad_in_m)','m^2',NULL,NULL),(33,'wall_volume','v','calculate Walls volume','v_1*np.pi*(np.power(v_2,2)-np.power(v_3,2))','Cont_H_wall_m*PI()*(Cont_rad_out_m^2-Cont_rad_in_m^2)','m^3',NULL,NULL),(34,'dome_inside_diameter ','v','calculate Dome inside diameter ','v_1-v_2','Cont_rad_out_m-B10','m',NULL,NULL),(35,'roof_surface','v','calculate Roof surface','0.5*4*np.pi*(np.power(v_1,2)+np.power(v_2,2))','0.5*4*PI()*(Cont_rad_out_m^2+Dome_rad_in_m^2)','m^2',NULL,NULL),(36,'roof_volume','v','calculate Roof volume','0.5*4/3*np.pi*(np.power(v_1,3)-np.power(v_2,3))','0.5*4/3*PI()*(Cont_rad_out_m^3-Dome_rad_in_m^3)','m^3',NULL,NULL),(37,'tot_internal_volume','v','calculate Tot internal Volume','(np.pi*np.power(v_1,2)*v_2)+(0.5*(4/3)*np.pi*np.power(v_3,3))','(PI()*Cont_rad_in_m^2*Cont_H_wall_m)+(0.5*(4/3)*PI()*Dome_rad_in_m^3)','m^3',NULL,NULL),(38,'building_internal_volume','v','calculate Building internal volume','v_1*(1-v_2)','Intern_tot_v_m3*(1-Void_fraction)','m^3',NULL,NULL),(39,'building_internal _surface','v','calculate Building internal surface','2*v_1/v_2','2*Internal_v_m3/B11','m^2',NULL,NULL),(40,'volume_of_the_structures ','v','calculate volume of the structures ','v_1+v_2+v_3+v_4','Basemat_v_m3+Walls_v_m3+Dome_v_m3+Internal_v_m3','m^3',NULL,NULL),(41,'Inside_liner_surface','v','calculate Inside liner surface','(np.power(v_1,2)*np.pi)+(v_2*2*np.pi*v_1)+(0.5*4*np.pi*np.power(v_3,2))','(Cont_rad_in_m^2*PI())+(Cont_H_wall_m*2*PI()*Cont_rad_in_m)+(0.5*4*PI()*Dome_rad_in_m^2)','m^2',NULL,NULL),(42,'liner_Surface','v','calculate Liner Surface','v_1*v_2','Inside_liner_s*liner_fraction','m^2',NULL,NULL),(43,'painted_surface','v','calculate painted surface','v_1+(v_2*2*np.pi*v_3)+(0.5*4*np.pi*np.power(v_3,2))+v_4','Inside_liner_s+(Cont_H_wall_m*2*PI()*Cont_rad_out_m)+(0.5*4*PI()*Cont_rad_out_m^2)+Internal_s_m2','m^2',NULL,NULL),(44,'Inflation_rate','v','calculate Inflation rate','1.03^(1996-1987)*v_1','1.03^(1996-1987)*CPI','1',NULL,NULL),(45,'unitcost_v_eedb_to_accert','v','unit cost volume from EEDB with inflation','v_1*v_2','unitcost_EEDB_v*infl','dollar/m^3',NULL,NULL),(46,'unitcost_s_eedb_to_accert','v','unit cost surface from EEDB with inflation','v_1*v_2','unitcost_EEDB_s*infl','dollar/m^2',NULL,NULL),(47,'tol_contaiment_ce_cost','v','total cost for each part of cotiament','v_1*v_2','unitcost*number_of stucture_unit','dollar',NULL,NULL),(48,'sum_ce','v','sum of multiple costelement','sum(kwargs.values())','sum(cost_element_1,cost_element2,cost_element_n)','dollar',NULL,NULL),(49,'Yardwork_cost','c','the cost of the land 2017','81.5*v_1','81.5*land_surface_area','dollar','land_surface_area','81.5'),(50,'Reactor_containment_mat_cost','c','Reactor_containment_mat_cost','130.8*v_1','130.8*containment_subVolume','dollar','containment_subVolume','130.8'),(51,'Reactor_containment_lab_cost','c','Reactor_containment_lab_cost','915.6*v_1','915.6*Containment_hole_volume','dollar','Containment_hole_volume','915.6'),(52,'Building_and_utilities_mat_cost','c','Building_and_utilities_mat_cost','6458.3*v_1','6458.3*Turbine_building_surface_area','dollar','Turbine_building_surface_area','6458.3'),(53,'Building_and_utilities_lab_cost','c','Building_and_utilities_lab_cost','9843*v_1+10000*v_2','9843*Distance_to_utilities+10000*Number_of_shipping_containers','dollar','Distance_to_utilities, Number_of_shipping_containers','9843, 10000'),(54,'Reactor_startup_facility_cost','c','Reactor_startup_facility_cost','7600*v_1+1100','7600*Battery_capacity_required+1100','dollar','Battery_capacity_required','7600, 1100'),(55,'Outer_vessel_mat_cost','c','Outer_vessel_mat_cost','310000*v_1','310000*primary_outer_vessel_SS_mass','dollar','primary_outer_vessel_SS_mass','310000'),(56,'Outer_vessel_lab_cost','c','Outer_vessel_lab_cost','14080*v_1','14080*primary_outer_vessel_SS_mass','dollar','primary_outer_vessel_SS_mass','14080'),(57,'Inner_vessel_cost','c','Inner_vessel_cost','310000*v_1','310000*primary_inner_vessel_SS_mass','dollar','primary_inner_vessel_SS_mass','310000'),(58,'Reactivity_control_system_cost','c','Reactivity_control_system_cost','950*v_1+610000*(v_2+v_3)','950*B4C_total_neutron_poison_mass_Kg+610000*(Number_of_control_rod_drums+number_of_emergency_control_rods)','dollar','B4C_total_neutron_poison_mass_Kg, Number_of_control_rod_drums, number_of_emergency_control_rods','950, 610000'),(59,'Reflector_cost','c','Reflector_cost','310000*v_1+120000*v_2+1000000*v_3','310000*stainless_steel_316_reflector_mass+120000*Al2O3_reflector_mass+1000000*BeO_reflector_mass','dollar','stainless_steel_316_reflector_mass, Al2O3_reflector_mass, BeO_reflector_mass','310000, 120000, 1000000'),(60,'Shield_cost','c','Shield_cost','949.9*v_1','949.9*shield_B4C_mass','dollar','shield_B4C_mass','949.9'),(61,'Moderator_cost','c','Moderator_cost','310000*v_1','310000*moderator_ZrH_mass','dollar','moderator_ZrH_mass','310000'),(62,'cooling_heat_pipes_cost','c','cooling_heat_pipes_cost','10000*v_1*(1-v_2)','10000*number_of_core_cooling_heat_pipes*(1-mass_production_cost_reduction_factor)','dollar','number_of_core_cooling_heat_pipes, mass_production_cost_reduction_factor','10000'),(63,'heat_exchangers_mat_cost','c','heat_exchangers_mat_cost','50000*v_1','50000*number_of_heat_exchangers','dollar','number_of_heat_exchangers','50000'),(64,'heat_exchangers_lab_cost','c','heat_exchangers_lab_cost','530000*v_1','530000*number_of_heat_exchangers','dollar','number_of_heat_exchangers','530000'),(65,'heat_exchangers_fac_cost','c','heat_exchangers_fac_cost','120000*v_1*v_2','120000*number_of_heat_exchangers*heat_exchangers_mass','dollar','number_of_heat_exchangers, heat_exchangers_mass','120000'),(66,'instrumentation_contorl_cost','c','instrumentation_contorl_cost','2000*v_1+6500000','2000*number_of_IO_sensors+6500000','dollar','number_of_IO_sensors','2000'),(67,'turb_and_elec_sys_cost','c','turb_and_elec_sys_cost','282553*v_1+213800000*(pow(v_2/1144, 0.4) + pow(v_1/3431, 0.8))','282553*mwth+ 213800000*(pow(mwe/1144, 0.4) + pow(mwth/3431, 0.8))','dollar','mwth, mwe','282553, 1144, 0.4, 3431, 0.8'); -/*!40000 ALTER TABLE `algorithm` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `cost_element` --- - -DROP TABLE IF EXISTS `cost_element`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `cost_element` ( - `ind` int NOT NULL AUTO_INCREMENT, - `cost_element` varchar(20) NOT NULL, - `cost_2017` double DEFAULT NULL, - `sup_cost_ele` text, - `alg_name` text, - `fun_unit` text, - `variables` text, - `account` text, - `algno` text, - `updated` int DEFAULT NULL, - PRIMARY KEY (`ind`,`cost_element`) -) ENGINE=InnoDB AUTO_INCREMENT=307 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `cost_element` --- - -LOCK TABLES `cost_element` WRITE; -/*!40000 ALTER TABLE `cost_element` DISABLE KEYS */; -INSERT INTO `cost_element` VALUES (1,'211_fac',810015,'21_fac','esc_1987','million','escalate_1987, ref_211_fac','211','12',0),(2,'212_fac',0,'21_fac','NO_ALG','million','N/A','212','N/A',0),(3,'213_fac',1770660,'21_fac','MWth_scale','million','c_213_fac, mwth, scale_0.8','213','8',0),(4,'214_fac',147944,'21_fac','NO_ALG','million','N/A','214','N/A',0),(5,'215_fac',8953480,'21_fac','NO_ALG','million','N/A','215','N/A',0),(6,'216_fac',1855240,'21_fac','NO_ALG','million','N/A','216','N/A',0),(7,'217_fac',2842400,'21_fac','NO_ALG','million','N/A','217','N/A',0),(8,'218A_fac',4171000,'218_fac','NO_ALG','million','N/A','218A','N/A',0),(9,'218B_fac',2337580,'218_fac','complex','million','c_218B_fac','218B','23',0),(10,'218D_fac',112407,'218_fac','NO_ALG','million','N/A','218D','N/A',0),(11,'218E_fac',63607,'218_fac','NO_ALG','million','N/A','218E','N/A',0),(12,'218F_fac',0,'218_fac','NO_ALG','million','N/A','218F','N/A',0),(13,'218G_fac',27448,'218_fac','NO_ALG','million','N/A','218G','N/A',0),(14,'218H_fac',54566,'218_fac','NO_ALG','million','N/A','218H','N/A',0),(15,'218J_fac',94629,'218_fac','complex','million','c_218J_fac','218J','23',0),(16,'218K_fac',0,'218_fac','NO_ALG','million','N/A','218K','N/A',0),(17,'218L_fac',147944,'218_fac','NO_ALG','million','N/A','218L','N/A',0),(18,'218P_fac',0,'218_fac','NO_ALG','million','N/A','218P','N/A',0),(19,'218S_fac',23670,'218_fac','NO_ALG','million','N/A','218S','N/A',0),(20,'218T_fac',121724,'218_fac','complex','million','c_218T_fac','218T','23',0),(21,'218V_fac',0,'218_fac','NO_ALG','million','N/A','218V','N/A',0),(22,'218_fac',7154570,'21_fac','NO_ALG','million','N/A','218','N/A',0),(23,'21_fac',64195200,'2_fac','NO_ALG','million','N/A','21','N/A',0),(24,'220A.211_fac',70000000,'220A_fac','unit_weights','million','c_221.12_cs_weight, c_221.12_ss_weight','220A.211','5',0),(25,'220A.2121_fac',31780000,'220A_fac','unit_weights','million','c_zero, c_220A.2121_ss_weight','220A.2121','5',0),(26,'220A.2122_fac',31780000,'220A_fac','unit_weights','million','c_zero, c_220A.2122_ss_weight','220A.2122','5',0),(27,'220A.2131_fac',3100000,'220A_fac','unit_facility','million','no_of_cr, c_cr_per_unit_fac','220A.2131','16',0),(28,'220A.2132_fac',34900000,'220A_fac','unit_facility','million','no_of_crd, c_crd_per_unit_fac','220A.2132','16',0),(29,'220A.221_fac',125240000,'220A_fac','unit_facility','million','no_of_rcpump, c_pump_per_unit_fac','220A.221','16',0),(30,'220A.222_fac',11400000,'220A_fac','unit_weights','million','c_zero, c_220A.222_ss_weight','220A.222','5',0),(31,'220A.223_fac',149800000,'220A_fac','NO_ALG','million','N/A','220A.223','N/A',0),(32,'220A.224_fac',8300000,'220A_fac','unit_weights_plate','million','c_220A.224_cs_weight_plate, c_220A.224_ss_weight','220A.224','18',0),(33,'220A.225_fac',1850000,'220A_fac','unit_weights','million','c_zero, c_220A.225_ss_weight','220A.225','5',0),(34,'220A.2311_fac',1940000,'220A_fac','complex','million','c_220A.2311_fac','220A.2311','23',0),(35,'220A.2312_fac',6260000,'220A_fac','unit_weights_factor','million','c_220A.2312_cs_weight, c_220A.2312_ss_weight, factor_220A.2312','220A.2312','21',0),(36,'220A.2321_fac',1720000,'220A_fac','complex','million','c_220A.2321_fac','220A.2321','23',0),(37,'220A.2322_fac',15300000,'220A_fac','total_weight_prn','million','c_220A.2322_tot_weight, prn_220A.2322cs, prn_220A.2322ss, no_of_acu','220A.2322','20',0),(38,'220A.2323_fac',899999,'220A_fac','total_weight_prn','million','c_220A.2323_tot_weight, prn_220A.2323cs, prn_220A.2323ss, no_of_bit','220A.2323','20',0),(39,'220A.2324_fac',50001,'220A_fac','unit_weights','million','c_zero, c_220A.2324_ss_weight','220A.2324','5',0),(40,'220A.2325_fac',40000,'220A_fac','complex','million','c_220A.2325_fac','220A.2325','23',0),(41,'220A.251_fac',400000,'220A_fac','unit_weights_factor','million','c_220A.251_cs_weight, c_220A.251_ss_weight, factor_220A.251','220A.251','21',0),(42,'220A.254_fac',2510000,'220A_fac','esc_1978','million','escalate_1978, ref_220A.254_1978','220A.254','19',0),(43,'220A.2611_fac',2220000,'220A_fac','sum_multi_accounts','million','c_226.4111_fac, c_226.4112_fac, c_226.41131_fac, c_226.41132_fac, c_226.4114_fac, c_226.41151_fac, c_226.41152_fac','220A.2611','1',0),(44,'220A.2612_fac',2450000,'220A_fac','sum_multi_accounts','million','c_226.4121_fac, c_226.4122_fac, c_226.4123_fac, c_226.4124_fac, c_226.4125_fac, c_226.4126_fac, c_226.4127_fac, c_226.4128_fac','220A.2612','1',0),(45,'220A.2613_fac',1140000,'220A_fac','sum_multi_accounts','million','c_226.4133_fac, c_226.4134_fac, c_226.4135_fac, c_226.4131_fac','220A.2613','1',0),(46,'220A.2614_fac',2450000,'220A_fac','sum_multi_accounts','million','c_226.4141_fac, c_226.4142_fac, c_226.4143_fac, c_226.4144_fac, c_226.4145_fac','220A.2614','1',0),(47,'220A.262_fac',9190000,'220A_fac','NO_ALG','million','N/A','220A.262','N/A',0),(48,'220A.27_fac',0,'220A_fac','default_0','million','N/A','220A.27','14',0),(49,'220A_fac',514720000,'22_fac','NO_ALG','million','N/A','220A','N/A',0),(50,'221.11_fac',2317290,'221_fac','NO_ALG','million','N/A','221.11','N/A',0),(51,'221.12_fac',0,'221_fac','default_0','million','N/A','221.12','14',0),(52,'221.13_fac',0,'221_fac','default_0','million','N/A','221.13','14',0),(53,'221.14_fac',0,'221_fac','default_0','million','N/A','221.14','14',0),(54,'221.21_fac',71734,'221_fac','NO_ALG','million','N/A','221.21','N/A',0),(55,'221_fac',2389020,'22_fac','NO_ALG','million','N/A','221','N/A',0),(56,'222.11_fac',3780840,'222_fac','MWth_scale','million','c_222.11_fac, mwth, scale_1.0','222.11','8',0),(57,'222.12_fac',4394350,'222_fac','MWth_scale','million','c_222.12_fac, mwth, scale_1.0','222.12','8',0),(58,'222.13_fac',75141,'222_fac','esc_1987','million','escalate_1987, ref_222.13_fac','222.13','12',0),(59,'222.14_fac',15028,'222_fac','MWth_scale','million','c_222.14_fac, mwth, scale_1.0','222.14','8',0),(60,'222_fac',8265360,'22_fac','MWth_scale','million','c_222_fac, mwth, scale_1.0','222','8',0),(61,'223.1_fac',2969910,'223_fac','factor_sum','million','fac_223.1, prn_223.1_fac, c_220A.2311_fac, c_220A.2312_fac','223.1','22',0),(62,'223.3_fac',3743030,'223_fac','factor_sum','million','fac_223.3, prn_223.3_fac, c_220A.2321_fac, c_220A.2322_fac, c_220A.2323_fac, c_220A.2324_fac, c_220A.2325_fac','223.3','22',0),(63,'223.4_fac',8660310,'223_fac','unit_volume','million','c_223.4_unit_vol_fac, vol_223.4','223.4','9',0),(64,'223.5_fac',2459540,'223_fac','NO_ALG','million','N/A','223.5','N/A',0),(65,'223_fac',17832800,'22_fac','NO_ALG','million','N/A','223','N/A',0),(66,'224_fac',46047900,'22_fac','esc_1987','million','escalate_1987, ref_224_fac','224','12',0),(67,'225_fac',6278660,'22_fac','NO_ALG','million','N/A','225','N/A',0),(68,'226.1_fac',2058360,'226_fac','NO_ALG','million','N/A','226.1','N/A',0),(69,'226.3_fac',2274530,'226_fac','NO_ALG','million','N/A','226.3','N/A',0),(70,'226.4_fac',19443300,'226_fac','MWth_scale','million','c_226.4_fac, mwth, scale_1.0','226.4','8',0),(71,'226.6_fac',442507,'226_fac','NO_ALG','million','N/A','226.6','N/A',0),(72,'226.7_fac',28179300,'226_fac','MWth_scale','million','c_226.7_fac, mwth, scale_1.0','226.7','8',0),(73,'226.8_fac',0,'226_fac','NO_ALG','million','N/A','226.8','N/A',0),(74,'226.9_fac',1038110,'226_fac','NO_ALG','million','N/A','226.9','N/A',0),(75,'226_fac',53436100,'22_fac','NO_ALG','million','N/A','226','N/A',0),(76,'227_fac',37538400,'22_fac','esc_1987','million','escalate_1987, ref_227_fac','227','12',0),(77,'228_fac',0,'22_fac','default_0','million','N/A','228','14',0),(78,'22_fac',686508000,'2_fac','NO_ALG','million','N/A','22','N/A',0),(79,'231_fac',356031000,'23_fac','dev_factor_ref','million','c_turbine, scale_tur_231_fac, n_231','231','10',0),(80,'233_fac',56339400,'23_fac','MWth_scale','million','c_233_fac, mwth, scale_0.8','233','8',0),(81,'234_fac',44874300,'23_fac','MWth_scale','million','c_234_fac, mwth, scale_0.8','234','8',0),(82,'235_fac',31848700,'23_fac','ptn_account','million','c_231_fac, prn_235_of_231_fac','235','4',0),(83,'236_fac',5322810,'23_fac','esc_1987','million','escalate_1987, ref_236_fac','236','12',0),(84,'237_fac',0,'23_fac','default_0','million','N/A','237','14',0),(85,'23_fac',494417000,'2_fac','NO_ALG','million','N/A','23','N/A',0),(86,'241_fac',32067500,'24_fac','MWe_scale','million','c_241_fac, mwe, scale_0.4','241','17',0),(87,'242_fac',52157800,'24_fac','MWe_scale','million','c_242_fac, mwe, scale_0.4','242','17',0),(88,'243_fac',4477640,'24_fac','NO_ALG','million','N/A','243','N/A',0),(89,'244_fac',0,'24_fac','NO_ALG','million','N/A','244','N/A',0),(90,'245_fac',0,'24_fac','default_0','million','N/A','245','14',0),(91,'246_fac',4510910,'24_fac','MWe_scale','million','c_246_fac, mwe, scale_0.4','246','17',0),(92,'24_fac',93213800,'2_fac','NO_ALG','million','N/A','24','N/A',0),(93,'251_fac',14416500,'25_fac','sum_multi_accounts','million','c_251.12_fac, c_251.111_fac, c_251.112_fac, c_251.16_fac, c_251.17_fac','251','1',0),(94,'252_fac',24869600,'25_fac','esc_1987','million','escalate_1987, ref_252_fac','252','12',0),(95,'253_fac',5552920,'25_fac','esc_1987','million','escalate_1987, ref_253_fac','253','12',0),(96,'254_fac',6181990,'25_fac','NO_ALG','million','N/A','254','N/A',0),(97,'255_fac',2161480,'25_fac','NO_ALG','million','N/A','255','N/A',0),(98,'25_fac',53182400,'2_fac','NO_ALG','million','N/A','25','N/A',0),(99,'261_fac',498939,'26_fac','NO_ALG','million','N/A','261','N/A',0),(100,'262_fac',86813900,'26_fac','MWth_scale','million','c_262_fac, mwth, scale_0.8','262','8',0),(101,'26_fac',87312900,'2_fac','NO_ALG','million','N/A','26','N/A',0),(102,'2_fac',1475120000,'','NO_ALG','million','N/A','2','N/A',0),(103,'211_lab',41328800,'21_lab','esc_1987','million','escalate_1987, ref_211_lab','211','12',0),(104,'212_lab',101951276.3,'21_lab','containment','million','Tot_Labor_containment','212','7',0),(105,'213_lab',31835200,'21_lab','MWth_scale','million','c_213_lab, mwth, scale_0.8','213','8',0),(106,'214_lab',2686150,'21_lab','NO_ALG','million','N/A','214','N/A',0),(107,'215_lab',29975200,'21_lab','NO_ALG','million','N/A','215','N/A',0),(108,'216_lab',25712000,'21_lab','NO_ALG','million','N/A','216','N/A',0),(109,'217_lab',12836600,'21_lab','NO_ALG','million','N/A','217','N/A',0),(110,'218A_lab',31857800,'218_lab','NO_ALG','million','N/A','218A','N/A',0),(111,'218B_lab',9663950,'218_lab','complex','million','c_218B_lab','218B','23',0),(112,'218D_lab',682327,'218_lab','NO_ALG','million','N/A','218D','N/A',0),(113,'218E_lab',4872660,'218_lab','NO_ALG','million','N/A','218E','N/A',0),(114,'218F_lab',1535890,'218_lab','NO_ALG','million','N/A','218F','N/A',0),(115,'218G_lab',120171,'218_lab','NO_ALG','million','N/A','218G','N/A',0),(116,'218H_lab',824097,'218_lab','NO_ALG','million','N/A','218H','N/A',0),(117,'218J_lab',15059800,'218_lab','complex','million','c_218J_lab','218J','23',0),(118,'218K_lab',582777,'218_lab','NO_ALG','million','N/A','218K','N/A',0),(119,'218L_lab',1417080,'218_lab','NO_ALG','million','N/A','218L','N/A',0),(120,'218P_lab',477504,'218_lab','NO_ALG','million','N/A','218P','N/A',0),(121,'218S_lab',1378470,'218_lab','NO_ALG','million','N/A','218S','N/A',0),(122,'218T_lab',8910340,'218_lab','complex','million','c_218T_lab','218T','23',0),(123,'218V_lab',173258,'218_lab','NO_ALG','million','N/A','218V','N/A',0),(124,'218_lab',77556100,'21_lab','NO_ALG','million','N/A','218','N/A',0),(125,'21_lab',323446000,'2_lab','NO_ALG','million','N/A','21','N/A',0),(126,'220A.211_lab',0,'220A_lab','default_0','million','N/A','220A.211','14',0),(127,'220A.2121_lab',0,'220A_lab','default_0','million','N/A','220A.2121','14',0),(128,'220A.2122_lab',0,'220A_lab','default_0','million','N/A','220A.2122','14',0),(129,'220A.2131_lab',0,'220A_lab','default_0','million','N/A','220A.2131','14',0),(130,'220A.2132_lab',0,'220A_lab','default_0','million','N/A','220A.2132','14',0),(131,'220A.221_lab',0,'220A_lab','default_0','million','N/A','220A.221','14',0),(132,'220A.222_lab',0,'220A_lab','default_0','million','N/A','220A.222','14',0),(133,'220A.223_lab',0,'220A_lab','default_0','million','N/A','220A.223','14',0),(134,'220A.224_lab',0,'220A_lab','default_0','million','N/A','220A.224','14',0),(135,'220A.225_lab',0,'220A_lab','default_0','million','N/A','220A.225','14',0),(136,'220A.2311_lab',0,'220A_lab','default_0','million','N/A','220A.2311','14',0),(137,'220A.2312_lab',0,'220A_lab','default_0','million','N/A','220A.2312','14',0),(138,'220A.2321_lab',0,'220A_lab','default_0','million','N/A','220A.2321','14',0),(139,'220A.2322_lab',0,'220A_lab','default_0','million','N/A','220A.2322','14',0),(140,'220A.2323_lab',0,'220A_lab','default_0','million','N/A','220A.2323','14',0),(141,'220A.2324_lab',0,'220A_lab','default_0','million','N/A','220A.2324','14',0),(142,'220A.2325_lab',0,'220A_lab','default_0','million','N/A','220A.2325','14',0),(143,'220A.251_lab',0,'220A_lab','default_0','million','N/A','220A.251','14',0),(144,'220A.254_lab',0,'220A_lab','default_0','million','N/A','220A.254','14',0),(145,'220A.2611_lab',0,'220A_lab','default_0','million','N/A','220A.2611','14',0),(146,'220A.2612_lab',0,'220A_lab','default_0','million','N/A','220A.2612','14',0),(147,'220A.2613_lab',0,'220A_lab','default_0','million','N/A','220A.2613','14',0),(148,'220A.2614_lab',0,'220A_lab','default_0','million','N/A','220A.2614','14',0),(149,'220A.262_lab',0,'220A_lab','NO_ALG','million','N/A','220A.262','N/A',0),(150,'220A.27_lab',0,'220A_lab','default_0','million','N/A','220A.27','14',0),(151,'220A_lab',0,'22_lab','NO_ALG','million','N/A','220A','N/A',0),(152,'221.11_lab',1448070,'221_lab','NO_ALG','million','N/A','221.11','N/A',0),(153,'221.12_lab',6397710,'221_lab','cost_by_weight','million','c_221.12_tol_weight, c_rpv_lab','221.12','13',0),(154,'221.13_lab',1548920,'221_lab','NO_ALG','million','N/A','221.13','N/A',0),(155,'221.14_lab',0,'221_lab','default_0','million','N/A','221.14','14',0),(156,'221.21_lab',1329300,'221_lab','NO_ALG','million','N/A','221.21','N/A',0),(157,'221_lab',10724000,'22_lab','NO_ALG','million','N/A','221','N/A',0),(158,'222.11_lab',4374120,'222_lab','MWth_scale','million','c_222.11_lab, mwth, scale_1.0','222.11','8',0),(159,'222.12_lab',11381600,'222_lab','MWth_scale','million','c_222.12_lab, mwth, scale_1.0','222.12','8',0),(160,'222.13_lab',2106280,'222_lab','unit_facility','million','no_of_sg, c_SG_per_unit_lab','222.13','16',0),(161,'222.14_lab',281935,'222_lab','MWth_scale','million','c_222.14_lab, mwth, scale_1.0','222.14','8',0),(162,'222_lab',18143900,'22_lab','MWth_scale','million','c_222_lab, mwth, scale_1.0','222','8',0),(163,'223.1_lab',3507460,'223_lab','factor_sum','million','fac_223.1, prn_223.1_lab, c_220A.2311_fac, c_220A.2312_fac','223.1','22',0),(164,'223.3_lab',5687570,'223_lab','factor_sum','million','fac_223.3, prn_223.3_lab, c_220A.2321_fac, c_220A.2322_fac, c_220A.2323_fac, c_220A.2324_fac, c_220A.2325_fac','223.3','22',0),(165,'223.4_lab',5857020,'223_lab','unit_volume','million','c_223.4_unit_vol_lab, vol_223.4','223.4','9',0),(166,'223.5_lab',564893,'223_lab','NO_ALG','million','N/A','223.5','N/A',0),(167,'223_lab',15616900,'22_lab','NO_ALG','million','N/A','223','N/A',0),(168,'224_lab',11434300,'22_lab','esc_1987','million','escalate_1987, ref_224_lab','224','12',0),(169,'225_lab',2444480,'22_lab','NO_ALG','million','N/A','225','N/A',0),(170,'226.1_lab',1342510,'226_lab','NO_ALG','million','N/A','226.1','N/A',0),(171,'226.3_lab',1563980,'226_lab','NO_ALG','million','N/A','226.3','N/A',0),(172,'226.4_lab',18621600,'226_lab','MWth_scale','million','c_226.4_lab, mwth, scale_1.0','226.4','8',0),(173,'226.6_lab',48049,'226_lab','NO_ALG','million','N/A','226.6','N/A',0),(174,'226.7_lab',24625600,'226_lab','MWth_scale','million','c_226.7_lab, mwth, scale_1.0','226.7','8',0),(175,'226.8_lab',1519680,'226_lab','NO_ALG','million','N/A','226.8','N/A',0),(176,'226.9_lab',716141,'226_lab','NO_ALG','million','N/A','226.9','N/A',0),(177,'226_lab',47112100,'22_lab','NO_ALG','million','N/A','226','N/A',0),(178,'227_lab',21960900,'22_lab','esc_1987','million','escalate_1987, ref_227_lab','227','12',0),(179,'228_lab',12175700,'22_lab','esc_1987','million','escalate_1987, ref_228_lab','228','12',0),(180,'22_lab',139612000,'2_lab','NO_ALG','million','N/A','22','N/A',0),(181,'231_lab',21746100,'23_lab','ptn_account','million','c_231_fac, prn_fac_231_lab','231','4',0),(182,'233_lab',22964300,'23_lab','MWth_scale','million','c_233_lab, mwth, scale_0.8','233','8',0),(183,'234_lab',20317400,'23_lab','MWth_scale','million','c_234_lab, mwth, scale_0.8','234','8',0),(184,'235_lab',28326900,'23_lab','ptn_account','million','c_231_lab, prn_235_of_231_lab','235','4',0),(185,'236_lab',13083300,'23_lab','esc_1987','million','escalate_1987, ref_236_lab','236','12',0),(186,'237_lab',13130900,'23_lab','MWth_scale','million','c_237_lab, mwth, scale_0.8','237','8',0),(187,'23_lab',119569000,'2_lab','NO_ALG','million','N/A','23','N/A',0),(188,'241_lab',1720620,'24_lab','MWe_scale','million','c_241_lab, mwe, scale_0.4','241','17',0),(189,'242_lab',4446170,'24_lab','MWe_scale','million','c_242_lab, mwe, scale_0.4','242','17',0),(190,'243_lab',1005350,'24_lab','NO_ALG','million','N/A','243','N/A',0),(191,'244_lab',7102570,'24_lab','NO_ALG','million','N/A','244','N/A',0),(192,'245_lab',51236700,'24_lab','MWe_scale','million','c_245_lab, mwe, scale_0.4','245','17',0),(193,'246_lab',33434500,'24_lab','MWe_scale','million','c_246_lab, mwe, scale_0.4','246','17',0),(194,'24_lab',98945900,'2_lab','NO_ALG','million','N/A','24','N/A',0),(195,'251_lab',2420360,'25_lab','sum_multi_accounts','million','c_251.12_lab, c_251.111_lab, c_251.112_lab, c_251.16_lab, c_251.17_lab','251','1',0),(196,'252_lab',44371800,'25_lab','esc_1987','million','escalate_1987, ref_252_lab','252','12',0),(197,'253_lab',11036100,'25_lab','esc_1987','million','escalate_1987, ref_253_lab','253','12',0),(198,'254_lab',1431940,'25_lab','NO_ALG','million','N/A','254','N/A',0),(199,'255_lab',5369350,'25_lab','NO_ALG','million','N/A','255','N/A',0),(200,'25_lab',64629600,'2_lab','NO_ALG','million','N/A','25','N/A',0),(201,'261_lab',7642620,'26_lab','NO_ALG','million','N/A','261','N/A',0),(202,'262_lab',35896600,'26_lab','MWth_scale','million','c_262_lab, mwth, scale_0.8','262','8',0),(203,'26_lab',43539200,'2_lab','NO_ALG','million','N/A','26','N/A',0),(204,'2_lab',789741000,'','NO_ALG','million','N/A','2','N/A',0),(205,'211_mat',29075000,'21_mat','esc_1987','million','escalate_1987, ref_211_mat','211','12',0),(206,'212_mat',80750981,'21_mat','containment','million','Tot_Mat_containment','212','7',0),(207,'213_mat',32364600,'21_mat','MWth_scale','million','c_213_mat, mwth, scale_0.8','213','8',0),(208,'214_mat',1046670,'21_mat','NO_ALG','million','N/A','214','N/A',0),(209,'215_mat',13705900,'21_mat','NO_ALG','million','N/A','215','N/A',0),(210,'216_mat',13371100,'21_mat','NO_ALG','million','N/A','216','N/A',0),(211,'217_mat',12470500,'21_mat','NO_ALG','million','N/A','217','N/A',0),(212,'218A_mat',15541700,'218_mat','NO_ALG','million','N/A','218A','N/A',0),(213,'218B_mat',6936620,'218_mat','complex','million','c_218B_mat','218B','23',0),(214,'218D_mat',421468,'218_mat','NO_ALG','million','N/A','218D','N/A',0),(215,'218E_mat',2182870,'218_mat','NO_ALG','million','N/A','218E','N/A',0),(216,'218F_mat',635078,'218_mat','NO_ALG','million','N/A','218F','N/A',0),(217,'218G_mat',45485,'218_mat','NO_ALG','million','N/A','218G','N/A',0),(218,'218H_mat',648326,'218_mat','NO_ALG','million','N/A','218H','N/A',0),(219,'218J_mat',7262350,'218_mat','complex','million','c_218J_mat','218J','23',0),(220,'218K_mat',321342,'218_mat','NO_ALG','million','N/A','218K','N/A',0),(221,'218L_mat',684428,'218_mat','NO_ALG','million','N/A','218L','N/A',0),(222,'218P_mat',149161,'218_mat','NO_ALG','million','N/A','218P','N/A',0),(223,'218S_mat',784185,'218_mat','NO_ALG','million','N/A','218S','N/A',0),(224,'218T_mat',4065430,'218_mat','complex','million','c_218T_mat','218T','23',0),(225,'218V_mat',80718,'218_mat','NO_ALG','million','N/A','218V','N/A',0),(226,'218_mat',39759100,'21_mat','NO_ALG','million','N/A','218','N/A',0),(227,'21_mat',184361000,'2_mat','NO_ALG','million','N/A','21','N/A',0),(228,'220A.211_mat',0,'220A_mat','default_0','million','N/A','220A.211','14',0),(229,'220A.2121_mat',0,'220A_mat','default_0','million','N/A','220A.2121','14',0),(230,'220A.2122_mat',0,'220A_mat','default_0','million','N/A','220A.2122','14',0),(231,'220A.2131_mat',0,'220A_mat','default_0','million','N/A','220A.2131','14',0),(232,'220A.2132_mat',0,'220A_mat','default_0','million','N/A','220A.2132','14',0),(233,'220A.221_mat',0,'220A_mat','default_0','million','N/A','220A.221','14',0),(234,'220A.222_mat',0,'220A_mat','default_0','million','N/A','220A.222','14',0),(235,'220A.223_mat',0,'220A_mat','default_0','million','N/A','220A.223','14',0),(236,'220A.224_mat',0,'220A_mat','default_0','million','N/A','220A.224','14',0),(237,'220A.225_mat',0,'220A_mat','default_0','million','N/A','220A.225','14',0),(238,'220A.2311_mat',0,'220A_mat','default_0','million','N/A','220A.2311','14',0),(239,'220A.2312_mat',0,'220A_mat','default_0','million','N/A','220A.2312','14',0),(240,'220A.2321_mat',0,'220A_mat','default_0','million','N/A','220A.2321','14',0),(241,'220A.2322_mat',0,'220A_mat','default_0','million','N/A','220A.2322','14',0),(242,'220A.2323_mat',0,'220A_mat','default_0','million','N/A','220A.2323','14',0),(243,'220A.2324_mat',0,'220A_mat','default_0','million','N/A','220A.2324','14',0),(244,'220A.2325_mat',0,'220A_mat','default_0','million','N/A','220A.2325','14',0),(245,'220A.251_mat',0,'220A_mat','default_0','million','N/A','220A.251','14',0),(246,'220A.254_mat',0,'220A_mat','default_0','million','N/A','220A.254','14',0),(247,'220A.2611_mat',0,'220A_mat','default_0','million','N/A','220A.2611','14',0),(248,'220A.2612_mat',0,'220A_mat','default_0','million','N/A','220A.2612','14',0),(249,'220A.2613_mat',0,'220A_mat','default_0','million','N/A','220A.2613','14',0),(250,'220A.2614_mat',0,'220A_mat','default_0','million','N/A','220A.2614','14',0),(251,'220A.262_mat',0,'220A_mat','default_0','million','N/A','220A.262','14',0),(252,'220A.27_mat',0,'220A_mat','default_0','million','N/A','220A.27','14',0),(253,'220A_mat',0,'22_mat','default_0','million','N/A','220A','14',0),(254,'221.11_mat',144807,'221_mat','NO_ALG','million','N/A','221.11','N/A',0),(255,'221.12_mat',639771,'221_mat','cost_by_weight','million','c_221.12_tol_weight, c_rpv_mat','221.12','13',0),(256,'221.13_mat',154890,'221_mat','NO_ALG','million','N/A','221.13','N/A',0),(257,'221.14_mat',15781400,'221_mat','esc_1987','million','escalate_1987, ref_221.14_mat','221.14','12',0),(258,'221.21_mat',132931,'221_mat','NO_ALG','million','N/A','221.21','N/A',0),(259,'221_mat',16853800,'22_mat','NO_ALG','million','N/A','221','N/A',0),(260,'222.11_mat',437412,'222_mat','MWth_scale','million','c_222.11_mat, mwth, scale_1.0','222.11','8',0),(261,'222.12_mat',1119110,'222_mat','MWth_scale','million','c_222.12_mat, mwth, scale_1.0','222.12','8',0),(262,'222.13_mat',210628,'222_mat','unit_facility','million','no_of_sg, c_SG_per_unit_mat','222.13','16',0),(263,'222.14_mat',28193,'222_mat','MWth_scale','million','c_222.14_mat, mwth, scale_1.0','222.14','8',0),(264,'222_mat',1795340,'22_mat','MWth_scale','million','c_222_mat, mwth, scale_1.0','222','8',0),(265,'223.1_mat',332871,'223_mat','factor_sum','million','fac_223.1, prn_223.1_mat, c_220A.2311_fac, c_220A.2312_fac','223.1','22',0),(266,'223.3_mat',952591,'223_mat','factor_sum','million','fac_223.3, prn_223.3_mat, c_220A.2321_fac, c_220A.2322_fac, c_220A.2323_fac, c_220A.2324_fac, c_220A.2325_fac','223.3','22',0),(267,'223.4_mat',588220,'223_mat','unit_volume','million','c_223.4_unit_vol_mat, vol_223.4','223.4','9',0),(268,'223.5_mat',55563,'223_mat','NO_ALG','million','N/A','223.5','N/A',0),(269,'223_mat',1929240,'22_mat','NO_ALG','million','N/A','223','N/A',0),(270,'224_mat',2191180,'22_mat','esc_1987','million','escalate_1987, ref_224_mat','224','12',0),(271,'225_mat',301394,'22_mat','NO_ALG','million','N/A','225','N/A',0),(272,'226.1_mat',132534,'226_mat','NO_ALG','million','N/A','226.1','N/A',0),(273,'226.3_mat',414455,'226_mat','NO_ALG','million','N/A','226.3','N/A',0),(274,'226.4_mat',2705780,'226_mat','MWth_scale','million','c_226.4_mat, mwth, scale_1.0','226.4','8',0),(275,'226.6_mat',2402,'226_mat','NO_ALG','million','N/A','226.6','N/A',0),(276,'226.7_mat',2393290,'226_mat','MWth_scale','million','c_226.7_mat, mwth, scale_1.0','226.7','8',0),(277,'226.8_mat',0,'226_mat','default_0','million','N/A','226.8','14',0),(278,'226.9_mat',77122,'226_mat','NO_ALG','million','N/A','226.9','N/A',0),(279,'226_mat',7044000,'22_mat','NO_ALG','million','N/A','226','N/A',0),(280,'227_mat',1920500,'22_mat','esc_1987','million','escalate_1987, ref_227_mat','227','12',0),(281,'228_mat',9058820,'22_mat','esc_1987','million','escalate_1987, ref_228_mat','228','12',0),(282,'22_mat',41094300,'2_mat','NO_ALG','million','N/A','22','N/A',0),(283,'231_mat',3998110,'23_mat','ptn_account','million','c_231_fac, prn_fac_231_mat','231','4',0),(284,'233_mat',3277750,'23_mat','MWth_scale','million','c_233_mat, mwth, scale_0.8','233','8',0),(285,'234_mat',2022430,'23_mat','MWth_scale','million','c_234_mat, mwth, scale_0.8','234','8',0),(286,'235_mat',3432270,'23_mat','ptn_account','million','c_231_mat, prn_235_of_231_mat','235','4',0),(287,'236_mat',1124370,'23_mat','esc_1987','million','escalate_1987, ref_236_mat','236','12',0),(288,'237_mat',9795180,'23_mat','MWth_scale','million','c_237_mat, mwth, scale_0.8','237','8',0),(289,'23_mat',23650100,'2_mat','NO_ALG','million','N/A','23','N/A',0),(290,'241_mat',251723,'24_mat','MWe_scale','million','c_241_mat, mwe, scale_0.4','241','17',0),(291,'242_mat',849719,'24_mat','MWe_scale','million','c_242_mat, mwe, scale_0.4','242','17',0),(292,'243_mat',355156,'24_mat','NO_ALG','million','N/A','243','N/A',0),(293,'244_mat',5039850,'24_mat','NO_ALG','million','N/A','244','N/A',0),(294,'245_mat',12309900,'24_mat','MWe_scale','million','c_245_mat, mwe, scale_0.4','245','17',0),(295,'246_mat',20755500,'24_mat','MWe_scale','million','c_246_mat, mwe, scale_0.4','246','17',0),(296,'24_mat',39561800,'2_mat','NO_ALG','million','N/A','24','N/A',0),(297,'251_mat',242037,'25_mat','sum_multi_accounts','million','c_251.12_mat, c_251.111_mat, c_251.112_mat, c_251.16_mat, c_251.17_mat','251','1',0),(298,'252_mat',12609700,'25_mat','esc_1987','million','escalate_1987, ref_252_mat','252','12',0),(299,'253_mat',1690000,'25_mat','esc_1987','million','escalate_1987, ref_253_mat','253','12',0),(300,'254_mat',182008,'25_mat','NO_ALG','million','N/A','254','N/A',0),(301,'255_mat',536936,'25_mat','NO_ALG','million','N/A','255','N/A',0),(302,'25_mat',15260700,'2_mat','NO_ALG','million','N/A','25','N/A',0),(303,'261_mat',4204130,'26_mat','NO_ALG','million','N/A','261','N/A',0),(304,'262_mat',4510480,'26_mat','MWth_scale','million','c_262_mat, mwth, scale_0.8','262','8',0),(305,'26_mat',8714610,'2_mat','NO_ALG','million','N/A','26','N/A',0),(306,'2_mat',312642000,'','NO_ALG','million','N/A','2','N/A',0); -/*!40000 ALTER TABLE `cost_element` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `escalation` --- - -DROP TABLE IF EXISTS `escalation`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `escalation` ( - `ind` int NOT NULL AUTO_INCREMENT, - `name` varchar(30) NOT NULL, - `description` text, - `revision` text, - `value` double DEFAULT NULL, - `year_of_interest` datetime DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `escalation` --- - -LOCK TABLES `escalation` WRITE; -/*!40000 ALTER TABLE `escalation` DISABLE KEYS */; -INSERT INTO `escalation` VALUES (1,'Combustion Engineering',NULL,NULL,6.72,'2017-01-01 00:00:00'),(2,'EEDB',NULL,NULL,2.8494065,'2017-01-01 00:00:00'),(3,'Holcomb',NULL,NULL,1.1,'2017-01-01 00:00:00'),(4,'Robertson',NULL,NULL,13.84,'2017-01-01 00:00:00'); -/*!40000 ALTER TABLE `escalation` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `facility` --- - -DROP TABLE IF EXISTS `facility`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `facility` ( - `ind` int NOT NULL AUTO_INCREMENT, - `name` varchar(50) NOT NULL, - `description` text, - `account` varchar(20) DEFAULT NULL, - `references` text, - `reference_year` datetime DEFAULT NULL, - `year_of_interest` datetime DEFAULT NULL, - `escalation_name` varchar(30) DEFAULT NULL, - `escalation_factorsValue` double DEFAULT NULL, - PRIMARY KEY (`ind`,`name`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `facility` --- - -LOCK TABLES `facility` WRITE; -/*!40000 ALTER TABLE `facility` DISABLE KEYS */; -INSERT INTO `facility` VALUES (1,'Electrical Equipment','Including switchgear, station service equipment, switchboards, protective equipment, electrical raceways, conduit, and wiring.','24','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.8494065),(2,'Heat Rejection Equipment','Including heat rejection equipment.','25','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.8494065),(3,'Miscellaneous Equipment','Including air, water, and steam service systems. Other accounts cover lift equipment, communications equipment, fixtures and furnishings, and wastewater processing','26','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.8494065),(4,'Reactor Plant Equipment','Reactor plant equipment, including the reactor equipment itself, main heat transfer systems, reactor safety (safeguards) equipment, radioactive waste processing systems, fuel handling and storage systems, reactor instrumentation and control hardware, and other reactor plant equipment.','22','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.8494065),(5,'Structures and Improvements','Site preparation and yardwork, and construction of the various buildings and structures on the site. Building estimates generally cover excavation, subsurface concrete, and superstructures. Also cover standard building services but not process-related piping, ventilation, and equipment.','21','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.8494065),(6,'Turbine-Generator Equipment','Turbine generator equipment, beginning with supercritical fluid or steam from steam generators (PWR) or salt-to-water heat transfer equipment (AHTR) and ending with electricity at the generator outputs.','23','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.8494065); -/*!40000 ALTER TABLE `facility` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `fusion_acco` --- - -DROP TABLE IF EXISTS `fusion_acco`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `fusion_acco` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - `alg_name` text, - `fun_unit` text, - `variables` text, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `fusion_acco` --- - -LOCK TABLES `fusion_acco` WRITE; -/*!40000 ALTER TABLE `fusion_acco` DISABLE KEYS */; -INSERT INTO `fusion_acco` VALUES (1,'2','Plant direct cost',5523932823,0,'','Unchanged',1,'acc2','million',''),(2,'21','Total account 21 cost',778648283.5,1,'2','Unchanged',0.140959043,'acc21','million',''),(3,'211','Site improvements, facilities, land',35200000,2,'21','Unchanged',0.006372272,'acc211','million','csi, lsa, cland'),(4,'212','Reactor building cost',452161853.1,2,'21','Unchanged',0.08185506,'acc212','million','ucrb, rbvol, exprb, lsa'),(5,'213','Turbine building cost',38000000,2,'21','Unchanged',0.006879157,'acc213','million','ireactor, cturbb, lsa'),(6,'214','Reactor maintenance and warm shop buildings cost',160708943.7,2,'21','Unchanged',0.029093211,'acc214','million',''),(7,'2141','Reactor maintenance building cost',103067666.8,3,'214','Unchanged',0.018658385,'acc2141','million','ucmb, rmbvol, exprb, lsa'),(8,'2142','Warm shop cost',57641276.92,3,'214','Unchanged',0.010434826,'acc2142','million','ucws, wsvol, exprb, lsa'),(9,'215','Tritium building cost',14800000,2,'21','Unchanged',0.002679251,'acc215','million','uctr, triv, exprb, lsa'),(10,'216','Electrical equipment building cost',19706763.56,2,'21','Unchanged',0.003567524,'acc216','million','ucel, elevol, exprb, lsa'),(11,'217','Other buildings cost',58070723.2,2,'21','Unchanged',0.010512569,'acc217','million',''),(12,'2171','Additional buildings cost',18000000,3,'217','Unchanged',0.003258548,'acc2171','million','ucad, admvol, exprb, lsa'),(13,'2172','Control room buildings cost',21000000,3,'217','Unchanged',0.003801639,'acc2172','million','ucco, convol, exprb, lsa'),(14,'2173','Shop and warehouses cost',11500000,3,'217','Unchanged',0.00208185,'acc2173','million','ucsh, shovol, exprb, lsa'),(15,'2174','Cryogenic building cost',7570723.2,3,'217','Unchanged',0.001370531,'acc2174','million','uccr, cryvol, exprb, lsa'),(16,'22','Total account 22 cost',4450975680,1,'2','Unchanged',0.805762094,'acc22','million',''),(17,'221','Total account 221 cost',1413062555,2,'22','Unchanged',0.255807339,'acc221','million',''),(18,'2211','First wall cost',191300792.1,3,'221','Unchanged',0.034631267,'acc2211','million','ife, ucfwa, ucfws, fwarea, ucfwps, ucblss, fwmatm, uccarb, ucblli2o, ucconc, ifueltyp, fwallcst, lsa'),(19,'2212','Blanket total cost',981664978.6,3,'221','Unchanged',0.177711245,'acc2212','million',''),(20,'22121','Blanket beryllium cost',261092739.8,4,'2212','Unchanged',0.047265734,'acc22121','million','ife, wtbllipb, ucbllipb, whtblbe, ucblbe, iblanket, lsa'),(21,'22122','Blanket breeder material cost',639846060.7,4,'2212','Unchanged',0.115831615,'acc22122','million','whtblli, ucblli, whtblbreed, ucblbreed, wtblli2o, ucblli2o, iblanket, lsa, ife'),(22,'22123','Blanket stainless steel cost',80726178.24,4,'2212','Unchanged',0.014613896,'acc22123','million','whtblss, ucblss, lsa'),(23,'22124','Blanket vanadium cost',0,4,'2212','Unchanged',0,'acc22124','million','whtblvd, ucblvd, ife, lsa'),(24,'2213','Total shield cost',156788405.4,3,'221','Unchanged',0.028383474,'acc2213','million',''),(25,'22131','Bulk shield cost',78394202.68,4,'2213','Unchanged',0.014191737,'acc22131','million','ife, whtshld, ucshld, lsa, shmatm, uccarb, ucblli2o, ucconc'),(26,'22132','Penetration shielding cost',78394202.68,4,'2213','Unchanged',0.014191737,'acc22132','million','ife, wpenshld, ucpens, lsa'),(27,'2214','Total support structure cost',41648347.22,3,'221','Unchanged',0.007539619,'acc2214','million','gsmass, ucgss, lsa'),(28,'2215','Divertor cost',41660031.86,3,'221','Unchanged',0.007541734,'acc2215','million','ife, divsur, ucdiv, ifueltyp, divcst'),(29,'222','Total account 222 cost',1755392733,2,'22','Unchanged',0.317779522,'acc222','million',''),(30,'2221','TF magnet assemblies cost',820550431.9,3,'222','Unchanged',0.148544607,'acc2221','million',''),(31,'22211','TF coil conductor cost',130258092.5,4,'2221','Unchanged',0.02358068,'acc22211','million','whtcp, uccpcl1, itart, ifueltyp, cpstcst, whtconsc,tfleng, n_tf_turn, uccu, whtconcu, cconshtf, cconfix, n_tf, lsa, i_tf_sup, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, fkind, i_tf_sc_mat'),(32,'22212','TF coil winding cost',55700223.23,4,'2221','Unchanged',0.010083436,'acc22212','million','whttflgs, uccpclb, lsa, ucwindtf, n_tf, tfleng, n_tf_turn, i_tf_sup'),(33,'22213','TF coil case cost',439106666.3,4,'2221','Unchanged',0.079491674,'acc22213','million','whtcas, uccase, n_tf, lsa, i_tf_sup'),(34,'22214','TF intercoil structure cost',150045051.6,4,'2221','Unchanged',0.027162722,'acc22214','million','aintmass, ucint, lsa, i_tf_sup'),(35,'22215','TF coil gravity support structure',45440398.23,4,'2221','Unchanged',0.008226095,'acc22215','million','clgsmass, ucgss, lsa, i_tf_sup'),(36,'2222','PF magnet assemblies cost',680800177,3,'222','Unchanged',0.123245557,'acc2222','million',''),(37,'22221','PF coil conductor cost',466068431.2,4,'2222','Unchanged',0.084372574,'acc22221','million','ipfres, cconshpf, iohcl, nohc, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, isumatpf, fcupfsu, vf, ric_0, ric_1, ric_2, ric_3, ric_4, ric_5, ric_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, rjconpf_0, rjconpf_1, rjconpf_2, rjconpf_3, rjconpf_4, rjconpf_5, rjconpf_6, rjconpf_7, dcond_0, dcond_1, dcond_2, dcond_3, dcond_4, dcond_5, dcond_6, dcond_7, dcond_8, uccu, dcopper, cconfix, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, lsa, isumatoh, awpoh, vfohc, fcuohsu'),(38,'22222','PF coil winding cost',77130237.29,4,'2222','Unchanged',0.013962921,'acc22222','million','ucwindpf, lsa, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, nohc'),(39,'22223','PF coil case cost',129551313.8,4,'2222','Unchanged',0.023452732,'acc22223','million','uccase, whtpfs, lsa'),(40,'22224','PF coil support structure cost',8050194.63,4,'2222','Unchanged',0.00145733,'acc22224','million','ucfnc, fncmass, lsa'),(41,'2223','Vacuum vessel assembly cost',254042123.8,3,'222','Unchanged',0.045989358,'acc2223','million','vvmass, uccryo, lsa'),(42,'223','Total account 223 cost',241046837.7,2,'22','Unchanged',0.043636816,'acc223','million',''),(43,'2231','ECH system cost',241046837.7,3,'223','Unchanged',0.043636816,'acc2231','million','ucech, echpwr, exprf, ifedrv, dcdrv1, dcdrv2, cdriv1, mcdriv, edrive, etadrv, dcdrv0, cdriv0 ,cdriv3, fcdfuel, ife, cdriv2, ifueltyp'),(44,'2232','Lower hybrid system cost',0,3,'223','Unchanged',0,'acc2232','million','iefrf, uclh, plhybd, exprf, ucich, fcdfuel, ifueltyp, ife'),(45,'2233','Neutral beam system cost',0,3,'223','Unchanged',0,'acc2233','million','ucnbi, exprf, fcdfuel, ifueltyp, pnbitot, ife, ifedrv'),(46,'224','Total account 224 cost',26934799.04,2,'22','Unchanged',0.004876019,'acc224','million',''),(47,'2241','High vacuum pumps cost',12480000,3,'224','Unchanged',0.00225926,'acc2241','million','vpumpn, uccpmp, uctpmp, ntype'),(48,'2242','Backing pumps cost',4680000,3,'224','Unchanged',0.000847222,'acc2242','million','nvduct, ucbpmp'),(49,'2243','Vacuum duct cost',2590254.5,3,'224','Unchanged',0.000468915,'acc2243','million','nvduct, dlscal, ucduct'),(50,'2244','Valves cost',5884544.54,3,'224','Unchanged',0.001065282,'acc2244','million','nvduct, vcdimax, ucvalv'),(51,'2245','Duct shielding cost',0,3,'224','Unchanged',0,'acc2245','million','nvduct, vacdshm, ucvdsh'),(52,'2246','Instrumentation cost',1300000,3,'224','Unchanged',0.00023534,'acc2246','million','ucviac'),(53,'225','Total account 225 cost',154876266,2,'22','Unchanged',0.028037319,'acc225','million',''),(54,'2251','Total, TF coil power costs',98208291.45,3,'225','Unchanged',0.01777869,'acc2251','million',''),(55,'22511','TF coil power supplies cost',3967323.07,4,'2251','Unchanged',0.000718206,'acc22511','million','uctfps, tfckw, tfcmw, expel'),(56,'22512','TF coil breakers cost',34112697.55,4,'2251','Unchanged',0.006175437,'acc22512','million','uctfbr, n_tf, cpttf, vtfskv, expel, uctfsw, i_tf_sup'),(57,'22513','TF coil dump resistors cost',21125590.34,4,'2251','Unchanged',0.003824375,'acc22513','million','uctfdr, estotftgj, uctfgr, n_tf'),(58,'22514','TF coil instrumentation and control',4800000,4,'2251','Unchanged',0.000868946,'acc22514','million','uctfic, n_tf'),(59,'22515','TF coil bussing cost',34202680.49,4,'2251','Unchanged',0.006191726,'acc22515','million','uctfbus, tfbusmas, ucbus, cpttf, tfbusl, i_tf_sup'),(60,'2252','Total, PF coil power costs',39768511.04,3,'225','Unchanged',0.007199311,'acc2252','million',''),(61,'22521','PF coil power supplies cost',2932371.33,4,'2252','Unchanged',0.000530848,'acc22521','million','ucpfps, peakmva'),(62,'22522','PF coil instrumentation and control',3600000,4,'2252','Unchanged',0.00065171,'acc22522','million','ucpfic, pfckts'),(63,'22523','PF coil bussing cost',11995200,4,'2252','Unchanged',0.002171496,'acc22523','million','ucpfb, spfbusl, acptmax'),(64,'22524','PF coil burn power supplies cost',1267929.14,4,'2252','Unchanged',0.000229534,'acc22524','million','ucpfbs, pfckts, srcktpm'),(65,'22525','PF coil breakers cost',14709370.28,4,'2252','Unchanged',0.002662844,'acc22525','million','ucpfbk, pfckts, acptmax, vpfskv'),(66,'22526','PF coil dump resistors cost',4363640.29,4,'2252','Unchanged',0.000789952,'acc22526','million','ucpfdr1, ensxpfm'),(67,'22527','PF coil ac breakers cost',900000,4,'2252','Unchanged',0.000162927,'acc22527','million','ucpfcb, pfckts'),(68,'2253','Total, energy storage cost',16899463.51,3,'225','Unchanged',0.003059317,'acc2253','million','lpulse, istore, ucblss, pthermmw, tdown, dtstor, pnetelmw'),(69,'226','Total account 226 cost',332122997.5,2,'22','Unchanged',0.060124373,'acc226','million',''),(70,'2261','Total, reactor cooling system cost',109472365.6,3,'226','Unchanged',0.019817831,'acc2261','million',''),(71,'22611','Pumps and piping system cost',37134735.98,4,'2261','Unchanged',0.006722518,'acc22611','million','uchts_0, uchts_1, coolwh, pfwdiv, exphts, pnucblkt, pnucshld, lsa'),(72,'22612','Primary heat exchanger cost',72337629.6,4,'2261','Unchanged',0.013095313,'acc22612','million','ucphx, nphx, pthermmw, exphts, lsa'),(73,'2262','Pumps, piping cost',29300032.53,3,'226','Unchanged',0.005304198,'acc2262','million','ucahts, pinjht, exphts, crypmw, vachtmw, trithtmw, fachtmw, ife, tdspmw, tfacmw, lsa'),(74,'2263','Total, cryogenic system cost',193350599.4,3,'226','Unchanged',0.035002344,'acc2263','million','uccry, tmpcry, helpow, lsa, expcry'),(75,'227','Total account 227 cost',252539491.6,2,'22','Unchanged',0.045717336,'acc227','million',''),(76,'2271','Fuelling system cost',22300000,3,'227','Unchanged',0.004036979,'acc2271','million','ucf1'),(77,'2272','Fuel processing and purification cost',103001575.3,3,'227','Unchanged',0.018646421,'acc2272','million','ife, rndfuel, afuel, umass, gain, edrive, fburn, reprat, ucfpr'),(78,'2273','Atmospheric recovery systems cost',58061674.55,3,'227','Unchanged',0.010510931,'acc2273','million','ftrit, ucdtc, volrci, wsvol'),(79,'2274','Nuclear building ventilation cost',69176241.77,3,'227','Unchanged',0.012523006,'acc2274','million','ucnbv, volrci, wsvol'),(80,'228','Instrumentation and control cost',150000000,2,'22','Unchanged',0.027154566,'acc228','million','uciac'),(81,'229','Maintenance equipment cost',125000000,2,'22','Unchanged',0.022628805,'acc229','million','ucme'),(82,'23','Turbine plant equipment cost',178012556.3,1,'2','Unchanged',0.032225692,'acc23','million','ireactor, ucturb_0, ucturb_1, coolwh, pgrossmw, exptpe'),(83,'24','Total account 24 cost',40776153.7,1,'2','Unchanged',0.007381725,'acc24','million',''),(84,'241','Switchyard equipment cost',18400000,2,'24','Unchanged',0.00333096,'acc241','million','ucswyd, lsa'),(85,'242','Transformers cost',7502814.23,2,'24','Unchanged',0.001358238,'acc242','million','ucpp, pacpmw, expepe, ucap, fcsht, lsa'),(86,'243','Low voltage equipment cost',6573339.47,2,'24','Unchanged',0.001189975,'acc243','million','uclv, tlvpmw, lsa'),(87,'244','Diesel backup equipment cost',6800000,2,'24','Unchanged',0.001231007,'acc244','million','ucdgen, lsa'),(88,'245','Auxiliary facilities cost',1500000,2,'24','Unchanged',0.000271546,'acc245','million','ucaf, lsa'),(89,'25','Miscellaneous plant equipment cost',25000000,1,'2','Unchanged',0.004525761,'acc25','million','ucmisc, lsa'),(90,'26','Heat rejection system cost',50520149.78,1,'2','Unchanged',0.009145685,'acc26','million','ireactor, powfmw, pinjwp, tfcmw, pthermmw, pgrossmw, uchrs, lsa'); -/*!40000 ALTER TABLE `fusion_acco` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `fusion_alg` --- - -DROP TABLE IF EXISTS `fusion_alg`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `fusion_alg` ( - `ind` int DEFAULT NULL, - `alg_name` varchar(50) NOT NULL, - `alg_for` text, - `alg_description` text, - `alg_python` text, - `alg_formulation` text, - `alg_units` text, - PRIMARY KEY (`alg_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `fusion_alg` --- - -LOCK TABLES `fusion_alg` WRITE; -/*!40000 ALTER TABLE `fusion_alg` DISABLE KEYS */; -INSERT INTO `fusion_alg` VALUES (1,'acc211','c','Site_improvements,_facilities,_land_(M$)','FusionFunc','acc211= csi*cmlsa[lsa-1] + cland','million'),(2,'acc212','c','Reactor_building_cost_(M$)','FusionFunc','acc212= (1.0e-6*ucrb*rbvol)**exprb* cmlsa[lsa - 1]','million'),(3,'acc213','c','Turbine_building_cost_(M$)','FusionFunc',' if ireactor == 1:\n acc213 = cturbb * cmlsa[lsa - 1]\n else: acc213 = 0.0e0','million'),(4,'acc2141','c','Reactor_maintenance_building_cost_(M$)','FusionFunc','acc2142 = 1.0e-6*ucmb*rmbvol**exprb*cmlsa[lsa - 1]','million'),(5,'acc2142','c','Warm_shop_cost_(M$)','FusionFunc','acc2142 = (1.0e-6*ucws*wsvol)**exprb*cmlsa[lsa - 1]','million'),(6,'acc215','c','Tritium_building_cost_(M$)','FusionFunc','acc215 = ((1.0e-6*uctr*triv)*exprb)*cmlsa[lsa - 1]','million'),(7,'acc216','c','Electrical_equipment_building_cost_(M$)','FusionFunc','acc216 = 1.0e-6*ucel*elevol**exprb*cmlsa[lsa - 1]','million'),(8,'acc2171','c','Additional_buildings_cost_(M$)','FusionFunc','acc2171 = 1.0e-6*ucad*admvol**exprb* cmlsa[lsa - 1]','million'),(9,'acc2172','c','Control_room_buildings_cost_(M$)','FusionFunc','acc2172 = 1.0e-6*ucconc*convol**exprb* cmlsa[lsa - 1]','million'),(10,'acc2173','c','Shop_and_warehouses_cost_(M$)','FusionFunc','acc2173 = 1.0e-6*ucsh*shovol**exprb*cmlsa[lsa - 1]','million'),(11,'acc2174','c','Cryogenic_building_cost_(M$)','FusionFunc','acc2174 = 1.0e-6*uccr*cryvol**exprb*cmlsa[lsa - 1]','million'),(12,'acc2211','c','First_wall_cost_(M$)','FusionFunc','if ife == 1:\n acc2211 = (1.0e-6*cmlsa[lsa - 1]\n * (ucblss*(fwmatm(1, 1)+ fwmatm(2, 1)+ fwmatm(3, 1))\n + uccarb*(fwmatm(1, 2)+ fwmatm(2, 2)+ fwmatm(3, 2))\n + ucblli2o*(fwmatm(1, 4) + fwmatm(2, 4)+ fwmatm(3, 4))\n + ucconc*(fwmatm(1, 5)+ fwmatm(2, 5)+ fwmatm(3, 5))))\n else:\n acc2211 = (1.0e-6* cmlsa[lsa - 1]*((ucfwa + ucfws)* fwarea+ ucfwps)) \n acc2211 = fkind * acc2211\n if ifueltyp == 1:\n acc2211 = 0\n acc2211 = fwallcst\n elif ifueltyp == 2:\n fwallcst = acc2211\n else:\n fwallcst = 0.0e0','million'),(13,'acc22121','c','Blanket_beryllium_cost_(M$)','FusionFunc','if ife == 1:\n acc22121 = 0\n else:\n if iblanket == 4:\n acc22121 = 1.0e-6*wtbllipb*ucbllipb\n else:\n acc22121 = 1.0e-6*whtblbe*ucblbe\n acc22121 = fkind*acc22121*cmlsa[lsa-1]','million'),(14,'acc22122','c','Blanket_breeder_material_cost_(M$)','FusionFunc','if ife == 1:\n if iblanket == 4:\n acc22122 = 1.0e-6*whtblli*ucblli\n else:\n if iblanket == 2:\n acc22122 = 1.0e-6*whtblbreed*ucblbreed\n else:\n acc22122 = 1.0e-6*wtblli2o*ucblli2o\n else:\n acc22122 = 1.0e-6*wtblli2o*ucblli2o\n acc22122 =fkind*acc22122*cmlsa[lsa - 1]','million'),(15,'acc22123','c','Blanket_stainless_steel_cost_(M$)','FusionFunc','acc22123 = acc22123 = 1.0e-6*whtblss*ucblss\n acc22123 = fkind*acc22123*cmlsa[lsa - 1]','million'),(16,'acc22124','c','Blanket_vanadium_cost_(M$)','FusionFunc','if ife == 1:\n acc22124 = 1.0e-6*whtblvd*ucblvd\n else:\n acc22124 = 0\n acc22124 = fkind*acc22124*cmlsa[lsa-1]\n return acc22124','million'),(17,'acc22131','c','Bulk_shield_cost_(M$)','FusionFunc','if ife == 1:\n acc22131 = 1.0e-6*cmlsa[lsa - 1]*ucshld*(shmatm[1, 0] + shmatm[2, 0]+shmatm[3, 0])\n + uccarb*(shmatm[1, 1]+ shmatm[2, 1]+ shmatm[3, 1])\n + ucblli2o*(shmatm[1, 1]+ shmatm[2, 1]+ shmatm[3, 1])\n + ucconc* (shmatm[1, 1] + shmatm[2, 1]+ shmatm[3, 1]) \n else:\n acc22131 = 1.0e-6*whtshld*ucshld*cmlsa[lsa - 1] \n acc22131 = fkind*acc22131','million'),(18,'acc22132','c','Penetration_shielding_cost_(M$)','FusionFunc','if ife == 1:\n acc22132 = 1.0e-6*wpenshld*ucpens* cmlsa[lsa - 1]\n else:\n acc22132 = 1.0e-6*wpenshld*ucpens* cmlsa[lsa - 1]\n acc22132 = fkind*acc22132','million'),(19,'acc2214','c','Total_support_structure_cost_(M$)','FusionFunc','acc2214 = 1.0e-6*gsmass*ucgss*cmlsa[lsa - 1]\n acc2214 = fkind*acc2214','million'),(20,'acc2215','c','Divertor_cost_(M$)','FusionFunc','if ife == 1:\n acc2215 = 0\n divcst = 0\n else:\n acc2215 = 1.0e-6 * divsur * ucdiv\n acc2215 = fkind * acc2215\n if ifueltyp == 1:\n acc2215 = 0\n acc2215 = divcst \n elif ifueltyp == 2:\n divcst = acc2215\n else:\n divcst = 0.0e0 ','million'),(21,'acc22211','c','TF_coil_conductor_cost_(M$)','FusionFunc','if i_tf_sup == 1: \n costtfsc = ucsc[i_tf_sc_mat - 1]*whtconsc/(tfleng*n_tf_turn)\n costtfcu = uccu*whtconcu/(tfleng*n_tf_turn)\n costwire = costtfsc+costtfcu\n ctfconpm = costwire+cconshtf+cconfix\n acc22211 = 1.0e-6*ctfconpm*n_tf*tfleng*n_tf_turn\n acc22211 = fkind*acc22211*cmlsa[lsa - 1]\n else: \n acc22211 = 1.0e-6*whtcp*uccpcl1*cmlsa[lsa - 1]\n acc22211 = fkind*acc22211\n if (itart == 1) and (ifueltyp == 1):\n acc22211 = cpstcst\n accc22211 = 0.0e0\n elif (itart == 1) and (ifueltyp == 2):\n acc22211 = cpstcst','million'),(22,'acc22212','c','TF_coil_winding_cost_(M$)','FusionFunc','if i_tf_sup == 1:\n acc22212 = 1.0e-6*ucwindtf*n_tf*tfleng*n_tf_turn\n acc22212 = fkind*acc22212*cmlsa[lsa-1]\n else:\n acc22212 = 1.0e-6*whttflgs*uccpclb*cmlsa[lsa - 1]\n acc22212 = fkind*acc22212','million'),(23,'acc22213','c','TF_coil_case_cost_(M$)','FusionFunc',' if i_tf_sup == 1:\n acc22213 = 1.0e-6*(whtcas*uccase)*n_tf\n acc22213 = fkind*acc22213*cmlsa[lsa - 1]\n else:\n acc22213 = 0','million'),(24,'acc22214','c','TF_intercoil_structure_cost_(M$)','FusionFunc','if i_tf_sup == 1:\n acc22214 = 1.0e-6*aintmass*ucint\n acc22214 = fkind*acc22214*cmlsa[lsa - 1]\n else:\n acc22214 = 0','million'),(25,'acc22215','c','TF_coil_gravity_support_structure_(M$)','FusionFunc','if i_tf_sup == 1:\n acc22215 = 1.0e-6*clgsmass*ucgss\n acc22215 = fkind*acc22215*cmlsa[lsa - 1]\n else:\n acc22215 = 0','million'),(26,'acc22221','c','PF_coil_conductor_cost_(M$)','FusionFunc',NULL,'million'),(27,'acc22222','c','PF_coil_winding_cost_(M$)','FusionFunc','for i in range(0, nohc):\n pfwndl = pfwndl +(twopi*rpf[i] *turns[i])\n acc22222 = 1.0e-6*ucwindpf*pfwndl\n acc22222 = fkind*acc22222*cmlsa[lsa - 1]','million'),(28,'acc22223','c','PF_coil_case_cost_(M$)','FusionFunc','acc22223 = 1.0e-6*uccase*whtpfs\n acc22223 = fkind*acc22223*cmlsa[lsa - 1]','million'),(29,'acc22224','c','PF_coil_support_structure_cost_(M$)','FusionFunc','acc22224 = 1.0e-6*ucfnc*fncmass\n acc22224 = fkind*acc22224*cmlsa[lsa - 1]','million'),(30,'acc2223','c','Vacuum_vessel_assembly_cost_(M$)','FusionFunc','acc2223 = 1.0e-6*vvmass*uccryo\n acc2223 = fkind*acc2223*cmlsa[lsa - 1]','million'),(31,'acc2231','c','ECH_system_cost_(M$)','FusionFunc',NULL,'million'),(32,'acc2232','c','Lower_hybrid_system_cost_(M$)','FusionFunc','if ife == 1:\n if iefrf == 2:\n acc2232 = (1.0e-6*uclh*(1.0e6*plhybd)**exprf)\n else:\n acc2232 = (1.0e-6*ucich*(1.0e6*plhybd)**exprf)\n if ifueltyp == 1:\n acc2232 = (1.0e0-fcdfuel)*acc2232\n acc2232 = fkind * acc2232\n else:\n if ifueltyp == 1:\n acc2232 = 0.0e0','million'),(33,'acc2233','c','Neutral_beam_system_cost_(M$)','FusionFunc','if ife == 1:\n acc2233 = (1.0e-6*ucnbi*(1.0e6*pnbitot)**exprf)\n if ifueltyp == 1:\n acc2233 = (1.0e0-fcdfuel)*acc2233\n acc2233 = fkind*acc2233\n else:\n if ifedrv == 2:\n acc2233 = 0.0e0','million'),(34,'acc2241','c','High_vacuum_pumps_cost_(M$)','FusionFunc','if ntype == 1:\n acc2241 = 1.0e-6*vpumpn*uccpmp\n else:\n acc2241 = 1.0e-6*vpumpn*uctpmp\n acc2241 = fkind*acc2241','million'),(35,'acc2242','c','Backing_pumps_cost_(M$)','FusionFunc','acc2242 = 1.0e-6*nvduct*ucbpmp\n acc2242 = fkind*acc2242 ','million'),(36,'acc2243','c','Vacuum_duct_cost_(M$)','FusionFunc',NULL,'million'),(37,'acc2244','c','Valves_cost_(M$)','FusionFunc','acc2244 = 1.0e-6*2.0e0*nvduct*((vcdimax*1.2e0)**1.4e0)*ucvalv\n acc2244 = fkind*acc2244','million'),(38,'acc2245','c','Duct_shielding_cost_(M$)','FusionFunc','acc2245 = 1.0e-6*nvduct*vacdshm*ucvdsh\n acc2245 = fkind*acc2245','million'),(39,'acc2246','c','Instrumentation_cost_(M$)','FusionFunc','acc2246 = 1.0e-6*ucviac\n acc2246 = fkind*acc2246','million'),(40,'acc22511','c','TF_coil_power_supplies_cost_(M$)','FusionFunc','acc22511 = 1.0e-6*uctfps*(tfckw*1.0e3+tfcmw*1.0e6)**expel\n acc22511 = fkind*acc22511','million'),(41,'acc22512','c','TF_coil_breakers_cost_(M$)','FusionFunc',' if i_tf_sup == 1:\n acc22512 = 1.0e-6*(uctfbr*n_tf*(cpttf*vtfskv*1.0e3)**expel+uctfsw*cpttf)\n else:\n acc22512 = 0.0e0\n acc22512 = fkind*acc22512','million'),(42,'acc22513','c','TF_coil_dump_resistors_cost_(M$)','FusionFunc','acc22513 = 1.0e-6*(1.0e9*uctfdr*estotftgj+uctfgr*0.5e0*n_tf)\n acc22513 = fkind*acc22513','million'),(43,'acc22514','c','TF_coil_instrumentation_and_control_(M$)','FusionFunc','acc22514 = 1.0e-6*uctfic*(30.0e0*n_tf)\n acc22514 = fkind*acc22514 ','million'),(44,'acc22515','c','TF_coil_bussing_cost_(M$)','FusionFunc',' if i_tf_sup == 1:\n acc22515 = 1.0e-6*ucbus*cpttf*tfbusl\n else:\n acc22515 = 1.0e-6*uctfbus*tfbusmas\n acc22515 = fkind*acc22515','million'),(45,'acc22521','c','PF_coil_power_supplies_cost_(M$)','FusionFunc',NULL,'million'),(46,'acc22522','c','PF_coil_instrumentation_and_control_(M$)','FusionFunc','acc22522 = 1.0e-6*ucpfic*pfckts*30.0e0\n acc22522 = fkind*acc22522','million'),(47,'acc22523','c','PF_coil_bussing_cost_(M$)','FusionFunc','acc22523 = 1.0e-6*ucpfb*spfbusl*acptmax\n acc22523 = fkind*acc22523','million'),(48,'acc22524','c','PF_coil_burn_power_supplies_cost_(M$)','FusionFunc','if pfckts == 0:\n acc22524 = 0.0e0\n else:\n acc22524 = 1.0e-6*ucpfbs*pfckts*(srcktpm/pfckts)**0.7e0\n acc22524 = fkind*acc22524','million'),(49,'acc22525','c','PF_coil_breakers_cost_(M$)','FusionFunc','acc22525 = 1.0e-6*ucpfbk*pfckts*((acptmax*vpfskv)**0.7e0)\n acc22525 = fkind*acc22525','million'),(50,'acc22526','c','PF_coil_dump_resistors_cost_(M$)','FusionFunc','acc22526 = 1.0e-6*ucpfdr1*ensxpfm\n acc22526 = fkind*acc22526','million'),(51,'acc22527','c','PF_coil_ac_breakers_cost_(M$)','FusionFunc',' acc22527 = 1.0e-6*ucpfcb*pfckts\n acc22527 = fkind*acc22527','million'),(52,'acc2253','c','Total,_energy_storage_cost_(M$)','FusionFunc','if lpulse == 1:\n if istore == 1:\n acc2253 = 0.1e0\n acc2253 = acc2253 + 0.8e0\n acc2253 = acc2253 + 4.0e0\n acc2253 = acc2253 + 0.5e0\n acc2253 = acc2253 + 2.8e0\n acc2253 = acc2253 + 29.0e0\n elif istore == 2:\n acc2253 = 0.1e0\n acc2253 = acc2253 + 0.8e0\n acc2253 = acc2253 + 2.8e0\n acc2253 = acc2253 + 4.0e0\n acc2253 = acc2253 + 330.0e0\n acc2253 = acc2253 + 1.0e0\n acc2253 = acc2253 + 2.0e0\n acc2253 = acc2253 + 18.0e0\n elif istore == 3:\n shcss = 520.0e0\n acc2253 = ucblss*(pthermmw * 1.0e6)*tdown/(shcss*dtstor)\n if istore < 3:\n acc2253 = acc2253*pnetelmw / 1200.0e0\n acc2253 = acc2253*1.36e0','million'),(56,'acc2262','c','Total,_auxiliary_cooling_system_cost_(M$)','FusionFunc','cal_acc2262 = cal_accppa','million'),(57,'acc2263','c','Total,_cryogenic_system_cost_(M$)','FusionFunc',NULL,'million'),(58,'acc2271','c','Fuelling_system_cost_(M$)','FusionFunc','acc2271 = 1.0e-6*ucf1\n acc2271 = fkind*acc2271','million'),(59,'acc2272','c','Fuel_processing_and_purification_cost_(M$)','FusionFunc','if ife == 1:\n targtm = (gain*edrive*3.0e0*1.67e-27*1.0e3)/(1.602e-19 * 17.6e6 * fburn)\n wtgpd = targtm*reprat*86400.0e0\n else:\n wtgpd = 2.0e0*rndfuel*afuel*umass*1000.0e0*86400.0e0\n acc2272 = 1.0e-6*ucfpr*(0.5e0+0.5e0*(wtgpd/60.0e0)**0.67e0)\n acc2272 = fkind*acc2272','million'),(60,'acc2273','c','Atmospheric_recovery_systems_cost_(M$)','FusionFunc','if ftrit > 1.0e-3:\n acc2273 = (1.0e-6*ucdtc*((cfrht / 1.0e4) ** 0.6e0*(volrci+wsvol)))\n else:\n acc2273 = 0.0e0\n acc2273 = fkind*acc2273','million'),(61,'acc2274','c','Nuclear_building_ventilation_cost_(M$)','FusionFunc','acc2274 = 1.0e-6*ucnbv*(volrci+wsvol)**0.8e0\n acc2274 =fkind*acc2274','million'),(62,'acc228','c','Instrumentation_and_control_cost_(M$)','FusionFunc','acc228 = 1.0e-6*uciac\n acc228 = fkind*acc228','million'),(63,'acc229','c','Maintenance_equipment_cost_(M$)','FusionFunc','acc229 = 1.0e-6*ucme\n acc229 = fkind*acc229','million'),(64,'acc23','c','Turbine_plant_equipment_cost_(M$)','FusionFunc','if ireactor == 1:\n acc23 = (1.0e-6*ucturb[coolwh - 1]*(pgrossmw / 1200.0e0)**exptpe)','million'),(65,'acc241','c','Switchyard_equipment_cost_(M$)','FusionFunc','acc241 = 1.0e-6*ucswyd*cmlsa[lsa - 1]','million'),(66,'acc242','c','Transformers_cost_(M$)','FusionFunc','acc242 = 1.0e-6*((ucpp*(pacpmw* 1.0e3)**expepe)+ucap*(fcsht * 1.0e3))\n acc242 = acc242 * cmlsa[lsa - 1]','million'),(67,'acc243','c','Low_voltage_equipment_cost_(M$)','FusionFunc',NULL,'million'),(68,'acc244','c','Diesel_backup_equipment_cost_(M$)','FusionFunc','acc244 = 1.0e-6*ucdgen*4.0e0*cmlsa[lsa - 1]','million'),(69,'acc245','c','Auxiliary_facilities_cost_(M$)','FusionFunc','acc245 = 1.0e-6*ucaf*cmlsa[lsa - 1]','million'),(70,'acc25','c','Miscellaneous_plant_equipment_cost_(M$)','FusionFunc','acc25 = 1.0e-6*ucmisc*cmlsa[lsa - 1]','million'),(71,'acc26','c','Heat_rejection_system_cost_(M$)','FusionFunc','if ireactor == 0:\n pwrrej = powfmw+pinjwp+tfcmw\n else:\n pwrrej = pthermmw - pgrossmw\n acc26 = (1.0e-6*uchrs*pwrrej)/ 2300.0e0*cmlsa[lsa - 1]','million'),(54,'acchx','c','Primary_heat_exchanger_cost_(M$)','FusionFunc','acchx = 1.0e-6*ucphx*nphx*(1.0e6*pthermmw/nphx)**exphts\n acchx =fkind*acchx*cmlsa[lsa - 1]','million'),(53,'accpp','c','Pumps_and_piping_system_cost_(M$)','FusionFunc','accpp = 1.0e-6*uchts[coolwh-1]*((1.0e6*pfwdiv)**exphts+\n (1.0e6*pnucblkt)**exphts+(1.0e6*pnucshld)**exphts)\n accpp =fkind*accpp*cmlsa[lsa - 1]','million'),(55,'accppa','c','Pumps,_piping_cost_(M$)','FusionFunc','acccppa = (1.0e-6*ucahts*((1.0e6*pinjht)**exphts+(1.0e6*crypmw)**exphts+\n (1.0e6*vachtmw)**exphts+(1.0e6*trithtmw)**exphts+(1.0e6*fachtmw)**exphts))\n if ife == 1:\n acccppa = acccppa+1.0e-6*ucahts*((1.0e6*tdspmw)**exphts\n + (1.0e6*tfacmw)**exphts)\n acccppa =fkind*acccppa*cmlsa[lsa - 1]','million'),(73,'calaintmass','v','intercoil structure mass calculation','FusionFunc','calaintmass = 0.18e0 * st_f_b**2 * intercoil_surface * denstl','kg'),(85,'calawpoh','v','central solenoid conductor+void area with area of steel subtracted calculation ','FusionFunc','areaspf = oh_steel_frac * areaoh\n calawpoh = areaoh - areaspf','m2'),(74,'calclgsmass','v','gravity support structure for TF coil, PF coil and intercoil support systems calculation','FusionFunc','calclgsmass = 0.2*aintmass','kg'),(77,'caldlscal','v','system duct length scaling calcualtion','FusionFunc','caldlscal = l1 * d[imax] ** 1.4e0 + (ltot - l1) * (d[imax] * 1.2e0) ** 1.4e0',NULL),(76,'calechpwr','v','ECH power calculation','FusionFunc','calechpwr = (1.0e-6* (faccd - faccdfix)* plascur / effrfss)+ pheat','MW'),(72,'calelevol','v','volume of electrical equipment building cost calculation','FusionFunc','calelevol = tfcbv + pfbldgm3 + esbldgm3 + pibv','m3'),(75,'calfncmass','v','PF coil outer support fence mass calculation','FusionFunc','calfncmass = 2.1e-11 * ai * ai * r0 * akappa * a','kg'),(78,'calgsmass','v','reactor core gravity support mass calculation','FusionFunc','ws1 = coolmass + fwmass + blmass + shldmass + dvrtmass\n gsm1 = 5.0e0 * 9.807e0 * ws1 * dens / sigal\n ws2 = ws1 + tfmass + pfmass + cal_calaintmass + clgsmass\n gsm2 = 1.0e-3 * 34.77e0 * (r0 + 1.0e0) * np.sqrt(0.001e0 * ws2) * dens\n gsm3 = 1.0e-6 * 0.3e0 * (tfhmax + 2.0e0) * ws2 * dens\n calgsmass = gsm1 + gsm2 + gsm3','kg'),(79,'calintercoil_surface','v','intercoil surface area','FusionFunc','calaintmass = 0.18e0 * st_f_b**2 * intercoil_surface * denstl','m^2'),(80,'calrbvol','v','reactor building volume calculation','FusionFunc','rbw = 2.0e0 * wrbi + 2.0e0 * rbwt\n rbl = drbi + 2.0e0 * rbwt\n rbh = hrbi + rbrt + fndt\n calrbvol = rbvfac * rbw * rbl * rbh','m3'),(83,'calrmbvol','v','volume of maintenance and assembly building calculation ','FusionFunc',' tcw = shro - shri + 4.0e0 * trcl\n tcl = 5.0e0 * tcw + 2.0e0 * hcwt\n dcw = 2.0e0 * tcw + 1.0e0\n hcw = shro - shri + 3.0e0 * hccl + 2.0e0\n hcl = 3.0e0 * (shro - shri) + 4.0e0 * hccl + tcw\n rmbw = hcw + dcw + 3.0e0 * hcwt\n rmbl = hcl + 2.0e0 * hcwt\n if wgt2 > 1.0e0:\n wgts = wgt2\n else:\n wgts = shmf * shm / n_tf\n cran = 9.41e-6 * wgts + 5.1e0\n rmbh = (10.0e0 + shh+ trcl + cran+ stcl+ fndt)\n tch = shh + stcl + fndt\n calrmbvol = mbvfac * rmbw * rmbl * rmbh + tcw * tcl * tch','m3'),(81,'calrndfuel','v','fuel burnup rate calculation','FusionFunc','fusionrate = fusionrate + (1.0e6*palpnb)/ (1.0e3 * ealphadt * echarge* vol)\n fusrat= fusionrate*vol\n calrndfuel = fusrat','reactions/ second '),(86,'caltargtm','v','mass of fuel calculation','FusionFunc','targtm = (gain* edrive * 3.0e0 * 1.67e-27 * 1.0e3/ (1.602e-19 * 17.6e6 * fburn))',NULL),(82,'calvolrci','v','internal volulme of reactor building calculation ','FusionFunc','calvolrci = rbvfac * 2.0e0 * wrbi * drbi * hrbi','m3'),(84,'calwsvol','v','volume of warm shop building calculation ','FusionFunc','tcw = shro - shri + 4.0e0 * trcl\n hcw = shro - shri + 3.0e0 * hccl + 2.0e0\n hcl = 3.0e0 * (shro - shri) + 4.0e0 * hccl + tcw\n dcw = 2.0e0 * tcw + 1.0e0\n rmbw = hcw + dcw + 3.0e0 * hcwt\n rmbl = hcl + 2.0e0 * hcwt\n rmbw = hcw + dcw + 3.0e0 * hcwt\n wsa = (rmbw + 7e0)*20+(rmbl*7)\n if wgt2 > 1.0e0:\n wgts = wgt2\n else:\n wgts = shmf * shm / n_tf\n cran = 9.41e-6 * wgts + 5.1e0\n rmbh = (10.0e0 + shh+ trcl + cran+ stcl+ fndt)\n calwsvol = wsvfac*wsa*rmbh','m3'),(87,'calwtgpd','v','mass of fuel used per day calcualtion','FusionFunc','ife = int(ife)\n if ife ==1:\n wtgpd = targtm*reprat*86400\n else:\n wtgpd = 2.0e0* rndfuel* afuel * umass* 1000.0e0* 86400.0e0',NULL),(96,'crfcdr','v','cdr_capital_recovery_factor_(M$)','FusionFunc','crfcdr = (fefcdr * discount_rate) / (fefcdr - 1.0e0)','million'),(94,'crfcp','v','cp_capital_recovery_factor_(M$)','FusionFunc','itart = int(itart)\n ife = int(ife)\n if (itart == 1) and (ife != 1):\n crfcp = (fefcp * discount_rate) / (fefcp - 1.0e0)\n else: \n crfcp = 0','million'),(92,'crfdiv','v','div_capital_recovery_factor_(M$)','FusionFunc','ife = int(ife)\n if ife == 1:\n crfdiv = 0\n else:\n crfdiv = (fefdiv * discount_rate) / (fefdiv - 1.0e0)','million'),(90,'crffwbl','v','fwb_capital_recovery_factor_(M$)','FusionFunc','crffwbl = (feffwbl * discount_rate) / (feffwbl - 1.0e0)','million'),(95,'fefcdr','v','cdr_compound_interest_factor_(M$)','FusionFunc','fefcdr = (1.0e0 + discount_rate) ** cdrlife','N/A'),(93,'fefcp','v','cp_compound_interest_factor_(M$)','FusionFunc',' itart = int(itart)\n ife = int(ife)\n if (itart == 1) and (ife != 1):\n fefcp = (1.0e0 + discount_rate) ** cplife\n else:\n fefcp = 0','N/A'),(91,'fefdiv','v','div_compound_interest_factor_(M$)','FusionFunc','ife = int(ife)\n if ife == 1:\n fefdiv = 0\n else:\n fefdiv = (1.0e0 + discount_rate) ** divlife','N/A'),(89,'feffwbl','v','fwb_compound_interest_factor_(M$)','FusionFunc','feffwbl = (1+discount_rate)**fwbllife','N/A'),(88,'fwbllife','v','fwb_operational_life_','FusionFunc','fwbllife = bktlife','years'),(97,'stcalaintmass','v','stellarator intercoil structure mass calculation','Stellarator','aintmass = 0.18e0 * st_f_b**2 * intercoil_surface * denstl','kg'),(99,'stcalclgsmass','v','stellarator gravity support structure for TF coil, PF coil and intercoil support systems calculation','Stellarator','clgsmass = 0.2*aintmass','kg'),(98,'stcalintercoil_surface','v','stellarator intercoil surface area','Stellarator','intercoil_surface = (stella_config_coilsurface*st_f_r**2-tftort*stella_config_coillength * st_f_r * st_f_n)','m2'); -/*!40000 ALTER TABLE `fusion_alg` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `fusion_lcoe` --- - -DROP TABLE IF EXISTS `fusion_lcoe`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `fusion_lcoe` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account description` text, - `total_cost` double DEFAULT NULL, - `unit` text, - `alg_name` text, - `variables` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `fusion_lcoe` --- - -LOCK TABLES `fusion_lcoe` WRITE; -/*!40000 ALTER TABLE `fusion_lcoe` DISABLE KEYS */; -INSERT INTO `fusion_lcoe` VALUES (7,'anncap','Annual cost of plant capital cost ',990632029.2,'dolllar','anncap','capcost, fcr0','','',0),(8,'anncdr','cdr annual cost of replacements ',0,'dolllar','anncdr','cfind_0, cfind_1, cfind_2, cfind_3, ifueltyp, cdcost, fcdfuel, lsa, fcap0cp, crfcdr','','',0),(9,'anncp','cp annual cost of replacements ',0,'dolllar','anncp','cfind_0, cfind_1, cfind_2, cfind_3, itart, ife, cpstcst, lsa, fcap0cp, crfcp, ifueltyp, cplife, tlife','','',0),(10,'anndecom','decom annual cost ',23703519.68,'dolllar','anndecom','decomf, concost, fcr0, discount_rate, dintrt, tlife, dtlife','','',0),(11,'anndiv','div annual cost of replacements ',0,'dolllar','anndiv','cfind_0, cfind_1, cfind_2, cfind_3, ife, divcst, fcap0cp, crfdiv,lsa, divlife, tlife','','',0),(12,'annfuel','fuel annual cost ',1152418.349,'dolllar','annfuel','ucfuel, pnetelmw, fhe3, wtgpd, uche3, n_day_year, cfactr, reprat, uctarg, ife','','',0),(16,'annfuelt','fuel components annual cost ',5706719.579,'dolllar','annfuelt','annfwbl, anndiv, anncdr, anncp, annfuel, annwst','','',0),(13,'annfwbl','fwb annual cost of replacements ',0,'dolllar','annfwbl','fcap0cp, crffwbl, tlife, ifueltyp, cfind_0, cfind_1, cfind_2, cfind_3, lsa, cal_acc2212, fwallcst, fwbllife','','',0),(14,'annoam','oam annual cost ',43000001.46,'dolllar','annoam','pnetelmw, lsa, ucoam_0, ucoam_1, ucoam_2, ucoam_3','','',0),(17,'anntot','total annual costs ',1063042270,'dolllar','anntot','anncap, annfuelt, annoam, anndecom','','',0),(15,'annwst','waste annual cost ',4554301.23,'dolllar','annwst','ucwst_0, ucwst_1, ucwst_2, ucwst_3, lsa, pnetelmw','','',0),(1,'c9','Indirect cost ',1842231596,'dolllar','acc9','cal_acc221, cal_acc222, cal_acc223','','',0),(6,'capcost','Total capital investment ',10254989951,'dolllar','acccapcost','cal_acconcost, cal_accmoneyint','','',0),(3,'ccont','Total contingency ',1436402062,'dolllar','acccont','fcontng, cal_acc2, cal_accindrt','','',0),(28,'coe','total cost of electricity ',516125439.1,'dolllar','coe','coecap, coefuelt, coeoam, coedecom, ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anncap','','',0),(18,'coecap','Cost of electricity due to plant capital cost ',480969012.8,'dolllar','coecap','n_day_year, pnetelmw, cfactr, tburn, tcycle, anncap, ife','','',0),(19,'coecdr','cdr replacement cost of electricity ',0,'dolllar','coecdr','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anncdr','','',0),(20,'coecp','cp replacement cost of electricity ',0,'dolllar','coecp','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anncp','','',0),(21,'coedecom','decom cost of electricity ',11508469.46,'dolllar','coedecom','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anndecom','','',0),(22,'coediv','div replacement cost of electricity ',0,'dolllar','coediv','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anndiv','','',0),(23,'coefuel','fuel cost of electricity ',559519.074,'dolllar','coefuel','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, annfuel','','',0),(27,'coefuelt','fuel components cost of electricity ',2770711.224,'dolllar','coefuelt','coefwbl, coediv, coecdr, coecp, coefuel, coewst','','',0),(24,'coefwbl','fwb replacement cost of electricity ',0,'dolllar','coefwbl','n_day_year, pnetelmw, cfactr, tburn, tcycle, annfwbl, ife','','',0),(25,'coeoam','coam cost of electricity ',20877245.68,'dolllar','coeoam','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, annoam','','',0),(26,'coewst','waste cost of electricity ',2211192.15,'dolllar','coewst','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, annwst','','',0),(4,'concost','Constructed cost ',8802566481,'dolllar','accconcost','cal_acc2, cal_accindrt, cal_acccont','','',0),(2,'crctcore','Reactor core cost ',3409502126,'dolllar','accrctcore','cal_acc2, cowner, cfind_0, cfind_1, cfind_2, cfind_3','','',0),(5,'moneyint','Interest during construction ',1452423469,'dolllar','accmoneyint','cal_acconcost, fcap0','','',0); -/*!40000 ALTER TABLE `fusion_lcoe` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `fusion_varv` --- - -DROP TABLE IF EXISTS `fusion_varv`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `fusion_varv` ( - `ind` int DEFAULT NULL, - `var_name` varchar(20) NOT NULL, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`var_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `fusion_varv` --- - -LOCK TABLES `fusion_varv` WRITE; -/*!40000 ALTER TABLE `fusion_varv` DISABLE KEYS */; -INSERT INTO `fusion_varv` VALUES (1,'a','plasma minor radius ',2.666666667,'m','','','fncmass',0),(2,'acptmax','average of currents in PF circuits',23.33333333,'kA','','','',0),(3,'admvol','volume of administration buildings',100000,'m3','','','',0),(4,'afuel','average mass of fuel portion of ions',2.5,'amu','','','wtgpd',0),(5,'ai','',16658822.35,'A','','','aintmass, fncmass',0),(6,'aintmass','intercoil structure mass',4287001.474519037,'kg','calaintmass','ai, tf_h_width, b0','gsmass',0),(7,'akappa','plasma elongation',1.85,'N/A','','','fncmass',0),(8,'areaoh','Central solenoid vertical cross-sectional area',9.067197218,'m2','','','awpoh',0),(9,'awpoh','central solenoid conductor+void area with area of steel subtracted',4.416007689219207,'m2','calawpoh','oh_steel_frac, areaoh',NULL,0),(10,'b0','aixal B-field ',5.271296905,'T','','','aintmass',0),(387,'bktlife','full power blanket lifetime',6.076,'years',NULL,NULL,'fwbllife',0),(11,'blmass','blanket mass',2967570.482,'kg','','','gsmass',0),(12,'cconfix','fixed cost of superconducting cable',80,'$/m','','','',0),(13,'cconshpf','cost of PF coil steel conduit/sheath',70,'$/m','','','',0),(14,'cconshtf','cost of TF coil steel conduit/sheath',75,'$/m','','','',0),(349,'cdcost','current drive system cost',241.07,'million',NULL,NULL,NULL,0),(15,'cdirt','total plant direct cost',5520,'M$','','','',0),(16,'cdriv0','IFE generic/laser driver cost at edrive=0',154.3,'M$','','','',0),(17,'cdriv1','IFE low energy heavy ion beam driver cost extrapolated to `edrive=0`',163.2,'M$','','','',0),(18,'cdriv2','IFE high energy heavy ion beam driver cost extrapolated to `edrive=0`',244.9,'M$','','','',0),(19,'cdriv3','IFE driver cost (`ifedrv==3`)',1.463,'($/J wall plug)','','','',0),(392,'cdrlife','lifetime of heating/current drive system',6.07624555157747,'years',NULL,NULL,'fefcdr',NULL),(357,'cfactr','total plant availability fraction',0.8,'N/A',NULL,NULL,NULL,0),(20,'cfind_0','indirect cost factor ',0.244,'N/A','','','',0),(21,'cfind_1','indirect cost factor ',0.244,'N/A','','','',0),(22,'cfind_2','indirect cost factor ',0.244,'N/A','','','',0),(23,'cfind_3','indirect cost factor ',0.29,'N/A','','','',0),(24,'cland','cost of land',19.2,'M$','','','',0),(25,'clgsmass','gravity support structure for TF coil, PF coil and intercoil support systems',1298297.09223369,'kg','calclgsmass','coilmass, r0, dens, sigal','gsmass',0),(26,'coilmass','total mass of coils plus support pluss vaccum vessel and cryostat ',34970608.25,'kg','','','clgsmass',0),(27,'convol','volume of control, protection and i&c building',60000,'m3','','','',0),(28,'coolmass','total water coolant mass ',1180.194346,'kg','','','gsmass',0),(29,'coolwh','Switch for blanket coolant',1,'N/A','','','',0),(30,'cowner','owner cost factor',0.15,'N/A','','','',0),(352,'cplife','calculated full power year lifetime of centrepost',0,'years',NULL,NULL,'fefcp',0),(31,'cpstcst','ST centrepost direct cost',0,'M$','','','',0),(32,'cpttf','TF coil current per turn',87100,'A','','','',0),(350,'crfcdr','current drive capital recovery factor',0.19081627,'N/A','crfcdr','discount_rate, cdrlife',NULL,0),(351,'crfcp','centrepost capital recovery factor',0,'N/A','crfcp','itart, ife, fefcp, discount_rate',NULL,0),(358,'crfdiv','divertor capital recovery factor',0.272930474,'N/A','crfdiv','fefdiv, discount_rate, ife',NULL,0),(359,'crffwbl','first wall and blanket capital recovery factor',0.19081627,'N/A','crffwbl','feffwbl, discount_rate',NULL,0),(33,'crypmw','cryogenic plant power',44.2,'MW','','','',0),(34,'cryvol','volume of cryoplant building',16458.0939026203,'m3','','','',0),(35,'csi','allowance for site costs',16,'million','','','',0),(36,'cturbb','cost of turbine building',38,'M$','','','',0),(37,'d_0','vacuum duct diameter',0.101,'m','','','dlscal',0),(38,'d_1','vacuum duct diameter',0.201,'m','','','dlscal',0),(39,'d_2','vacuum duct diameter',0.487,'m','','','dlscal',0),(40,'d_3','vacuum duct diameter',0.000001,'m','','','dlscal',0),(41,'dcdrv0','IFE generic/laser driver cost gradient',111.4,'M$/MJ','','','',0),(42,'dcdrv1','HIB driver cost gradient at low energy',78,'M$/MJ','','','',0),(43,'dcdrv2','HIB driver cost gradient at high energy',59.9,'M$/MJ','','','',0),(44,'dcond_0','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(45,'dcond_1','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(46,'dcond_2','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070,'kg/m3','','','',0),(47,'dcond_3','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(48,'dcond_4','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(49,'dcond_5','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500,'kg/m3','','','',0),(50,'dcond_6','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070,'kg/m3','','','',0),(51,'dcond_7','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500,'kg/m3','','','',0),(52,'dcond_8','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500,'kg/m3','','','',0),(53,'dcopper','density of copper',8900,'kg/m3','','','',0),(354,'decomf','proportion of constructed cost required for decommissioning fund',0.1,'N/A',NULL,NULL,NULL,0),(54,'dens','density of coil gravity support mass',7800,'kg/m3','','','clgsmass, gsmass',0),(356,'dintrt','diff between borrowing and saving interest rates',0,'N/A',NULL,NULL,NULL,0),(355,'discount_rate','effective cost of money in constant dollars',0.0435,'N/A',NULL,NULL,'feffwbl, crffwbl, fefdiv, crfdiv, fefcp, crfcp, fefcdr, crfcdr',0),(55,'divcst','divertor direct cost',0,'M$','','','',0),(360,'divlife','full power lifetime of divertor',4.077389058,'years',NULL,NULL,'fefdiv',0),(56,'divsur','divertor surface area',149,'m2','','','',0),(57,'dlscal','vacuum system duct length scaling',3.831737433,'N/A','caldlscal','l1, ltot, imax, d_0, d_1, d_2, d_3',NULL,0),(58,'drbi','length to allow laydown',107.4482843,'m','','','rbvol, volrci',0),(361,'dtlife','period prior to the end of the plant life that the decommissioning fund is used',0,'years',NULL,NULL,NULL,0),(59,'dtstor','maximum allowable temperature change in stainless steel thermal storage block',300,'K','','','',0),(60,'dvrtmass','total mass of divertor and associated structure',36452.52788,'kg','','','gsmass',0),(61,'ealphadt','alpha birth energy in D-T reaction ',3520,'keV','','','rndfuel',0),(62,'echarge','electron charge',1.6e-19,'C','','','rndfuel',0),(63,'echpwr','ECH power ',80.34894588680848,'MW','calechpwr','faccd, faccdfix, plascur, effrfss, pheat','',0),(64,'edrive','IFE driver energy',5000000,'J','','','targtm',0),(65,'effrfss','lower hybrid current drive efficienty',0.046410516,'A/W','','','echpwr',0),(66,'elevol','volume of electrical equipment building',51859.90411732225,'m3','calelevol','tfcbv, pfbldgm3, esbldgm3, pibv',NULL,0),(67,'ensxpfm','maximum stored energy in the PF circuits',29100,'MJ','','','',0),(68,'esbldgm3','volume of energy storage equipment building (not used if `lpulse=0`)',1000,'m3','','','elevol',0),(69,'estotftgj','total stored energy in the toroidal field',120,'GJ','','','',0),(70,'etadrv','IFE driver wall plug to target efficiency',0,'N/A','','','',0),(345,'expcry',NULL,0.67,'N/A',NULL,NULL,NULL,0),(71,'expel','',0.7,'N/A','','','',0),(72,'expepe','',0.9,'N/A','','','',0),(73,'exphts','',0.7,'N/A','','','',0),(74,'exprb','',1,'N/A','','','',0),(75,'exprf','',1,'N/A','','','',0),(76,'exptpe','',0.83,'N/A','','','',0),(77,'faccd','fraction of plasma current produced by auxiliary current drive',0.014901854,'N/A','','','echpwr',0),(78,'faccdfix','fixed auxiliary current',0,'A','','','echpwr',0),(79,'fachtmw','facility heat removal',55.5,'MW','','','',0),(80,'fburn','IFE burn fraction',0.3333,'fraction of tritium fused/target','','','targtm',0),(81,'fcap0','average cost of money for construction of plant assuming design/construction time of six years',1.165,'N/A','','','',0),(347,'fcap0cp','average cost of money for replaceable components assuming lead time for these of two years',1.08,'N/A',NULL,NULL,NULL,0),(82,'fcdfuel','fraction of current drive cost treated as fuel (if `ifueltyp = 1`)',0.1,'N/A','','','',0),(83,'fcontng','project contingency factor',0.195,'N/A','','','',0),(348,'fcr0','fixed charge rate during construction',0.0966,'N/A',NULL,NULL,NULL,0),(84,'fcsht','total baseline power required at all times',55.5,'MW','','','',0),(85,'fcuohsu','copper fraction of strand in central solenoid',0.7,'N/A','','','',0),(86,'fcupfsu','copper fraction of cable conductor (PF coils)',0.69,'N/A','','','',0),(389,'fefcdr','current drive system compound interest factor',1.29528306583175,'N/A','fefcdr','discount_rate, cdrlife','crfcdr',0),(390,'fefcp','centrepost compound interest factor',0,'N/A','fefcp','itart, ife, discount_rate, cplife','crfcp',0),(391,'fefdiv','divertor compound interest factor',1.18959992234415,'N/A','fefdiv','divlife, discount_rate, ife','crfdiv',0),(388,'feffwbl','first wall and blanket compound interest factor',1.2952830658,'N/A','feffwbl','discount_rate, fwbllife','crffwbl',0),(362,'fhe3','helium-3 fuel fraction',0,'N/A',NULL,NULL,NULL,0),(87,'fkind','multiplier for Nth of a kind costs',1,'N/A','','','',0),(88,'fncmass','PF coil outer support fence mass',230005.56097662932,'kg','calfncmass','a, ai, akappa, r0','',0),(89,'fndt','foundation thickness',2,'m','','','rbvol, rmbvol, wsvol',0),(90,'ftrit','tritium fuel fraction',0.5,'N/A','','','',0),(91,'fusionrate','fusion reaction rate',3.1e17,'reactions/m3/sec','','','rndfuel',0),(92,'fwallcst','first wall cost',0,'M$','','','',0),(93,'fwarea','first wall total surface area',1600,'m2','','','',0),(378,'fwbllife','first wall and blanket operational life',6.076245552,'years','fwbllife','bktlife',NULL,0),(94,'fwmass','first wall mass',154494.0086,'kg','','','gsmass',0),(95,'fwmatm','IFE first wall material masses',0,'kg','','','',0),(96,'gain','IFE target gain',0,'N/A','','','targtm',0),(97,'gsmass','reactor core gravity support mass ',1189952.778,'kg','calgsmass','coolmass, fwmass, blmass, shldmass, dvrtmass, tfmass, pfmass, tfhmax, dens, sigal, aintmass, clgsmass, r0','',0),(98,'hccl','clearance around components in hot cell ',5,'m','','','rmbvol, wsvol',0),(99,'hcwt','hot cell wall thickness ',1.5,'m','','','rmbvol, wsvol',0),(100,'helpow','Heat removal at cryogenic temperature tmpcry',89543.42311,'W','','','',0),(101,'hrbi','tfh allows TF coil to be lifted right out',73.33248108,'m','','','volrci, rbvol',0),(102,'i_tf_sc_mat','Switch for superconductor material in TF coils',5,'N/A','','','',0),(103,'i_tf_sup','Switch for TF coil conductor model',1,'N/A','','','',0),(104,'iblanket','switch for blanket model',1,'N/A','','','',0),(105,'iefrf','Switch for current drive efficiency model',10,'N/A','','','',0),(106,'ife','switch for the IFE option',0,'N/A','','','wtgpd, fefdiv, crfdiv, fefcp, crfcp',0),(107,'ifedrv','Switch for type of IFE driver',2,'N/A','','','',0),(108,'ifueltyp','switch for fuel type',0,'N/A','','','',0),(109,'imax','d[imax] = diameter of passage from divertor to pumping ducts',2,'N/A','','','dlscal',0),(110,'iohcl','Switch for existence of central solenoid',1,'N/A','','','',0),(111,'ipfres','switch for PF & CS coil conductor type',0,'N/A','','','',0),(112,'ireactor','Switch for net electric power and cost of electricity calculations',1,'N/A','','','',0),(113,'istore','Switch for thermal storage method',1,'N/A','','','',0),(114,'isumatoh','switch for superconductor material in central solenoid',1,'N/A','','','',0),(115,'isumatpf','switch for superconductor material in PF coils',3,'N/A','','','',0),(116,'itart','switch for spherical tokamak (ST) models',0,'N/A','','','fefcp, crfcp',0),(117,'l1','length of passage from divertor to ducts',1.712079117,'m','','','dlscal',0),(118,'lpulse','Switch for reactor model',1,'N/A','','','',0),(119,'lsa','Level of safety assurance switch (generally use 3 or 4)',4,'N/A','','','',0),(120,'ltot','total passage length',8.512079117,'m','','','dlscal',0),(121,'mbvfac','maintenance building volume multiplication factor',2.8,'N/A','','','rmbvol',0),(122,'mcdriv','IFE driver cost multiplier',1,'N/A','','','',0),(363,'n_day_year','average number of days in a year',365.2425,'days',NULL,NULL,NULL,0),(123,'n_tf','Number of TF coils (default = 50 for stellarators). Number of TF coils outer legs for ST',16,'N/A','','','rmbvol, wsvol',0),(124,'n_tf_turn','number of turns per TF coil',151.324691446133,'N/A','','','',0),(125,'nohc','number of PF coils (excluding the central solenoid) + 1',7,'N/A','','','',0),(126,'nphx','number of primary heat exchangers',3,'N/A','','','',0),(127,'ntype','switch for vacuum pump type',1,'N/A','','','',0),(128,'nvduct','number of ducts (torus to pumps)',16,'N/A','','','',0),(129,'oh_steel_frac','central solenoid steel fraction ',0.512968828,'N/A','','','awpoh',0),(130,'pacpmw','total pulsed power system load',508,'MW','','','',0),(131,'palpnb','alpha power from hot neutral beam ions',0,'MW','','','rndfuel',0),(132,'peakmva','peak MVA requirement',83.78203801,'MW','','','',0),(133,'pfbldgm3','volume of PF coil power supply building',20000,'m3','','','elevol',0),(134,'pfckts','number of PF coil circuits',12,'N/A','','','',0),(135,'pfmass','total mass of PF coils plus cases',5063259.412,'kg','','','gsmass',0),(136,'pfwdiv','heat removal from first wall/divertor',0,'MW','','','',0),(137,'pfwndl','',0,'N/A','','','',0),(138,'pgrossmw','gross electric power',881,'MW','','','',0),(139,'pheat','heating power not used for current drive ',75,'MW','','','echpwr',0),(140,'pibv','power injection building volume ',20000,'m3','','','elevol',0),(141,'pinjht','power dissipated in heating and current drive system',80.3,'MW','','','',0),(142,'pinjwp','injector wall plug power',160.6978918,'MW','','','',0),(143,'plascur','plasma current ',16658822.35,'A','','','echpwr',0),(144,'plhybd','lower hybrid injection power',0,'MW','','','',0),(145,'pnbitot','neutral beam power entering vacuum vessel',0,'N/A','','','',0),(146,'pnetelmw','net electric power',401,'MW','','','',0),(147,'pnucblkt','nuclear heating in the blanket',1310,'MW','','','',0),(148,'pnucshld','nuclear heating in the shield',1.43,'MW','','','',0),(149,'powfmw','fusion power',1640,'MW','','','',0),(150,'pthermmw','High-grade heat useful for electric production',2203,'MW','','','',0),(151,'r0','plasma major radius',8,'m','','','clgsmass, fncmass',0),(152,'rbrt','reactor building roof thickness',1,'m','','','rbvol',0),(153,'rbvfac','reactor building volume multiplication factor',1.6,'N/A','','','rbvol, volrci',0),(154,'rbvol','reactor building volume',1130404.632700673,'m3','calrbvol','wrbi, rbwt, drbi, hrbi, rbrt, fndt, rbvfac','',0),(155,'rbwt','reactor building wall thickness',2,'m','','','rbvol',0),(156,'reprat','IFE driver repetition rate',0,'Hz','','','wtgpd',0),(157,'ric_0','peak current in coil i ',17.94655535,'MA-turns','','','',0),(158,'ric_1','peak current in coil i ',20.66898692,'MA-turns','','','',0),(159,'ric_2','peak current in coil i ',-7.72260112,'MA-turns','','','',0),(160,'ric_3','peak current in coil i ',-7.72260112,'MA-turns','','','',0),(161,'ric_4','peak current in coil i ',-5.23767674,'MA-turns','','','',0),(162,'ric_5','peak current in coil i ',-5.23767674,'MA-turns','','','',0),(163,'ric_6','peak current in coil i ',-185.68940608,'MA-turns','','','',0),(164,'rjconpf_0','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000,'A/m2','','','',0),(165,'rjconpf_1','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000,'A/m2','','','',0),(174,'rjconpf_10','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(175,'rjconpf_11','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(176,'rjconpf_12','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(177,'rjconpf_13','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(178,'rjconpf_14','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(179,'rjconpf_15','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(180,'rjconpf_16','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(181,'rjconpf_17','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(182,'rjconpf_18','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(183,'rjconpf_19','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(166,'rjconpf_2','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000,'A/m2','','','',0),(184,'rjconpf_20','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(185,'rjconpf_21','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(167,'rjconpf_3','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000,'A/m2','','','',0),(168,'rjconpf_4','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(169,'rjconpf_5','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(170,'rjconpf_6','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(171,'rjconpf_7','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(172,'rjconpf_8','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(173,'rjconpf_9','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(342,'rmbvol','add',396414.103,'m3','calrmbvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, mbvfac, fndt',NULL,0),(380,'rndfuel','fuel burn up rate',5.851944671179515e20,'reactions/sec','calrndfuel','fusionrate, palpnb, ealphadt, echarge, vol','wtgpd',0),(186,'rpf_0','radius of PF coil in i',5.56666667,'m','','','',0),(187,'rpf_1','radius of PF coil in i',5.56666667,'m','','','',0),(188,'rpf_2','radius of PF coil in i',16.72949722,'m','','','',0),(189,'rpf_3','radius of PF coil in i',16.72949722,'m','','','',0),(190,'rpf_4','radius of PF coil in i',15.20644854,'m','','','',0),(191,'rpf_5','radius of PF coil in i',15.20644854,'m','','','',0),(192,'rpf_6','radius of PF coil in i',2.27976055,'m','','','',0),(385,'shh','height of attached shield',16.71,'m',NULL,NULL,'rmbvol, wsvol',0),(379,'shldmass','total mass of sheild',2449818.8338492177,'kg',NULL,NULL,'gsmass',0),(384,'shm','total mass of attached sheild',2449818.8338492177,'kg',NULL,NULL,'rmbvol, wsvol',0),(193,'shmatm','IFE shield material masses ',0,'kg','','','',0),(383,'shmf','fraction of shield mass per TF coil to be moved in the maximum shield lift',0.5,'N/A',NULL,NULL,'rmbvol, wsvol',0),(344,'shovol','volume of shops and buildings for plant auxiliaries',100000,'m3',NULL,NULL,NULL,0),(382,'shri','inner radius of attached shield',4.065333333333334,'m',NULL,NULL,'rmbvol, wsvol',0),(381,'shro','outer radius of attached shield',12.734666666666667,'m',NULL,NULL,'rmbvol, wsvol',0),(346,'sigal','allowable stress of coil gravity support mass',25000000,'Pa',NULL,NULL,'clgsmass, gsmass',0),(194,'spfbusl','total PF coil circuit bus length',2450,'m','','','',0),(195,'srcktpm','sum of resistive PF coil power',964,'kW','','','',0),(196,'stcl','clearance above crane to roof',3,'m','','','rmbvol, wsvol',0),(386,'targtm','mass of fuel calculation',0,'kg','caltargtm','gain, edrive, fburn','wtgpd',0),(365,'tburn','burn time',7246.138178,'sec',NULL,NULL,NULL,0),(366,'tcycle','full cycle time',9889.31462482007,'sec',NULL,NULL,NULL,0),(197,'tdown','down time',2633.176447,'s','','','',0),(198,'tdspmw','IFE target delivery system power',0.01,'MW','','','',0),(199,'tf_h_width','TF coil horizontal bore',13.63952112,'m','','','aintmass',0),(200,'tfacmw','IFE target factory power',0,'MW','','','',0),(201,'tfbusl','TF coil bus length',3190,'m','','','',0),(202,'tfbusmas','TF coil bus mass ',0,'kg','','','',0),(203,'tfcbv','volume of TF coil power supply building (calculated if TF coils are superconducting)',10859.90412,'m3','','','elevol',0),(204,'tfckw','available DC power for charging the TF coils',28500,'kW','','','',0),(205,'tfcmw','Peak power per TF power supply',0,'MW','','','',0),(206,'tfhmax','TF coil max height',8.818217164,'m','','','gsmass',0),(207,'tfleng','TF coil circumference',47.9276261124614,'m','','','',0),(208,'tfmass','total mass of TF coils plus cases',11340223.07,'kg','','','gsmass',0),(353,'tlife','full power year plant lifetime',30,'years',NULL,NULL,NULL,0),(209,'tlvpmw','estimate of total low voltage power',329,'MW','','','',0),(210,'tmpcry','coil temperature for cryogenic plant power calculation',4.5,'K','','','',0),(211,'trcl','transportation clearance between components ',1,'m','','','rmbvol, wsvol',0),(212,'trithtmw','power required for tritium processing',15,'MW','','','',0),(213,'triv','volume of tritium fuel handling and health physics buildings',40000,'m3','','','',0),(214,'turns_0','number of turns in PF coil i',448.663884,'N/A','','','',0),(215,'turns_1','number of turns in PF coil i',516.724673,'N/A','','','',0),(216,'turns_2','number of turns in PF coil i',193.065028,'N/A','','','',0),(217,'turns_3','number of turns in PF coil i',193.065028,'N/A','','','',0),(218,'turns_4','number of turns in PF coil i',130.941918,'N/A','','','',0),(219,'turns_5','number of turns in PF coil i',130.941918,'N/A','','','',0),(220,'turns_6','number of turns in PF coil i',4642.23515,'N/A','','','',0),(221,'twopi','2 pi',6.28318530717958,'N/A','','','',0),(222,'ucad','unit cost for administration buildings',180,'M$/m3','','','',0),(223,'ucaf','unit cost for aux facility power equipment',1500000,'$','','','',0),(224,'ucahts','unit cost for aux heat transport equipment',31,'$/W','','','',0),(225,'ucap','unit cost of auxiliary transformer',17,'$/kVA','','','',0),(226,'ucblbe','unit cost for blanket beryllium',260,'$/kg','','','',0),(227,'ucblbreed','unit cost for breeder material',875,'$/kg','','','',0),(228,'ucblli','unit cost for blanket lithium',875,'$/kg','','','',0),(229,'ucblli2o','unit cost for blanket Li_2O',600,'$/kg','','','',0),(230,'ucbllipb','unit cost for blanket Li-Pb (30% Li6)',10.3,'$/kg','','','',0),(231,'ucblss','unit cost for blanket stainless steel ',90,'$/kg','','','',0),(232,'ucblvd','unit cost for blanket vanadium ',200,'$/kg','','','',0),(233,'ucbpmp','vacuum system backing pump cost',293000,'$','','','',0),(234,'ucbus','cost of aluminium bus for TF coil',0.123,'$/A-m','','','',0),(235,'uccarb','cost of carbon cloth',50,'$/kg','','','',0),(236,'uccase','cost of superconductor case',50,'$/kg','','','',0),(237,'ucco','unit cost for control buildings',350,'M$/m3','','','',0),(238,'ucconc','cost of concrete',0.1,'$/kg','','','',0),(239,'uccpcl1','cost of high strength tapered copper',250,'$/kg','','','',0),(240,'uccpclb','cost of TF outboard leg plate coils',150,'$/kg','','','',0),(241,'uccpmp','vacuum system cryopump cost ',390000,'$','','','',0),(242,'uccr','unit cost for cryogenic building',460,'M$/vol','','','',0),(243,'uccry',' heat transport system cryoplant costs',93000,'$/W','','','',0),(244,'uccryo','unit cost for vacuum vessel',32,'$/kg','','','',0),(245,'uccu','unit cost for copper in superconducting cable',75,'$/kg','','','',0),(246,'ucdgen','cost per 8 MW diesel generator',1700000,'$','','','',0),(247,'ucdiv','cost of divertor blade',280000,'$','','','',0),(248,'ucdtc','detritiation, air cleanup cost',13,'$/10000m3/hr','','','',0),(249,'ucduct','vacuum system duct cost',42300,'$/m','','','',0),(250,'ucech','ECH system cost',3,'$/w','','','',0),(251,'ucel','unit cost for electrical equipment building',380,'M$/m3','','','',0),(252,'ucf1','cost of fuelling system',22300000,'$',NULL,NULL,NULL,0),(253,'ucfnc','outer PF coil fence support cost',35,'$/kg','','','',0),(254,'ucfpr','cost of 60g/day tritium processing unit ',44000000,'$','','','',0),(367,'ucfuel','unit cost of D-T fuel',3.45,'M$/year/1200MW',NULL,NULL,NULL,0),(255,'ucfwa','first wall armour cost',60000,'$/m2','','','',0),(256,'ucfwps','first wall passive stabiliser cost',10000000,'$','','','',0),(257,'ucfws','first wall structure cost',53000,'$/m2','','','',0),(258,'ucgss','cost of reactor structure',35,'$/kg','','','',0),(377,'uche3','cost of helium',1000000,'$/kg',NULL,NULL,NULL,0),(259,'uchrs','cost pf heat rejection system ',87900000,'$','','','',0),(260,'uchts_0','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',15.3,'($/W)','','','',0),(261,'uchts_1','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',19.1,'($/W)','','','',0),(262,'uciac','cost of instrumentation, control & diagnostics ',150000000,'$','','','',0),(263,'ucich','ICH system cost',3,'$/W','','','',0),(264,'ucint','superconductor intercoil structure cost',35,'$/kg','','','',0),(265,'uclh','lower hybrid system cost ',3.3,'$/W','','','',0),(266,'uclv','low voltage system cost',16,'$/kVA','','','',0),(267,'ucmb','unit cost for reactor maintenance building',260,'M$/m3','','','',0),(268,'ucme','cost of maintenance equipment',125000000,'$','','','',0),(269,'ucmisc','miscellaneous plant allowance',25000000,'$','','','',0),(270,'ucnbi','NBI system cost',3.3,'$/W','','','',0),(271,'ucnbv','cost of nuclear building ventilation',1000,'$/m3','','','',0),(369,'ucoam_0','annual cost of operation and maintenance ',68.8,'M$/year/1200MW',NULL,NULL,NULL,0),(370,'ucoam_1','annual cost of operation and maintenance ',68.8,'M$/year/1200MW',NULL,NULL,NULL,0),(371,'ucoam_2','annual cost of operation and maintenance ',68.8,'M$/year/1200MW',NULL,NULL,NULL,0),(372,'ucoam_3','annual cost of operation and maintenance ',74.4,'M$/year/1200MW',NULL,NULL,NULL,0),(272,'ucpens','penetration shield cost',32,'$/kg','','','',0),(273,'ucpfb','cost of PF coil buses',210,'$/kA-m','','','',0),(274,'ucpfbk','cost of PF coil DC breakers',16600,'$/MVA','','','',0),(275,'ucpfbs','cost of PF burn power supplies',4900,'$/kW','','','',0),(276,'ucpfcb','cost of PF coil AC breakers',75000,'$/circuit','','','',0),(277,'ucpfdr1','cost factor for dump resistors',150,'$/MJ','','','',0),(278,'ucpfic','cost of PF instrumentation and control',10000,'$/channel','','','',0),(279,'ucpfps','cost of PF coil pulsed power supplies',35000,'$/MVA','','','',0),(280,'ucphx','primary heat transport cost',15,'$/W','','','',0),(281,'ucpp','cost of primary power transformers',48,'$/kVA','','','',0),(282,'ucrb','cost of reactor building',400,'M$/m3','','','',0),(283,'ucsc_0','cost of superconductor',600,'$/kg','','','',0),(284,'ucsc_1','cost of superconductor',600,'$/kg','','','',0),(285,'ucsc_2','cost of superconductor',300,'$/kg','','','',0),(286,'ucsc_3','cost of superconductor',600,'$/kg','','','',0),(287,'ucsc_4','cost of superconductor',600,'$/kg','','','',0),(288,'ucsc_5','cost of superconductor',600,'$/kg','','','',0),(289,'ucsc_6','cost of superconductor',300,'$/kg','','','',0),(290,'ucsc_7','cost of superconductor',1200,'$/kg','','','',0),(291,'ucsc_8','cost of superconductor',1200,'$/kg','','','',0),(292,'ucsh','cost of shops and warehouses',115,'M$/m3','','','',0),(293,'ucshld','cost of shield structural steel',32,'$/kg','','','',0),(294,'ucswyd','switchyard equipment costs',18400000,'$','','','',0),(368,'uctarg','cost of IFE target',0.3,'$/target',NULL,NULL,NULL,0),(295,'uctfbr','cost of TF coil breakers',1.22,'$/W','','','',0),(296,'uctfbus','cost of TF coil bus',100,'$/kg','','','',0),(297,'uctfdr','cost of TF coil dump resistors',0.000175,'$/J','','','',0),(298,'uctfgr','additional cost of TF coil dump resistors',5000,'$/coil','','','',0),(299,'uctfic','cost of TF coil instrumentation and control',10000,'$/coil','','','',0),(300,'uctfps',' cost of TF coil power supplies',24,'$/W','','','',0),(301,'uctfsw','cost of TF coil slow dump switches',1,'$/A','','','',0),(302,'uctpmp','cost of turbomolecular pump',111000,'$','','','',0),(303,'uctr','cost of tritium building',370,'$/m3','','','',0),(304,'ucturb_0','cost of turbine plant equipment (dependent on coolant type coolwh)',230000000,'$','','','',0),(305,'ucturb_1','cost of turbine plant equipment (dependent on coolant type coolwh)',245000000,'$','','','',0),(306,'ucvalv','vacuum system valve cost',390000,'$','','','',0),(307,'ucvdsh','vacuum duct shield cost',26,'$/kg','','','',0),(308,'ucviac','vacuum system instrumentation and control cost ',1300000,'$','','','',0),(309,'ucwindpf','cost of PF coil superconductor windings',465,'$/m','','','',0),(310,'ucwindtf','cost of TF coil superconductor windings',480,'$/m3','','','',0),(343,'ucws','add',460,'$/m3',NULL,NULL,NULL,0),(373,'ucwst_0','cost of waste disposal',0,'M$/year/1200MW',NULL,NULL,NULL,0),(374,'ucwst_1','cost of waste disposal',3.94,'M$/year/1200MW',NULL,NULL,NULL,0),(375,'ucwst_2','cost of waste disposal',5.91,'M$/year/1200MW',NULL,NULL,NULL,0),(376,'ucwst_3','cost of waste disposal',7.88,'M$/year/1200MW',NULL,NULL,NULL,0),(311,'umass','unified atomic mass unit',1.660538921e-27,'kg',NULL,NULL,'wtgpd',0),(312,'vacdshm','mass of vacuum duct shield ',0,'kg','','','',0),(313,'vachtmw','vacuum pump power',0.5,'MW','','','',0),(314,'vcdimax','diameter of duct passage',0.487,'m','','','',0),(315,'vf','winding pack void fraction of PF coil i for coolant',0.3,'N/A','','','',0),(316,'vfohc','void fraction of central solenoid conductor for coolant',0.3,'N/A','','','',0),(317,'vol','plasma volume',1888.171154,'m3','','','rndfuel',0),(318,'volrci','internal volume of reactor building',996572.3569887693,'m3','calvolrci','rbvfac, wrbi, drbi, hrbi',NULL,0),(319,'vpfskv','PF coil voltage',20,'kV','','','',0),(320,'vpumpn','number of high vacuum pumps',32,'N/A','','','',0),(321,'vtfskv','voltage across a TF coil during quench',9.47,'kV','','','',0),(322,'vvmass','vacuum vessel mass',7938816.3689348,'kg','','','',0),(323,'wgt2','hot cell crane capacity (calculated if 0 is input)',100000,'kg','','','rmbvol, wsvol',0),(324,'whtblbe','mass of blanket - beryllium part',1004202.8451802,'kg','','','',0),(325,'whtblbreed','mass of blanket - breeder part',0,'kg','','','',0),(326,'whtblli','mass of blanket - lithium part ',0,'kg','','','',0),(327,'whtblss','mass of blanket - steel part',896957.5360153,'kg','','','',0),(328,'whtblvd','mass of blanket - vanadium part',0,'kg','','','',0),(329,'whtcas','mass per coil of external case',548883.332884771,'kg','','','',0),(330,'whtconcu','copper mass in TF coil conductor',57523.1575900077,'kg/coil','','','',0),(331,'whtconsc','superconductor mass in TF coil cable',4504.55968573484,'kg/coil','','','',0),(332,'whtcp','mass of TF coil inboard legs',0,'kg','','','',0),(333,'whtpfs','total mass of the PF coil structure',2591026.276,'kg','','','',0),(334,'whtshld','mass of shield',2449818.83384921,'kg','','','',0),(335,'whttflgs','mass of the TF coil legs',0,'kg','','','',0),(336,'wpenshld','mass of the penetration shield',2449818.83384921,'kg','','','',0),(337,'wrbi','distance from centre of machine to building wall ',39.52419142,'m','','','rbvol, volrci',0),(338,'wsvfac','warm shop building volume multiplication factor',1.9,'N/A','','','wsvol',0),(339,'wsvol','volume of warm shop building',125307.1237284889,'m3','calwsvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, fndt, wsvfac',NULL,0),(340,'wtblli2o','mass of blanket - Li_2O part',1066410.10107632,'kg','','','',0),(341,'wtbllipb','mass of blanket - Li-Pb part',0,'kg','','','',0),(364,'wtgpd','mass of fuel used per day',419.7908976,'kg','calwtgpd','targtm, reprat, rndfuel, afuel, umass, ife',NULL,0); -/*!40000 ALTER TABLE `fusion_varv` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `gncoamapping` --- - -DROP TABLE IF EXISTS `gncoamapping`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `gncoamapping` ( - `gncoa` text, - `gncoa_description` text -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `gncoamapping` --- - -LOCK TABLES `gncoamapping` WRITE; -/*!40000 ALTER TABLE `gncoamapping` DISABLE KEYS */; -INSERT INTO `gncoamapping` VALUES ('20','Capitalized Direct Costs'),('21','Structures and Improvements'),('211','Site Preparation/Yard Work'),('212','Reactor Island Civil Structures'),('212.1','Reactor containment building'),('212.2','Manway Tnls. (Radiological Ctrl Access Tunnels)'),('212.3','Containment Equipment Hatch Missile Shield'),('213','Main Function Buildings'),('213.1','Energy Conversion Building'),('213.21','Control Room/Diesel Generator Building'),('213.22','Control Rm Emergency Air Intake Building'),('213.31','Main Steam + Feedwater Pipe Enc.'),('213.32','Pipe Tunnels'),('213.4','Electrical Tunnels'),('214','Buildings to Support Main Function '),('214.1','Spent Fuel Management Building'),('214.2','Balance of Plant Service Building'),('214.3','Wastewater Treatment Building'),('214.5','Fire Protection Building'),('214.6','Non-essential Switchgear Building'),('214.7','Emergency and Start-up Power Systems'),('215','Supply Chain Buildings'),('216','Human Resources Buildings'),('216.1','Administration Building'),('216.2','Security Building and Gatehouse'),('216.4','Operation and Maintenance (O&M) Center '),('22','Structures and Improvements'),('221','Reactor Components'),('221.11','Reactor support'),('221.12','Outer vessel structure'),('221.121','Outer vessel structure equip'),('221.122','Outer vessel structure field'),('221.13','Inner vessel structure'),('221.131','Inner vessel structure lower'),('221.132','Inner vessel structure uppper'),('221.133','Inner vessel structure field'),('221.2','Reactivity control system'),('221.211','Reactivity control system control rods'),('221.212','Reactivity control system control drivers'),('221.213','Reactivity control system field'),('222','Main heat transfer system'),('222.1','Fluid circulation drive system'),('222.11','Fluid circulation drive system Equip'),('222.12','Fluid circulation drive system Field'),('222.2','Reactor heat transfer piping system'),('222.21','Reactor heat transfer piping system Equip'),('222.22','Reactor heat transfer piping system Field'),('222.3','Heat exchangers'),('222.31','Heat exchangers Equip'),('222.32','Heat exchangers Field'),('222.4','Pressurizer system'),('222.41','Pressurizer system Equip'),('222.42','Pressurizer system Relief Tank Equip'),('222.43','Pressurizer system Field'),('223','Safety Systems'),('223.1','Internal Residual Heat Removal System'),('223.11','Internal Residual Heat Removal System Pumps & Drives'),('223.12','Internal Residual Heat Removal System Heat Exchanger'),('223.13','Internal Residual Heat Removal System Others'),('223.3','Reactivity Safety Injection System'),('223.31','Reactivity Safety Injection System Pumps And Drives'),('223.32','Reactivity Safety Injection System Accumulator Tank'),('223.33','Reactivity Safety Injection System Boron Injection Tank'),('223.34','Reactivity Safety Injection System Boron Injection Surge Tank '),('223.35','Reactivity Safety Injection System Boron Injection Recirc. Pump, Drives'),('223.36','Reactivity Safety Injection System Others'),('223.4','Containment Spray System'),('223.5','Combustible Gas Control System'),('224','Radioactive Byproduct Processing Systems'),('225','Fuel Handling Systems'),('225.1','Core Refueling Equipment'),('225.2','Ex-Core Operational Fuel Handling Equipment'),('225.3','Fuel Handling Systems Other'),('226','Other Reactor Plant Equipment'),('226.1','Other Reactor Plant Equipment Inert Gas Sys'),('226.2','Other Reactor Plant Equipment Reactor Makeup Water Sys'),('226.3','Other Reactor Plant Equipment Coolant treatment systems '),('226.31','Other Reactor Plant Equipment Rotating Machinery (Pumps And Motors'),('226.32','Other Reactor Plant Equipment Heat Transfer Equipment'),('226.33','Other Reactor Plant Equipment Tanks And Pressure Vessels '),('226.34','Other Reactor Plant Equipment Purification And Filtration Equipment'),('226.35','Other Reactor Plant Equipment Coolant Treatment & Recycle'),('226.6','Other Reactor Plant Equipment Fluid Leak Detection Sys'),('226.7','Other Reactor Plant Equipment Aux Cool Sys'),('226.8','Other Reactor Plant Equipment Maintenance'),('226.81','Other Reactor Plant Equipment Maintenance Equipment'),('226.82','Other Reactor Plant Equipment Maintenance Equipment labor'),('226.9','Other Reactor Plant Equipment Sampling Equip'),('227','Reactor Instrumentation and Control (I&C)'),('227.11','Instrumentation '),('227.12','Reactor Control '),('228','Reactor Plant Miscellaneous Items'),('23','Energy Conversion System'),('232','Energy Applications'),('232.1','Electricity Generation Systems'),('232.2','Process Heat Export Equipment'),('233','Ultimate Heat Sink'),('233.1','Water Condensing Systems'),('233.11','Water Condensing Systems Structures'),('233.12','Water Condensing Systems Structures'),('233.21','Air-based Cooling Systems'),('233.22','Air-based Cooling Systems'),('234','Feed Heating Systems'),('236','Common Instrumentation & Controls'),('237','Miscellaneous Energy System Equipment'),('24','Electrical Equipment'),('241','Switchgear'),('242','Station Service Equipment'),('243','Switchboards'),('244','Protective Systems Equipment'),('245','Electrical Raceway Systems'),('246','Power and Control Cables and Wiring'),('26','Miscellaneous Equipment'),('261','Transportation and Lift Equipment'),('262','Air, Water, Plant Fuel Oil, and Steam Systems'),('262.1','Air, water and steam service systems'),('262.2','Waste water treatment '),('263','Furnishing and Fixtures'),('264','Miscellaneous Equipment'),('30','Capitalized Indirect Services Cost'),('34','Shipping and Transportation Costs'),('342','Reactor System Modules Shipping and Transportation'),('221.3','Non-fuel core internals'); -/*!40000 ALTER TABLE `gncoamapping` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `heatpipe_account` --- - -DROP TABLE IF EXISTS `heatpipe_account`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `heatpipe_account` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `heatpipe_account` --- - -LOCK TABLES `heatpipe_account` WRITE; -/*!40000 ALTER TABLE `heatpipe_account` DISABLE KEYS */; -INSERT INTO `heatpipe_account` VALUES (1,'2','TOTAL DIRECT COST',76831858,0,'','Unchanged',1),(3,'211','Yardwork',2609431,2,'21','Unchanged',0.03396),(4,'212','Reactor containment',418694,2,'21','Unchanged',0.00545),(5,'213','Building and utilities',16301349,2,'21','Unchanged',0.21217),(6,'218T','Reactor startup facility',1027100,3,'218','Unchanged',0.01337),(7,'221.12','Outer vessel',103946,3,'221','Unchanged',0.00135),(8,'221.13','Inner vessel',318739,3,'221','Unchanged',0.00415),(9,'221.21','Reactivity control system',9043404,3,'221','Unchanged',0.1177),(10,'221.22','Reflector',3277300,3,'221','Unchanged',0.04266),(11,'221.23','Shield',3902600,3,'221','Unchanged',0.05079),(12,'221.24','Moderator',0,3,'221','Unchanged',0),(13,'222.12','Reactor coolant system (heat pipes)',11340000,3,'222','Unchanged',0.1476),(14,'222.13','Heat exchangers',1254784,3,'222','Unchanged',0.01633),(15,'227','Instrumentation & control',8500000,2,'22','Unchanged',0.11063),(16,'231','Turbine and electric systems',18734511,2,'23','Unchanged',0.24384),(2,'2C','Calculated DIRECT COST',76831858,0,'','Unchanged',1); -/*!40000 ALTER TABLE `heatpipe_account` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `heatpipe_cost_element` --- - -DROP TABLE IF EXISTS `heatpipe_cost_element`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `heatpipe_cost_element` ( - `ind` int NOT NULL, - `cost_element` text, - `cost_2017` double DEFAULT NULL, - `sup_cost_ele` text, - `alg_name` text, - `fun_unit` text, - `variables` text, - `account` text, - `algno` text, - `updated` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `heatpipe_cost_element` --- - -LOCK TABLES `heatpipe_cost_element` WRITE; -/*!40000 ALTER TABLE `heatpipe_cost_element` DISABLE KEYS */; -INSERT INTO `heatpipe_cost_element` VALUES (1,'211_lab',2609431,'21_lab','Yardwork_cost','million','land_surface_area','211','49',0),(2,'212_mat',10043,'21_mat','Reactor_containment_mat_cost','million','containment_subVolume','212','50',0),(3,'212_lab',408651,'21_lab','Reactor_containment_lab_cost','million','Containment_hole_volume','212','51',0),(4,'213_mat',6458349,'21_mat','Building_and_utilities_mat_cost','million','Turbine_building_surface_area','213','52',0),(5,'213_lab',9843000,'21_lab','Building_and_utilities_lab_cost','million','Distance_to_utilities, Number_of_shipping_containers','213','53',0),(6,'218T_fac',1027100,'21_fac','Reactor_startup_facility_cost','million','Battery_capacity_required','218T','54',0),(7,'221.12_mat',99430,'22_mat','Outer_vessel_mat_cost','million','primary_outer_vessel_SS_mass','221.12','55',0),(8,'221.12_lab',4516,'22_lab','Outer_vessel_lab_cost','million','primary_outer_vessel_SS_mass','221.12','56',0),(9,'221.13_mat',318739,'22_mat','Inner_vessel_cost','million','primary_inner_vessel_SS_mass','221.13','57',0),(10,'221.21_mat',9043404,'22_mat','Reactivity_control_system_cost','million','B4C_total_neutron_poison_mass_Kg, Number_of_control_rod_drums, number_of_emergency_control_rods','221.21','58',0),(11,'221.22_mat',3277300,'22_mat','Reflector_cost','million','stainless_steel_316_reflector_mass, Al2O3_reflector_mass, BeO_reflector_mass','221.22','59',0),(12,'221.23_mat',3902600,'22_mat','Shield_cost','million','shield_B4C_mass','221.23','60',0),(13,'221.24_mat',0,'22_mat','Moderator_cost','million','moderator_ZrH_mass','221.24','61',0),(14,'222.12_mat',11340000,'22_mat','cooling_heat_pipes_cost','million','number_of_core_cooling_heat_pipes, mass_production_cost_reduction_factor','222.12','62',0),(15,'222.13_mat',100000,'22_mat','heat_exchangers_mat_cost','million','number_of_heat_exchangers','222.13','63',0),(16,'222.13_lab',1060000,'22_lab','heat_exchangers_lab_cost','million','number_of_heat_exchangers','222.13','64',0),(17,'222.13_fac',94784,'22_fac','heat_exchangers_fac_cost','million','number_of_heat_exchangers, heat_exchangers_mass','222.13','65',0),(18,'227_fac',8500000,'22_fac','instrumentation_contorl_cost','million','number_of_IO_sensors','227','66',0),(19,'231_fac',18734511,'23_fac','turb_and_elec_sys_cost','million','mwth, mwe','231','67',0),(20,'2c_mat',34549864,'','NO_ALG','million','N/A','2','N/A',0),(21,'2c_lab',13925597,'','NO_ALG','million','N/A','2','N/A',0),(22,'2c_fac',28356395,'','NO_ALG','million','N/A','2','N/A',0); -/*!40000 ALTER TABLE `heatpipe_cost_element` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `heatpipe_variable` --- - -DROP TABLE IF EXISTS `heatpipe_variable`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `heatpipe_variable` ( - `ind` int NOT NULL, - `var_name` text, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `heatpipe_variable` --- - -LOCK TABLES `heatpipe_variable` WRITE; -/*!40000 ALTER TABLE `heatpipe_variable` DISABLE KEYS */; -INSERT INTO `heatpipe_variable` VALUES (1,'land_surface_area','land surface area',32000,'squareMeter',NULL,NULL,NULL,0),(2,'containment_subVolume','containment subVolume = ISO width* ISO length *ISO subheight',76.8,'cubeMeter',NULL,NULL,NULL,0),(3,'Containment_hole_volume','Containment hole volume = (2 concrete thickness * ISO width) * (2 concrete thickness * ISO length) * (2 concrete thickness * ISO sub_height) - ISO width *ISO length* ISO subheight ',446.3,'cubeMeter',NULL,NULL,NULL,0),(4,'Turbine_building_surface_area','Turbine building surface area',1000,'squareMeter',NULL,NULL,NULL,0),(5,'Distance_to_utilities','Distance to utilities',1000,'m',NULL,NULL,NULL,0),(6,'Number_of_shipping_containers','Number of shipping containers',0,'1',NULL,NULL,NULL,0),(7,'Battery_capacity_required','Battery capacity required',135,'kW',NULL,NULL,NULL,0),(8,'primary_outer_vessel_SS_mass','primary outer vessel SS mass',0.3,'ton',NULL,NULL,NULL,0),(9,'primary_inner_vessel_SS_mass','primary inner vessel SS mass',1,'ton',NULL,NULL,NULL,0),(10,'B4C_total_neutron_poison_mass_Kg','B4C total neutron poison mass (Kg)',529.9,'kg',NULL,NULL,NULL,0),(11,'Number_of_control_rod_drums','Number of control rod drums',12,'1',NULL,NULL,NULL,0),(12,'number_of_emergency_control_rods','number of emergency control rods',2,'1',NULL,NULL,NULL,0),(13,'stainless_steel_316_reflector_mass','stainless steel 316 reflector mass',2,'ton',NULL,NULL,NULL,0),(14,'Al2O3_reflector_mass','Al2O3 reflector mass',7.9,'ton',NULL,NULL,NULL,0),(15,'BeO_reflector_mass','BeO reflector mass',1.7,'ton',NULL,NULL,NULL,0),(16,'shield_B4C_mass','shield B4C mass',4108.5,'kg',NULL,NULL,NULL,0),(17,'moderator_ZrH_mass','moderator ZrH mass',0,'ton',NULL,NULL,NULL,0),(18,'mass_production_cost_reduction_factor','mass production cost reduction factor',0,'1',NULL,NULL,NULL,0),(19,'number_of_core_cooling_heat_pipes','number of core cooling heat pipes',1134,'1',NULL,NULL,NULL,0),(20,'number_of_heat_exchangers','number of heat exchangers',2,'1',NULL,NULL,NULL,0),(21,'heat_exchangers_mass','heat exchangers mass',0.4,'ton',NULL,NULL,NULL,0),(22,'number_of_IO_sensors','number of IO sensors',1000,'1',NULL,NULL,NULL,0),(23,'mwth','user_input mwth',5,'MW',NULL,NULL,NULL,0),(24,'mwe','user_input MWE',1.8,'MW',NULL,NULL,NULL,0); -/*!40000 ALTER TABLE `heatpipe_variable` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `lfr_account` --- - -DROP TABLE IF EXISTS `lfr_account`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `lfr_account` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `lfr_account` --- - -LOCK TABLES `lfr_account` WRITE; -/*!40000 ALTER TABLE `lfr_account` DISABLE KEYS */; -INSERT INTO `lfr_account` VALUES (37,'2','TOTAL DIRECT COST',1419783854,0,'','Unchanged',1),(1,'211','Yardwork',71213859.06,2,'21','Unchanged',0.02762898),(2,'212','Reactor containment building',81425435.33,2,'21','Unchanged',0.0716756),(3,'213','Turbine room and heater bay',24604390.8,2,'21','Unchanged',0.02559467),(4,'215','Primary auxiliary building and tunnels',12470000,2,'21','Unchanged',0.02042077),(5,'216','Waste processing building',38750000,2,'21','Unchanged',0.01588293),(6,'217','Fuel storage building',28149583.82,2,'21','Unchanged',0.01092125),(7,'218A','Control Room/Diesel Generator Building',16250000,3,'218','Unchanged',0.02000788),(8,'220A.211','Vessel Structure (NSSS)',137000000,3,'220A','Unchanged',0.02715805),(9,'220A.2121','Lower Internals (NSSS)',45204200,3,'220A','Unchanged',0.01232975),(10,'220A.2122','Upper Internals (NSSS)',45204200,3,'220A','Unchanged',0.01232975),(11,'220A.2131','Control Rods (NSSS)',1320000,3,'220A','Unchanged',0.00120271),(12,'220A.2132','Control Rod Drives (NSSS)',13453440,3,'220A','Unchanged',0.01354023),(13,'220A.221','Main Coolant Pumps (NSSS)',55696873.29,3,'220A','Unchanged',0.04858963),(14,'220A.222','Reactor Coolant Piping (NSSS)',7464800,3,'220A','Unchanged',0.00442288),(15,'220A.223','Steam Generators (NSSS)',122087095.9,3,'220A','Unchanged',0.05811822),(16,'220A.224','Pressurizer (NSSS)',1379368.421,3,'220A','Unchanged',0.00322017),(21,'222','Main heat transfer transport system',8220525.704,2,'22','Unchanged',0.0109426),(17,'222.11','Fluid Circulation Drive System (Field Cost 222)',2504335.453,3,'222','Unchanged',0.0033336),(18,'222.12','Reactor Coolant Piping System (Field Cost 222)',4924232.687,3,'222','Unchanged',0.0065548),(19,'222.13','Steam Generator Equipment (Field Cost 222)',697187.7179,3,'222','Unchanged',0.00092805),(20,'222.14','Pressurizing System (Field Cost 222)',94769.84553,3,'222','Unchanged',0.00012615),(22,'224','Radwaste processing',59673441.34,2,'22','Unchanged',0.02315162),(23,'226.4','Coolant Treatment & Recycle',34304867.39,3,'226','Unchanged',0.01581788),(24,'226.7','Aux Cool Sys (Broken Down Further)',0,3,'226','Unchanged',0.02141536),(25,'227','Reactor instrumentation and control',61419737.22,2,'22','Unchanged',0.02382914),(26,'231','Turbine generator',57399816.35,2,'23','Unchanged',0.14811828),(27,'233','Condensing systems',29065851.25,2,'23','Unchanged',0.0320393),(28,'234','Feedwater heating system',0,2,'23','Unchanged',0.02607718),(29,'235','Other turbine plant equipment',9563415.121,2,'23','Unchanged',0.02467807),(30,'241','Switchgear',21904347.8,2,'24','Unchanged',0.0132065),(31,'242','Station service equipment',36970984.98,2,'24','Unchanged',0.02229042),(32,'245','Electric structure and wiring contnr.',40891698.73,2,'24','Unchanged',0.02465429),(33,'246','Power and control wiring',37773534.79,2,'24','Unchanged',0.0227743),(34,'252','Air, water and steam service systems',81851078.87,2,'25','Unchanged',0.03175592),(35,'262','Mechanical equipment',44777444.42,2,'26','Unchanged',0.04935819),(36,'2C','Calculated DIRECT COST',1225489991,0,'','Unchanged',0.86315251),(38,'311','Chilled Water Facilities',0,2,'31','Unchanged',0); -/*!40000 ALTER TABLE `lfr_account` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `lfr_cost_element` --- - -DROP TABLE IF EXISTS `lfr_cost_element`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `lfr_cost_element` ( - `ind` int NOT NULL AUTO_INCREMENT, - `cost_element` text, - `cost_2017` double DEFAULT NULL, - `sup_cost_ele` text, - `alg_name` text, - `fun_unit` text, - `variables` text, - `account` text, - `algno` text, - `updated` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `lfr_cost_element` --- - -LOCK TABLES `lfr_cost_element` WRITE; -/*!40000 ALTER TABLE `lfr_cost_element` DISABLE KEYS */; -INSERT INTO `lfr_cost_element` VALUES (1,'211_fac',810015.17,'21_fac','esc_1987','million','escalate_1987, ref_211_fac','211','12',0),(2,'212_fac',0,'21_fac','default_0','million','N/A','212','N/A',0),(3,'213_fac',660388.72,'21_fac','MWth_scale','million','c_213_fac, mwth, scale_0.8','213','8',0),(4,'215_fac',2121224.73,'21_fac','NO_ALG','million','N/A','215','N/A',0),(5,'216_fac',1756069.67,'21_fac','NO_ALG','million','N/A','216','N/A',0),(6,'217_fac',2842399.83,'21_fac','NO_ALG','million','N/A','217','N/A',0),(7,'218A_fac',1314294.08,'218_fac','NO_ALG','million','N/A','218A','N/A',0),(8,'220A.211_fac',127380000,'220A_fac','NO_ALG','million','N/A','220A.211','N/A',0),(9,'220A.2121_fac',45204200,'220A_fac','unit_weights','million','c_zero, c_220A.2121_ss_weight','220A.2121','5',0),(10,'220A.2122_fac',45204200,'220A_fac','unit_weights','million','c_zero, c_220A.2122_ss_weight','220A.2122','5',0),(11,'220A.2131_fac',1320000,'220A_fac','unit_facility','million','no_of_cr, c_cr_per_unit_fac','220A.2131','16',0),(12,'220A.2132_fac',13453440,'220A_fac','unit_facility','million','no_of_crd, c_crd_per_unit_fac','220A.2132','16',0),(13,'220A.221_fac',55696873.29,'220A_fac','unit_facility','million','no_of_rcpump, c_pump_per_unit_fac','220A.221','16',0),(14,'220A.222_fac',7464800,'220A_fac','unit_weights','million','c_zero, c_220A.222_ss_weight','220A.222','5',0),(15,'220A.223_fac',118647119.77,'220A_fac','Sgsum','million','N/A','220A.223','N/A',0),(16,'220A.224_fac',1379368.42,'220A_fac','MWth_lmfbrscale','million','r_78_220A224_fac, mwth, scale_1.0','220A.224','24',0),(17,'222.11_fac',1101963.79,'222_fac','MWth_scale','million','c_222.11_fac, mwth, scale_1.0','222.11','8',0),(18,'222.12_fac',1280778.06,'222_fac','MWth_scale','million','c_222.12_fac, mwth, scale_1.0','222.12','8',0),(19,'222.13_fac',21900.68,'222_fac','MWth_scale','million','c_222.13_fac, mwth, scale_1.0','222.13','8',0),(20,'222.14_fac',4380.14,'222_fac','MWth_scale','million','c_222.14_fac, mwth, scale_1.0','222.14','8',0),(21,'222_fac',2409022.68,'22_fac','MWth_scale','million','c_222_fac, mwth, scale_1.0','222','8',0),(22,'224_fac',46047915.43,'22_fac','esc_1987','million','escalate_1987, ref_224_fac','224','12',0),(23,'226.4_fac',34304867.39,'226_fac','MWth_scale','million','r_78_226.4_fac, mwth, scale_1.0','226.4','8',0),(24,'226.7_fac',0,'226_fac','default_0','million','N/A','226.7','14',0),(25,'227_fac',37538349.96,'22_fac','esc_1987','million','escalate_1987, ref_227_fac','227','12',0),(26,'231_fac',53544604.81,'23_fac','dev_factor_ref','million','c_turbine, scale_tur_231_fac, scale_1.0','231','10',0),(27,'233_fac',19829554.55,'23_fac','MWreth_scale','million','c_233_fac, mwreth, scale_0.8','233','25',0),(28,'234_fac',0,'23_fac','default_0','million','N/A','234','14',0),(29,'235_fac',4788444.35,'23_fac','ptn_account','million','c_231_fac, prn_235_of_231_fac','235','4',0),(30,'241_fac',20635161.28,'24_fac','MWe_scale','million','c_241_fac, mwe, scale_0.4','241','17',0),(31,'242_fac',33563126.13,'24_fac','MWe_scale','million','c_242_fac, mwe, scale_0.4','242','17',0),(32,'245_fac',0,'24_fac','MWe_scale','million','c_245_fac, mwe, scale_0.4','245','17',0),(33,'246_fac',2902733.98,'24_fac','MWe_scale','million','c_246_fac, mwe, scale_0.4','246','17',0),(34,'252_fac',24869567.31,'25_fac','esc_1987','million','escalate_1987, ref_252_fac','252','12',0),(35,'262_fac',30555532.85,'26_fac','MWreth_scale','million','c_262_fac, mwreth, scale_0.8','262','25',0),(36,'2c_fac',736246154.62,'','NO_ALG','million','N/A','2','N/A',0),(37,'211_lab',41328822.54,'21_lab','esc_1987','million','escalate_1987, ref_211_lab','211','12',0),(38,'212_lab',43940775.98,'21_lab','containment','million','Tot_Labor_containment','212','7',0),(39,'213_lab',11873274.12,'21_lab','MWth_scale','million','c_213_lab, mwth, scale_0.8','213','8',0),(40,'215_lab',7101615.96,'21_lab','NO_ALG','million','N/A','215','N/A',0),(41,'216_lab',24337584.5,'21_lab','NO_ALG','million','N/A','216','N/A',0),(42,'217_lab',12836637.9,'21_lab','NO_ALG','million','N/A','217','N/A',0),(43,'218A_lab',10038481.64,'218_lab','NO_ALG','million','N/A','218A','N/A',0),(44,'220A.211_lab',8750000,'220A_lab','NO_ALG','million','N/A','220A.211','N/A',0),(45,'220A.2121_lab',0,'220A_lab','default_0','million','N/A','220A.2121','14',0),(46,'220A.2122_lab',0,'220A_lab','default_0','million','N/A','220A.2122','14',0),(47,'220A.2131_lab',0,'220A_lab','default_0','million','N/A','220A.2131','14',0),(48,'220A.2132_lab',0,'220A_lab','default_0','million','N/A','220A.2132','14',0),(49,'220A.221_lab',0,'220A_lab','default_0','million','N/A','220A.221','14',0),(50,'220A.222_lab',0,'220A_lab','default_0','million','N/A','220A.222','14',0),(51,'220A.223_lab',3173085.99,'220A_lab','Sgsum','million','N/A','220A.223','N/A',0),(52,'220A.224_lab',0,'220A_lab','default_0','million','N/A','220A.224','14',0),(53,'222.11_lab',1274883.33,'222_lab','MWth_scale','million','c_222.11_lab, mwth, scale_1.0','222.11','8',0),(54,'222.12_lab',3317279.46,'222_lab','MWth_scale','million','c_222.12_lab, mwth, scale_1.0','222.12','8',0),(55,'222.13_lab',613897.3,'222_lab','MWth_scale','million','r_222.13_lab, mwth, scale_1.0','222.13','8',0),(56,'222.14_lab',82172.71,'222_lab','MWth_scale','million','c_222.14_lab, mwth, scale_1.0','222.14','8',0),(57,'222_lab',5288232.81,'22_mat','MWth_scale','million','c_222_lab, mwth, scale_1.0','222','8',0),(58,'224_lab',11434348.55,'22_lab','esc_1987','million','escalate_1987, ref_224_lab','224','12',0),(59,'226.4_lab',0,'226_lab','default_0','million','N/A','226.4','14',0),(60,'226.7_lab',0,'226_lab','default_0','million','N/A','226.7','14',0),(61,'227_lab',21960889.79,'22_lab','esc_1987','million','escalate_1987, ref_227_lab','227','12',0),(62,'231_lab',588990.65,'23_lab','ptn_account','million','c_231_fac, prn_fac_231_lab','231','4',0),(63,'233_lab',8082642.16,'23_lab','MWreth_scale','million','c_233_lab, mwreth, scale_0.8','233','25',0),(64,'234_lab',0,'23_lab','default_0','million','N/A','234','14',0),(65,'235_lab',4258930.48,'23_lab','ptn_account','million','c_231_lab, prn_235_of_231_lab','235','4',0),(66,'241_lab',1107205.12,'24_lab','MWe_scale','million','c_241_lab, mwe, scale_0.4','241','17',0),(67,'242_lab',2861071.44,'24_lab','MWe_scale','million','c_242_lab, mwe, scale_0.4','242','17',0),(68,'245_lab',32970390.22,'24_lab','MWe_scale','million','c_245_lab, mwe, scale_0.4','245','17',0),(69,'246_lab',21514837.92,'24_lab','MWe_scale','million','c_246_lab, mwe, scale_0.4','246','17',0),(70,'252_lab',44371766.01,'25_lab','esc_1987','million','escalate_1987, ref_252_lab','252','12',0),(71,'262_lab',12634376.8,'26_lab','MWreth_scale','million','c_262_lab, mwreth, scale_0.8','262','25',0),(72,'2c_lab',330450874.57,'','NO_ALG','million','N/A','2','N/A',0),(73,'211_mat',29075021.35,'21_mat','esc_1987','million','escalate_1987, ref_211_mat','211','12',0),(74,'212_mat',37484659.34,'21_mat','containment','million','Tot_Mat_containment','212','7',0),(75,'213_mat',12070727.96,'21_mat','MWth_scale','million','c_213_mat, mwth, scale_0.8','213','8',0),(76,'215_mat',3247159.31,'21_mat','NO_ALG','million','N/A','215','N/A',0),(77,'216_mat',12656345.83,'21_mat','NO_ALG','million','N/A','216','N/A',0),(78,'217_mat',12470546.09,'21_mat','NO_ALG','million','N/A','217','N/A',0),(79,'218A_mat',4897224.28,'218_mat','NO_ALG','million','N/A','218A','N/A',0),(80,'220A.211_mat',870000,'220A_mat','NO_ALG','million','N/A','220A.211','N/A',0),(81,'220A.2121_mat',0,'220A_mat','default_0','million','N/A','220A.2121','14',0),(82,'220A.2122_mat',0,'220A_mat','default_0','million','N/A','220A.2122','14',0),(83,'220A.2131_mat',0,'220A_mat','default_0','million','N/A','220A.2131','14',0),(84,'220A.2132_mat',0,'220A_mat','default_0','million','N/A','220A.2132','14',0),(85,'220A.221_mat',0,'220A_mat','default_0','million','N/A','220A.221','14',0),(86,'220A.222_mat',0,'220A_mat','default_0','million','N/A','220A.222','14',0),(87,'220A.223_mat',266890.16,'220A_mat','Sgsum','million','N/A','220A.223','N/A',0),(88,'220A.224_mat',0,'220A_mat','default_0','million','N/A','220A.224','14',0),(89,'222.11_mat',127488.33,'222_mat','MWth_scale','million','c_222.11_mat, mwth, scale_1.0','222.11','8',0),(90,'222.12_mat',326175.16,'222_mat','MWth_scale','million','c_222.12_mat, mwth, scale_1.0','222.12','8',0),(91,'222.13_mat',61389.73,'222_mat','MWth_scale','million','r_222.13_mat, mwth, scale_1.0','222.13','8',0),(92,'222.14_mat',8217,'222_mat','MWth_scale','million','c_222.14_mat, mwth, scale_1.0','222.14','8',0),(93,'222_mat',523270.22,'22_mat','MWth_scale','million','c_222_mat, mwth, scale_1.0','222','8',0),(94,'224_mat',2191177.36,'22_mat','esc_1987','million','escalate_1987, ref_224_mat','224','12',0),(95,'226.4_mat',0,'226_mat','default_0','million','N/A','226.4','14',0),(96,'226.7_mat',0,'226_mat','default_0','million','N/A','226.7','14',0),(97,'227_mat',1920497.47,'22_mat','esc_1987','million','escalate_1987, ref_227_mat','227','12',0),(98,'231_mat',3266220.89,'23_mat','ptn_account','million','c_231_fac, prn_fac_231_mat','231','4',0),(99,'233_mat',1153654.54,'23_mat','MWreth_scale','million','c_233_mat, mwreth, scale_0.8','233','25',0),(100,'234_mat',0,'23_mat','default_0','million','N/A','234','14',0),(101,'235_mat',516040.29,'23_mat','ptn_account','million','c_231_mat, prn_235_of_231_mat','235','4',0),(102,'241_mat',161981.4,'24_mat','MWe_scale','million','c_241_mat, mwe, scale_0.4','241','17',0),(103,'242_mat',546787.41,'24_mat','MWe_scale','million','c_242_mat, mwe, scale_0.4','242','17',0),(104,'245_mat',7921308.52,'24_mat','MWe_scale','million','c_245_mat, mwe, scale_0.4','245','17',0),(105,'246_mat',13355962.89,'24_mat','MWe_scale','million','c_246_mat, mwe, scale_0.4','246','17',0),(106,'252_mat',12609745.55,'25_mat','esc_1987','million','escalate_1987, ref_252_mat','252','12',0),(107,'262_mat',1587534.77,'26_mat','MWreth_scale','million','c_262_mat, mwreth, scale_0.8','262','25',0),(108,'2c_mat',158795865.48,'','NO_ALG','million','N/A','2','N/A',0); -/*!40000 ALTER TABLE `lfr_cost_element` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `lfr_variable` --- - -DROP TABLE IF EXISTS `lfr_variable`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `lfr_variable` ( - `ind` int NOT NULL AUTO_INCREMENT, - `var_name` text, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB AUTO_INCREMENT=389 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `lfr_variable` --- - -LOCK TABLES `lfr_variable` WRITE; -/*!40000 ALTER TABLE `lfr_variable` DISABLE KEYS */; -INSERT INTO `lfr_variable` VALUES (1,'c_213_fac','Turbine building structure factory cost',1.7706643,'million','','','',0),(2,'c_213_lab','Turbine building structure labor cost',31.835162,'million','','','',0),(3,'c_213_mat','Turbine building structure material cost',32.364585,'million','','','',0),(4,'c_220A.2121_ss_weight','weight of the stainless steel lower internals',145.82,'ton','','','',0),(5,'c_220A.2122_ss_weight','weight of the stainless steel upper internals',145.82,'ton','','','',0),(6,'c_220A.222_ss_weight','weight of the stainless steel reactor coolant piping',24.08,'ton','','','',0),(7,'c_222_fac','Main heat transfer transport system factory cost',8.265356805,'million','','','',0),(8,'c_222_lab','Main heat transfer transport system labor cost',18.14392675,'million','','','',0),(9,'c_222_mat','Main heat transfer transport system material cost',1.795340116,'million','','','',0),(10,'c_222.11_fac','Fluid Circulation Drive System (Field Cost 222) factory cost',3.780837782,'million','','','',0),(11,'c_222.11_lab','Fluid Circulation Drive System (Field Cost 222) labor cost',4.374124686,'million','','','',0),(12,'c_222.11_mat','Fluid Circulation Drive System (Field Cost 222) material cost',0.437412469,'million','','','',0),(13,'c_222.12_fac','Reactor Coolant Piping System (Field Cost 222) factory cost',4.394349539,'million','','','',0),(14,'c_222.12_lab','Reactor Coolant Piping System (Field Cost 222) labor cost',11.38158584,'million','','','',0),(15,'c_222.12_mat','Reactor Coolant Piping System (Field Cost 222) material cost',1.119106974,'million','','','',0),(16,'c_222.13_fac','Steam Generator Equipment (Field Cost 222) factory cost',0.7514124,'million','','','',0),(17,'c_222.14_fac','Pressurizing System (Field Cost 222) factory cost',0.015028247,'million','','','',0),(18,'c_222.14_lab','Pressurizing System (Field Cost 222) labor cost',0.281934576,'million','','','',0),(19,'c_222.14_mat','Pressurizing System (Field Cost 222) material cost',0.028192508,'million','','','',0),(20,'c_231_fac','Turbine factory cost',53.54460481,'million','','','',0),(21,'c_231_lab','Turbine labor cost',0.588990653,'million','','','',0),(22,'c_231_mat','Turbine material cost',3.26622089,'million','','','',0),(23,'c_233_fac','Condensing Systems factory cost',56.339442,'million','','','',0),(24,'c_233_lab','Condensing Systems labor cost',22.964285,'million','','','',0),(25,'c_233_mat','Condensing Systems material cost',3.2777465,'million','','','',0),(26,'c_241_fac','Switchgear factory cost',32.06748045,'million','','','',0),(27,'c_241_lab','Switchgear labor cost',1.720620353,'million','','','',0),(28,'c_241_mat','Switchgear material cost',0.251722551,'million','','','',0),(29,'c_242_fac','Station service equipment factory cost',52.15781338,'million','','','',0),(30,'c_242_lab','Station service equipment labor cost',4.446166005,'million','','','',0),(31,'c_242_mat','Station service equipment material cost',0.849719287,'million','','','',0),(32,'c_245_fac','Electric structure and wiring contnr. factory cost',0,'million','','','',0),(33,'c_245_lab','Electric structure and wiring contnr. labor cost',51.23668914,'million','','','',0),(34,'c_245_mat','Electric structure and wiring contnr. material cost',12.30988227,'million','','','',0),(35,'c_246_fac','Power and control wiring factory cost',4.510910469,'million','','','',0),(36,'c_246_lab','Power and control wiring labor cost',33.4345167,'million','','','',0),(37,'c_246_mat','Power and control wiring material cost',20.75545101,'million','','','',0),(38,'c_262_fac','Heat Rejection System factory cost',86.81393498,'million','','','',0),(39,'c_262_lab','Heat Rejection System labor cost',35.89660737,'million','','','',0),(40,'c_262_mat','Heat Rejection System material cost',4.510480683,'million','','','',0),(41,'c_cr_per_unit_fac','unit cost of rod',0.06,'million','','','',0),(42,'c_crd_per_unit_fac','unit cost of rod drive',0.61152,'million','','','',0),(43,'c_pump_ap1000','AP1000 factory cost of main coolant pumps',31.25,'million','','','c_pump_per_unit_fac',0),(44,'c_pump_per_unit_fac','Reactor coolant pumps Factory Equipment Cost',13.92421832,'million','pump','c_pump_ap1000,CH_abr1000,CH_AP1000,scale_0.52','',0),(45,'c_turbine','Turbine equipment cost',52.64956225,'million','','','',0),(46,'c_zero','place holder for weight',0,'ton','','','',0),(47,'CH_abr1000','CH factor of PWR-12 BE',6072830,'gpm*feet','','','c_pump_per_unit_fac',0),(48,'CH_AP1000','CH factor of AP1000',28743750,'gpm*feet','','','c_pump_per_unit_fac',0),(49,'escalate_1987','escalator 1987 to 2017',2.849407,'1','','','',0),(50,'mwe','user_input MWE',0,'MW','','','',0),(51,'mwreth','rejected thermal power',620,'MW','','','',0),(52,'mwth','user_input mwth',0,'MW','','','',0),(53,'no_of_cr','Total control rods',22,'1','','','',0),(54,'no_of_crd','Total control rod drives',22,'1','','','',0),(55,'no_of_rcpump','total number of reactor coolant pumps',4,'1','','','',0),(56,'prn_235_of_231_fac','factory portion of cost from factory of 231',0.089454842,'1','','','',0),(57,'prn_235_of_231_lab','labor portion of cost from labor of 231',1.302615598,'1','','','',0),(58,'prn_235_of_231_mat','material portion of cost from labor of 231',0.858473379,'1','','','',0),(59,'prn_fac_231_lab','labor portion of cost from factory of 231',0.061,'1','','','',0),(60,'prn_fac_231_mat','material portion of cost from factory of 231',0.0112,'1','','','',0),(61,'r_222.13_lab','labor cost of Steam Generator Equipment (Field Cost 222)',2.10628,'million','','','',0),(62,'r_222.13_mat','material cost of Steam Generator Equipment (Field Cost 222)',0.210628,'million','','','',0),(63,'r_78_220A224_fac','factory cost of pressurizer in ref',5.2416,'million','','','',0),(64,'r_78_226.4_fac','Coolant Treatment & Recycle factory cost',117.7,'million','','','',0),(65,'ref_211_fac','yardwork factory cost',0.284275,'million','','','',0),(66,'ref_211_lab','yardwork labor cost',14.504359,'million','','','',0),(67,'ref_211_mat','yardwork material cost',10.203885,'million','','','',0),(68,'ref_224_fac','Radwaste processing factory cost',16.16052583,'million','','','',0),(69,'ref_224_lab','Radwaste processing labor cost',4.012887083,'million','','','',0),(70,'ref_224_mat','Radwaste processing material cost',0.768994167,'million','','','',0),(71,'ref_227_fac','Reactor instrumentation and control factory cost',13.174092,'million','','','',0),(72,'ref_227_lab','Reactor instrumentation and control labor cost',7.707179,'million','','','',0),(73,'ref_227_mat','Reactor instrumentation and control material cost',0.673999,'million','','','',0),(74,'ref_252_fac','Air, water and steam service systems factory cost ',8.72798,'million','','','',0),(75,'ref_252_lab','Air, water and steam service systems labor cost ',15.572281,'million','','','',0),(76,'ref_252_mat','Air, water and steam service systems material cost ',4.425393,'million','','','',0),(77,'scale_0.4','electric scale 0.4',0.4,'1','','','',0),(78,'scale_0.52','SH scale 1.0',0.52,'1','','','c_pump_per_unit_fac',0),(79,'scale_0.8','thermal scale 0.8',0.8,'1','','','',0),(80,'scale_1.0','thermal scale 1.0',1,'1','','','',0),(81,'scale_tur_231_fac','factory scale of cost from turbine',1.017,'1','','','',0),(82,'CPI','The Consumer Price Index',2.2,'1','','','infl',0),(83,'Void_fraction','Void fraction of the inside of the containment ',0.917,'1','','','Internal_v_m3',0),(84,'liner_fraction','liner fraction of containment',1,'1','','','Liner_s_m2',0),(85,'Cont_H_tot_m','Containment total height ',50.5968,'m','','','Cont_H_wall_m',0),(86,'Cont_rad_out_m','Containment outside radius ',15.24,'m','','','Cont_H_wall_m,Cont_rad_in_m,Basemat_s_m2,Walls_s_m2,Walls_v_m3,Dome_rad_in_m,Dome_s_m2,Dome_v_m3,Surf_paint_m2',0),(87,'Cont_shell_t_m','Shell wall thickness ',1.3716,'m','','','Cont_rad_in_m',0),(88,'Cont_H_wall_m','Containment wall height ',35.3568,'m','wall_height','Cont_H_tot_m,Cont_rad_out_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s,Surf_paint_m2',0),(89,'Basemat_t_m','Basemat thickness ',3.048,'m','','','Basemat_v_m3',0),(90,'Dome_t_m','Dome thickness ',1.0668,'m','','','Dome_rad_in_m',0),(91,'Intern_wall_t','Internal wall average thickness ',1.2192,'m','','','Internal_s_m2',0),(92,'React_cav_A_m2','Reactor cavity area ',1021.93344,'m^2','','','Total_Labor_React_cav_liner,Total_Mat_React_cav_liner',0),(93,'Cont_rad_in_m','Containment inside radius ',13.8684,'m','inside_rad','Cont_rad_out_m,Cont_shell_t_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s',0),(94,'Basemat_s_m2','Basemat surface',729.6587699,'m^2','round_surface','Cont_rad_out_m','Basemat_v_m3,Total_Labor_Constr_joints_Substr,Total_Labor_Formwork_Substr,Total_Labor_Waterproofing_Substr,Total_Labor_Welded_wire_fabric_Substr,Total_Mat_Constr_joints_Substr,Total_Mat_Formwork_Substr,Total_Mat_Waterproofing_Substr,Total_Mat_Welded_wire_fabric_Substr',0),(95,'Basemat_v_m3','Basemat volume',2223.999931,'m^3','basemat_volume','Basemat_s_m2,Basemat_t_m','Struct_v_m3,Total_Labor_Cadweld_Substr,Total_Labor_Concrete_Substr,Total_Labor_Embedded_steel_Substr,Total_Labor_Reinforc_steel_Substr,Total_Mat_Cadweld_Substr,Total_Mat_Concrete_Substr,Total_Mat_Embedded_steel_Substr,Total_Mat_Reinforc_steel_Substr',0),(96,'Walls_s_m2','Walls surface',6466.527882,'m^2','walls_surface','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Total_Labor_Constr_joints_Superstr,Total_Labor_Formwork_Superstr,Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Waterproofing_Superstr,Total_Mat_Constr_joints_Superstr,Total_Mat_Formwork_Superstr,Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Waterproofing_Superstr',0),(97,'Walls_v_m3','Walls volume',4434.744822,'m^3','wall_volume','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Superstr,Total_Labor_Concrete_Superstr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Reinforc_steel_Superstr,Total_Mat_Cadweld_Superstr,Total_Mat_Concrete_Superstr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Reinforc_steel_Superstr',0),(98,'Dome_rad_in_m','Dome inside radius ',14.1732,'m','inside_rad','Cont_rad_out_m,Dome_t_m','Dome_s_m2,Dome_v_m3,Intern_tot_v_m3,Inside_liner_s',0),(99,'Dome_s_m2','Roof surface',2721.48128,'m^2','roof_surface','Cont_rad_out_m,Dome_rad_in_m','Total_Labor_Constr_joints_Dome,Total_Labor_Formwork_Dome,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Waterproofing_Dome,Total_Mat_Constr_joints_Dome,Total_Mat_Formwork_Dome,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Waterproofing_Dome',0),(100,'Dome_v_m3','Roof volume',1450.366728,'m^3','roof_volume','Cont_rad_out_m,Dome_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Dome,Total_Labor_Concrete_Dome,Total_Labor_Embedded_steel_Dome,Total_Labor_Reinforc_steel_Dome,Total_Mat_Cadweld_Dome,Total_Mat_Concrete_Dome,Total_Mat_Embedded_steel_Dome,Total_Mat_Reinforc_steel_Dome',0),(101,'Intern_tot_v_m3','Tot intenal Volume',27326.62075,'m^3','tot_internal_volume','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Internal_v_m3,Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other,Total_Labor_fl_grate_handrail_stairs,Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other,Total_Mat_fl_grate_handrail_stairs',0),(102,'Internal_v_m3','Building internal volume',2268.109522,'m^3','building_internal_volume','Intern_tot_v_m3,Void_fraction','Internal_s_m2,Struct_v_m3,Total_Labor_Cadweld_Interior,Total_Labor_Concrete_Interior,Total_Labor_Embedded_steel_Interior,Total_Labor_Maj_supp_embedments_Interior,Total_Labor_Reinforc_steel_Interior,Total_Mat_Cadweld_Interior,Total_Mat_Concrete_Interior,Total_Mat_Embedded_steel_Interior,Total_Mat_Maj_supp_embedments_Interior,Total_Mat_Reinforc_steel_Interior',0),(103,'Internal_s_m2','Building internal surface',3720.652103,'m^2','building_internal _surface','Internal_v_m3,Intern_wall_t','Surf_paint_m2,Total_Labor_Constr_joints_Interior,Total_Labor_Formwork_Interior,Total_Labor_Rubbing_surfaces_Interior,Total_Mat_Constr_joints_Interior,Total_Mat_Formwork_Interior,Total_Mat_Rubbing_surfaces_Interior',0),(104,'Struct_v_m3','volume of the structures ',10377.221,'m^3','volume_of_the_structures ','Basemat_v_m3,Walls_v_m3,Dome_v_m3,Internal_v_m3','Total_Labor_Misc_steel_frames,Total_Labor_Struct_steel,Total_Mat_Misc_steel_frames,Total_Mat_Struct_steel',0),(105,'Inside_liner_s','Inside liner surface',4947.305358,'m^2','Inside_liner_surface','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Liner_s_m2,Surf_paint_m2,',0),(106,'Liner_s_m2','Liner Surface',4947.305358,'m^2','liner_Surface','Inside_liner_s,liner_fraction','Total_Labor_cont_liner,Total_Mat_cont_liner',0),(107,'Surf_paint_m2','painted surface',13512.89169,'m^2','painted_surface','Inside_liner_s,Cont_H_wall_m,Cont_rad_out_m,Internal_s_m2','Total_Labor_painting,Total_Mat_painting',0),(108,'infl','Inflation rate',2.870501004,'1','Inflation_rate','CPI','Unit_Labor_Cadweld_Substr,Unit_Labor_Cadweld_Superstr,Unit_Labor_Cadweld_Dome,Unit_Labor_Cadweld_Interior,Unit_Labor_Concrete_Substr,Unit_Labor_Concrete_Superstr,Unit_Labor_Concrete_Dome,Unit_Labor_Concrete_Interior,Unit_Labor_Constr_joints_Substr,Unit_Labor_Constr_joints_Superstr,Unit_Labor_Constr_joints_Dome,Unit_Labor_Constr_joints_Interior,Unit_Labor_Embedded_steel_Substr,Unit_Labor_Embedded_steel_Superstr,Unit_Labor_Embedded_steel_Dome,Unit_Labor_Embedded_steel_Interior,Unit_Labor_Formwork_Substr,Unit_Labor_Formwork_Superstr,Unit_Labor_Formwork_Dome,Unit_Labor_Formwork_Interior,Unit_Labor_Maj_supp_embedments_Interior,Unit_Labor_Reinforc_steel_Substr,Unit_Labor_Reinforc_steel_Superstr,Unit_Labor_Reinforc_steel_Dome,Unit_Labor_Reinforc_steel_Interior,Unit_Labor_Rubbing_surfaces_Superstr,Unit_Labor_Rubbing_surfaces_Dome,Unit_Labor_Rubbing_surfaces_Interior,Unit_Labor_Waterproofing_Substr,Unit_Labor_Waterproofing_Superstr,Unit_Labor_Waterproofing_Dome,Unit_Labor_Welded_wire_fabric_Substr,Unit_Labor_Lighting_Power,Unit_Labor_Plumb_drains,Unit_Labor_Special_HVAC,Unit_Labor_other,Unit_Labor_Misc_steel_frames,Unit_Labor_React_cav_liner,Unit_Labor_Struct_steel,Unit_Labor_cont_liner,Unit_Labor_fl_grate_handrail_stairs,Unit_Labor_painting,Unit_Mat_Cadweld_Substr,Unit_Mat_Cadweld_Superstr,Unit_Mat_Cadweld_Dome,Unit_Mat_Cadweld_Interior,Unit_Mat_Concrete_Substr,Unit_Mat_Concrete_Superstr,Unit_Mat_Concrete_Dome,Unit_Mat_Concrete_Interior,Unit_Mat_Constr_joints_Substr,Unit_Mat_Constr_joints_Superstr,Unit_Mat_Constr_joints_Dome,Unit_Mat_Constr_joints_Interior,Unit_Mat_Embedded_steel_Substr,Unit_Mat_Embedded_steel_Superstr,Unit_Mat_Embedded_steel_Dome,Unit_Mat_Embedded_steel_Interior,Unit_Mat_Formwork_Substr,Unit_Mat_Formwork_Superstr,Unit_Mat_Formwork_Dome,Unit_Mat_Formwork_Interior,Unit_Mat_Maj_supp_embedments_Interior,Unit_Mat_Reinforc_steel_Substr,Unit_Mat_Reinforc_steel_Superstr,Unit_Mat_Reinforc_steel_Dome,Unit_Mat_Reinforc_steel_Interior,Unit_Mat_Rubbing_surfaces_Superstr,Unit_Mat_Rubbing_surfaces_Dome,Unit_Mat_Rubbing_surfaces_Interior,Unit_Mat_Waterproofing_Substr,Unit_Mat_Waterproofing_Superstr,Unit_Mat_Waterproofing_Dome,Unit_Mat_Welded_wire_fabric_Substr,Unit_Mat_Lighting_Power,Unit_Mat_Plumb_drains,Unit_Mat_Special_HVAC,Unit_Mat_other,Unit_Mat_Misc_steel_frames,Unit_Mat_React_cav_liner,Unit_Mat_Struct_steel,Unit_Mat_cont_liner,Unit_Mat_fl_grate_handrail_stairs,Unit_Mat_painting',0),(109,'Unit_EEDB_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in EEDB',85.46,'dollar/m^3','','','Unit_Labor_Cadweld_Substr',0),(110,'Unit_EEDB_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in EEDB',114.62,'dollar/m^3','','','Unit_Labor_Cadweld_Superstr',0),(111,'Unit_EEDB_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in EEDB',231.09,'dollar/m^3','','','Unit_Labor_Cadweld_Dome',0),(112,'Unit_EEDB_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in EEDB',48.2,'dollar/m^3','','','Unit_Labor_Cadweld_Interior',0),(113,'Unit_EEDB_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in EEDB',72.52,'dollar/m^3','','','Unit_Labor_Concrete_Substr',0),(114,'Unit_EEDB_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in EEDB',87.39,'dollar/m^3','','','Unit_Labor_Concrete_Superstr',0),(115,'Unit_EEDB_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in EEDB',78.02,'dollar/m^3','','','Unit_Labor_Concrete_Dome',0),(116,'Unit_EEDB_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in EEDB',97.57,'dollar/m^3','','','Unit_Labor_Concrete_Interior',0),(117,'Unit_EEDB_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in EEDB',14.51,'dollar/m^2','','','Unit_Labor_Constr_joints_Substr',0),(118,'Unit_EEDB_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in EEDB',12.44,'dollar/m^2','','','Unit_Labor_Constr_joints_Superstr',0),(119,'Unit_EEDB_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in EEDB',4.75,'dollar/m^2','','','Unit_Labor_Constr_joints_Dome',0),(120,'Unit_EEDB_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in EEDB',2.05,'dollar/m^2','','','Unit_Labor_Constr_joints_Interior',0),(121,'Unit_EEDB_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in EEDB',3.98,'dollar/m^3','','','Unit_Labor_Embedded_steel_Substr',0),(122,'Unit_EEDB_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in EEDB',15.98,'dollar/m^3','','','Unit_Labor_Embedded_steel_Superstr',0),(123,'Unit_EEDB_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in EEDB',0,'dollar/m^3','','','Unit_Labor_Embedded_steel_Dome',0),(124,'Unit_EEDB_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in EEDB',337.14,'dollar/m^3','','','Unit_Labor_Embedded_steel_Interior',0),(125,'Unit_EEDB_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in EEDB',93.11,'dollar/m^2','','','Unit_Labor_Formwork_Substr',0),(126,'Unit_EEDB_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in EEDB',109.83,'dollar/m^2','','','Unit_Labor_Formwork_Superstr',0),(127,'Unit_EEDB_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in EEDB',58.66,'dollar/m^2','','','Unit_Labor_Formwork_Dome',0),(128,'Unit_EEDB_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in EEDB',231.52,'dollar/m^2','','','Unit_Labor_Formwork_Interior',0),(129,'Unit_EEDB_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in EEDB',153.53,'dollar/m^3','','','Unit_Labor_Maj_supp_embedments_Interior',0),(130,'Unit_EEDB_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in EEDB',322.55,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Substr',0),(131,'Unit_EEDB_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in EEDB',326.13,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Superstr',0),(132,'Unit_EEDB_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in EEDB',300.56,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Dome',0),(133,'Unit_EEDB_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in EEDB',306.72,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Interior',0),(134,'Unit_EEDB_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in EEDB',8.32,'dollar/m^2','','','Unit_Labor_Rubbing_surfaces_Superstr',0),(135,'Unit_EEDB_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in EEDB',5.74,'dollar/m^2','','','Unit_Labor_Rubbing_surfaces_Dome',0),(136,'Unit_EEDB_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in EEDB',9.91,'dollar/m^2','','','Unit_Labor_Rubbing_surfaces_Interior',0),(137,'Unit_EEDB_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in EEDB',4.58,'dollar/m^2','','','Unit_Labor_Waterproofing_Substr',0),(138,'Unit_EEDB_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in EEDB',0.84,'dollar/m^2','','','Unit_Labor_Waterproofing_Superstr',0),(139,'Unit_EEDB_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in EEDB',0,'dollar/m^2','','','Unit_Labor_Waterproofing_Dome',0),(140,'Unit_EEDB_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in EEDB',10.07,'dollar/m^2','','','Unit_Labor_Welded_wire_fabric_Substr',0),(141,'Unit_EEDB_Labor_Lighting_Power','Unit cost of Labor Lighting Power in EEDB',9.83,'dollar/m^3','','','Unit_Labor_Lighting_Power',0),(142,'Unit_EEDB_Labor_Plumb_drains','Unit cost of Labor Plumb drains in EEDB',3.02,'dollar/m^3','','','Unit_Labor_Plumb_drains',0),(143,'Unit_EEDB_Labor_Special_HVAC','Unit cost of Labor Special HVAC in EEDB',11.09,'dollar/m^3','','','Unit_Labor_Special_HVAC',0),(144,'Unit_EEDB_Labor_other','Unit cost of Labor other in EEDB',0.53,'dollar/m^3','','','Unit_Labor_other',0),(145,'Unit_EEDB_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in EEDB',9.94,'dollar/m^3','','','Unit_Labor_Misc_steel_frames',0),(146,'Unit_EEDB_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in EEDB',745.94,'dollar/m^2','','','Unit_Labor_React_cav_liner',0),(147,'Unit_EEDB_Labor_Struct_steel','Unit cost of Labor Struct steel in EEDB',13.98,'dollar/m^3','','','Unit_Labor_Struct_steel',0),(148,'Unit_EEDB_Labor_cont_liner','Unit cost of Labor Containment liner in EEDB',780.33,'dollar/m^2','','','Unit_Labor_cont_liner',0),(149,'Unit_EEDB_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in EEDB',1.75,'dollar/m^3','','','Unit_Labor_fl_grate_handrail_stairs',0),(150,'Unit_EEDB_Labor_painting','Unit cost of Labor painting in EEDB',86.8,'dollar/m^2','','','Unit_Labor_painting',0),(151,'Unit_EEDB_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in EEDB',44.32,'dollar/m^3','','','Unit_Mat_Cadweld_Substr',0),(152,'Unit_EEDB_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in EEDB',59.44,'dollar/m^3','','','Unit_Mat_Cadweld_Superstr',0),(153,'Unit_EEDB_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in EEDB',119.85,'dollar/m^3','','','Unit_Mat_Cadweld_Dome',0),(154,'Unit_EEDB_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in EEDB',25,'dollar/m^3','','','Unit_Mat_Cadweld_Interior',0),(155,'Unit_EEDB_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in EEDB',79.1,'dollar/m^3','','','Unit_Mat_Concrete_Substr',0),(156,'Unit_EEDB_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in EEDB',54.47,'dollar/m^3','','','Unit_Mat_Concrete_Superstr',0),(157,'Unit_EEDB_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in EEDB',48.63,'dollar/m^3','','','Unit_Mat_Concrete_Dome',0),(158,'Unit_EEDB_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in EEDB',53.21,'dollar/m^3','','','Unit_Mat_Concrete_Interior',0),(159,'Unit_EEDB_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in EEDB',8.9,'dollar/m^2','','','Unit_Mat_Constr_joints_Substr',0),(160,'Unit_EEDB_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in EEDB',7.63,'dollar/m^2','','','Unit_Mat_Constr_joints_Superstr',0),(161,'Unit_EEDB_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in EEDB',2.91,'dollar/m^2','','','Unit_Mat_Constr_joints_Dome',0),(162,'Unit_EEDB_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in EEDB',1.26,'dollar/m^2','','','Unit_Mat_Constr_joints_Interior',0),(163,'Unit_EEDB_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in EEDB',1.88,'dollar/m^3','','','Unit_Mat_Embedded_steel_Substr',0),(164,'Unit_EEDB_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in EEDB',7.57,'dollar/m^3','','','Unit_Mat_Embedded_steel_Superstr',0),(165,'Unit_EEDB_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in EEDB',0,'dollar/m^3','','','Unit_Mat_Embedded_steel_Dome',0),(166,'Unit_EEDB_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in EEDB',159.73,'dollar/m^3','','','Unit_Mat_Embedded_steel_Interior',0),(167,'Unit_EEDB_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in EEDB',13.22,'dollar/m^2','','','Unit_Mat_Formwork_Substr',0),(168,'Unit_EEDB_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in EEDB',13.65,'dollar/m^2','','','Unit_Mat_Formwork_Superstr',0),(169,'Unit_EEDB_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in EEDB',7.67,'dollar/m^2','','','Unit_Mat_Formwork_Dome',0),(170,'Unit_EEDB_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in EEDB',21.85,'dollar/m^2','','','Unit_Mat_Formwork_Interior',0),(171,'Unit_EEDB_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in EEDB',225.35,'dollar/m^3','','','Unit_Mat_Maj_supp_embedments_Interior',0),(172,'Unit_EEDB_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in EEDB',364.73,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Substr',0),(173,'Unit_EEDB_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in EEDB',258.95,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Superstr',0),(174,'Unit_EEDB_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in EEDB',238.65,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Dome',0),(175,'Unit_EEDB_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in EEDB',205.66,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Interior',0),(176,'Unit_EEDB_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in EEDB',0.68,'dollar/m^2','','','Unit_Mat_Rubbing_surfaces_Superstr',0),(177,'Unit_EEDB_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in EEDB',0.47,'dollar/m^2','','','Unit_Mat_Rubbing_surfaces_Dome',0),(178,'Unit_EEDB_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in EEDB',0.82,'dollar/m^2','','','Unit_Mat_Rubbing_surfaces_Interior',0),(179,'Unit_EEDB_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in EEDB',2.43,'dollar/m^2','','','Unit_Mat_Waterproofing_Substr',0),(180,'Unit_EEDB_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in EEDB',0.45,'dollar/m^2','','','Unit_Mat_Waterproofing_Superstr',0),(181,'Unit_EEDB_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in EEDB',0,'dollar/m^2','','','Unit_Mat_Waterproofing_Dome',0),(182,'Unit_EEDB_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in EEDB',5.19,'dollar/m^2','','','Unit_Mat_Welded_wire_fabric_Substr',0),(183,'Unit_EEDB_Mat_Lighting_Power','Unit cost of Material Lighting Power in EEDB',4.96,'dollar/m^3','','','Unit_Mat_Lighting_Power',0),(184,'Unit_EEDB_Mat_Plumb_drains','Unit cost of Material Plumb drains in EEDB',1.54,'dollar/m^3','','','Unit_Mat_Plumb_drains',0),(185,'Unit_EEDB_Mat_Special_HVAC','Unit cost of Material Special HVAC in EEDB',8.79,'dollar/m^3','','','Unit_Mat_Special_HVAC',0),(186,'Unit_EEDB_Mat_other','Unit cost of Material other in EEDB',1.96,'dollar/m^3','','','Unit_Mat_other',0),(187,'Unit_EEDB_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in EEDB',16.56,'dollar/m^3','','','Unit_Mat_Misc_steel_frames',0),(188,'Unit_EEDB_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in EEDB',607.96,'dollar/m^2','','','Unit_Mat_React_cav_liner',0),(189,'Unit_EEDB_Mat_Struct_steel','Unit cost of Material Struct steel in EEDB',27.41,'dollar/m^3','','','Unit_Mat_Struct_steel',0),(190,'Unit_EEDB_Mat_cont_liner','Unit cost of Material Containment liner in EEDB',1203,'dollar/m^2','','','Unit_Mat_cont_liner',0),(191,'Unit_EEDB_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in EEDB',1.98,'dollar/m^3','','','Unit_Mat_fl_grate_handrail_stairs',0),(192,'Unit_EEDB_Mat_painting','Unit cost of Material painting in EEDB',24.68,'dollar/m^2','','','Unit_Mat_painting',0),(193,'Unit_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in 2017',245.31,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Substr,infl','Total_Labor_Cadweld_Substr',0),(194,'Unit_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in 2017',329.02,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Superstr,infl','Total_Labor_Cadweld_Superstr',0),(195,'Unit_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in 2017',663.34,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Dome,infl','Total_Labor_Cadweld_Dome',0),(196,'Unit_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in 2017',138.36,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Interior,infl','Total_Labor_Cadweld_Interior',0),(197,'Unit_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in 2017',208.17,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Substr,infl','Total_Labor_Concrete_Substr',0),(198,'Unit_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in 2017',250.85,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Superstr,infl','Total_Labor_Concrete_Superstr',0),(199,'Unit_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in 2017',223.96,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Dome,infl','Total_Labor_Concrete_Dome',0),(200,'Unit_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in 2017',280.07,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Interior,infl','Total_Labor_Concrete_Interior',0),(201,'Unit_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in 2017',41.65,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Substr,infl','Total_Labor_Constr_joints_Substr',0),(202,'Unit_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in 2017',35.71,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Superstr,infl','Total_Labor_Constr_joints_Superstr',0),(203,'Unit_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in 2017',13.63,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Dome,infl','Total_Labor_Constr_joints_Dome',0),(204,'Unit_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in 2017',5.88,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Interior,infl','Total_Labor_Constr_joints_Interior',0),(205,'Unit_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in 2017',11.42,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Substr,infl','Total_Labor_Embedded_steel_Substr',0),(206,'Unit_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in 2017',45.87,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Superstr,infl','Total_Labor_Embedded_steel_Superstr',0),(207,'Unit_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in 2017',0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Dome,infl','Total_Labor_Embedded_steel_Dome',0),(208,'Unit_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in 2017',967.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Interior,infl','Total_Labor_Embedded_steel_Interior',0),(209,'Unit_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in 2017',267.27,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Substr,infl','Total_Labor_Formwork_Substr',0),(210,'Unit_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in 2017',315.27,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Superstr,infl','Total_Labor_Formwork_Superstr',0),(211,'Unit_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in 2017',168.38,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Dome,infl','Total_Labor_Formwork_Dome',0),(212,'Unit_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in 2017',664.58,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Interior,infl','Total_Labor_Formwork_Interior',0),(213,'Unit_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in 2017',440.71,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Maj_supp_embedments_Interior,infl','Total_Labor_Maj_supp_embedments_Interior',0),(214,'Unit_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in 2017',925.88,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Substr,infl','Total_Labor_Reinforc_steel_Substr',0),(215,'Unit_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in 2017',936.16,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Superstr,infl','Total_Labor_Reinforc_steel_Superstr',0),(216,'Unit_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in 2017',862.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Dome,infl','Total_Labor_Reinforc_steel_Dome',0),(217,'Unit_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in 2017',880.44,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Interior,infl','Total_Labor_Reinforc_steel_Interior',0),(218,'Unit_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in 2017',23.88,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Superstr,infl','Total_Labor_Rubbing_surfaces_Superstr',0),(219,'Unit_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in 2017',16.48,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Dome,infl','Total_Labor_Rubbing_surfaces_Dome',0),(220,'Unit_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in 2017',28.45,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Interior,infl','Total_Labor_Rubbing_surfaces_Interior',0),(221,'Unit_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in 2017',13.15,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Substr,infl','Total_Labor_Waterproofing_Substr',0),(222,'Unit_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in 2017',2.41,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Superstr,infl','Total_Labor_Waterproofing_Superstr',0),(223,'Unit_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in 2017',0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Dome,infl','Total_Labor_Waterproofing_Dome',0),(224,'Unit_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in 2017',28.91,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Welded_wire_fabric_Substr,infl','Total_Labor_Welded_wire_fabric_Substr',0),(225,'Unit_Labor_Lighting_Power','Unit cost of Labor Lighting Power in 2017',28.22,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Lighting_Power,infl','Total_Labor_Lighting_Power',0),(226,'Unit_Labor_Plumb_drains','Unit cost of Labor Plumb drains in 2017',8.67,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Plumb_drains,infl','Total_Labor_Plumb_drains',0),(227,'Unit_Labor_Special_HVAC','Unit cost of Labor Special HVAC in 2017',31.83,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Special_HVAC,infl','Total_Labor_Special_HVAC',0),(228,'Unit_Labor_other','Unit cost of Labor other in 2017',1.52,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_other,infl','Total_Labor_other',0),(229,'Unit_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in 2017',28.53,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Misc_steel_frames,infl','Total_Labor_Misc_steel_frames',0),(230,'Unit_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in 2017',2141.22,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_React_cav_liner,infl','Total_Labor_React_cav_liner',0),(231,'Unit_Labor_Struct_steel','Unit cost of Labor Struct steel in 2017',40.13,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Struct_steel,infl','Total_Labor_Struct_steel',0),(232,'Unit_Labor_cont_liner','Unit cost of Labor Containment liner in 2017',2239.94,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_cont_liner,infl','Total_Labor_cont_liner',0),(233,'Unit_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',5.02,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_fl_grate_handrail_stairs,infl','Total_Labor_fl_grate_handrail_stairs',0),(234,'Unit_Labor_painting','Unit cost of Labor painting in 2017',249.16,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_painting,infl','Total_Labor_painting',0),(235,'Unit_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in 2017',127.22,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Substr,infl','Total_Mat_Cadweld_Substr',0),(236,'Unit_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in 2017',170.62,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Superstr,infl','Total_Mat_Cadweld_Superstr',0),(237,'Unit_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in 2017',344.03,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Dome,infl','Total_Mat_Cadweld_Dome',0),(238,'Unit_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in 2017',71.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Interior,infl','Total_Mat_Cadweld_Interior',0),(239,'Unit_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in 2017',227.06,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Substr,infl','Total_Mat_Concrete_Substr',0),(240,'Unit_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in 2017',156.36,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Superstr,infl','Total_Mat_Concrete_Superstr',0),(241,'Unit_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in 2017',139.59,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Dome,infl','Total_Mat_Concrete_Dome',0),(242,'Unit_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in 2017',152.74,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Interior,infl','Total_Mat_Concrete_Interior',0),(243,'Unit_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in 2017',25.55,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Substr,infl','Total_Mat_Constr_joints_Substr',0),(244,'Unit_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in 2017',21.9,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Superstr,infl','Total_Mat_Constr_joints_Superstr',0),(245,'Unit_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in 2017',8.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Dome,infl','Total_Mat_Constr_joints_Dome',0),(246,'Unit_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in 2017',3.62,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Interior,infl','Total_Mat_Constr_joints_Interior',0),(247,'Unit_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in 2017',5.4,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Substr,infl','Total_Mat_Embedded_steel_Substr',0),(248,'Unit_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in 2017',21.73,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Superstr,infl','Total_Mat_Embedded_steel_Superstr',0),(249,'Unit_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in 2017',0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Dome,infl','Total_Mat_Embedded_steel_Dome',0),(250,'Unit_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in 2017',458.51,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Interior,infl','Total_Mat_Embedded_steel_Interior',0),(251,'Unit_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in 2017',37.95,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Substr,infl','Total_Mat_Formwork_Substr',0),(252,'Unit_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in 2017',39.18,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Superstr,infl','Total_Mat_Formwork_Superstr',0),(253,'Unit_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in 2017',22.02,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Dome,infl','Total_Mat_Formwork_Dome',0),(254,'Unit_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in 2017',62.72,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Interior,infl','Total_Mat_Formwork_Interior',0),(255,'Unit_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in 2017',646.87,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Maj_supp_embedments_Interior,infl','Total_Mat_Maj_supp_embedments_Interior',0),(256,'Unit_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in 2017',1046.96,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Substr,infl','Total_Mat_Reinforc_steel_Substr',0),(257,'Unit_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in 2017',743.32,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Superstr,infl','Total_Mat_Reinforc_steel_Superstr',0),(258,'Unit_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in 2017',685.05,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Dome,infl','Total_Mat_Reinforc_steel_Dome',0),(259,'Unit_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in 2017',590.35,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Interior,infl','Total_Mat_Reinforc_steel_Interior',0),(260,'Unit_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in 2017',1.95,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Superstr,infl','Total_Mat_Rubbing_surfaces_Superstr',0),(261,'Unit_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in 2017',1.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Dome,infl','Total_Mat_Rubbing_surfaces_Dome',0),(262,'Unit_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in 2017',2.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Interior,infl','Total_Mat_Rubbing_surfaces_Interior',0),(263,'Unit_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in 2017',6.98,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Substr,infl','Total_Mat_Waterproofing_Substr',0),(264,'Unit_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in 2017',1.29,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Superstr,infl','Total_Mat_Waterproofing_Superstr',0),(265,'Unit_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in 2017',0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Dome,infl','Total_Mat_Waterproofing_Dome',0),(266,'Unit_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in 2017',14.9,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Welded_wire_fabric_Substr,infl','Total_Mat_Welded_wire_fabric_Substr',0),(267,'Unit_Mat_Lighting_Power','Unit cost of Material Lighting Power in 2017',14.24,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Lighting_Power,infl','Total_Mat_Lighting_Power',0),(268,'Unit_Mat_Plumb_drains','Unit cost of Material Plumb drains in 2017',4.42,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Plumb_drains,infl','Total_Mat_Plumb_drains',0),(269,'Unit_Mat_Special_HVAC','Unit cost of Material Special HVAC in 2017',25.23,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Special_HVAC,infl','Total_Mat_Special_HVAC',0),(270,'Unit_Mat_other','Unit cost of Material other in 2017',5.63,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_other,infl','Total_Mat_other',0),(271,'Unit_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in 2017',47.54,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Misc_steel_frames,infl','Total_Mat_Misc_steel_frames',0),(272,'Unit_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in 2017',1745.15,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_React_cav_liner,infl','Total_Mat_React_cav_liner',0),(273,'Unit_Mat_Struct_steel','Unit cost of Material Struct steel in 2017',78.68,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Struct_steel,infl','Total_Mat_Struct_steel',0),(274,'Unit_Mat_cont_liner','Unit cost of Material Containment liner in 2017',3453.21,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_cont_liner,infl','Total_Mat_cont_liner',0),(275,'Unit_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',5.68,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_fl_grate_handrail_stairs,infl','Total_Mat_fl_grate_handrail_stairs',0),(276,'Unit_Mat_painting','Unit cost of Material painting in 2017',70.84,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_painting,infl','Total_Mat_painting',0),(277,'Total_Labor_Cadweld_Substr','Total cost of Labor Cadweld Substructure (base mat) in 2017',545576.13,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Substr,Basemat_v_m3','Sum_Labor_Cadweld',0),(278,'Total_Labor_Cadweld_Superstr','Total cost of Labor Cadweld Superstructure (shell) in 2017',1459105.66,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Superstr,Walls_v_m3','Sum_Labor_Cadweld',0),(279,'Total_Labor_Cadweld_Dome','Total cost of Labor Cadweld Superstructure (dome) in 2017',962092.18,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Dome,Dome_v_m3','Sum_Labor_Cadweld',0),(280,'Total_Labor_Cadweld_Interior','Total cost of Labor Cadweld Interior structure in 2017',313811.43,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Interior,Internal_v_m3','Sum_Labor_Cadweld',0),(281,'Total_Labor_Concrete_Substr','Total cost of Labor Concrete Substructure (base mat) in 2017',462967.25,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Substr,Basemat_v_m3','Sum_Labor_Concrete',0),(282,'Total_Labor_Concrete_Superstr','Total cost of Labor Concrete Superstructure (shell) in 2017',1112469.41,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Superstr,Walls_v_m3','Sum_Labor_Concrete',0),(283,'Total_Labor_Concrete_Dome','Total cost of Labor Concrete Superstructure (dome) in 2017',324819.04,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Dome,Dome_v_m3','Sum_Labor_Concrete',0),(284,'Total_Labor_Concrete_Interior','Total cost of Labor Concrete Interior structure in 2017',635240.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Interior,Internal_v_m3','Sum_Labor_Concrete',0),(285,'Total_Labor_Constr_joints_Substr','Total cost of Labor Construction joints Substructure (base mat) in 2017',30391,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Substr,Basemat_s_m2','Sum_Labor_Constr_joints',0),(286,'Total_Labor_Constr_joints_Superstr','Total cost of Labor Construction joints Superstructure (shell) in 2017',230913.45,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Superstr,Walls_s_m2','Sum_Labor_Constr_joints',0),(287,'Total_Labor_Constr_joints_Dome','Total cost of Labor Construction joints Superstructure (dome) in 2017',37107.07,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Dome,Dome_s_m2','Sum_Labor_Constr_joints',0),(288,'Total_Labor_Constr_joints_Interior','Total cost of Labor Construction joints Interior structure in 2017',21894.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Interior,Internal_s_m2','Sum_Labor_Constr_joints',0),(289,'Total_Labor_Embedded_steel_Substr','Total cost of Labor Embedded steel Substructure (base mat) in 2017',25408.3,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Substr,Basemat_v_m3','Sum_Labor_Embedded_steel',0),(290,'Total_Labor_Embedded_steel_Superstr','Total cost of Labor Embedded steel Superstructure (shell) in 2017',203424.43,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Superstr,Walls_v_m3','Sum_Labor_Embedded_steel',0),(291,'Total_Labor_Embedded_steel_Dome','Total cost of Labor Embedded steel Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Dome,Dome_v_m3','Sum_Labor_Embedded_steel',0),(292,'Total_Labor_Embedded_steel_Interior','Total cost of Labor Embedded steel Interior structure in 2017',2194987.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Interior,Internal_v_m3','Sum_Labor_Embedded_steel',0),(293,'Total_Labor_Formwork_Substr','Total cost of Labor Formwork Substructure (base mat) in 2017',195017.61,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Substr,Basemat_s_m2','Sum_Labor_Formwork',0),(294,'Total_Labor_Formwork_Superstr','Total cost of Labor Formwork Superstructure (shell) in 2017',2038683.66,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Superstr,Walls_s_m2','Sum_Labor_Formwork',0),(295,'Total_Labor_Formwork_Dome','Total cost of Labor Formwork Superstructure (dome) in 2017',458252.79,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Dome,Dome_s_m2','Sum_Labor_Formwork',0),(296,'Total_Labor_Formwork_Interior','Total cost of Labor Formwork Interior structure in 2017',2472664.99,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Interior,Internal_s_m2','Sum_Labor_Formwork',0),(297,'Total_Labor_Maj_supp_embedments_Interior','Total cost of Labor Major Support Embedments Interior structure in 2017',999574.05,'dollar','tol_contaiment_ce_cost','Unit_Labor_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Labor_Maj_supp_embedments',0),(298,'Total_Labor_Reinforc_steel_Substr','Total cost of Labor Reinforc steel Substructure (base mat) in 2017',2059157.28,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Substr,Basemat_v_m3','Sum_Labor_Reinforc_steel',0),(299,'Total_Labor_Reinforc_steel_Superstr','Total cost of Labor Reinforc steel Superstructure (shell) in 2017',4151615.16,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Superstr,Walls_v_m3','Sum_Labor_Reinforc_steel',0),(300,'Total_Labor_Reinforc_steel_Dome','Total cost of Labor Reinforc steel Superstructure (dome) in 2017',1251315.18,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Dome,Dome_v_m3','Sum_Labor_Reinforc_steel',0),(301,'Total_Labor_Reinforc_steel_Interior','Total cost of Labor Reinforc steel Interior structure in 2017',1996934.5,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Interior,Internal_v_m3','Sum_Labor_Reinforc_steel',0),(302,'Total_Labor_Rubbing_surfaces_Superstr','Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017',154437.29,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Labor_Rubbing_surfaces',0),(303,'Total_Labor_Rubbing_surfaces_Dome','Total cost of Labor Rubbing surfaces Superstructure (dome) in 2017',44840.96,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Labor_Rubbing_surfaces',0),(304,'Total_Labor_Rubbing_surfaces_Interior','Total cost of Labor Rubbing surfaces Interior structure in 2017',105840.14,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Labor_Rubbing_surfaces',0),(305,'Total_Labor_Waterproofing_Substr','Total cost of Labor Waterproofing Substructure (base mat) in 2017',9592.75,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Substr,Basemat_s_m2','Sum_Labor_Waterproofing',0),(306,'Total_Labor_Waterproofing_Superstr','Total cost of Labor Waterproofing Superstructure (shell) in 2017',15592.23,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Superstr,Walls_s_m2','Sum_Labor_Waterproofing',0),(307,'Total_Labor_Waterproofing_Dome','Total cost of Labor Waterproofing Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Dome,Dome_s_m2','Sum_Labor_Waterproofing',0),(308,'Total_Labor_Welded_wire_fabric_Substr','Total cost of Labor Welded wire fabric Substructure (base mat) in 2017',21091.48,'dollar','tol_contaiment_ce_cost','Unit_Labor_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Labor_Welded_wire_fabric',0),(309,'Total_Labor_Lighting_Power','Total cost of Labor Lighting Power in 2017',771075.94,'dollar','tol_contaiment_ce_cost','Unit_Labor_Lighting_Power,Intern_tot_v_m3','Tot_Labor_equipment',0),(310,'Total_Labor_Plumb_drains','Total cost of Labor Plumb drains in 2017',236892.1,'dollar','tol_contaiment_ce_cost','Unit_Labor_Plumb_drains,Intern_tot_v_m3','Tot_Labor_equipment',0),(311,'Total_Labor_Special_HVAC','Total cost of Labor Special HVAC in 2017',869911.71,'dollar','tol_contaiment_ce_cost','Unit_Labor_Special_HVAC,Intern_tot_v_m3','Tot_Labor_equipment',0),(312,'Total_Labor_other','Total cost of Labor other in 2017',41573.78,'dollar','tol_contaiment_ce_cost','Unit_Labor_other,Intern_tot_v_m3','Tot_Labor_equipment',0),(313,'Total_Labor_Misc_steel_frames','Total cost of Labor miscellaneous steel frames in 2017',296090.96,'dollar','tol_contaiment_ce_cost','Unit_Labor_Misc_steel_frames,Struct_v_m3','Tot_Labor_others',0),(314,'Total_Labor_React_cav_liner','Total cost of Labor Reactor cavity liner plate in 2017',2188185.87,'dollar','tol_contaiment_ce_cost','Unit_Labor_React_cav_liner,React_cav_A_m2','Tot_Labor_others',0),(315,'Total_Labor_Struct_steel','Total cost of Labor Struct steel in 2017',416433.77,'dollar','tol_contaiment_ce_cost','Unit_Labor_Struct_steel,Struct_v_m3','Tot_Labor_others',0),(316,'Total_Labor_cont_liner','Total cost of Labor Containment liner in 2017',11081657.51,'dollar','tol_contaiment_ce_cost','Unit_Labor_cont_liner,Liner_s_m2','Tot_Labor_others',0),(317,'Total_Labor_fl_grate_handrail_stairs','Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',137271.91,'dollar','tol_contaiment_ce_cost','Unit_Labor_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Labor_others',0),(318,'Total_Labor_painting','Total cost of Labor painting in 2017',3366865.17,'dollar','tol_contaiment_ce_cost','Unit_Labor_painting,Surf_paint_m2','Tot_Labor_others',0),(319,'Total_Mat_Cadweld_Substr','Total cost of Material Cadweld Substructure (base mat) in 2017',282938.62,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Substr,Basemat_v_m3','Sum_Mat_Cadweld',0),(320,'Total_Mat_Cadweld_Superstr','Total cost of Material Cadweld Superstructure (shell) in 2017',756667.6,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Superstr,Walls_v_m3','Sum_Mat_Cadweld',0),(321,'Total_Mat_Cadweld_Dome','Total cost of Material Cadweld Superstructure (dome) in 2017',498969.01,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Dome,Dome_v_m3','Sum_Mat_Cadweld',0),(322,'Total_Mat_Cadweld_Interior','Total cost of Material Cadweld Interior structure in 2017',162765.27,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Interior,Internal_v_m3','Sum_Mat_Cadweld',0),(323,'Total_Mat_Concrete_Substr','Total cost of Material Concrete Substructure (base mat) in 2017',504973.93,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Substr,Basemat_v_m3','Sum_Mat_Concrete',0),(324,'Total_Mat_Concrete_Superstr','Total cost of Material Concrete Superstructure (shell) in 2017',693399.8,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Superstr,Walls_v_m3','Sum_Mat_Concrete',0),(325,'Total_Mat_Concrete_Dome','Total cost of Material Concrete Superstructure (dome) in 2017',202460.27,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Dome,Dome_v_m3','Sum_Mat_Concrete',0),(326,'Total_Mat_Concrete_Interior','Total cost of Material Concrete Interior structure in 2017',346429.59,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Interior,Internal_v_m3','Sum_Mat_Concrete',0),(327,'Total_Mat_Constr_joints_Substr','Total cost of Material Construction joints Substructure (base mat) in 2017',18640.93,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Substr,Basemat_s_m2','Sum_Mat_Constr_joints',0),(328,'Total_Mat_Constr_joints_Superstr','Total cost of Material Construction joints Superstructure (shell) in 2017',141629.39,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Superstr,Walls_s_m2','Sum_Mat_Constr_joints',0),(329,'Total_Mat_Constr_joints_Dome','Total cost of Material Construction joints Superstructure (dome) in 2017',22732.96,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Dome,Dome_s_m2','Sum_Mat_Constr_joints',0),(330,'Total_Mat_Constr_joints_Interior','Total cost of Material Construction joints Interior structure in 2017',13456.97,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Interior,Internal_s_m2','Sum_Mat_Constr_joints',0),(331,'Total_Mat_Embedded_steel_Substr','Total cost of Material Embedded steel Substructure (base mat) in 2017',12001.91,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Substr,Basemat_v_m3','Sum_Mat_Embedded_steel',0),(332,'Total_Mat_Embedded_steel_Superstr','Total cost of Material Embedded steel Superstructure (shell) in 2017',96365.64,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Superstr,Walls_v_m3','Sum_Mat_Embedded_steel',0),(333,'Total_Mat_Embedded_steel_Dome','Total cost of Material Embedded steel Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Dome,Dome_v_m3','Sum_Mat_Embedded_steel',0),(334,'Total_Mat_Embedded_steel_Interior','Total cost of Material Embedded steel Interior structure in 2017',1039939.84,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Interior,Internal_v_m3','Sum_Mat_Embedded_steel',0),(335,'Total_Mat_Formwork_Substr','Total cost of Material Formwork Substructure (base mat) in 2017',27689.11,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Substr,Basemat_s_m2','Sum_Mat_Formwork',0),(336,'Total_Mat_Formwork_Superstr','Total cost of Material Formwork Superstructure (shell) in 2017',253373.69,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Superstr,Walls_s_m2','Sum_Mat_Formwork',0),(337,'Total_Mat_Formwork_Dome','Total cost of Material Formwork Superstructure (dome) in 2017',59918.15,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Dome,Dome_s_m2','Sum_Mat_Formwork',0),(338,'Total_Mat_Formwork_Interior','Total cost of Material Formwork Interior structure in 2017',233360.96,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Interior,Internal_s_m2','Sum_Mat_Formwork',0),(339,'Total_Mat_Maj_supp_embedments_Interior','Total cost of Material Major Support Embedments Interior structure in 2017',1467166.11,'dollar','tol_contaiment_ce_cost','Unit_Mat_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Mat_Maj_supp_embedments',0),(340,'Total_Mat_Reinforc_steel_Substr','Total cost of Material Reinforc steel Substructure (base mat) in 2017',2328434.14,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Substr,Basemat_v_m3','Sum_Mat_Reinforc_steel',0),(341,'Total_Mat_Reinforc_steel_Superstr','Total cost of Material Reinforc steel Superstructure (shell) in 2017',3296417.82,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Superstr,Walls_v_m3','Sum_Mat_Reinforc_steel',0),(342,'Total_Mat_Reinforc_steel_Dome','Total cost of Material Reinforc steel Superstructure (dome) in 2017',993566.57,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Dome,Dome_v_m3','Sum_Mat_Reinforc_steel',0),(343,'Total_Mat_Reinforc_steel_Interior','Total cost of Material Reinforc steel Interior structure in 2017',1338972.19,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Interior,Internal_v_m3','Sum_Mat_Reinforc_steel',0),(344,'Total_Mat_Rubbing_surfaces_Superstr','Total cost of Material Rubbing surfaces Superstructure (shell) in 2017',12622.28,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Mat_Rubbing_surfaces',0),(345,'Total_Mat_Rubbing_surfaces_Dome','Total cost of Material Rubbing surfaces Superstructure (dome) in 2017',3671.65,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Mat_Rubbing_surfaces',0),(346,'Total_Mat_Rubbing_surfaces_Interior','Total cost of Material Rubbing surfaces Interior structure in 2017',8757.71,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Mat_Rubbing_surfaces',0),(347,'Total_Mat_Waterproofing_Substr','Total cost of Material Waterproofing Substructure (base mat) in 2017',5089.6,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Substr,Basemat_s_m2','Sum_Mat_Waterproofing',0),(348,'Total_Mat_Waterproofing_Superstr','Total cost of Material Waterproofing Superstructure (shell) in 2017',8352.98,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Superstr,Walls_s_m2','Sum_Mat_Waterproofing',0),(349,'Total_Mat_Waterproofing_Dome','Total cost of Material Waterproofing Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Dome,Dome_s_m2','Sum_Mat_Waterproofing',0),(350,'Total_Mat_Welded_wire_fabric_Substr','Total cost of Material Welded wire fabric Substructure (base mat) in 2017',10870.38,'dollar','tol_contaiment_ce_cost','Unit_Mat_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Mat_Welded_wire_fabric',0),(351,'Total_Mat_Lighting_Power','Total cost of Material Lighting Power in 2017',389067.82,'dollar','tol_contaiment_ce_cost','Unit_Mat_Lighting_Power,Intern_tot_v_m3','Tot_Mat_equipment',0),(352,'Total_Mat_Plumb_drains','Total cost of Material Plumb drains in 2017',120799.28,'dollar','tol_contaiment_ce_cost','Unit_Mat_Plumb_drains,Intern_tot_v_m3','Tot_Mat_equipment',0),(353,'Total_Mat_Special_HVAC','Total cost of Material Special HVAC in 2017',689497.2,'dollar','tol_contaiment_ce_cost','Unit_Mat_Special_HVAC,Intern_tot_v_m3','Tot_Mat_equipment',0),(354,'Total_Mat_other','Total cost of Material other in 2017',153744.54,'dollar','tol_contaiment_ce_cost','Unit_Mat_other,Intern_tot_v_m3','Tot_Mat_equipment',0),(355,'Total_Mat_Misc_steel_frames','Total cost of Material miscellaneous steel frames in 2017',493286.35,'dollar','tol_contaiment_ce_cost','Unit_Mat_Misc_steel_frames,Struct_v_m3','Tot_Mat_others',0),(356,'Total_Mat_React_cav_liner','Total cost of Material Reactor cavity liner plate in 2017',1783426.93,'dollar','tol_contaiment_ce_cost','Unit_Mat_React_cav_liner,React_cav_A_m2','Tot_Mat_others',0),(357,'Total_Mat_Struct_steel','Total cost of Material Struct steel in 2017',816484.24,'dollar','tol_contaiment_ce_cost','Unit_Mat_Struct_steel,Struct_v_m3','Tot_Mat_others',0),(358,'Total_Mat_cont_liner','Total cost of Material Containment liner in 2017',17084097.73,'dollar','tol_contaiment_ce_cost','Unit_Mat_cont_liner,Liner_s_m2','Tot_Mat_others',0),(359,'Total_Mat_fl_grate_handrail_stairs','Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',155313.36,'dollar','tol_contaiment_ce_cost','Unit_Mat_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Mat_others',0),(360,'Total_Mat_painting','Total cost of Material painting in 2017',957306.82,'dollar','tol_contaiment_ce_cost','Unit_Mat_painting,Surf_paint_m2','Tot_Mat_others',0),(361,'Sum_Labor_Cadweld','Total cost of Labor Cadweld',3280585.404,'dollar','sum_ce','Total_Labor_Cadweld_Substr,Total_Labor_Cadweld_Superstr,Total_Labor_Cadweld_Dome,Total_Labor_Cadweld_Interior','Tot_Labor_concr',0),(362,'Sum_Labor_Concrete','Total cost of Labor Concrete',2535495.979,'dollar','sum_ce','Total_Labor_Concrete_Substr,Total_Labor_Concrete_Superstr,Total_Labor_Concrete_Dome,Total_Labor_Concrete_Interior','Tot_Labor_concr',0),(363,'Sum_Labor_Constr_joints','Total cost of Labor Constr joints',320305.7975,'dollar','sum_ce','Total_Labor_Constr_joints_Substr,Total_Labor_Constr_joints_Superstr,Total_Labor_Constr_joints_Dome,Total_Labor_Constr_joints_Interior','Tot_Labor_concr',0),(364,'Sum_Labor_Embedded_steel','Total cost of Labor Embedded steel',2423820.007,'dollar','sum_ce','Total_Labor_Embedded_steel_Substr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Embedded_steel_Dome,Total_Labor_Embedded_steel_Interior','Tot_Labor_concr',0),(365,'Sum_Labor_Formwork','Total cost of Labor Formwork',5164619.048,'dollar','sum_ce','Total_Labor_Formwork_Substr,Total_Labor_Formwork_Superstr,Total_Labor_Formwork_Dome,Total_Labor_Formwork_Interior','Tot_Labor_concr',0),(366,'Sum_Labor_Maj_supp_embedments','Total cost of Labor Maj supp embedments',999574.0548,'dollar','sum_ce','Total_Labor_Maj_supp_embedments_Interior','Tot_Labor_concr',0),(367,'Sum_Labor_Reinforc_steel','Total cost of Labor Reinforc steel',9459022.117,'dollar','sum_ce','Total_Labor_Reinforc_steel_Substr,Total_Labor_Reinforc_steel_Superstr,Total_Labor_Reinforc_steel_Dome,Total_Labor_Reinforc_steel_Interior','Tot_Labor_concr',0),(368,'Sum_Labor_Rubbing_surfaces','Total cost of Labor Rubbing surfaces',305118.4026,'dollar','sum_ce','Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Rubbing_surfaces_Interior','Tot_Labor_concr',0),(369,'Sum_Labor_Waterproofing','Total cost of Labor Waterproofing',25184.97376,'dollar','sum_ce','Total_Labor_Waterproofing_Substr,Total_Labor_Waterproofing_Superstr,Total_Labor_Waterproofing_Dome','Tot_Labor_concr',0),(370,'Sum_Labor_Welded_wire_fabric','Total cost of Labor Welded wire fabric',21091.47636,'dollar','sum_ce','Total_Labor_Welded_wire_fabric_Substr','Tot_Labor_concr',0),(371,'Sum_Mat_Cadweld','Total cost of Material Cadweld',1701340.49,'dollar','sum_ce','Total_Mat_Cadweld_Substr,Total_Mat_Cadweld_Superstr,Total_Mat_Cadweld_Dome,Total_Mat_Cadweld_Interior','Tot_Mat_concr',0),(372,'Sum_Mat_Concrete','Total cost of Material Concrete',1747263.589,'dollar','sum_ce','Total_Mat_Concrete_Substr,Total_Mat_Concrete_Superstr,Total_Mat_Concrete_Dome,Total_Mat_Concrete_Interior','Tot_Mat_concr',0),(373,'Sum_Mat_Constr_joints','Total cost of Material Constr joints',196460.25,'dollar','sum_ce','Total_Mat_Constr_joints_Substr,Total_Mat_Constr_joints_Superstr,Total_Mat_Constr_joints_Dome,Total_Mat_Constr_joints_Interior','Tot_Mat_concr',0),(374,'Sum_Mat_Embedded_steel','Total cost of Material Embedded steel',1148307.391,'dollar','sum_ce','Total_Mat_Embedded_steel_Substr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Embedded_steel_Dome,Total_Mat_Embedded_steel_Interior','Tot_Mat_concr',0),(375,'Sum_Mat_Formwork','Total cost of Material Formwork',574341.9097,'dollar','sum_ce','Total_Mat_Formwork_Substr,Total_Mat_Formwork_Superstr,Total_Mat_Formwork_Dome,Total_Mat_Formwork_Interior','Tot_Mat_concr',0),(376,'Sum_Mat_Maj_supp_embedments','Total cost of Material Maj supp embedments',1467166.11,'dollar','sum_ce','Total_Mat_Maj_supp_embedments_Interior','Tot_Mat_concr',0),(377,'Sum_Mat_Reinforc_steel','Total cost of Material Reinforc steel',7957390.727,'dollar','sum_ce','Total_Mat_Reinforc_steel_Substr,Total_Mat_Reinforc_steel_Superstr,Total_Mat_Reinforc_steel_Dome,Total_Mat_Reinforc_steel_Interior','Tot_Mat_concr',0),(378,'Sum_Mat_Rubbing_surfaces','Total cost of Material Rubbing surfaces',25051.63697,'dollar','sum_ce','Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Rubbing_surfaces_Interior','Tot_Mat_concr',0),(379,'Sum_Mat_Waterproofing','Total cost of Material Waterproofing',13442.5802,'dollar','sum_ce','Total_Mat_Waterproofing_Substr,Total_Mat_Waterproofing_Superstr,Total_Mat_Waterproofing_Dome','Tot_Mat_concr',0),(380,'Sum_Mat_Welded_wire_fabric','Total cost of Material Welded wire fabric',10870.38,'dollar','sum_ce','Total_Mat_Welded_wire_fabric_Substr','Tot_Mat_concr',0),(381,'Tot_Labor_concr','Total cost of labor of containment construction',24534817.26,'dollar','sum_ce','Sum_Labor_Cadweld,Sum_Labor_Concrete,Sum_Labor_Constr_joints,Sum_Labor_Embedded_steel,Sum_Labor_Formwork,Sum_Labor_Maj_supp_embedments,Sum_Labor_Reinforc_steel,Sum_Labor_Rubbing_surfaces,Sum_Labor_Waterproofing,Sum_Labor_Welded_wire_fabric','Tot_Labor_containment',0),(382,'Tot_Labor_equipment','Total cost of labor of containment equipments',1919453.529,'dollar','sum_ce','Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other','Tot_Labor_containment',0),(383,'Tot_Labor_others','Total cost of labor of other non-concrete related items ',17486505.19,'dollar','sum_ce','Total_Labor_Misc_steel_frames,Total_Labor_React_cav_liner,Total_Labor_Struct_steel,Total_Labor_cont_liner,Total_Labor_fl_grate_handrail_stairs,Total_Labor_painting','Tot_Labor_containment',0),(384,'Tot_Mat_concr','Total cost of material of containment construction',14841635.07,'dollar','sum_ce','Sum_Mat_Cadweld,Sum_Mat_Concrete,Sum_Mat_Constr_joints,Sum_Mat_Embedded_steel,Sum_Mat_Formwork,Sum_Mat_Maj_supp_embedments,Sum_Mat_Reinforc_steel,Sum_Mat_Rubbing_surfaces,Sum_Mat_Waterproofing,Sum_Mat_Welded_wire_fabric','Tot_Mat_containment',0),(385,'Tot_Mat_equipment','Total cost of material of containment equipments',1353108.842,'dollar','sum_ce','Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other','Tot_Mat_containment',0),(386,'Tot_Mat_others','Total cost of material of other non-concrete related items ',21289915.44,'dollar','sum_ce','Total_Mat_Misc_steel_frames,Total_Mat_React_cav_liner,Total_Mat_Struct_steel,Total_Mat_cont_liner,Total_Mat_fl_grate_handrail_stairs,Total_Mat_painting','Tot_Mat_containment',0),(387,'Tot_Labor_containment','Total cost of labor of containment',43940775.98,'dollar','sum_ce','Tot_Labor_concr,Tot_Labor_equipment,Tot_Labor_others','',0),(388,'Tot_Mat_containment','Total cost of material of containment',37484659.35,'dollar','sum_ce','Tot_Mat_concr,Tot_Mat_equipment,Tot_Mat_others','',0); -/*!40000 ALTER TABLE `lfr_variable` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ste_acc` --- - -DROP TABLE IF EXISTS `ste_acc`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `ste_acc` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - `alg_name` text, - `fun_unit` text, - `variables` text, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ste_acc` --- - -LOCK TABLES `ste_acc` WRITE; -/*!40000 ALTER TABLE `ste_acc` DISABLE KEYS */; -INSERT INTO `ste_acc` VALUES (1,'2','Plant direct cost',4890764070,0,'','Unchanged',1,'acc2','million',''),(2,'21','Total account 21 cost',994668076.3,1,'2','Unchanged',0.203011801,'acc21','million',''),(3,'211','Site improvements, facilities, land',32640000,2,'21','Unchanged',0.006218646,'acc211','million','csi, lsa, cland'),(4,'212','Reactor building cost',761856949.1,2,'21','Unchanged',0.155846005,'acc212','million','ucrb, rbvol, exprb, lsa'),(5,'213','Turbine building cost',31920000,2,'21','Unchanged',0.006529578,'acc213','million','ireactor, cturbb, lsa'),(6,'214','Reactor maintenance and warm shop buildings cost',86635071.2,2,'21','Unchanged',0.017722132,'acc214','million',''),(7,'2141','Reactor maintenance building cost',50775640.32,3,'214','Unchanged',0.010386702,'acc2141','million','ucmb, rmbvol, exprb, lsa'),(8,'2142','Warm shop cost',35859430.88,3,'214','Unchanged',0.007335431,'acc2142','million','ucws, wsvol, exprb, lsa'),(9,'215','Tritium building cost',12432000,2,'21','Unchanged',0.002543099,'acc215','million','uctr, triv, exprb, lsa'),(10,'216','Electrical equipment building cost',18862175.99,2,'21','Unchanged',0.00385846,'acc216','million','ucel, elevol, exprb, lsa'),(11,'217','Other buildings cost',50321880,2,'21','Unchanged',0.01029388,'acc217','million',''),(12,'2171','Additional buildings cost',15120000,3,'217','Unchanged',0.003092958,'acc2171','million','ucad, admvol, exprb, lsa'),(13,'2172','Control room buildings cost',17640000,3,'217','Unchanged',0.003608451,'acc2172','million','ucco, convol, exprb, lsa'),(14,'2173','Shop and warehouses cost',9660000,3,'217','Unchanged',0.001976057,'acc2173','million','ucsh, shovol, exprb, lsa'),(15,'2174','Cryogenic building cost',7901880,3,'217','Unchanged',0.001616414,'acc2174','million','uccr, cryvol, exprb, lsa'),(16,'22','Total account 22 cost',3513724589,1,'2','Unchanged',0.718770029,'acc22','million',''),(17,'221','Total account 221 cost',688411764.2,2,'22','Unchanged',0.140822006,'acc221','million',''),(18,'2211','First wall cost',188733898,3,'221','Unchanged',0.038607542,'acc2211','million','ife, ucfwa, ucfws, fwarea, ucfwps, ucblss, fwmatm, uccarb, ucblli2o, ucconc, ifueltyp, fwallcst'),(19,'2212','Blanket total cost',390073761.2,3,'221','Unchanged',0.079793769,'acc2212','million',''),(20,'22121','Blanket beryllium cost',219499627.1,4,'2212','Unchanged',0.044901002,'acc22121','million','ife, wtbllipb, ucbllipb, whtblbe, ucblbe, iblanket, lsa'),(21,'22122','Blanket breeder material cost',81966464.01,4,'2212','Unchanged',0.016767119,'acc22122','million','whtblli, ucblli, whtblbreed, ucblbreed, wtblli2o, ucblli2o, iblanket, lsa, ife'),(22,'22123','Blanket stainless steel cost',88607670.05,4,'2212','Unchanged',0.018125649,'acc22123','million','whtblss, ucblss, lsa'),(23,'22124','Blanket vanadium cost',0,4,'2212','Unchanged',0,'acc22124','million','whtblvd, ucblvd, ife, lsa'),(24,'2213','Total shield cost',71254105.04,3,'221','Unchanged',0.014575791,'acc2213','million',''),(25,'22131','Bulk shield cost',35627052.52,4,'2213','Unchanged',0.007287895,'acc22131','million','ife, whtshld, ucshld, lsa, shmatm, uccarb, ucblli2o, ucconc'),(26,'22132','Penetration shielding cost',35627052.52,4,'2213','Unchanged',0.007287895,'acc22132','million','ife, wpenshld, ucpens, lsa'),(27,'2214','Total support structure cost',0,3,'221','Unchanged',0,'acc2214','million','gsmass, ucgss, lsa'),(28,'2215','Divertor cost',38350000,3,'221','Unchanged',0.007844904,'acc2215','million','ife, divsur, ucdiv, ifueltyp, divcst'),(29,'222','Total account 222 cost',1371521468,2,'22','Unchanged',0.280559418,'acc222','million',''),(30,'2221','TF magnet assemblies cost',798612345.9,3,'222','Unchanged',0.163364716,'acc2221','million',''),(31,'22211','TF coil conductor cost',411634736.7,4,'2221','Unchanged',0.084204298,'acc22211','million','whtcp, uccpcl1, itart, ifueltyp, cpstcst, whtconsc,tfleng, n_tf_turn, uccu, whtconcu, cconshtf, cconfix, n_tf, lsa, i_tf_sup, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, fkind, i_tf_sc_mat'),(32,'22212','TF coil winding cost',175557287.9,4,'2221','Unchanged',0.035912125,'acc22212','million','whttflgs, uccpclb, lsa, ucwindtf, n_tf, tfleng, n_tf_turn, i_tf_sup'),(33,'22213','TF coil case cost',76831625,4,'2221','Unchanged',0.015716732,'acc22213','million','whtcas, uccase, n_tf, lsa, i_tf_sup'),(34,'22214','TF intercoil structure cost',112157246.9,4,'2221','Unchanged',0.022942967,'acc22214','million','aintmass, ucint, lsa, i_tf_sup'),(35,'22215','TF coil gravity support structure',22431449.38,4,'2221','Unchanged',0.004588593,'acc22215','million','clgsmass, ucgss, lsa, i_tf_sup'),(36,'2222','PF magnet assemblies cost',0,3,'222','Unchanged',0,'acc2222','million',''),(37,'22221','PF coil conductor cost',0,4,'2222','Unchanged',0,'acc22221','million','ipfres, cconshpf, iohcl, nohc, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, isumatpf, fcupfsu, vf, ric_0, ric_1, ric_2, ric_3, ric_4, ric_5, ric_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, rjconpf_0, rjconpf_1, rjconpf_2, rjconpf_3, rjconpf_4, rjconpf_5, rjconpf_6, rjconpf_7, dcond_0, dcond_1, dcond_2, dcond_3, dcond_4, dcond_5, dcond_6, dcond_7, dcond_8, uccu, dcopper, cconfix, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, lsa, isumatoh, awpoh, vfohc, fcuohsu'),(38,'22222','PF coil winding cost',0,4,'2222','Unchanged',0,'acc22222','million','ucwindpf, lsa, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, nohc'),(39,'22223','PF coil case cost',0,4,'2222','Unchanged',0,'acc22223','million','uccase, whtpfs, lsa'),(40,'22224','PF coil support structure cost',0,4,'2222','Unchanged',0,'acc22224','million','ucfnc, fncmass, lsa'),(41,'2223','Vacuum vessel assembly cost',572909121.8,3,'222','Unchanged',0.117194702,'acc2223','million','vvmass, uccryo, lsa'),(42,'223','Total account 223 cost',0,2,'22','Unchanged',0,'acc223','million',''),(43,'2231','ECH system cost',0,3,'223','Unchanged',0,'acc2231','million','ucech, echpwr, exprf, ifedrv, dcdrv1, dcdrv2, cdriv1, mcdriv, edrive, etadrv, dcdrv0, cdriv0 ,cdriv3, fcdfuel, ife, cdriv2, ifueltyp'),(44,'2232','Lower hybrid system cost',0,3,'223','Unchanged',0,'acc2232','million','iefrf, uclh, plhybd, exprf, ucich, fcdfuel, ifueltyp, ife'),(45,'2233','Neutral beam system cost',0,3,'223','Unchanged',0,'acc2233','million','ucnbi, exprf, fcdfuel, ifueltyp, pnbitot, ife, ifedrv'),(46,'224','Total account 224 cost',76872748.96,2,'22','Unchanged',0.015725145,'acc224','million',''),(47,'2241','High vacuum pumps cost',39000000,3,'224','Unchanged',0.007977868,'acc2241','million','vpumpn, uccpmp, uctpmp, ntype'),(48,'2242','Backing pumps cost',14625000,3,'224','Unchanged',0.002991701,'acc2242','million','nvduct, ucbpmp'),(49,'2243','Vacuum duct cost',5999583.011,3,'224','Unchanged',0.001227279,'acc2243','million','nvduct, dlscal, ucduct'),(50,'2244','Valves cost',15948165.95,3,'224','Unchanged',0.003262368,'acc2244','million','nvduct, vcdimax, ucvalv'),(51,'2245','Duct shielding cost',0,3,'224','Unchanged',0,'acc2245','million','nvduct, vacdshm, ucvdsh'),(52,'2246','Instrumentation cost',1300000,3,'224','Unchanged',0.000265929,'acc2246','million','ucviac'),(53,'225','Total account 225 cost',208054137.8,2,'22','Unchanged',0.042559704,'acc225','million',''),(54,'2251','Total, TF coil power costs',208054137.8,3,'225','Unchanged',0.042559704,'acc2251','million',''),(55,'22511','TF coil power supplies cost',5296542.37,4,'2251','Unchanged',0.001083465,'acc22511','million','uctfps, tfckw, tfcmw, expel'),(56,'22512','TF coil breakers cost',71213011.57,4,'2251','Unchanged',0.014567385,'acc22512','million','uctfbr, n_tf, cpttf, vtfskv, expel, uctfsw, i_tf_sup'),(57,'22513','TF coil dump resistors cost',15388500,4,'2251','Unchanged',0.003147883,'acc22513','million','uctfdr, estotftgj, uctfgr, n_tf'),(58,'22514','TF coil instrumentation and control',15000000,4,'2251','Unchanged',0.003068411,'acc22514','million','uctfic, n_tf, '),(59,'22515','TF coil bussing cost',101156083.8,4,'2251','Unchanged',0.020692561,'acc22515','million','uctfbus, tfbusmas, ucbus, cpttf, tfbusl, i_tf_sup'),(60,'2252','Total, PF coil power costs',0,3,'225','Unchanged',0,'acc2252','million',''),(61,'22521','PF coil power supplies cost',0,4,'2252','Unchanged',0,'acc22521','million','ucpfps, peakmva'),(62,'22522','PF coil instrumentation and control',0,4,'2252','Unchanged',0,'acc22522','million','ucpfic, pfckts'),(63,'22523','PF coil bussing cost',0,4,'2252','Unchanged',0,'acc22523','million','ucpfb, spfbusl, acptmax'),(64,'22524','PF coil burn power supplies cost',0,4,'2252','Unchanged',0,'acc22524','million','ucpfbs, pfckts, srcktpm'),(65,'22525','PF coil breakers cost',0,4,'2252','Unchanged',0,'acc22525','million','ucpfbk, pfckts, acptmax, vpfskv'),(66,'22526','PF coil dump resistors cost',0,4,'2252','Unchanged',0,'acc22526','million','ucpfdr1, ensxpfm'),(67,'22527','PF coil ac breakers cost',0,4,'2252','Unchanged',0,'acc22527','million','ucpfcb, pfckts'),(68,'2253','Total, energy storage cost',0,3,'225','Unchanged',0,'acc2253','million','lpulse, istore, ucblss, pthermmw, tdown, dtstor, pnetelmw'),(69,'226','Total account 226 cost',333665524.5,2,'22','Unchanged',0.06825486,'acc226','million',''),(70,'2261','Total, reactor cooling system cost',136211203.5,3,'226','Unchanged',0.027863462,'acc2261','million',''),(71,'22611','Pumps and piping system cost',60608116.15,4,'2261','Unchanged',0.01239804,'acc22611','million','uchts, coolwh, pfwdiv, exphts, pnucblkt, pnucshld, lsa'),(72,'22612','Primary heat exchanger cost',75603087.33,4,'2261','Unchanged',0.015465422,'acc22612','million','ucphx, nphx, pthermmw, exphts, lsa'),(73,'2262','Pumps, piping cost',16450844.94,3,'226','Unchanged',0.003365197,'acc2262','million','ucahts, pinjht, exphts, crypmw, vachtmw, trithtmw, fachtmw, ife, tdspmw, tfacmw, lsa'),(74,'2263','Total, cryogenic system cost',181003476,3,'226','Unchanged',0.037026201,'acc2263','million','uccry, tmpcry, helpow, lsa, expcry'),(75,'227','Total account 227 cost',385198945.6,2,'22','Unchanged',0.078796573,'acc227','million',''),(76,'2271','Fuelling system cost',22300000,3,'227','Unchanged',0.004561704,'acc2271','million','ucf1'),(77,'2272','Fuel processing and purification cost',136481564.5,3,'227','Unchanged',0.027918767,'acc2272','million','ife, rndfuel, afuel, umass, gain, edrive, fburn, reprat, ucfpr'),(78,'2273','Atmospheric recovery systems cost',110589017.9,3,'227','Unchanged',0.022622169,'acc2273','million','ftrit, ucdtc, volrci, wsvol, cfrht'),(79,'2274','Nuclear building ventilation cost',115828363.2,3,'227','Unchanged',0.023693933,'acc2274','million','ucnbv, volrci, wsvol'),(80,'228','Instrumentation and control cost',150000000,2,'22','Unchanged',0.030684108,'acc228','million','uciac'),(81,'229','Maintenance equipment cost',300000000,2,'22','Unchanged',0.061368216,'acc229','million','ucme'),(82,'23','Turbine plant equipment cost',258472349.8,1,'2','Unchanged',0.05287329,'acc23','million','ireactor, ucturb, coolwh, pgrossmw, exptpe'),(83,'24','Total account 24 cost',30514416.07,1,'2','Unchanged',0.006242051,'acc24','million',''),(84,'241','Switchyard equipment cost',14444000,2,'24','Unchanged',0.002954675,'acc241','million','ucswyd, lsa'),(85,'242','Transformers cost',4391499.618,2,'24','Unchanged',0.000898328,'acc242','million','ucpp, pacpmw, expepe, ucap, fcsht, lsa'),(86,'243','Low voltage equipment cost',5163416.447,2,'24','Unchanged',0.001056232,'acc243','million','uclv, tlvpmw, lsa'),(87,'244','Diesel backup equipment cost',5338000,2,'24','Unchanged',0.001091945,'acc244','million','ucdgen, lsa'),(88,'245','Auxiliary facilities cost',1177500,2,'24','Unchanged',0.00024087,'acc245','million','ucaf, lsa'),(89,'25','Miscellaneous plant equipment cost',22125000,1,'2','Unchanged',0.004525906,'acc25','million','ucmisc, lsa'),(90,'26','Heat rejection system cost',71259639.53,1,'2','Unchanged',0.014576923,'acc26','million','ireactor, powfmw, pinjwp, tfcmw, pthermmw, pgrossmw, uchrs, lsa'); -/*!40000 ALTER TABLE `ste_acc` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ste_var` --- - -DROP TABLE IF EXISTS `ste_var`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `ste_var` ( - `ind` int DEFAULT NULL, - `var_name` varchar(50) NOT NULL, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`var_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ste_var` --- - -LOCK TABLES `ste_var` WRITE; -/*!40000 ALTER TABLE `ste_var` DISABLE KEYS */; -INSERT INTO `ste_var` VALUES (1,'acptmax','average of currents in PF circuits',0,'kA','','','',0),(2,'admvol','volume of administration buildings',100000,'m3','','','',0),(3,'afuel','average mass of fuel portion of ions',2.5,'amu','','','wtgpd',0),(4,'aintmass','intercoil structure mass',3792299.13,'kg','stcalaintmass','st_f_b, denstl, intercoil_surface','clgsmass',0),(5,'anncap','annual cost of plant capital cost',538.1462184,'million','','','',0),(6,'anncdr','current drive annual cost of replacements',0,'million','','','',0),(7,'anncp','annual cost of centrepost replacements',0,'million','','','',0),(8,'anndecom','annual cost of decomissioning',4.597412067,'million','','','',0),(9,'anndiv','divertor annual cost of replacements',0,'million','','','',0),(10,'annfuel','annual cost of fuel',2.84134625,'million','','','',0),(11,'annfwbl','annual cost of first wall and blanket replacements',0,'million','','','',0),(12,'annoam','operational and maintenance annual cost ',62.43684807,'million','','','',0),(13,'annwst','annual cost of waste',3.575598567,'million','','','',0),(14,'areaoh','Central solenoid vertical cross-sectional area',9.067197218,'m2','','','awpoh',0),(15,'awpoh','central solenoid conductor+void area with area of steel subtracted',4.416007689,'dollar','calawpoh','oh_steel_frac, areaoh','',0),(16,'bktlife','full power blanket lifetime',6.667,'years','','','fwbllife',0),(17,'capcost','total capital cost including interest',8279.17259,'million','','','acccapcost',0),(18,'cconfix','fixed cost of superconducting cable',80,'$/m','','','',0),(19,'cconshpf','cost of PF coil steel conduit/sheath',0,'$/m','','','',0),(20,'cconshtf','cost of TF coil steel conduit/sheath',75,'$/m','','','',0),(21,'cdcost','current drive system cost',0,'million','','','',0),(22,'cdirt','total plant direct cost',4888.52407,'million','','','',0),(23,'cdriv0','IFE generic/laser driver cost at edrive=0',154.3,'million','','','',0),(24,'cdriv1','IFE low energy heavy ion beam driver cost extrapolated to `edrive=0`',163.2,'million','','','',0),(25,'cdriv2','IFE high energy heavy ion beam driver cost extrapolated to `edrive=0`',244.9,'million','','','',0),(26,'cdriv3','IFE driver cost (`ifedrv==3`)',1.463,'($/J wall plug)','','','',0),(27,'cdrlife','lifetime of heating/current drive system',6.67,'years','','','fefcdr',0),(28,'cfactr','total plant availability fraction',0.75,'N/A','','','',0),(29,'cfind_0','indirect cost factor ',0.244,'N/A','','','',0),(30,'cfind_1','indirect cost factor ',0.244,'N/A','','','',0),(31,'cfind_2','indirect cost factor ',0.244,'N/A','','','',0),(32,'cfind_3','indirect cost factor ',0.29,'N/A','','','',0),(33,'cland','cost of land',19.2,'million','','','',0),(34,'clgsmass','gravity support structure for TF coil, PF coil and intercoil support systems',758459,'kg','stcalclgsmass','aintmass','',0),(35,'cmlsa','index of four constants that change between accounts',2,'N/A','','','',0),(36,'coecdr','cost of electricity due to current drive system replacements',0,'million','','','',0),(37,'coecp','cost of electricity attributed to centrepost replacements',0,'million','','','',0),(38,'coediv','cost of electricity due to divertor replacements',0,'million','','','',0),(39,'coefuel','cost of electricity attributed to fuel',0.596820346,'million','','','',0),(40,'coefwbl','cost of electricity due to first wall/ blanket replacement',0,'million','','','',0),(41,'coewst','cost of electricity attributed to waste',0.751048899,'million','','','',0),(42,'convol','volume of control, protection and i&c building',60000,'m3','','','',0),(43,'coolwh','Switch for blanket coolant',1,'N/A','','','',0),(44,'cowner','owner cost factor',0.15,'N/A','','','',0),(45,'cplife','calculated full power year lifetime of centrepost',0,'years','','','fefcp',0),(46,'cpstcst','ST centrepost direct cost',0,'million','','','',0),(47,'cpttf','TF coil current per turn',44574.9152075629,'A','','','',0),(48,'crfcdr','current drive capital recovery factor',0,'N/A','crfcdr','discount_rate, cdrlife','',0),(49,'crfcp','centrepost capital recovery factor',0,'N/A','crfcp','itart, ife, fefcp, discount_rate','',0),(50,'crfdiv','divertor capital recovery factor',0.345347226,'N/A','crfdiv','fefdiv, discount_rate, ife','',0),(51,'crffwbl','first wall and blanket capital recovery factor',0.18639373,'N/A','crffwbl','feffwbl, discount_rate','',0),(52,'crypmw','cryogenic plant power',68.1,'MW','','','',0),(53,'cryvol','volume of cryoplant building',20450,'m3','','','',0),(54,'csi','allowance for site costs',16,'million','','','',0),(55,'cturbb','cost of turbine building',38,'million','','','',0),(56,'d_0','vacuum duct diameter',0.0769,'m','','','dlscal',0),(57,'d_1','vacuum duct diameter',0.117,'m','','','dlscal',0),(58,'d_2','vacuum duct diameter',0.44,'m','','','dlscal',0),(59,'d_3','vacuum duct diameter',0.000001,'m','','','dlscal',0),(60,'dcdrv0','IFE generic/laser driver cost gradient',111.4,'M$/MJ','','','',0),(61,'dcdrv1','HIB driver cost gradient at low energy',78,'M$/MJ','','','',0),(62,'dcdrv2','HIB driver cost gradient at high energy',59.9,'M$/MJ','','','',0),(63,'dcond_0','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(64,'dcond_1','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(65,'dcond_2','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070,'kg/m3','','','',0),(66,'dcond_3','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(67,'dcond_4','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080,'kg/m3','','','',0),(68,'dcond_5','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500,'kg/m3','','','',0),(69,'dcond_6','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070,'kg/m3','','','',0),(70,'dcond_7','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500,'kg/m3','','','',0),(71,'dcond_8','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500,'kg/m3','','','',0),(72,'dcopper','density of copper',8900,'kg/m3','','','',0),(73,'decomf','proportion of constructed cost required for decommissioning fund',0.1,'N/A','','','',0),(74,'denstl','density of steel',7800,'kg/m3','','','aintmass',0),(75,'dintrt','diff between borrowing and saving interest rates',0,'N/A','','','',0),(76,'discount_rate','effective cost of money in constant dollars',0.06,'N/A','','','feffwbl, crffwbl, fefdiv, crfdiv, fefcp, crfcp, fefcdr, crfcdr',0),(77,'divcst','divertor direct cost',0,'million','','','',0),(78,'divlife','full power lifetime of divertor',3.28,'years','','','fefdiv',0),(79,'divsur','divertor surface area',76.7,'m2','','','',0),(80,'dlscal','vacuum system duct length scaling',2.840039295,'N/A','caldlscal','l1, ltot, imax, d_0, d_1, d_2, d_3','',0),(81,'drbi','length to allow laydown',170.479155,'m','','','rbvol, volrci',0),(82,'dtlife','period prior to the end of the plant life that the decommissioning fund is used',0,'years','','','',0),(83,'dtstor','maximum allowable temperature change in stainless steel thermal storage block',300,'K','','','',0),(84,'ealphadt','alpha birth energy in D-T reaction ',3520,'keV','','','rndfuel',0),(85,'echarge','electron charge',1.6e-19,'C','','','rndfuel',0),(86,'echpwr','ECH power ',5.348945887,'MW','calechpwr','faccd, faccdfix, plascur, effrfss, pheat','',0),(87,'edrive','IFE driver energy',5000000,'J','','','targtm',0),(88,'effrfss','lower hybrid current drive efficienty',0.046410516,'A/W','','','echpwr',0),(89,'elevol','volume of electrical equipment building',59092,'m3','calelevol','tfcbv, pfbldgm3, esbldgm3, pibv','',0),(90,'ensxpfm','maximum stored energy in the PF circuits',0,'MJ','','','',0),(91,'esbldgm3','volume of energy storage equipment building (not used if `lpulse=0`)',0,'m3','','','elevol',0),(92,'estotftgj','total stored energy in the toroidal field',87.2,'GJ','','','',0),(93,'etadrv','IFE driver wall plug to target efficiency',0,'N/A','','','',0),(94,'expcry','exponential parameter of cryogenic system',0.67,'N/A','','','',0),(95,'expel','exponential parameter of TF coil power conditioning',0.7,'N/A','','','',0),(96,'expepe','exponential parameter of electrical plant equipment (Transformers)',0.9,'N/A','','','',0),(97,'exphts','exponential parameter of the heat transport system',0.7,'N/A','','','',0),(98,'exprb','exponential parameter of structures and site facilities',1,'N/A','','','',0),(99,'exprf','exponential parameter of power injection',1,'N/A','','','',0),(100,'exptpe','exponantial parameter of turbine plant equipment ',0.83,'N/A','','','',0),(101,'faccd','fraction of plasma current produced by auxiliary current drive',0.014901854,'N/A','','','echpwr',0),(102,'faccdfix','fixed auxiliary current',0,'A','','','echpwr',0),(103,'fachtmw','facility heat removal',79.30654286,'MW','','','',0),(104,'fburn','IFE burn fraction',0.3333,'fraction of tritium fused/target','','','targtm',0),(105,'fcap0','average cost of money for construction of plant assuming design/construction time of six years',1.15,'N/A','','','',0),(106,'fcap0cp','average cost of money for replaceable components assuming lead time for these of two years',1.06,'N/A','','','',0),(107,'fcdfuel','fraction of current drive cost treated as fuel (if `ifueltyp = 1`)',0.1,'N/A','','','',0),(108,'fcontng','project contingency factor',0.15,'N/A','','','',0),(109,'fcr0','fixed charge rate during construction',0.065,'N/A','','','',0),(110,'fcsht','total baseline power required at all times',79.3,'MW','','','',0),(111,'fcuohsu','copper fraction of strand in central solenoid',0.7,'N/A','','','',0),(112,'fcupfsu','copper fraction of cable conductor (PF coils)',0.75639,'N/A','','','',0),(113,'fefcdr','current drive system compound interest factor',1.474735734,'N/A','fefcdr','discount_rate, cdrlife','crfcdr',0),(114,'fefcp','centrepost compound interest factor',0,'N/A','fefcp','itart, ife, discount_rate, cplife','crfcp',0),(115,'fefdiv','divertor compound interest factor',1.210270136,'N/A','fefdiv','divlife, discount_rate, ife','crfdiv',0),(116,'feffwbl','first wall and blanket compound interest factor',1.474707091,'N/A','feffwbl','discount_rate, fwbllife','crffwbl',0),(117,'fhe3','helium-3 fuel fraction',0,'N/A','','','',0),(118,'fkind','multiplier for Nth of a kind costs',1,'N/A','','','',0),(119,'fncmass','PF coil outer support fence mass',0,'kg','','','',0),(120,'fndt','foundation thickness',2,'m','','','rbvol, rmbvol, wsvol',0),(121,'ftrit','tritium fuel fraction',0.5,'N/A','','','',0),(122,'fusionrate','fusion reaction rate',6.56665e17,'reactions/m3/sec','','','rndfuel',0),(123,'fwallcst','first wall cost',0,'million','','','',0),(124,'fwarea','first wall total surface area',2138.45307380223,'m2','','','',0),(125,'fwbllife','first wall and blanket operational life',6.667,'years','fwbllife','bktlife','',0),(126,'fwmatm','IFE first wall material masses',0,'kg','','','',0),(127,'gain','IFE target gain',0,'N/A','','','targtm',0),(128,'gsmass','reactor core gravity support mass ',0,'kg','','','',0),(129,'hccl','clearance around components in hot cell ',5,'m','','','rmbvol, wsvol',0),(130,'hcwt','hot cell wall thickness ',1.5,'m','','','rmbvol, wsvol',0),(131,'helpow','Heat removal at cryogenic temperature tmpcry',138183.633123902,'W','','','',0),(132,'hrbi','tfh allows TF coil to be lifted right out',59.22479452,'m','','','volrci, rbvol',0),(133,'i_tf_sc_mat','Switch for superconductor material in TF coils',8,'N/A','','','',0),(134,'i_tf_sup','Switch for TF coil conductor model',1,'N/A','','','',0),(135,'iblanket','switch for blanket model',1,'N/A','','','',0),(136,'iefrf','Switch for current drive efficiency model',10,'N/A','','','',0),(137,'ife','switch for the IFE option',0,'N/A','','','wtgpd, fefdiv, crfdiv, fefcp, crfcp',0),(138,'ifedrv','Switch for type of IFE driver',2,'N/A','','','',0),(139,'ifueltyp','switch for fuel type',0,'N/A','','','',0),(140,'imax','d[imax] = diameter of passage from divertor to pumping ducts',2,'N/A','','','dlscal',0),(141,'intercoil_surface','intercoil surface without the scaling of coil sizes',3765.9,'m^2','stcalintercoil_surface','stella_config_coilsurface, st_f_r, tftort, stella_config_coillength, st_f_n','aintmass',0),(142,'iohcl','Switch for existence of central solenoid',1,'N/A','','','',0),(143,'ipfres','switch for PF & CS coil conductor type',0,'N/A','','','',0),(144,'ireactor','Switch for net electric power and cost of electricity calculations',1,'N/A','','','',0),(145,'istore','Switch for thermal storage method',1,'N/A','','','',0),(146,'isumatoh','switch for superconductor material in central solenoid',1,'N/A','','','',0),(147,'isumatpf','switch for superconductor material in PF coils',3,'N/A','','','',0),(148,'itart','switch for spherical tokamak (ST) models',0,'N/A','','','fefcp, crfcp',0),(149,'l1','length of passage from divertor to ducts',0.962,'m','','','dlscal',0),(150,'lpulse','Switch for reactor model',0,'N/A','','','',0),(151,'lsa','Level of safety assurance switch (generally use 3 or 4)',2,'N/A','','','',0),(152,'ltot','total passage length',7.16,'m','','','dlscal',0),(153,'mbvfac','maintenance building volume multiplication factor',2.8,'N/A','','','rmbvol',0),(154,'mcdriv','IFE driver cost multiplier',1,'N/A','','','',0),(155,'n_day_year','average number of days in a year',365.2425,'days','','','',0),(156,'n_tf','Number of TF coils (default = 50 for stellarators). Number of TF coils outer legs for ST',50,'N/A','','','rmbvol, wsvol',0),(157,'n_tf_turn','number of turns per TF coil',251,'N/A','','','',0),(158,'nohc','number of PF coils (excluding the central solenoid) + 1',0,'N/A','','','',0),(159,'nphx','number of primary heat exchangers',4,'N/A','','','',0),(160,'ntype','switch for vacuum pump type',1,'N/A','','','',0),(161,'nvduct','number of ducts (torus to pumps)',50,'N/A','','','',0),(162,'oh_steel_frac','central solenoid steel fraction ',0.512968828,'N/A','','','awpoh',0),(163,'pacpmw','total pulsed power system load',314,'MW','','','',0),(164,'palpnb','alpha power from hot neutral beam ions',0,'MW','','','rndfuel',0),(165,'peakmva','peak MVA requirement',83.78203801,'MW','','','',0),(166,'pfbldgm3','volume of PF coil power supply building',20000,'m3','','','elevol',0),(167,'pfckts','number of PF coil circuits',0,'N/A','','','',0),(168,'pgrossmw','gross electric power',1381.176,'MW','','','',0),(169,'pheat','heating power not used for current drive ',0,'MW','','','echpwr',0),(170,'pibv','#power injection building volume ',20000,'m3','','','elevol',0),(171,'pinjht','power dissipated in heating and current drive system',0,'MW','','','',0),(172,'pinjwp','injector wall plug power',0,'MW','','','',0),(173,'plascur','plasma current ',16658822.35,'A','','','echpwr',0),(174,'plhybd','lower hybrid injection power',0,'MW','','','',0),(175,'pnbitot','neutral beam power entering vacuum vessel',0,'N/A','','','',0),(176,'pnetelmw','net electric power',988.2943477,'MW','','','',0),(177,'pnucblkt','nuclear heating in the blanket',2168.936,'MW','','','',0),(178,'pnucshld','nuclear heating in the shield',0.521,'MW','','','',0),(179,'powfmw','fusion power',2752.455,'MW','','','',0),(180,'pthermmw','High-grade heat useful for electric production',3452.939,'MW','','','',0),(181,'rbrt','reactor building roof thickness',1,'m','','','rbvol',0),(182,'rbvfac','reactor building volume multiplication factor',1.6,'N/A','','','rbvol, volrci',0),(183,'rbvol','reactor building volume',2267431,'m3','calrbvol','wrbi, rbwt, drbi, hrbi, rbrt, fndt, rbvfac','',0),(184,'rbwt','reactor building wall thickness',2,'m','','','rbvol',0),(185,'reprat','IFE driver repetition rate',0,'Hz','','','wtgpd',0),(186,'ric_0','peak current in coil i ',17.94655535,'MA-turns','','','',0),(187,'ric_1','peak current in coil i ',20.66898692,'MA-turns','','','',0),(188,'ric_2','peak current in coil i ',-7.72260112,'MA-turns','','','',0),(189,'ric_3','peak current in coil i ',-7.72260112,'MA-turns','','','',0),(190,'ric_4','peak current in coil i ',-5.23767674,'MA-turns','','','',0),(191,'ric_5','peak current in coil i ',-5.23767674,'MA-turns','','','',0),(192,'ric_6','peak current in coil i ',-185.6894061,'MA-turns','','','',0),(193,'rjconpf_0','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000,'A/m2','','','',0),(194,'rjconpf_1','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000,'A/m2','','','',0),(195,'rjconpf_10','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(196,'rjconpf_11','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(197,'rjconpf_12','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(198,'rjconpf_13','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(199,'rjconpf_14','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(200,'rjconpf_15','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(201,'rjconpf_16','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(202,'rjconpf_17','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(203,'rjconpf_18','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(204,'rjconpf_19','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(205,'rjconpf_2','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000,'A/m2','','','',0),(206,'rjconpf_20','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(207,'rjconpf_21','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(208,'rjconpf_3','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000,'A/m2','','','',0),(209,'rjconpf_4','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(210,'rjconpf_5','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(211,'rjconpf_6','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(212,'rjconpf_7','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000,'A/m2','','','',0),(213,'rjconpf_8','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(214,'rjconpf_9','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000,'A/m2','','','',0),(215,'rmbvol','volume of maintenance and assembly building ',232489.1956,'m3','calrmbvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, mbvfac, fndt','',0),(216,'rndfuel','fuel burnup rate',9.81e20,'reactions/sec','calrndfuel','fusionrate, palpnb, ealphadt, echarge, vol','wtgpd',0),(217,'rpf_0','radius of PF coil in i',0,'N/A','','','',0),(218,'rpf_1','radius of PF coil in i',0,'N/A','','','',0),(219,'rpf_2','radius of PF coil in i',0,'N/A','','','',0),(220,'rpf_3','radius of PF coil in i',0,'N/A','','','',0),(221,'rpf_4','radius of PF coil in i',0,'N/A','','','',0),(222,'rpf_5','radius of PF coil in i',0,'N/A','','','',0),(223,'rpf_6','radius of PF coil in i',0,'N/A','','','',0),(224,'shh','height of attached shield',11.97038227,'m','','','rmbvol, wsvol',0),(225,'shm','total mass of attached shield',1484460.522,'kg','','','rmbvol, wsvol',0),(226,'shmatm','IFE shield material masses ',0,'kg','','','',0),(227,'shmf','fraction of shield mass per TF coil to be moved in the maximum shield lift',0.5,'N/A','','','rmbvol, wsvol',0),(228,'shovol','volume of shops and buildings for plan auxiliaries',100000,'m3','','','',0),(229,'shri','inner radius of attached shield',19.8,'m','','','rmbvol, wsvol',0),(230,'shro','outer radius of attached shield ',25.4,'m','','','rmbvol, wsvol',0),(231,'spfbusl','total PF coil circuit bus length',0,'m','','','',0),(232,'srcktpm','sum of resistive PF coil power',0,'kW','','','',0),(233,'st_f_b','B-field scaling factor',0.846902721,'N/A','','','aintmass',0),(234,'st_f_n','Coil number factor',1,'N/A','','','intercoil_surface',0),(235,'st_f_r','Factors used to scale the reference point.',1.016332439,'N/A','','','intercoil_surface',0),(236,'stcl','clearance above crane to roof',3,'m','','','rmbvol, wsvol',0),(237,'stella_config_coillength','Stellarator coil length',1698.734348,'m','','','intercoil_surface',0),(238,'stella_config_coilsurface','stellarator coil surface area',4740.286257,'m^2','','','intercoil_surface',0),(239,'targtm','mass of fuel calculation',0,'kg','caltargtm','gain, edrive, fburn','wtgpd',0),(240,'tburn','burn time',7246.138178,'sec','','','',0),(241,'tcycle','full cycle time',9889.314625,'sec','','','',0),(242,'tdown','down time',2633.176447,'s','','','',0),(243,'tdspmw','IFE target delivery system power',0.1,'MW','','','',0),(244,'tfacmw','IFE target factory power',0,'MW','','','',0),(245,'tfbusl','TF coil bus length',18450,'m','','','',0),(246,'tfbusmas','TF coil bus mass ',0,'kg','','','',0),(247,'tfcbv','volume of TF coil power supply building (calculated if TF coils are superconducting)',19092.03,'m3','','','elevol',0),(248,'tfckw','available DC power for charging the TF coils',43050,'kW','','','',0),(249,'tfcmw','Peak power per TF power supply',0,'MW','','','',0),(250,'tfleng','TF coil circumference',34.5,'m','','','',0),(251,'tftort','Thickness of inboard leg in toroidal direction',0.654797912,'m','','','intercoil_surface',0),(252,'tlife','full power year plant lifetime',40,'years','','','',0),(253,'tlvpmw','estimate of total low voltage power',328.8800285,'MW','','','',0),(254,'tmpcry','coil temperature for cryogenic plant power calculation',4.5,'K','','','',0),(255,'trcl','transportation clearance between components ',1,'m','','','rmbvol, wsvol',0),(256,'trithtmw','power required for tritium processing',15,'MW','','','',0),(257,'triv','volume of tritium fuel handling and health physics buildings',40000,'m3','','','',0),(258,'turns_0','number of turns in PF coil i',448.66,'N/A','','','',0),(259,'turns_1','number of turns in PF coil i',516.72,'N/A','','','',0),(260,'turns_2','number of turns in PF coil i',193.06,'N/A','','','',0),(261,'turns_3','number of turns in PF coil i',193.06,'N/A','','','',0),(262,'turns_4','number of turns in PF coil i',130.94,'N/A','','','',0),(263,'turns_5','number of turns in PF coil i',130.94,'N/A','','','',0),(264,'turns_6','number of turns in PF coil i',4642.23,'N/A','','','',0),(265,'twopi','2 pi',6.283185307,'N/A','','','',0),(266,'ucad','unit cost for administration buildings',180,'M$/m3','','','',0),(267,'ucaf','unit cost for aux facility power equipment',1500000,'dollar','','','',0),(268,'ucahts','unit cost for aux heat transport equipment',31,'$/W','','','',0),(269,'ucap','unit cost of auxiliary transformer',17,'$/kVA','','','',0),(270,'ucblbe','unit cost for blanket beryllium',260,'$/kg','','','',0),(271,'ucblbreed','unit cost for breeder material',875,'$/kg','','','',0),(272,'ucblli','unit cost for blanket lithium',875,'$/kg','','','',0),(273,'ucblli2o','unit cost for blanket Li_2O',600,'$/kg','','','',0),(274,'ucbllipb','unit cost for blanket Li-Pb (30% Li6)',10.3,'$/kg','','','',0),(275,'ucblss','unit cost for blanket stainless steel ',90,'$/kg','','','',0),(276,'ucblvd','unit cost for blanket vanadium ',280,'$/kg','','','',0),(277,'ucbpmp','vacuum system backing pump cost',292500,'dollar','','','',0),(278,'ucbus','cost of aluminium bus for TF coil',0.123,'$/A-m','','','',0),(279,'uccarb','cost of carbon cloth',50,'$/kg','','','',0),(280,'uccase','cost of superconductor case',50,'$/kg','','','',0),(281,'ucco','unit cost for control buildings',350,'M$/m3','','','',0),(282,'ucconc','cost of concrete',0.1,'$/kg','','','',0),(283,'uccpcl1','cost of high strength tapered copper',250,'$/kg','','','',0),(284,'uccpclb','cost of TF outboard leg plate coils',150,'$/kg','','','',0),(285,'uccpmp','vacuum system cryopump cost ',390000,'dollar','','','',0),(286,'uccr','unit cost for cryogenic building',460,'M$/vol','','','',0),(287,'uccry','heat transport system cryoplant costs',93000,'$/W','','','',0),(288,'uccryo','unit cost for vacuum vessel',32,'$/kg','','','',0),(289,'uccu','unit cost for copper in superconducting cable',75,'$/kg','','','',0),(290,'ucdgen','cost per 8 MW diesel generator',1700000,'dollar','','','',0),(291,'ucdiv','cost of divertor blade',500000,'dollar','','','',0),(292,'ucdtc','detritiation, air cleanup cost',13,'$/10000m3/hr','','','',0),(293,'ucduct','vacuum system duct cost',42250,'$/m','','','',0),(294,'ucech','ECH system cost',0,'$/w','','','',0),(295,'ucel','unit cost for electrical equipment building',380,'M$/m3','','','',0),(296,'ucf1','cost of fuelling system',22300000,'dollar','','','',0),(297,'ucfnc','outer PF coil fence support cost',35,'$/kg','','','',0),(298,'ucfpr','cost of 60g/day tritium processing unit ',44000000,'dollar','','','',0),(299,'ucfuel','unit cost of D-T fuel',3.45,'M$/year/1200MW','','','',0),(300,'ucfwa','first wall armour cost',60000,'$/m2','','','',0),(301,'ucfwps','first wall passive stabiliser cost',10000000,'dollar','','','',0),(302,'ucfws','first wall structure cost',53000,'$/m2','','','',0),(303,'ucgss','cost of reactor structure',35,'$/kg','','','',0),(304,'uche3','cost of helium',1000000,'$/kg','','','',0),(305,'uchrs','cost pf heat rejection system ',87900000,'dollar','','','',0),(306,'uchts_0','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',15.3,'($/W)','','','',0),(307,'uchts_1','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',19.1,'($/W)','','','',0),(308,'uciac','cost of instrumentation, control & diagnostics ',150000000,'dollar','','','',0),(309,'ucich','ICH system cost',3,'$/W','','','',0),(310,'ucint','superconductor intercoil structure cost',35,'$/kg','','','',0),(311,'uclh','lower hybrid system cost ',3.3,'$/W','','','',0),(312,'uclv','low voltage system cost',16,'$/kVA','','','',0),(313,'ucmb','unit cost for reactor maintenance building',260,'M$/m3','','','',0),(314,'ucme','cost of maintenance equipment',300000000,'dollar','','','',0),(315,'ucmisc','miscellaneous plant allowance',25000000,'dollar','','','',0),(316,'ucnbi','NBI system cost',3.3,'$/W','','','',0),(317,'ucnbv','cost of nuclear building ventilation',1000,'$/m3','','','',0),(318,'ucoam_0','annual cost of operation and maintenance ',68.8,'M$/year/1200MW','','','',0),(319,'ucoam_1','annual cost of operation and maintenance ',68.8,'M$/year/1200MW','','','',0),(320,'ucoam_2','annual cost of operation and maintenance ',68.8,'M$/year/1200MW','','','',0),(321,'ucoam_3','annual cost of operation and maintenance ',74.4,'M$/year/1200MW','','','',0),(322,'ucpens','penetration shield cost',32,'$/kg','','','',0),(323,'ucpfb','cost of PF coil buses',210,'$/kA-m','','','',0),(324,'ucpfbk','cost of PF coil DC breakers',0,'$/MVA','','','',0),(325,'ucpfbs','cost of PF burn power supplies',0,'$/kW','','','',0),(326,'ucpfcb','cost of PF coil AC breakers',75000,'$/circuit','','','',0),(327,'ucpfdr1','cost factor for dump resistors',150,'$/MJ','','','',0),(328,'ucpfic','cost of PF instrumentation and control',0,'$/channel','','','',0),(329,'ucpfps','cost of PF coil pulsed power supplies',0,'$/MVA','','','',0),(330,'ucphx','primary heat transport cost',15,'$/W','','','',0),(331,'ucpp','cost of primary power transformers',48,'$/kVA','','','',0),(332,'ucrb','cost of reactor building',400,'M$/m3','','','',0),(333,'ucsc_0','cost of superconductor',600,'$/kg','','','',0),(334,'ucsc_1','cost of superconductor',600,'$/kg','','','',0),(335,'ucsc_2','cost of superconductor',300,'$/kg','','','',0),(336,'ucsc_3','cost of superconductor',600,'$/kg','','','',0),(337,'ucsc_4','cost of superconductor',600,'$/kg','','','',0),(338,'ucsc_5','cost of superconductor',600,'$/kg','','','',0),(339,'ucsc_6','cost of superconductor',300,'$/kg','','','',0),(340,'ucsc_7','cost of superconductor',1200,'$/kg','','','',0),(341,'ucsc_8','cost of superconductor',1200,'$/kg','','','',0),(342,'ucsh','cost of shops and warehouses',115,'M$/m3','','','',0),(343,'ucshld','cost of shield structural steel',32,'$/kg','','','',0),(344,'ucswyd','switchyard equipment costs',18400000,'dollar','','','',0),(345,'uctarg','cost of IFE target',0.3,'$/target','','','',0),(346,'uctfbr','cost of TF coil breakers',1.22,'$/W','','','',0),(347,'uctfbus','cost of TF coil bus',100,'$/kg','','','',0),(348,'uctfdr','cost of TF coil dump resistors',0.000175,'$/J','','','',0),(349,'uctfgr','additional cost of TF coil dump resistors',5000,'$/coil','','','',0),(350,'uctfic','cost of TF coil instrumentation and control',10000,'$/coil','','','',0),(351,'uctfps','cost of TF coil power supplies',24,'$/W','','','',0),(352,'uctfsw','cost of TF coil slow dump switches',1,'$/A','','','',0),(353,'uctpmp','cost of turbomolecular pump',110500,'dollar','','','',0),(354,'uctr','cost of tritium building',370,'$/m3','','','',0),(355,'ucturb_0','cost of turbine plant equipment (dependent on coolant type coolwh)',230000000,'dollar','','','',0),(356,'ucturb_1','cost of turbine plant equipment (dependent on coolant type coolwh)',245000000,'dollar','','','',0),(357,'ucvalv','vacuum system valve cost',390000,'dollar','','','',0),(358,'ucvdsh','vacuum duct shield cost',26,'$/kg','','','',0),(359,'ucviac','vacuum system instrumentation and control cost ',1300000,'$','','','',0),(360,'ucwindpf','cost of PF coil superconductor windings',465,'$/m','','','',0),(361,'ucwindtf','cost of TF coil superconductor windings',480,'$/m3','','','',0),(362,'ucws','cost of active assembly shop',460,'$/m3','','','',0),(363,'ucwst_0','cost of waste disposal',0,'M$/year/1200MW','','','',0),(364,'ucwst_1','cost of waste disposal',3.94,'M$/year/1200MW','','','',0),(365,'ucwst_2','cost of waste disposal',5.91,'M$/year/1200MW','','','',0),(366,'ucwst_3','cost of waste disposal',7.88,'M$/year/1200MW','','','',0),(367,'umass','unified atomic mass unit',1.66e-27,'kg','','','wtgpd',0),(368,'vacdshm','mass of vacuum duct shield ',0,'kg','','','',0),(369,'vachtmw','vacuum pump power',0.5,'MW','','','',0),(370,'vcdimax','diameter of duct passage',0.439970075,'m','','','',0),(371,'vf','winding pack void fraction of PF coil i for coolant',0.3,'N/A','','','',0),(372,'vfohc','void fraction of central solenoid conductor for coolant',0.3,'N/A','','','',0),(373,'vol','plasma volume',1493.47,'m3','','','rndfuel',0),(374,'volrci','internal volume of reactor building',2044019.58,'m3','calvolcri','rbvfac, wrbi, drbi, hrbi','',0),(375,'vpfskv','PF coil voltage',0,'kV','','','',0),(376,'vpumpn','number of high vacuum pumps',100,'N/A','','','',0),(377,'vtfskv','voltage across a TF coil during quench',10.4,'kV','','','',0),(378,'vvmass','vacuum vessel mass',21187467.52,'kg','','','',0),(379,'wgt2','hot cell crane capacity (calculated if 0 is input)',100000,'kg','','','rmbvol, wsvol',0),(380,'whtblbe','mass of blanket - beryllium part',1125639.113,'kg','','','',0),(381,'whtblbreed','mass of blanket - breeder part',0,'kg','','','',0),(382,'whtblli','mass of blanket - lithium part ',0,'kg','','','',0),(383,'whtblss','mass of blanket - steel part',1312706.223,'kg','','','',0),(384,'whtblvd','mass of blanket - vanadium part',0,'kg','','','',0),(385,'whtcas','mass per coil of external case',36370,'kg','','','',0),(386,'whtconcu','copper mass in TF coil conductor',19630,'kg/coil','','','',0),(387,'whtconsc','superconductor mass in TF coil cable',5774,'kg/coil','','','',0),(388,'whtcp','mass of TF coil inboard legs',0,'kg','','','',0),(389,'whtpfs','total mass of the PF coil structure',0,'kg','','','',0),(390,'whtshld','mass of shield',1484460.522,'kg','','','',0),(391,'whttflgs','mass of the TF coil legs',0,'kg','','','',0),(392,'wpenshld','mass of the penetration shield',1484460.522,'kg','','','',0),(393,'wrbi','distance from centre of machine to building wall ',63.3,'m','','','rbvol, volrci',0),(394,'wsvfac','warm shop building volume multiplication factor',1.9,'N/A','','','wsvol',0),(395,'wsvol','volume of warm shop building',92803.91,'m3','calwsvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, fndt, wsvfac','',0),(396,'wtblli2o','mass of blanket - Li_2O part',182147.6978,'kg','','','',0),(397,'wtbllipb','mass of blanket - Li-Pb part',0,'kg','','','',0),(398,'wtgpd','mass of fuel used per day',703.5175638,'kg','calwtgpd','targtm, reprat, rndfuel, afuel, umass, ife','',0); -/*!40000 ALTER TABLE `ste_var` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `variable` --- - -DROP TABLE IF EXISTS `variable`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `variable` ( - `ind` int NOT NULL AUTO_INCREMENT, - `var_name` text, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`ind`) -) ENGINE=InnoDB AUTO_INCREMENT=508 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `variable` --- - -LOCK TABLES `variable` WRITE; -/*!40000 ALTER TABLE `variable` DISABLE KEYS */; -INSERT INTO `variable` VALUES (1,'c_turbine','Turbine equipment cost',362.62,'million',NULL,NULL,NULL,0),(2,'n_231','Scaling exponent law',1.035,'1','tur_exp_n','p_in',NULL,0),(3,'p_in','Inlet turbine pressure',67,'bar',NULL,NULL,'n_231',0),(4,'scale_tur_231_fac','factory scale of cost from turbine',1.017,'1',NULL,NULL,NULL,0),(5,'c_231_fac','Turbine factory cost',356.031,'million',NULL,NULL,NULL,0),(6,'prn_fac_231_lab','labor portion of cost from factory of 231',0.061,'1',NULL,NULL,NULL,0),(7,'prn_fac_231_mat','material portion of cost from factory of 231',0.0112,'1',NULL,NULL,NULL,0),(8,'c_262_fac','Heat Rejection System factory cost',86.81393498,'million',NULL,NULL,NULL,0),(9,'c_262_lab','Heat Rejection System labor cost',35.89660737,'million',NULL,NULL,NULL,0),(10,'c_262_mat','Heat Rejection System material cost',4.510480683,'million',NULL,NULL,NULL,0),(11,'mwth','user_input mwth',NULL,'MW',NULL,NULL,NULL,0),(12,'scale_0.8','thermal scale 0.8',0.8,'1',NULL,NULL,NULL,0),(13,'c_233_fac','Condensing Systems factory cost',56.339442,'million',NULL,NULL,NULL,0),(14,'c_233_lab','Condensing Systems labor cost',22.964285,'million',NULL,NULL,NULL,0),(15,'c_233_mat','Condensing Systems material cost',3.2777465,'million',NULL,NULL,NULL,0),(16,'escalate_1987','escalator 1987 to 2017',2.849407,'1',NULL,NULL,NULL,0),(17,'ref_252_fac','Air, water and steam service systems factory cost ',8.72798,'million',NULL,NULL,NULL,0),(18,'ref_252_lab','Air, water and steam service systems labor cost ',15.572281,'million',NULL,NULL,NULL,0),(19,'ref_252_mat','Air, water and steam service systems material cost ',4.425393,'million',NULL,NULL,NULL,0),(20,'c_221.12_cs_weight','weight of the carbon steel parts of the vessel',536,'ton',NULL,NULL,'c_221.12_tol_weight',0),(21,'c_221.12_ss_weight','weight of the stainless steel cladding of the vessel',18.3,'ton',NULL,NULL,'c_221.12_tol_weight',0),(22,'c_221.12_tol_weight','weight of the reactor primary vessel',554.3,'ton','rpv_mass','c_221.12_cs_weight, c_221.12_ss_weight','',0),(23,'c_rpv_lab','per-unit mass cost of labor of RPV',0.0128,'million/ton',NULL,NULL,NULL,0),(24,'c_rpv_mat','per-unit mass cost of material of RPV',0.00128,'million/ton',NULL,NULL,NULL,0),(25,'ref_211_fac','yardwork factory cost',0.284275,'million',NULL,NULL,NULL,0),(26,'ref_211_lab','yardwork labor cost',14.504359,'million',NULL,NULL,NULL,0),(27,'ref_211_mat','yardwork material cost',10.203885,'million',NULL,NULL,NULL,0),(28,'ref_222.13_fac','steam generator equipment factory cost',0.026371,'million',NULL,NULL,NULL,0),(29,'no_of_sg','total number of SG',4,'1',NULL,NULL,NULL,0),(30,'c_SG_per_unit_lab','unit site labor cost of SG',0.5265705,'million',NULL,NULL,NULL,0),(31,'c_SG_per_unit_mat','unit site material cost of SG',0.05265705,'million',NULL,NULL,NULL,0),(32,'c_234_fac','feedwater heating system factory cost',44.87430168,'million',NULL,NULL,NULL,0),(33,'c_234_lab','feedwater heating system labor cost',20.31736062,'million',NULL,NULL,NULL,0),(34,'c_234_mat','feedwater heating system material cost',2.022431917,'million',NULL,NULL,NULL,0),(35,'c_213_fac','Turbine building structure factory cost',1.7706643,'million',NULL,NULL,NULL,0),(36,'c_213_lab','Turbine building structure labor cost',31.835162,'million',NULL,NULL,NULL,0),(37,'c_213_mat','Turbine building structure material cost',32.364585,'million',NULL,NULL,NULL,0),(38,'c_231_lab','Turbine labor cost',21.74613521,'million',NULL,NULL,NULL,0),(39,'c_231_mat','Turbine material cost',3.998108627,'million',NULL,NULL,NULL,0),(40,'prn_235_of_231_fac','factory portion of cost from factory of 231',0.089454842,'1',NULL,NULL,NULL,0),(41,'prn_235_of_231_lab','labor portion of cost from labor of 231',1.302615598,'1',NULL,NULL,NULL,0),(42,'prn_235_of_231_mat','material portion of cost from labor of 231',0.858473379,'1',NULL,NULL,NULL,0),(43,'mwe','user_input MWE',NULL,'MW',NULL,NULL,NULL,0),(44,'scale_0.4','electric scale 0.4',0.4,'1',NULL,NULL,NULL,0),(45,'c_241_fac','Switchgear factory cost',32.06748045,'million',NULL,NULL,NULL,0),(46,'c_241_lab','Switchgear labor cost',1.720620353,'million',NULL,NULL,NULL,0),(47,'c_241_mat','Switchgear material cost',0.251722551,'million',NULL,NULL,NULL,0),(48,'c_242_fac','Station service equipment factory cost',52.15781338,'million',NULL,NULL,NULL,0),(49,'c_242_lab','Station service equipment labor cost',4.446166005,'million',NULL,NULL,NULL,0),(50,'c_242_mat','Station service equipment material cost',0.849719287,'million',NULL,NULL,NULL,0),(51,'c_245_fac','Electric structure and wiring contnr. factory cost',0,'million',NULL,NULL,NULL,0),(52,'c_245_lab','Electric structure and wiring contnr. labor cost',51.23668914,'million',NULL,NULL,NULL,0),(53,'c_245_mat','Electric structure and wiring contnr. material cost',12.30988227,'million',NULL,NULL,NULL,0),(54,'c_246_fac','Power and control wiring factory cost',4.510910469,'million',NULL,NULL,NULL,0),(55,'c_246_lab','Power and control wiring labor cost',33.4345167,'million',NULL,NULL,NULL,0),(56,'c_246_mat','Power and control wiring material cost',20.75545101,'million',NULL,NULL,NULL,0),(57,'ref_227_fac','Reactor instrumentation and control factory cost',13.174092,'million',NULL,NULL,NULL,0),(58,'ref_227_lab','Reactor instrumentation and control labor cost',7.707179,'million',NULL,NULL,NULL,0),(59,'ref_227_mat','Reactor instrumentation and control material cost',0.673999,'million',NULL,NULL,NULL,0),(60,'ref_224_fac','Radwaste processing factory cost',16.16052583,'million',NULL,NULL,NULL,0),(61,'ref_224_lab','Radwaste processing labor cost',4.012887083,'million',NULL,NULL,NULL,0),(62,'ref_224_mat','Radwaste processing material cost',0.768994167,'million',NULL,NULL,NULL,0),(63,'scale_1.0','thermal scale 1.0',1,'1',NULL,NULL,NULL,0),(64,'c_226.7_fac','Aux Cool Sys factory cost',28.1793245,'million',NULL,NULL,NULL,0),(65,'c_226.7_lab','Aux Cool Sys labor cost',24.62559158,'million',NULL,NULL,NULL,0),(66,'c_226.7_mat','Aux Cool Sys material cost',2.393292923,'million',NULL,NULL,NULL,0),(67,'no_of_rcpump','total number of reactor coolant pumps',4,'1',NULL,NULL,NULL,0),(68,'c_pump_per_unit_fac','Reactor coolant pumps Factory Equipment Cost',31.31,'million','pump','c_pump_ap1000,CH_12be,CH_AP1000,scale_0.52',NULL,0),(69,'c_pump_ap1000','AP1000 factory cost of main coolant pumps',31.25,'million',NULL,NULL,'c_pump_per_unit_fac',0),(70,'CH_12be','CH factor of PWR-12 BE',28853000,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0),(71,'CH_AP1000','CH factor of AP1000',28743750,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0),(72,'scale_0.52','SH scale 0,52',0.52,'1',NULL,NULL,'c_pump_per_unit_fac',0),(73,'c_226.4_fac','Coolant Treatment & Recycle factory cost',19.44327059,'million',NULL,NULL,NULL,0),(74,'c_226.4_lab','Coolant Treatment & Recycle labor cost',18.62163221,'million',NULL,NULL,NULL,0),(75,'c_226.4_mat','Coolant Treatment & Recycle material cost',2.70578264,'million',NULL,NULL,NULL,0),(76,'c_222.11_fac','Fluid Circulation Drive System (Field Cost 222) factory cost',3.780837782,'million',NULL,NULL,NULL,0),(77,'c_222.11_lab','Fluid Circulation Drive System (Field Cost 222) labor cost',4.374124686,'million',NULL,NULL,NULL,0),(78,'c_222.11_mat','Fluid Circulation Drive System (Field Cost 222) material cost',0.437412469,'million',NULL,NULL,NULL,0),(79,'c_222.12_fac','Reactor Coolant Piping System (Field Cost 222) factory cost',4.394349539,'million',NULL,NULL,NULL,0),(80,'c_222.12_lab','Reactor Coolant Piping System (Field Cost 222) labor cost',11.38158584,'million',NULL,NULL,NULL,0),(81,'c_222.12_mat','Reactor Coolant Piping System (Field Cost 222) material cost',1.119106974,'million',NULL,NULL,NULL,0),(82,'c_222.13_fac','Steam Generator Equipment (Field Cost 222) factory cost',0.075141237,'million',NULL,NULL,NULL,0),(83,'c_222.13_lab','Steam Generator Equipment (Field Cost 222) labor cost',2.106281654,'million',NULL,NULL,NULL,0),(84,'c_222.13_mat','Steam Generator Equipment (Field Cost 222) material cost',0.210628165,'million',NULL,NULL,NULL,0),(85,'c_222.14_fac','Pressurizing System (Field Cost 222) factory cost',0.015028247,'million',NULL,NULL,NULL,0),(86,'c_222.14_lab','Pressurizing System (Field Cost 222) labor cost',0.281934576,'million',NULL,NULL,NULL,0),(87,'c_222.14_mat','Pressurizing System (Field Cost 222) material cost',0.028192508,'million',NULL,NULL,NULL,0),(88,'c_222_fac','Main heat transfer transport system factory cost',8.265356805,'million',NULL,NULL,NULL,0),(89,'c_222_lab','Main heat transfer transport system labor cost',18.14392675,'million',NULL,NULL,NULL,0),(90,'c_222_mat','Main heat transfer transport system material cost',1.795340116,'million',NULL,NULL,NULL,0),(91,'c_zero','place holder for weight',0,'ton',NULL,NULL,NULL,0),(92,'c_220A.222_ss_weight','weight of the stainless steel reactor coolant piping',36.740982,'ton',NULL,NULL,NULL,0),(93,'c_220A.2121_ss_weight','weight of the stainless steel lower internals',102.5,'ton',NULL,NULL,NULL,0),(94,'c_220A.2122_ss_weight','weight of the stainless steel upper internals',102.5,'ton',NULL,NULL,NULL,0),(95,'no_of_cr','Total control rods',53,'1',NULL,NULL,NULL,0),(96,'no_of_crd','Total control rod drives',57,'1',NULL,NULL,NULL,0),(97,'c_cr_per_unit_fac','unit cost of rod',0.06,'million',NULL,NULL,NULL,0),(98,'c_crd_per_unit_fac','unit cost of rod drive',0.61152,'million',NULL,NULL,NULL,0),(99,'c_220A.224_cs_weight_plate','weight of the carbon steel pressurizer',97.3,'ton',NULL,NULL,NULL,0),(100,'c_220A.224_ss_weight','weight of the stainless steel pressurizer',3.3,'ton',NULL,NULL,NULL,0),(101,'c_237_lab','Turbine plant miscellaneous items labor cost',13.13086529,'million',NULL,NULL,NULL,0),(102,'c_237_mat','Turbine plant miscellaneous items material cost',9.795178491,'million',NULL,NULL,NULL,0),(103,'ref_228_lab','Reactor plant miscellaneous items labor cost',4.27308,'million',NULL,NULL,NULL,0),(104,'ref_228_mat','Reactor plant miscellaneous items material cost',3.179195,'million',NULL,NULL,NULL,0),(105,'ref_236_fac','Reactor instrumentation and control factory cost',1.86804,'million',NULL,NULL,NULL,0),(106,'ref_236_lab','Reactor instrumentation and control labor cost',4.591575,'million',NULL,NULL,NULL,0),(107,'ref_236_mat','Reactor instrumentation and control material cost',0.394597083,'million',NULL,NULL,NULL,0),(108,'ref_253_fac','Communications equipment factory cost',1.9488,'million',NULL,NULL,NULL,0),(109,'ref_253_lab','Communications equipment labor cost',3.873139,'million',NULL,NULL,NULL,0),(110,'ref_253_mat','Communications equipment material cost',0.593107,'million',NULL,NULL,NULL,0),(111,'ref_221.14_mat','Transport To Site (Field Cost 221) material cost',5.5385,'million',NULL,NULL,NULL,0),(112,'ref_220A.254_fac','Fuel Storage Racks (NSSS) factory cost',4.4835,'million',NULL,NULL,NULL,0),(113,'c_220A.225_ss_weight','weight of the stainless steel pressurizer relief tank (NSSS)',5.97,'ton',NULL,NULL,NULL,0),(114,'c_220A.2324_ss_weight','weight of the stainless steel boron injection surge tank (NSSS)',0.14742,'ton',NULL,NULL,NULL,0),(115,'c_220A.2322_tot_weight','total weight of accumulator tank (NSSS)',36.2874,'ton',NULL,NULL,NULL,0),(116,'prn_220A.2322cs','portion of weight made by carbon steel accumulator tank (NSSS)',0.87,'1',NULL,NULL,NULL,0),(117,'prn_220A.2322ss','portion of weight made by stainless steel accumulator tank (NSSS)',0.13,'1',NULL,NULL,NULL,0),(118,'no_of_acu','number of accumulator tank',4,'1',NULL,NULL,NULL,0),(119,'c_220A.2323_tot_weight','total weight of Boron injection tank (NSSS)',9.07185,'ton',NULL,NULL,NULL,0),(120,'prn_220A.2323cs','portion of weight made by carbon steel Boron injection tank (NSSS)',0.9,'1',NULL,NULL,NULL,0),(121,'prn_220A.2323ss','portion of weight made by stainless steel Boron injection tank (NSSS)',0.1,'1',NULL,NULL,NULL,0),(122,'no_of_bit','number of Boron injection tank',1,'1',NULL,NULL,NULL,0),(123,'c_220A.251_cs_weight','weight of the carbon steel parts of the fuel handling tools (NSSS)',0,'ton',NULL,NULL,NULL,0),(124,'c_220A.251_ss_weight','weight of the stainless steel cladding of the fuel handling tools (NSSS)',0.15,'ton',NULL,NULL,NULL,0),(125,'factor_220A.251','factor to calculate fuel handling tool',8.6,'1',NULL,NULL,NULL,0),(126,'c_220A.2312_cs_weight','weight of the carbon steel parts of the residual heat removal heat exchanger (NSSS)',5.26168,'ton',NULL,NULL,NULL,0),(127,'c_220A.2312_ss_weight','weight of the stainless steel cladding of the residual heat removal heat exchanger (NSSS)',7.89252,'ton',NULL,NULL,NULL,0),(128,'factor_220A.2312','facility number of residual heat removal heat exchanger (NSSS)',2,'1',NULL,NULL,NULL,0),(129,'vol_223.4','volume of Containment Spray System (Field Cost 223)',86488,'m^3',NULL,NULL,NULL,0),(130,'c_223.4_unit_vol_fac','unit volume cost of containment spray system (Field Cost 223) for factory cost',100.8568057,'dollar/m^3',NULL,NULL,NULL,0),(131,'c_223.4_unit_vol_lab','unit volume cost of containment spray system (Field Cost 223) for labor cost',68.21002196,'dollar/m^3',NULL,NULL,NULL,0),(132,'c_223.4_unit_vol_mat','unit volume cost of containment spray system (Field Cost 223) for material cost',6.850324226,'dollar/m^3',NULL,NULL,NULL,0),(133,'escalate_1978','escalator 1978 to 2017',6.72,'1',NULL,NULL,NULL,0),(134,'ref_220A.254_1978','Fuel Storage Racks (NSSS) cost from Combustion Engineering (1978)',0.374,'million',NULL,NULL,NULL,0),(135,'c_226.4111_fac','factory cost of pump 226.4111',0.012369,'million',NULL,NULL,NULL,0),(136,'c_226.4112_fac','factory cost of pump 226.4112',0.009969,'million',NULL,NULL,NULL,0),(137,'c_226.41131_fac','factory cost of pump 226.41131',0.009315,'million',NULL,NULL,NULL,0),(138,'c_226.41132_fac','factory cost of pump 226.41132',1.550825,'million',NULL,NULL,NULL,0),(139,'c_226.4114_fac','factory cost of pump 226.4114',0.621445,'million',NULL,NULL,NULL,0),(140,'c_226.41151_fac','factory cost of pump 226.41151',0.009969,'million',NULL,NULL,NULL,0),(141,'c_226.41152_fac','factory cost of pump 226.41152',0.009315,'million',NULL,NULL,NULL,0),(142,'c_226.4121_fac','factory cost of pump 226.4121',0.365595,'million',NULL,NULL,NULL,0),(143,'c_226.4122_fac','factory cost of pump 226.4122',0.264535,'million',NULL,NULL,NULL,0),(144,'c_226.4123_fac','factory cost of pump 226.4123',0.326246,'million',NULL,NULL,NULL,0),(145,'c_226.4124_fac','factory cost of pump 226.4124',0.445745,'million',NULL,NULL,NULL,0),(146,'c_226.4125_fac','factory cost of pump 226.4125',0.489879,'million',NULL,NULL,NULL,0),(147,'c_226.4126_fac','factory cost of pump 226.4126',0.176357,'million',NULL,NULL,NULL,0),(148,'c_226.4127_fac','factory cost of pump 226.4127',0.32332,'million',NULL,NULL,NULL,0),(149,'c_226.4128_fac','factory cost of pump 226.4128',0.059058,'million',NULL,NULL,NULL,0),(150,'c_226.4133_fac','factory cost of pump 226.4133',0.667914,'million',NULL,NULL,NULL,0),(151,'c_226.4134_fac','factory cost of pump 226.4134',0.044225,'million',NULL,NULL,NULL,0),(152,'c_226.4135_fac','factory cost of pump 226.4135',0.421841,'million',NULL,NULL,NULL,0),(153,'c_226.4131_fac','factory cost of pump 226.4131',0.011249,'million',NULL,NULL,NULL,0),(154,'c_226.4141_fac','factory cost of pump 226.4141',0.44012,'million',NULL,NULL,NULL,0),(155,'c_226.4142_fac','factory cost of pump 226.4142',0.22006,'million',NULL,NULL,NULL,0),(156,'c_226.4143_fac','factory cost of pump 226.4143',0.017,'million',NULL,NULL,NULL,0),(157,'c_226.4144_fac','factory cost of pump 226.4144',0.017,'million',NULL,NULL,NULL,0),(158,'c_226.4145_fac','factory cost of pump 226.4145',1.757669,'million',NULL,NULL,NULL,0),(159,'c_251.12_fac','factory cost of Cont. build',7.3,'million',NULL,NULL,NULL,0),(160,'c_251.111_fac','factory cost of Turbine room',3.65,'million',NULL,NULL,NULL,0),(161,'c_251.112_fac','factory cost of Heater bay',1.46,'million',NULL,NULL,NULL,0),(162,'c_251.16_fac','factory cost of Various',0.88,'million',NULL,NULL,NULL,0),(163,'c_251.17_fac','factory cost of Diesel building',1.23,'million',NULL,NULL,NULL,0),(164,'c_251.12_lab','labor cost of Cont. build',1.19,'million',NULL,NULL,NULL,0),(165,'c_251.111_lab','labor cost of Turbine room',0.42,'million',NULL,NULL,NULL,0),(166,'c_251.112_lab','labor cost of Heater bay',0.17,'million',NULL,NULL,NULL,0),(167,'c_251.16_lab','labor cost of Various',0.56,'million',NULL,NULL,NULL,0),(168,'c_251.17_lab','labor cost of Diesel building',0.1,'million',NULL,NULL,NULL,0),(169,'c_251.12_mat','material cost of Cont. build',0.12,'million',NULL,NULL,NULL,0),(170,'c_251.111_mat','material cost of Turbine room',0.04,'million',NULL,NULL,NULL,0),(171,'c_251.112_mat','material cost of Heater bay',0.02,'million',NULL,NULL,NULL,0),(172,'c_251.16_mat','material cost of Various',0.06,'million',NULL,NULL,NULL,0),(173,'c_251.17_mat','material cost of Diesel building',0.01,'million',NULL,NULL,NULL,0),(174,'fac_223.1','factor to calculate RHR System',0.85,'1',NULL,NULL,NULL,0),(175,'prn_223.1_fac','factory cost prtion of RHR',0.436094856,'1',NULL,NULL,NULL,0),(176,'prn_223.1_lab','labor cost prtion of RHR',0.51502725,'1',NULL,NULL,NULL,0),(177,'prn_223.1_mat','material cost prtion of RHR',0.048877893,'1',NULL,NULL,NULL,0),(178,'c_220A.2311_fac','factory cost of residual heat removal Pumps & Drives (NSSS)',1.94000166,'million',NULL,NULL,NULL,0),(179,'c_220A.2312_fac','factory cost of residual heat removal Heat Exchanger (NSSS)',6.260001859,'million',NULL,NULL,NULL,0),(180,'fac_223.3','factor to calculate safety injection system',0.58,'1',NULL,NULL,NULL,0),(181,'prn_223.3_fac','factory cost prtion of safety injection system',0.360489103,'1',NULL,NULL,NULL,0),(182,'prn_223.3_lab','labor cost prtion of safety injection system',0.547767283,'1',NULL,NULL,NULL,0),(183,'prn_223.3_mat','material cost prtion of safety injection system',0.091743613,'1',NULL,NULL,NULL,0),(184,'c_220A.2321_fac','factory cost of Safety Injection Pumps And Drives (NSSS)',1.720001794,'million',NULL,NULL,NULL,0),(185,'c_220A.2322_fac','factory cost of Accumulator Tank (NSSS)',15.30000486,'million',NULL,NULL,NULL,0),(186,'c_220A.2323_fac','factory cost of Boron Injection Tank (NSSS)',0.899999448,'million',NULL,NULL,NULL,0),(187,'c_220A.2324_fac','factory cost of Boron Injection Surge Tank (NSSS)',0.050001394,'million',NULL,NULL,NULL,0),(188,'c_220A.2325_fac','factory cost of Boron Injection Recirc. Pump & Drives (NSSS)',0.039999975,'million',NULL,NULL,NULL,0),(189,'c_218B_fac','Placeholder',2.337579893,'million',NULL,NULL,NULL,0),(190,'c_218J_fac','Placeholder',0.094628806,'million',NULL,NULL,NULL,0),(191,'c_218T_fac','Placeholder',0.121724293,'million',NULL,NULL,NULL,0),(192,'c_220A.2311_fac','Placeholder',1.94000166,'million',NULL,NULL,NULL,0),(193,'c_220A.2321_fac','Placeholder',1.720001794,'million',NULL,NULL,NULL,0),(194,'c_220A.2325_fac','Placeholder',0.039999975,'million',NULL,NULL,NULL,0),(195,'c_218B_lab','Placeholder',9.663946677,'million',NULL,NULL,NULL,0),(196,'c_218J_lab','Placeholder',15.05977373,'million',NULL,NULL,NULL,0),(197,'c_218T_lab','Placeholder',8.910343825,'million',NULL,NULL,NULL,0),(198,'c_218B_mat','Placeholder',6.93662252,'million',NULL,NULL,NULL,0),(199,'c_218J_mat','Placeholder',7.26234892,'million',NULL,NULL,NULL,0),(200,'c_218T_mat','Placeholder',4.065434178,'million',NULL,NULL,NULL,0),(201,'CPI','The Consumer Price Index',2.2,'1',NULL,NULL,'infl',0),(202,'Void_fraction','Void fraction of the inside of the containment ',0.917,'1',NULL,NULL,'Internal_v_m3',0),(203,'liner_fraction','liner fraction of containment',1,'1',NULL,NULL,'Liner_s_m2',0),(204,'Cont_H_tot_m','Containment total height ',66.7512,'m',NULL,NULL,'Cont_H_wall_m',0),(205,'Cont_rad_out_m','Containment outside radius ',23.0124,'m',NULL,NULL,'Cont_H_wall_m,Cont_rad_in_m,Basemat_s_m2,Walls_s_m2,Walls_v_m3,Dome_rad_in_m,Dome_s_m2,Dome_v_m3,Surf_paint_m2',0),(206,'Cont_shell_t_m','Shell wall thickness ',1.3716,'m',NULL,NULL,'Cont_rad_in_m',0),(207,'Cont_H_wall_m','Containment wall height ',43.7388,'m','wall_height','Cont_H_tot_m,Cont_rad_out_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s,Surf_paint_m2',0),(208,'Basemat_t_m','Basemat thickness ',3.048,'m',NULL,NULL,'Basemat_v_m3',0),(209,'Dome_t_m','Dome thickness ',1.0668,'m',NULL,NULL,'Dome_rad_in_m',0),(210,'Intern_wall_t','Internal wall average thickness ',1.2192,'m',NULL,NULL,'Internal_s_m2',0),(211,'React_cav_A_m2','Reactor cavity area ',1021.93344,'m^2',NULL,NULL,'Total_Labor_React_cav_liner,Total_Mat_React_cav_liner',0),(212,'Cont_rad_in_m','Containment inside radius ',21.6408,'m','inside_rad','Cont_rad_out_m,Cont_shell_t_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s',0),(213,'Basemat_s_m2','Basemat surface',1663.694961,'m^2','round_surface','Cont_rad_out_m','Basemat_v_m3,Total_Labor_Constr_joints_Substr,Total_Labor_Formwork_Substr,Total_Labor_Waterproofing_Substr,Total_Labor_Welded_wire_fabric_Substr,Total_Mat_Constr_joints_Substr,Total_Mat_Formwork_Substr,Total_Mat_Waterproofing_Substr,Total_Mat_Welded_wire_fabric_Substr',0),(214,'Basemat_v_m3','Basemat volume',5070.942242,'m^3','basemat_volume','Basemat_s_m2,Basemat_t_m','Struct_v_m3,Total_Labor_Cadweld_Substr,Total_Labor_Concrete_Substr,Total_Labor_Embedded_steel_Substr,Total_Labor_Reinforc_steel_Substr,Total_Mat_Cadweld_Substr,Total_Mat_Concrete_Substr,Total_Mat_Embedded_steel_Substr,Total_Mat_Reinforc_steel_Substr',0),(215,'Walls_s_m2','Walls surface',12271.54712,'m^2','walls_surface','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Total_Labor_Constr_joints_Superstr,Total_Labor_Formwork_Superstr,Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Waterproofing_Superstr,Total_Mat_Constr_joints_Superstr,Total_Mat_Formwork_Superstr,Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Waterproofing_Superstr',0),(216,'Walls_v_m3','Walls volume',8415.827018,'m^3','wall_volume','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Superstr,Total_Labor_Concrete_Superstr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Reinforc_steel_Superstr,Total_Mat_Cadweld_Superstr,Total_Mat_Concrete_Superstr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Reinforc_steel_Superstr',0),(217,'Dome_rad_in_m','Dome inside radius ',21.9456,'m','inside_rad','Cont_rad_out_m,Dome_t_m','Dome_s_m2,Dome_v_m3,Intern_tot_v_m3,Inside_liner_s',0),(218,'Dome_s_m2','Roof surface',6353.430773,'m^2','roof_surface','Cont_rad_out_m,Dome_rad_in_m','Total_Labor_Constr_joints_Dome,Total_Labor_Formwork_Dome,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Waterproofing_Dome,Total_Mat_Constr_joints_Dome,Total_Mat_Formwork_Dome,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Waterproofing_Dome',0),(219,'Dome_v_m3','Roof volume',3387.648588,'m^3','roof_volume','Cont_rad_out_m,Dome_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Dome,Total_Labor_Concrete_Dome,Total_Labor_Embedded_steel_Dome,Total_Labor_Reinforc_steel_Dome,Total_Mat_Cadweld_Dome,Total_Mat_Concrete_Dome,Total_Mat_Embedded_steel_Dome,Total_Mat_Reinforc_steel_Dome',0),(220,'Intern_tot_v_m3','Tot intenal Volume',86488.28818,'m^3','tot_internal_volume','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Internal_v_m3,Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other,Total_Labor_fl_grate_handrail_stairs,Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other,Total_Mat_fl_grate_handrail_stairs',0),(221,'Internal_v_m3','Building internal volume',7178.527919,'m^3','building_internal_volume','Intern_tot_v_m3,Void_fraction','Internal_s_m2,Struct_v_m3,Total_Labor_Cadweld_Interior,Total_Labor_Concrete_Interior,Total_Labor_Embedded_steel_Interior,Total_Labor_Maj_supp_embedments_Interior,Total_Labor_Reinforc_steel_Interior,Total_Mat_Cadweld_Interior,Total_Mat_Concrete_Interior,Total_Mat_Embedded_steel_Interior,Total_Mat_Maj_supp_embedments_Interior,Total_Mat_Reinforc_steel_Interior',0),(222,'Internal_s_m2','Building internal surface',11775.80039,'m^2','building_internal _surface','Internal_v_m3,Intern_wall_t','Surf_paint_m2,Total_Labor_Constr_joints_Interior,Total_Labor_Formwork_Interior,Total_Labor_Rubbing_surfaces_Interior,Total_Mat_Constr_joints_Interior,Total_Mat_Formwork_Interior,Total_Mat_Rubbing_surfaces_Interior',0),(223,'Struct_v_m3','volume of the structures ',24052.94577,'m^3','volume_of_the_structures ','Basemat_v_m3,Walls_v_m3,Dome_v_m3,Internal_v_m3','Total_Labor_Misc_steel_frames,Total_Labor_Struct_steel,Total_Mat_Misc_steel_frames,Total_Mat_Struct_steel',0),(224,'Inside_liner_s','Inside liner surface',10444.6275,'m^2','Inside_liner_surface','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Liner_s_m2,Surf_paint_m2,',0),(225,'Liner_s_m2','Liner Surface',10444.6275,'m^2','liner_Surface','Inside_liner_s,liner_fraction','Total_Labor_cont_liner,Total_Mat_cont_liner',0),(226,'Surf_paint_m2','painted surface',31872.06223,'m^2','painted_surface','Inside_liner_s,Cont_H_wall_m,Cont_rad_out_m,Internal_s_m2','Total_Labor_painting,Total_Mat_painting',0),(227,'infl','Inflation rate',2.870501004,'1','Inflation_rate','CPI','Unit_Labor_Cadweld_Substr,Unit_Labor_Cadweld_Superstr,Unit_Labor_Cadweld_Dome,Unit_Labor_Cadweld_Interior,Unit_Labor_Concrete_Substr,Unit_Labor_Concrete_Superstr,Unit_Labor_Concrete_Dome,Unit_Labor_Concrete_Interior,Unit_Labor_Constr_joints_Substr,Unit_Labor_Constr_joints_Superstr,Unit_Labor_Constr_joints_Dome,Unit_Labor_Constr_joints_Interior,Unit_Labor_Embedded_steel_Substr,Unit_Labor_Embedded_steel_Superstr,Unit_Labor_Embedded_steel_Dome,Unit_Labor_Embedded_steel_Interior,Unit_Labor_Formwork_Substr,Unit_Labor_Formwork_Superstr,Unit_Labor_Formwork_Dome,Unit_Labor_Formwork_Interior,Unit_Labor_Maj_supp_embedments_Interior,Unit_Labor_Reinforc_steel_Substr,Unit_Labor_Reinforc_steel_Superstr,Unit_Labor_Reinforc_steel_Dome,Unit_Labor_Reinforc_steel_Interior,Unit_Labor_Rubbing_surfaces_Superstr,Unit_Labor_Rubbing_surfaces_Dome,Unit_Labor_Rubbing_surfaces_Interior,Unit_Labor_Waterproofing_Substr,Unit_Labor_Waterproofing_Superstr,Unit_Labor_Waterproofing_Dome,Unit_Labor_Welded_wire_fabric_Substr,Unit_Labor_Lighting_Power,Unit_Labor_Plumb_drains,Unit_Labor_Special_HVAC,Unit_Labor_other,Unit_Labor_Misc_steel_frames,Unit_Labor_React_cav_liner,Unit_Labor_Struct_steel,Unit_Labor_cont_liner,Unit_Labor_fl_grate_handrail_stairs,Unit_Labor_painting,Unit_Mat_Cadweld_Substr,Unit_Mat_Cadweld_Superstr,Unit_Mat_Cadweld_Dome,Unit_Mat_Cadweld_Interior,Unit_Mat_Concrete_Substr,Unit_Mat_Concrete_Superstr,Unit_Mat_Concrete_Dome,Unit_Mat_Concrete_Interior,Unit_Mat_Constr_joints_Substr,Unit_Mat_Constr_joints_Superstr,Unit_Mat_Constr_joints_Dome,Unit_Mat_Constr_joints_Interior,Unit_Mat_Embedded_steel_Substr,Unit_Mat_Embedded_steel_Superstr,Unit_Mat_Embedded_steel_Dome,Unit_Mat_Embedded_steel_Interior,Unit_Mat_Formwork_Substr,Unit_Mat_Formwork_Superstr,Unit_Mat_Formwork_Dome,Unit_Mat_Formwork_Interior,Unit_Mat_Maj_supp_embedments_Interior,Unit_Mat_Reinforc_steel_Substr,Unit_Mat_Reinforc_steel_Superstr,Unit_Mat_Reinforc_steel_Dome,Unit_Mat_Reinforc_steel_Interior,Unit_Mat_Rubbing_surfaces_Superstr,Unit_Mat_Rubbing_surfaces_Dome,Unit_Mat_Rubbing_surfaces_Interior,Unit_Mat_Waterproofing_Substr,Unit_Mat_Waterproofing_Superstr,Unit_Mat_Waterproofing_Dome,Unit_Mat_Welded_wire_fabric_Substr,Unit_Mat_Lighting_Power,Unit_Mat_Plumb_drains,Unit_Mat_Special_HVAC,Unit_Mat_other,Unit_Mat_Misc_steel_frames,Unit_Mat_React_cav_liner,Unit_Mat_Struct_steel,Unit_Mat_cont_liner,Unit_Mat_fl_grate_handrail_stairs,Unit_Mat_painting',0),(228,'Unit_EEDB_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in EEDB',85.46,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Substr',0),(229,'Unit_EEDB_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in EEDB',114.62,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Superstr',0),(230,'Unit_EEDB_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in EEDB',231.09,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Dome',0),(231,'Unit_EEDB_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in EEDB',48.2,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Interior',0),(232,'Unit_EEDB_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in EEDB',72.52,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Substr',0),(233,'Unit_EEDB_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in EEDB',87.39,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Superstr',0),(234,'Unit_EEDB_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in EEDB',78.02,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Dome',0),(235,'Unit_EEDB_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in EEDB',97.57,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Interior',0),(236,'Unit_EEDB_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in EEDB',14.51,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Substr',0),(237,'Unit_EEDB_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in EEDB',12.44,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Superstr',0),(238,'Unit_EEDB_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in EEDB',4.75,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Dome',0),(239,'Unit_EEDB_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in EEDB',2.05,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Interior',0),(240,'Unit_EEDB_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in EEDB',3.98,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Substr',0),(241,'Unit_EEDB_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in EEDB',15.98,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Superstr',0),(242,'Unit_EEDB_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in EEDB',0,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Dome',0),(243,'Unit_EEDB_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in EEDB',337.14,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Interior',0),(244,'Unit_EEDB_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in EEDB',93.11,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Substr',0),(245,'Unit_EEDB_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in EEDB',109.83,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Superstr',0),(246,'Unit_EEDB_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in EEDB',58.66,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Dome',0),(247,'Unit_EEDB_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in EEDB',231.52,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Interior',0),(248,'Unit_EEDB_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in EEDB',153.53,'dollar/m^3',NULL,NULL,'Unit_Labor_Maj_supp_embedments_Interior',0),(249,'Unit_EEDB_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in EEDB',322.55,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Substr',0),(250,'Unit_EEDB_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in EEDB',326.13,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Superstr',0),(251,'Unit_EEDB_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in EEDB',300.56,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Dome',0),(252,'Unit_EEDB_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in EEDB',306.72,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Interior',0),(253,'Unit_EEDB_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in EEDB',8.32,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Superstr',0),(254,'Unit_EEDB_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in EEDB',5.74,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Dome',0),(255,'Unit_EEDB_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in EEDB',9.91,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Interior',0),(256,'Unit_EEDB_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in EEDB',4.58,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Substr',0),(257,'Unit_EEDB_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in EEDB',0.84,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Superstr',0),(258,'Unit_EEDB_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in EEDB',0,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Dome',0),(259,'Unit_EEDB_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in EEDB',10.07,'dollar/m^2',NULL,NULL,'Unit_Labor_Welded_wire_fabric_Substr',0),(260,'Unit_EEDB_Labor_Lighting_Power','Unit cost of Labor Lighting Power in EEDB',9.83,'dollar/m^3',NULL,NULL,'Unit_Labor_Lighting_Power',0),(261,'Unit_EEDB_Labor_Plumb_drains','Unit cost of Labor Plumb drains in EEDB',3.02,'dollar/m^3',NULL,NULL,'Unit_Labor_Plumb_drains',0),(262,'Unit_EEDB_Labor_Special_HVAC','Unit cost of Labor Special HVAC in EEDB',11.09,'dollar/m^3',NULL,NULL,'Unit_Labor_Special_HVAC',0),(263,'Unit_EEDB_Labor_other','Unit cost of Labor other in EEDB',0.53,'dollar/m^3',NULL,NULL,'Unit_Labor_other',0),(264,'Unit_EEDB_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in EEDB',9.94,'dollar/m^3',NULL,NULL,'Unit_Labor_Misc_steel_frames',0),(265,'Unit_EEDB_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in EEDB',745.94,'dollar/m^2',NULL,NULL,'Unit_Labor_React_cav_liner',0),(266,'Unit_EEDB_Labor_Struct_steel','Unit cost of Labor Struct steel in EEDB',13.98,'dollar/m^3',NULL,NULL,'Unit_Labor_Struct_steel',0),(267,'Unit_EEDB_Labor_cont_liner','Unit cost of Labor Containment liner in EEDB',780.33,'dollar/m^2',NULL,NULL,'Unit_Labor_cont_liner',0),(268,'Unit_EEDB_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in EEDB',1.75,'dollar/m^3',NULL,NULL,'Unit_Labor_fl_grate_handrail_stairs',0),(269,'Unit_EEDB_Labor_painting','Unit cost of Labor painting in EEDB',86.8,'dollar/m^2',NULL,NULL,'Unit_Labor_painting',0),(270,'Unit_EEDB_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in EEDB',44.32,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Substr',0),(271,'Unit_EEDB_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in EEDB',59.44,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Superstr',0),(272,'Unit_EEDB_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in EEDB',119.85,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Dome',0),(273,'Unit_EEDB_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in EEDB',25,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Interior',0),(274,'Unit_EEDB_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in EEDB',79.1,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Substr',0),(275,'Unit_EEDB_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in EEDB',54.47,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Superstr',0),(276,'Unit_EEDB_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in EEDB',48.63,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Dome',0),(277,'Unit_EEDB_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in EEDB',53.21,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Interior',0),(278,'Unit_EEDB_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in EEDB',8.9,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Substr',0),(279,'Unit_EEDB_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in EEDB',7.63,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Superstr',0),(280,'Unit_EEDB_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in EEDB',2.91,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Dome',0),(281,'Unit_EEDB_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in EEDB',1.26,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Interior',0),(282,'Unit_EEDB_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in EEDB',1.88,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Substr',0),(283,'Unit_EEDB_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in EEDB',7.57,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Superstr',0),(284,'Unit_EEDB_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in EEDB',0,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Dome',0),(285,'Unit_EEDB_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in EEDB',159.73,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Interior',0),(286,'Unit_EEDB_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in EEDB',13.22,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Substr',0),(287,'Unit_EEDB_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in EEDB',13.65,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Superstr',0),(288,'Unit_EEDB_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in EEDB',7.67,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Dome',0),(289,'Unit_EEDB_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in EEDB',21.85,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Interior',0),(290,'Unit_EEDB_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in EEDB',225.35,'dollar/m^3',NULL,NULL,'Unit_Mat_Maj_supp_embedments_Interior',0),(291,'Unit_EEDB_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in EEDB',364.73,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Substr',0),(292,'Unit_EEDB_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in EEDB',258.95,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Superstr',0),(293,'Unit_EEDB_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in EEDB',238.65,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Dome',0),(294,'Unit_EEDB_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in EEDB',205.66,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Interior',0),(295,'Unit_EEDB_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in EEDB',0.68,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Superstr',0),(296,'Unit_EEDB_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in EEDB',0.47,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Dome',0),(297,'Unit_EEDB_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in EEDB',0.82,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Interior',0),(298,'Unit_EEDB_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in EEDB',2.43,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Substr',0),(299,'Unit_EEDB_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in EEDB',0.45,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Superstr',0),(300,'Unit_EEDB_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in EEDB',0,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Dome',0),(301,'Unit_EEDB_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in EEDB',5.19,'dollar/m^2',NULL,NULL,'Unit_Mat_Welded_wire_fabric_Substr',0),(302,'Unit_EEDB_Mat_Lighting_Power','Unit cost of Material Lighting Power in EEDB',4.96,'dollar/m^3',NULL,NULL,'Unit_Mat_Lighting_Power',0),(303,'Unit_EEDB_Mat_Plumb_drains','Unit cost of Material Plumb drains in EEDB',1.54,'dollar/m^3',NULL,NULL,'Unit_Mat_Plumb_drains',0),(304,'Unit_EEDB_Mat_Special_HVAC','Unit cost of Material Special HVAC in EEDB',8.79,'dollar/m^3',NULL,NULL,'Unit_Mat_Special_HVAC',0),(305,'Unit_EEDB_Mat_other','Unit cost of Material other in EEDB',1.96,'dollar/m^3',NULL,NULL,'Unit_Mat_other',0),(306,'Unit_EEDB_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in EEDB',16.56,'dollar/m^3',NULL,NULL,'Unit_Mat_Misc_steel_frames',0),(307,'Unit_EEDB_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in EEDB',607.96,'dollar/m^2',NULL,NULL,'Unit_Mat_React_cav_liner',0),(308,'Unit_EEDB_Mat_Struct_steel','Unit cost of Material Struct steel in EEDB',27.41,'dollar/m^3',NULL,NULL,'Unit_Mat_Struct_steel',0),(309,'Unit_EEDB_Mat_cont_liner','Unit cost of Material Containment liner in EEDB',1203,'dollar/m^2',NULL,NULL,'Unit_Mat_cont_liner',0),(310,'Unit_EEDB_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in EEDB',1.98,'dollar/m^3',NULL,NULL,'Unit_Mat_fl_grate_handrail_stairs',0),(311,'Unit_EEDB_Mat_painting','Unit cost of Material painting in EEDB',24.68,'dollar/m^2',NULL,NULL,'Unit_Mat_painting',0),(312,'Unit_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in 2017',245.31,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Substr,infl','Total_Labor_Cadweld_Substr',0),(313,'Unit_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in 2017',329.02,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Superstr,infl','Total_Labor_Cadweld_Superstr',0),(314,'Unit_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in 2017',663.34,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Dome,infl','Total_Labor_Cadweld_Dome',0),(315,'Unit_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in 2017',138.36,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Interior,infl','Total_Labor_Cadweld_Interior',0),(316,'Unit_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in 2017',208.17,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Substr,infl','Total_Labor_Concrete_Substr',0),(317,'Unit_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in 2017',250.85,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Superstr,infl','Total_Labor_Concrete_Superstr',0),(318,'Unit_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in 2017',223.96,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Dome,infl','Total_Labor_Concrete_Dome',0),(319,'Unit_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in 2017',280.07,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Interior,infl','Total_Labor_Concrete_Interior',0),(320,'Unit_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in 2017',41.65,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Substr,infl','Total_Labor_Constr_joints_Substr',0),(321,'Unit_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in 2017',35.71,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Superstr,infl','Total_Labor_Constr_joints_Superstr',0),(322,'Unit_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in 2017',13.63,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Dome,infl','Total_Labor_Constr_joints_Dome',0),(323,'Unit_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in 2017',5.88,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Interior,infl','Total_Labor_Constr_joints_Interior',0),(324,'Unit_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in 2017',11.42,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Substr,infl','Total_Labor_Embedded_steel_Substr',0),(325,'Unit_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in 2017',45.87,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Superstr,infl','Total_Labor_Embedded_steel_Superstr',0),(326,'Unit_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in 2017',0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Dome,infl','Total_Labor_Embedded_steel_Dome',0),(327,'Unit_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in 2017',967.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Interior,infl','Total_Labor_Embedded_steel_Interior',0),(328,'Unit_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in 2017',267.27,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Substr,infl','Total_Labor_Formwork_Substr',0),(329,'Unit_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in 2017',315.27,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Superstr,infl','Total_Labor_Formwork_Superstr',0),(330,'Unit_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in 2017',168.38,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Dome,infl','Total_Labor_Formwork_Dome',0),(331,'Unit_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in 2017',664.58,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Interior,infl','Total_Labor_Formwork_Interior',0),(332,'Unit_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in 2017',440.71,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Maj_supp_embedments_Interior,infl','Total_Labor_Maj_supp_embedments_Interior',0),(333,'Unit_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in 2017',925.88,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Substr,infl','Total_Labor_Reinforc_steel_Substr',0),(334,'Unit_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in 2017',936.16,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Superstr,infl','Total_Labor_Reinforc_steel_Superstr',0),(335,'Unit_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in 2017',862.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Dome,infl','Total_Labor_Reinforc_steel_Dome',0),(336,'Unit_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in 2017',880.44,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Interior,infl','Total_Labor_Reinforc_steel_Interior',0),(337,'Unit_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in 2017',23.88,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Superstr,infl','Total_Labor_Rubbing_surfaces_Superstr',0),(338,'Unit_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in 2017',16.48,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Dome,infl','Total_Labor_Rubbing_surfaces_Dome',0),(339,'Unit_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in 2017',28.45,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Interior,infl','Total_Labor_Rubbing_surfaces_Interior',0),(340,'Unit_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in 2017',13.15,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Substr,infl','Total_Labor_Waterproofing_Substr',0),(341,'Unit_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in 2017',2.41,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Superstr,infl','Total_Labor_Waterproofing_Superstr',0),(342,'Unit_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in 2017',0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Dome,infl','Total_Labor_Waterproofing_Dome',0),(343,'Unit_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in 2017',28.91,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Welded_wire_fabric_Substr,infl','Total_Labor_Welded_wire_fabric_Substr',0),(344,'Unit_Labor_Lighting_Power','Unit cost of Labor Lighting Power in 2017',28.22,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Lighting_Power,infl','Total_Labor_Lighting_Power',0),(345,'Unit_Labor_Plumb_drains','Unit cost of Labor Plumb drains in 2017',8.67,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Plumb_drains,infl','Total_Labor_Plumb_drains',0),(346,'Unit_Labor_Special_HVAC','Unit cost of Labor Special HVAC in 2017',31.83,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Special_HVAC,infl','Total_Labor_Special_HVAC',0),(347,'Unit_Labor_other','Unit cost of Labor other in 2017',1.52,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_other,infl','Total_Labor_other',0),(348,'Unit_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in 2017',28.53,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Misc_steel_frames,infl','Total_Labor_Misc_steel_frames',0),(349,'Unit_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in 2017',2141.22,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_React_cav_liner,infl','Total_Labor_React_cav_liner',0),(350,'Unit_Labor_Struct_steel','Unit cost of Labor Struct steel in 2017',40.13,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Struct_steel,infl','Total_Labor_Struct_steel',0),(351,'Unit_Labor_cont_liner','Unit cost of Labor Containment liner in 2017',2239.94,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_cont_liner,infl','Total_Labor_cont_liner',0),(352,'Unit_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',5.02,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_fl_grate_handrail_stairs,infl','Total_Labor_fl_grate_handrail_stairs',0),(353,'Unit_Labor_painting','Unit cost of Labor painting in 2017',249.16,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_painting,infl','Total_Labor_painting',0),(354,'Unit_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in 2017',127.22,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Substr,infl','Total_Mat_Cadweld_Substr',0),(355,'Unit_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in 2017',170.62,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Superstr,infl','Total_Mat_Cadweld_Superstr',0),(356,'Unit_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in 2017',344.03,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Dome,infl','Total_Mat_Cadweld_Dome',0),(357,'Unit_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in 2017',71.76,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Interior,infl','Total_Mat_Cadweld_Interior',0),(358,'Unit_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in 2017',227.06,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Substr,infl','Total_Mat_Concrete_Substr',0),(359,'Unit_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in 2017',156.36,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Superstr,infl','Total_Mat_Concrete_Superstr',0),(360,'Unit_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in 2017',139.59,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Dome,infl','Total_Mat_Concrete_Dome',0),(361,'Unit_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in 2017',152.74,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Interior,infl','Total_Mat_Concrete_Interior',0),(362,'Unit_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in 2017',25.55,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Substr,infl','Total_Mat_Constr_joints_Substr',0),(363,'Unit_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in 2017',21.9,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Superstr,infl','Total_Mat_Constr_joints_Superstr',0),(364,'Unit_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in 2017',8.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Dome,infl','Total_Mat_Constr_joints_Dome',0),(365,'Unit_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in 2017',3.62,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Interior,infl','Total_Mat_Constr_joints_Interior',0),(366,'Unit_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in 2017',5.4,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Substr,infl','Total_Mat_Embedded_steel_Substr',0),(367,'Unit_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in 2017',21.73,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Superstr,infl','Total_Mat_Embedded_steel_Superstr',0),(368,'Unit_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in 2017',0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Dome,infl','Total_Mat_Embedded_steel_Dome',0),(369,'Unit_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in 2017',458.51,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Interior,infl','Total_Mat_Embedded_steel_Interior',0),(370,'Unit_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in 2017',37.95,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Substr,infl','Total_Mat_Formwork_Substr',0),(371,'Unit_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in 2017',39.18,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Superstr,infl','Total_Mat_Formwork_Superstr',0),(372,'Unit_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in 2017',22.02,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Dome,infl','Total_Mat_Formwork_Dome',0),(373,'Unit_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in 2017',62.72,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Interior,infl','Total_Mat_Formwork_Interior',0),(374,'Unit_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in 2017',646.87,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Maj_supp_embedments_Interior,infl','Total_Mat_Maj_supp_embedments_Interior',0),(375,'Unit_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in 2017',1046.96,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Substr,infl','Total_Mat_Reinforc_steel_Substr',0),(376,'Unit_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in 2017',743.32,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Superstr,infl','Total_Mat_Reinforc_steel_Superstr',0),(377,'Unit_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in 2017',685.05,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Dome,infl','Total_Mat_Reinforc_steel_Dome',0),(378,'Unit_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in 2017',590.35,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Interior,infl','Total_Mat_Reinforc_steel_Interior',0),(379,'Unit_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in 2017',1.95,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Superstr,infl','Total_Mat_Rubbing_surfaces_Superstr',0),(380,'Unit_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in 2017',1.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Dome,infl','Total_Mat_Rubbing_surfaces_Dome',0),(381,'Unit_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in 2017',2.35,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Interior,infl','Total_Mat_Rubbing_surfaces_Interior',0),(382,'Unit_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in 2017',6.98,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Substr,infl','Total_Mat_Waterproofing_Substr',0),(383,'Unit_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in 2017',1.29,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Superstr,infl','Total_Mat_Waterproofing_Superstr',0),(384,'Unit_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in 2017',0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Dome,infl','Total_Mat_Waterproofing_Dome',0),(385,'Unit_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in 2017',14.9,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Welded_wire_fabric_Substr,infl','Total_Mat_Welded_wire_fabric_Substr',0),(386,'Unit_Mat_Lighting_Power','Unit cost of Material Lighting Power in 2017',14.24,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Lighting_Power,infl','Total_Mat_Lighting_Power',0),(387,'Unit_Mat_Plumb_drains','Unit cost of Material Plumb drains in 2017',4.42,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Plumb_drains,infl','Total_Mat_Plumb_drains',0),(388,'Unit_Mat_Special_HVAC','Unit cost of Material Special HVAC in 2017',25.23,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Special_HVAC,infl','Total_Mat_Special_HVAC',0),(389,'Unit_Mat_other','Unit cost of Material other in 2017',5.63,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_other,infl','Total_Mat_other',0),(390,'Unit_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in 2017',47.54,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Misc_steel_frames,infl','Total_Mat_Misc_steel_frames',0),(391,'Unit_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in 2017',1745.15,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_React_cav_liner,infl','Total_Mat_React_cav_liner',0),(392,'Unit_Mat_Struct_steel','Unit cost of Material Struct steel in 2017',78.68,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Struct_steel,infl','Total_Mat_Struct_steel',0),(393,'Unit_Mat_cont_liner','Unit cost of Material Containment liner in 2017',3453.21,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_cont_liner,infl','Total_Mat_cont_liner',0),(394,'Unit_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',5.68,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_fl_grate_handrail_stairs,infl','Total_Mat_fl_grate_handrail_stairs',0),(395,'Unit_Mat_painting','Unit cost of Material painting in 2017',70.84,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_painting,infl','Total_Mat_painting',0),(396,'Total_Labor_Cadweld_Substr','Total cost of Labor Cadweld Substructure (base mat) in 2017',1243968.134,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Substr,Basemat_v_m3','Sum_Labor_Cadweld',0),(397,'Total_Labor_Cadweld_Superstr','Total cost of Labor Cadweld Superstructure (shell) in 2017',2768948.686,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Superstr,Walls_v_m3','Sum_Labor_Cadweld',0),(398,'Total_Labor_Cadweld_Dome','Total cost of Labor Cadweld Superstructure (dome) in 2017',2247176.626,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Dome,Dome_v_m3','Sum_Labor_Cadweld',0),(399,'Total_Labor_Cadweld_Interior','Total cost of Labor Cadweld Interior structure in 2017',993207.8312,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Interior,Internal_v_m3','Sum_Labor_Cadweld',0),(400,'Total_Labor_Concrete_Substr','Total cost of Labor Concrete Substructure (base mat) in 2017',1055611.621,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Substr,Basemat_v_m3','Sum_Labor_Concrete',0),(401,'Total_Labor_Concrete_Superstr','Total cost of Labor Concrete Superstructure (shell) in 2017',2111136.151,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Superstr,Walls_v_m3','Sum_Labor_Concrete',0),(402,'Total_Labor_Concrete_Dome','Total cost of Labor Concrete Superstructure (dome) in 2017',758685.8815,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Dome,Dome_v_m3','Sum_Labor_Concrete',0),(403,'Total_Labor_Concrete_Interior','Total cost of Labor Concrete Interior structure in 2017',2010524.649,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Interior,Internal_v_m3','Sum_Labor_Concrete',0),(404,'Total_Labor_Constr_joints_Substr','Total cost of Labor Construction joints Substructure (base mat) in 2017',69294.50821,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Substr,Basemat_s_m2','Sum_Labor_Constr_joints',0),(405,'Total_Labor_Constr_joints_Superstr','Total cost of Labor Construction joints Superstructure (shell) in 2017',438205.075,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Superstr,Walls_s_m2','Sum_Labor_Constr_joints',0),(406,'Total_Labor_Constr_joints_Dome','Total cost of Labor Construction joints Superstructure (dome) in 2017',86628.26472,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Dome,Dome_s_m2','Sum_Labor_Constr_joints',0),(407,'Total_Labor_Constr_joints_Interior','Total cost of Labor Construction joints Interior structure in 2017',69295.01605,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Interior,Internal_s_m2','Sum_Labor_Constr_joints',0),(408,'Total_Labor_Embedded_steel_Substr','Total cost of Labor Embedded steel Substructure (base mat) in 2017',57933.4563,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Substr,Basemat_v_m3','Sum_Labor_Embedded_steel',0),(409,'Total_Labor_Embedded_steel_Superstr','Total cost of Labor Embedded steel Superstructure (shell) in 2017',386039.0857,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Superstr,Walls_v_m3','Sum_Labor_Embedded_steel',0),(410,'Total_Labor_Embedded_steel_Dome','Total cost of Labor Embedded steel Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Dome,Dome_v_m3','Sum_Labor_Embedded_steel',0),(411,'Total_Labor_Embedded_steel_Interior','Total cost of Labor Embedded steel Interior structure in 2017',6947097.266,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Interior,Internal_v_m3','Sum_Labor_Embedded_steel',0),(412,'Total_Labor_Formwork_Substr','Total cost of Labor Formwork Substructure (base mat) in 2017',444659.6595,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Substr,Basemat_s_m2','Sum_Labor_Formwork',0),(413,'Total_Labor_Formwork_Superstr','Total cost of Labor Formwork Superstructure (shell) in 2017',3868815.385,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Superstr,Walls_s_m2','Sum_Labor_Formwork',0),(414,'Total_Labor_Formwork_Dome','Total cost of Labor Formwork Superstructure (dome) in 2017',1069813.476,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Dome,Dome_s_m2','Sum_Labor_Formwork',0),(415,'Total_Labor_Formwork_Interior','Total cost of Labor Formwork Interior structure in 2017',7825942.496,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Interior,Internal_s_m2','Sum_Labor_Formwork',0),(416,'Total_Labor_Maj_supp_embedments_Interior','Total cost of Labor Major Support Embedments Interior structure in 2017',3163634.82,'dollar','tol_contaiment_ce_cost','Unit_Labor_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Labor_Maj_supp_embedments',0),(417,'Total_Labor_Reinforc_steel_Substr','Total cost of Labor Reinforc steel Substructure (base mat) in 2017',4695084.505,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Substr,Basemat_v_m3','Sum_Labor_Reinforc_steel',0),(418,'Total_Labor_Reinforc_steel_Superstr','Total cost of Labor Reinforc steel Superstructure (shell) in 2017',7878531.103,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Superstr,Walls_v_m3','Sum_Labor_Reinforc_steel',0),(419,'Total_Labor_Reinforc_steel_Dome','Total cost of Labor Reinforc steel Superstructure (dome) in 2017',2922720.181,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Dome,Dome_v_m3','Sum_Labor_Reinforc_steel',0),(420,'Total_Labor_Reinforc_steel_Interior','Total cost of Labor Reinforc steel Interior structure in 2017',6320263.61,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Interior,Internal_v_m3','Sum_Labor_Reinforc_steel',0),(421,'Total_Labor_Rubbing_surfaces_Superstr','Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017',293076.063,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Labor_Rubbing_surfaces',0),(422,'Total_Labor_Rubbing_surfaces_Dome','Total cost of Labor Rubbing surfaces Superstructure (dome) in 2017',104683.4188,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Labor_Rubbing_surfaces',0),(423,'Total_Labor_Rubbing_surfaces_Interior','Total cost of Labor Rubbing surfaces Interior structure in 2017',334982.2483,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Labor_Rubbing_surfaces',0),(424,'Total_Labor_Waterproofing_Substr','Total cost of Labor Waterproofing Substructure (base mat) in 2017',21872.4223,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Substr,Basemat_s_m2','Sum_Labor_Waterproofing',0),(425,'Total_Labor_Waterproofing_Superstr','Total cost of Labor Waterproofing Superstructure (shell) in 2017',29589.41021,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Superstr,Walls_s_m2','Sum_Labor_Waterproofing',0),(426,'Total_Labor_Waterproofing_Dome','Total cost of Labor Waterproofing Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Dome,Dome_s_m2','Sum_Labor_Waterproofing',0),(427,'Total_Labor_Welded_wire_fabric_Substr','Total cost of Labor Welded wire fabric Substructure (base mat) in 2017',48090.67524,'dollar','tol_contaiment_ce_cost','Unit_Labor_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Labor_Welded_wire_fabric',0),(428,'Total_Labor_Lighting_Power','Total cost of Labor Lighting Power in 2017',2440442.179,'dollar','tol_contaiment_ce_cost','Unit_Labor_Lighting_Power,Intern_tot_v_m3','Tot_Labor_equipment',0),(429,'Total_Labor_Plumb_drains','Total cost of Labor Plumb drains in 2017',749759.4487,'dollar','tol_contaiment_ce_cost','Unit_Labor_Plumb_drains,Intern_tot_v_m3','Tot_Labor_equipment',0),(430,'Total_Labor_Special_HVAC','Total cost of Labor Special HVAC in 2017',2753255.724,'dollar','tol_contaiment_ce_cost','Unit_Labor_Special_HVAC,Intern_tot_v_m3','Tot_Labor_equipment',0),(431,'Total_Labor_other','Total cost of Labor other in 2017',131580.3006,'dollar','tol_contaiment_ce_cost','Unit_Labor_other,Intern_tot_v_m3','Tot_Labor_equipment',0),(432,'Total_Labor_Misc_steel_frames','Total cost of Labor miscellaneous steel frames in 2017',686297.4095,'dollar','tol_contaiment_ce_cost','Unit_Labor_Misc_steel_frames,Struct_v_m3','Tot_Labor_others',0),(433,'Total_Labor_React_cav_liner','Total cost of Labor Reactor cavity liner plate in 2017',2188185.873,'dollar','tol_contaiment_ce_cost','Unit_Labor_React_cav_liner,React_cav_A_m2','Tot_Labor_others',0),(434,'Total_Labor_Struct_steel','Total cost of Labor Struct steel in 2017',965235.1896,'dollar','tol_contaiment_ce_cost','Unit_Labor_Struct_steel,Struct_v_m3','Tot_Labor_others',0),(435,'Total_Labor_cont_liner','Total cost of Labor Containment liner in 2017',23395318.53,'dollar','tol_contaiment_ce_cost','Unit_Labor_cont_liner,Liner_s_m2','Tot_Labor_others',0),(436,'Total_Labor_fl_grate_handrail_stairs','Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',434463.2567,'dollar','tol_contaiment_ce_cost','Unit_Labor_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Labor_others',0),(437,'Total_Labor_painting','Total cost of Labor painting in 2017',7941226.681,'dollar','tol_contaiment_ce_cost','Unit_Labor_painting,Surf_paint_m2','Tot_Labor_others',0),(438,'Total_Mat_Cadweld_Substr','Total cost of Material Cadweld Substructure (base mat) in 2017',645128.3375,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Substr,Basemat_v_m3','Sum_Mat_Cadweld',0),(439,'Total_Mat_Cadweld_Superstr','Total cost of Material Cadweld Superstructure (shell) in 2017',1435930.116,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Superstr,Walls_v_m3','Sum_Mat_Cadweld',0),(440,'Total_Mat_Cadweld_Dome','Total cost of Material Cadweld Superstructure (dome) in 2017',1165451.204,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Dome,Dome_v_m3','Sum_Mat_Cadweld',0),(441,'Total_Mat_Cadweld_Interior','Total cost of Material Cadweld Interior structure in 2017',515149.2901,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Interior,Internal_v_m3','Sum_Mat_Cadweld',0),(442,'Total_Mat_Concrete_Substr','Total cost of Material Concrete Substructure (base mat) in 2017',1151391.054,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Substr,Basemat_v_m3','Sum_Mat_Concrete',0),(443,'Total_Mat_Concrete_Superstr','Total cost of Material Concrete Superstructure (shell) in 2017',1315866.646,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Superstr,Walls_v_m3','Sum_Mat_Concrete',0),(444,'Total_Mat_Concrete_Dome','Total cost of Material Concrete Superstructure (dome) in 2017',472890.213,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Dome,Dome_v_m3','Sum_Mat_Concrete',0),(445,'Total_Mat_Concrete_Interior','Total cost of Material Concrete Interior structure in 2017',1096443.749,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Interior,Internal_v_m3','Sum_Mat_Concrete',0),(446,'Total_Mat_Constr_joints_Substr','Total cost of Material Construction joints Substructure (base mat) in 2017',42503.17871,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Substr,Basemat_s_m2','Sum_Mat_Constr_joints',0),(447,'Total_Mat_Constr_joints_Superstr','Total cost of Material Construction joints Superstructure (shell) in 2017',268770.4761,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Superstr,Walls_s_m2','Sum_Mat_Constr_joints',0),(448,'Total_Mat_Constr_joints_Dome','Total cost of Material Construction joints Superstructure (dome) in 2017',53071.2106,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Dome,Dome_s_m2','Sum_Mat_Constr_joints',0),(449,'Total_Mat_Constr_joints_Interior','Total cost of Material Construction joints Interior structure in 2017',42591.08304,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Interior,Internal_s_m2','Sum_Mat_Constr_joints',0),(450,'Total_Mat_Embedded_steel_Substr','Total cost of Material Embedded steel Substructure (base mat) in 2017',27365.55222,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Substr,Basemat_v_m3','Sum_Mat_Embedded_steel',0),(451,'Total_Mat_Embedded_steel_Superstr','Total cost of Material Embedded steel Superstructure (shell) in 2017',182873.3341,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Superstr,Walls_v_m3','Sum_Mat_Embedded_steel',0),(452,'Total_Mat_Embedded_steel_Dome','Total cost of Material Embedded steel Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Dome,Dome_v_m3','Sum_Mat_Embedded_steel',0),(453,'Total_Mat_Embedded_steel_Interior','Total cost of Material Embedded steel Interior structure in 2017',3291391.844,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Interior,Internal_v_m3','Sum_Mat_Embedded_steel',0),(454,'Total_Mat_Formwork_Substr','Total cost of Material Formwork Substructure (base mat) in 2017',63133.93512,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Substr,Basemat_s_m2','Sum_Mat_Formwork',0),(455,'Total_Mat_Formwork_Superstr','Total cost of Material Formwork Superstructure (shell) in 2017',480827.9159,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Superstr,Walls_s_m2','Sum_Mat_Formwork',0),(456,'Total_Mat_Formwork_Dome','Total cost of Material Formwork Superstructure (dome) in 2017',139881.8506,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Dome,Dome_s_m2','Sum_Mat_Formwork',0),(457,'Total_Mat_Formwork_Interior','Total cost of Material Formwork Interior structure in 2017',738583.4638,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Interior,Internal_s_m2','Sum_Mat_Formwork',0),(458,'Total_Mat_Maj_supp_embedments_Interior','Total cost of Material Major Support Embedments Interior structure in 2017',4643555.701,'dollar','tol_contaiment_ce_cost','Unit_Mat_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Mat_Maj_supp_embedments',0),(459,'Total_Mat_Reinforc_steel_Substr','Total cost of Material Reinforc steel Substructure (base mat) in 2017',5309062.692,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Substr,Basemat_v_m3','Sum_Mat_Reinforc_steel',0),(460,'Total_Mat_Reinforc_steel_Superstr','Total cost of Material Reinforc steel Superstructure (shell) in 2017',6255620.854,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Superstr,Walls_v_m3','Sum_Mat_Reinforc_steel',0),(461,'Total_Mat_Reinforc_steel_Dome','Total cost of Material Reinforc steel Superstructure (dome) in 2017',2320691.946,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Dome,Dome_v_m3','Sum_Mat_Reinforc_steel',0),(462,'Total_Mat_Reinforc_steel_Interior','Total cost of Material Reinforc steel Interior structure in 2017',4237824.12,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Interior,Internal_v_m3','Sum_Mat_Reinforc_steel',0),(463,'Total_Mat_Rubbing_surfaces_Superstr','Total cost of Material Rubbing surfaces Superstructure (shell) in 2017',23953.33207,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Mat_Rubbing_surfaces',0),(464,'Total_Mat_Rubbing_surfaces_Dome','Total cost of Material Rubbing surfaces Superstructure (dome) in 2017',8571.638825,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Mat_Rubbing_surfaces',0),(465,'Total_Mat_Rubbing_surfaces_Interior','Total cost of Material Rubbing surfaces Interior structure in 2017',27718.00642,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Mat_Rubbing_surfaces',0),(466,'Total_Mat_Waterproofing_Substr','Total cost of Material Waterproofing Substructure (base mat) in 2017',11604.80048,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Substr,Basemat_s_m2','Sum_Mat_Waterproofing',0),(467,'Total_Mat_Waterproofing_Superstr','Total cost of Material Waterproofing Superstructure (shell) in 2017',15851.46976,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Superstr,Walls_s_m2','Sum_Mat_Waterproofing',0),(468,'Total_Mat_Waterproofing_Dome','Total cost of Material Waterproofing Superstructure (dome) in 2017',0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Dome,Dome_s_m2','Sum_Mat_Waterproofing',0),(469,'Total_Mat_Welded_wire_fabric_Substr','Total cost of Material Welded wire fabric Substructure (base mat) in 2017',24785.56152,'dollar','tol_contaiment_ce_cost','Unit_Mat_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Mat_Welded_wire_fabric',0),(470,'Total_Mat_Lighting_Power','Total cost of Material Lighting Power in 2017',1231393.002,'dollar','tol_contaiment_ce_cost','Unit_Mat_Lighting_Power,Intern_tot_v_m3','Tot_Mat_equipment',0),(471,'Total_Mat_Plumb_drains','Total cost of Material Plumb drains in 2017',382327.6659,'dollar','tol_contaiment_ce_cost','Unit_Mat_Plumb_drains,Intern_tot_v_m3','Tot_Mat_equipment',0),(472,'Total_Mat_Special_HVAC','Total cost of Material Special HVAC in 2017',2182246.872,'dollar','tol_contaiment_ce_cost','Unit_Mat_Special_HVAC,Intern_tot_v_m3','Tot_Mat_equipment',0),(473,'Total_Mat_other','Total cost of Material other in 2017',486598.8475,'dollar','tol_contaiment_ce_cost','Unit_Mat_other,Intern_tot_v_m3','Tot_Mat_equipment',0),(474,'Total_Mat_Misc_steel_frames','Total cost of Material miscellaneous steel frames in 2017',1143368.722,'dollar','tol_contaiment_ce_cost','Unit_Mat_Misc_steel_frames,Struct_v_m3','Tot_Mat_others',0),(475,'Total_Mat_React_cav_liner','Total cost of Material Reactor cavity liner plate in 2017',1783426.929,'dollar','tol_contaiment_ce_cost','Unit_Mat_React_cav_liner,React_cav_A_m2','Tot_Mat_others',0),(476,'Total_Mat_Struct_steel','Total cost of Material Struct steel in 2017',1892496.177,'dollar','tol_contaiment_ce_cost','Unit_Mat_Struct_steel,Struct_v_m3','Tot_Mat_others',0),(477,'Total_Mat_cont_liner','Total cost of Material Containment liner in 2017',36067520.4,'dollar','tol_contaiment_ce_cost','Unit_Mat_cont_liner,Liner_s_m2','Tot_Mat_others',0),(478,'Total_Mat_fl_grate_handrail_stairs','Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',491564.1418,'dollar','tol_contaiment_ce_cost','Unit_Mat_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Mat_others',0),(479,'Total_Mat_painting','Total cost of Material painting in 2017',2257943.255,'dollar','tol_contaiment_ce_cost','Unit_Mat_painting,Surf_paint_m2','Tot_Mat_others',0),(480,'Sum_Labor_Cadweld','Total cost of Labor Cadweld',7253301.278,'dollar','sum_ce','Total_Labor_Cadweld_Substr,Total_Labor_Cadweld_Superstr,Total_Labor_Cadweld_Dome,Total_Labor_Cadweld_Interior','Tot_Labor_concr',0),(481,'Sum_Labor_Concrete','Total cost of Labor Concrete',5935958.303,'dollar','sum_ce','Total_Labor_Concrete_Substr,Total_Labor_Concrete_Superstr,Total_Labor_Concrete_Dome,Total_Labor_Concrete_Interior','Tot_Labor_concr',0),(482,'Sum_Labor_Constr_joints','Total cost of Labor Constr joints',663422.864,'dollar','sum_ce','Total_Labor_Constr_joints_Substr,Total_Labor_Constr_joints_Superstr,Total_Labor_Constr_joints_Dome,Total_Labor_Constr_joints_Interior','Tot_Labor_concr',0),(483,'Sum_Labor_Embedded_steel','Total cost of Labor Embedded steel',7391069.808,'dollar','sum_ce','Total_Labor_Embedded_steel_Substr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Embedded_steel_Dome,Total_Labor_Embedded_steel_Interior','Tot_Labor_concr',0),(484,'Sum_Labor_Formwork','Total cost of Labor Formwork',13209231.02,'dollar','sum_ce','Total_Labor_Formwork_Substr,Total_Labor_Formwork_Superstr,Total_Labor_Formwork_Dome,Total_Labor_Formwork_Interior','Tot_Labor_concr',0),(485,'Sum_Labor_Maj_supp_embedments','Total cost of Labor Maj supp embedments',3163634.82,'dollar','sum_ce','Total_Labor_Maj_supp_embedments_Interior','Tot_Labor_concr',0),(486,'Sum_Labor_Reinforc_steel','Total cost of Labor Reinforc steel',21816599.4,'dollar','sum_ce','Total_Labor_Reinforc_steel_Substr,Total_Labor_Reinforc_steel_Superstr,Total_Labor_Reinforc_steel_Dome,Total_Labor_Reinforc_steel_Interior','Tot_Labor_concr',0),(487,'Sum_Labor_Rubbing_surfaces','Total cost of Labor Rubbing surfaces',732741.7302,'dollar','sum_ce','Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Rubbing_surfaces_Interior','Tot_Labor_concr',0),(488,'Sum_Labor_Waterproofing','Total cost of Labor Waterproofing',51461.83251,'dollar','sum_ce','Total_Labor_Waterproofing_Substr,Total_Labor_Waterproofing_Superstr,Total_Labor_Waterproofing_Dome','Tot_Labor_concr',0),(489,'Sum_Labor_Welded_wire_fabric','Total cost of Labor Welded wire fabric',48090.67524,'dollar','sum_ce','Total_Labor_Welded_wire_fabric_Substr','Tot_Labor_concr',0),(490,'Sum_Mat_Cadweld','Total cost of Material Cadweld',3761658.947,'dollar','sum_ce','Total_Mat_Cadweld_Substr,Total_Mat_Cadweld_Superstr,Total_Mat_Cadweld_Dome,Total_Mat_Cadweld_Interior','Tot_Mat_concr',0),(491,'Sum_Mat_Concrete','Total cost of Material Concrete',4036591.661,'dollar','sum_ce','Total_Mat_Concrete_Substr,Total_Mat_Concrete_Superstr,Total_Mat_Concrete_Dome,Total_Mat_Concrete_Interior','Tot_Mat_concr',0),(492,'Sum_Mat_Constr_joints','Total cost of Material Constr joints',406935.9484,'dollar','sum_ce','Total_Mat_Constr_joints_Substr,Total_Mat_Constr_joints_Superstr,Total_Mat_Constr_joints_Dome,Total_Mat_Constr_joints_Interior','Tot_Mat_concr',0),(493,'Sum_Mat_Embedded_steel','Total cost of Material Embedded steel',3501630.73,'dollar','sum_ce','Total_Mat_Embedded_steel_Substr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Embedded_steel_Dome,Total_Mat_Embedded_steel_Interior','Tot_Mat_concr',0),(494,'Sum_Mat_Formwork','Total cost of Material Formwork',1422427.165,'dollar','sum_ce','Total_Mat_Formwork_Substr,Total_Mat_Formwork_Superstr,Total_Mat_Formwork_Dome,Total_Mat_Formwork_Interior','Tot_Mat_concr',0),(495,'Sum_Mat_Maj_supp_embedments','Total cost of Material Maj supp embedments',1467166.11,'dollar','sum_ce','Total_Mat_Maj_supp_embedments_Interior','Tot_Mat_concr',0),(496,'Sum_Mat_Reinforc_steel','Total cost of Material Reinforc steel',18123199.61,'dollar','sum_ce','Total_Mat_Reinforc_steel_Substr,Total_Mat_Reinforc_steel_Superstr,Total_Mat_Reinforc_steel_Dome,Total_Mat_Reinforc_steel_Interior','Tot_Mat_concr',0),(497,'Sum_Mat_Rubbing_surfaces','Total cost of Material Rubbing surfaces',60242.97732,'dollar','sum_ce','Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Rubbing_surfaces_Interior','Tot_Mat_concr',0),(498,'Sum_Mat_Waterproofing','Total cost of Material Waterproofing',27456.27023,'dollar','sum_ce','Total_Mat_Waterproofing_Substr,Total_Mat_Waterproofing_Superstr,Total_Mat_Waterproofing_Dome','Tot_Mat_concr',0),(499,'Sum_Mat_Welded_wire_fabric','Total cost of Material Welded wire fabric',24785.56152,'dollar','sum_ce','Total_Mat_Welded_wire_fabric_Substr','Tot_Mat_concr',0),(500,'Tot_Labor_concr','Total cost of labor of containment construction',60265511.73,'dollar','sum_ce','Sum_Labor_Cadweld,Sum_Labor_Concrete,Sum_Labor_Constr_joints,Sum_Labor_Embedded_steel,Sum_Labor_Formwork,Sum_Labor_Maj_supp_embedments,Sum_Labor_Reinforc_steel,Sum_Labor_Rubbing_surfaces,Sum_Labor_Waterproofing,Sum_Labor_Welded_wire_fabric','Tot_Labor_containment',0),(501,'Tot_Labor_equipment','Total cost of labor of containment equipments',6075037.652,'dollar','sum_ce','Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other','Tot_Labor_containment',0),(502,'Tot_Labor_others','Total cost of labor of other non-concrete related items ',35610726.94,'dollar','sum_ce','Total_Labor_Misc_steel_frames,Total_Labor_React_cav_liner,Total_Labor_Struct_steel,Total_Labor_cont_liner,Total_Labor_fl_grate_handrail_stairs,Total_Labor_painting','Tot_Labor_containment',0),(503,'Tot_Mat_concr','Total cost of material of containment construction',32832094.98,'dollar','sum_ce','Sum_Mat_Cadweld,Sum_Mat_Concrete,Sum_Mat_Constr_joints,Sum_Mat_Embedded_steel,Sum_Mat_Formwork,Sum_Mat_Maj_supp_embedments,Sum_Mat_Reinforc_steel,Sum_Mat_Rubbing_surfaces,Sum_Mat_Waterproofing,Sum_Mat_Welded_wire_fabric','Tot_Mat_containment',0),(504,'Tot_Mat_equipment','Total cost of material of containment equipments',4282566.387,'dollar','sum_ce','Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other','Tot_Mat_containment',0),(505,'Tot_Mat_others','Total cost of material of other non-concrete related items ',43636319.63,'dollar','sum_ce','Total_Mat_Misc_steel_frames,Total_Mat_React_cav_liner,Total_Mat_Struct_steel,Total_Mat_cont_liner,Total_Mat_fl_grate_handrail_stairs,Total_Mat_painting','Tot_Mat_containment',0),(506,'Tot_Labor_containment','Total cost of labor of containment',101951276.3,'dollar','sum_ce','Tot_Labor_concr,Tot_Labor_equipment,Tot_Labor_others',NULL,0),(507,'Tot_Mat_containment','Total cost of material of containment',80750981,'dollar','sum_ce','Tot_Mat_concr,Tot_Mat_equipment,Tot_Mat_others',NULL,0); -/*!40000 ALTER TABLE `variable` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Dumping events for database 'accert_db' --- - --- --- Dumping routines for database 'accert_db' --- -/*!50003 DROP PROCEDURE IF EXISTS `cal_direct_cost_elements` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `cal_direct_cost_elements`(IN acc_table VARCHAR(50), - IN cel_table varchar(50)) -BEGIN - DECLARE tprn DECIMAL(18,6); - - -- Calculate tprn (sum of 'prn' in the account table) - SET @query = CONCAT('SELECT SUM(t1.prn) INTO @tprn - FROM ', acc_table, ' AS t1 - LEFT JOIN ', acc_table, ' AS t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - AND t1.code_of_account != ''2'' - AND t1.code_of_account != ''2C'';'); - PREPARE stmt FROM @query; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - - -- Get the calculated tprn value - SET tprn = @tprn; - - -- Select the calculated 'fac', 'lab', and 'mat' values - SET @query = CONCAT('SELECT cost_2017 / ', tprn, ' AS fac FROM ', cel_table, ' - WHERE account = ''2'' AND cost_element = ''2c_fac'';'); - PREPARE stmt FROM @query; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - - SET @query = CONCAT('SELECT cost_2017 / ', tprn, ' AS lab FROM ', cel_table, ' - WHERE account = ''2'' AND cost_element = ''2c_lab'';'); - PREPARE stmt FROM @query; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - - SET @query = CONCAT('SELECT cost_2017 / ', tprn, ' AS mat FROM ', cel_table, ' - WHERE account = ''2'' AND cost_element = ''2c_mat'';'); - PREPARE stmt FROM @query; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; - - SET @query = CONCAT('SELECT - (SELECT cost_2017 / ', tprn, ' FROM ', cel_table, ' WHERE account = ''2'' AND cost_element = ''2c_fac'') AS fac, - (SELECT cost_2017 / ', tprn, ' FROM ', cel_table, ' WHERE account = ''2'' AND cost_element = ''2c_lab'') AS lab, - (SELECT cost_2017 / ', tprn, ' FROM ', cel_table, ' WHERE account = ''2'' AND cost_element = ''2c_mat'') AS mat;'); - - PREPARE stmt FROM @query; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_affected_accounts` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_affected_accounts`(IN acc_table VARCHAR(50), - IN var_table VARCHAR(50)) -BEGIN - SET @stmt = CONCAT("SELECT va.var_name, (SELECT GROUP_CONCAT(ac.code_of_account SEPARATOR ', ') - FROM ", acc_table, " ac - WHERE FIND_IN_SET(va.var_name, REPLACE(ac.variables, ' ', '')) > 0) AS ac_affected - FROM - (SELECT * FROM ",var_table," - WHERE user_input = 1) as va - WHERE (SELECT GROUP_CONCAT(ac.code_of_account SEPARATOR ', ') - FROM ", acc_table, " ac - WHERE FIND_IN_SET(va.var_name, REPLACE(ac.variables, ' ', '')) > 0) IS NOT NULL - "); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_affected_cost_elements` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_affected_cost_elements`(IN cel_table varchar(50), - IN var_table varchar(50)) -BEGIN - SET @stmt = CONCAT("SELECT va.var_name, (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - FROM ", cel_table, " ce - WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) AS ce_affected - FROM - (SELECT * FROM ",var_table," - WHERE user_input = 1) as va - WHERE (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - FROM ", cel_table, " ce - WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) IS NOT NULL - "); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_affected_cost_elements_w_dis` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_affected_cost_elements_w_dis`(IN cel_table varchar(50), - IN var_table varchar(50)) -BEGIN - SET @stmt = CONCAT("SELECT va.var_name,va.var_description, (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - FROM ", cel_table, " ce - WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) AS ce_affected - FROM - (SELECT * FROM ",var_table," - WHERE user_input = 1) as va - WHERE (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - FROM cost_element ce - WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) IS NOT NULL - "); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_changed_cost_elements` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_changed_cost_elements`(IN cel_table VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT cost_element, cost_2017 - FROM ',cel_table,' - WHERE updated != 0 - ORDER BY account, cost_element;'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_super_val` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_super_val`(IN table_name VARCHAR(50), - IN var_name VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT v_linked FROM ', table_name, ' WHERE var_name = ?'); - PREPARE stmt FROM @stmt; - SET @var_name = var_name; - EXECUTE stmt USING @var_name; - DEALLOCATE PREPARE stmt; - END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_total_cost_on_name` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_total_cost_on_name`(IN table_name VARCHAR(50), - IN tc_name VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT code_of_account, account_description, total_cost - FROM ', table_name, ' WHERE code_of_account = ?'); -PREPARE stmt FROM @stmt; -SET @tc_name = tc_name; -EXECUTE stmt USING @tc_name; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_user_changed_variables` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_user_changed_variables`(IN table_name VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT var_name,var_description, var_value, var_unit - FROM ', table_name, ' WHERE user_input = 1 ORDER BY var_name;'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `extract_variable_info_on_name` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_variable_info_on_name`(IN table_name VARCHAR(50), - IN var_name VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT var_value, var_unit FROM ', table_name, ' WHERE var_name = ?'); -PREPARE stmt FROM @stmt; -SET @var_name = var_name; -EXECUTE stmt USING @var_name; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `get_current_COAs` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `get_current_COAs`(IN table_name VARCHAR(50), - IN inp_id VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT code_of_account, - ind FROM ', table_name, ' WHERE supaccount = ?'); - PREPARE stmt FROM @stmt; - SET @inp_id = inp_id; - EXECUTE stmt USING @inp_id; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `get_var_value_by_name` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `get_var_value_by_name`(IN table_name VARCHAR(50), - IN `var_name` VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT var_value FROM ', table_name, ' WHERE var_name = ?'); - PREPARE stmt FROM @stmt; - SET @var_name = var_name; - EXECUTE stmt USING @var_name; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `insert_new_COA` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_new_COA`(IN table_name VARCHAR(50), - IN ind INT, - IN supaccount VARCHAR(50), - IN level INT, - IN code_of_account VARCHAR(50), - IN account_description VARCHAR(50), - IN total_cost INT, - IN review_status VARCHAR(50), - IN prn VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('INSERT INTO ', table_name, - ' (ind, supaccount, level, code_of_account, account_description, - total_cost, review_status, prn) - VALUES (?, ?, ?, ?, ?, ?, ?, ?)'); -PREPARE stmt FROM @stmt; -SET @ind = ind; -SET @supaccount = supaccount; -SET @level = level; -SET @code_of_account = code_of_account; -SET @account_description = account_description; -SET @total_cost = total_cost; -SET @review_status = review_status; -SET @prn = prn; - - -EXECUTE stmt USING @ind, @supaccount, @level, @code_of_account, @account_description, -@total_cost, @review_status, @prn; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `insert_new_COA_gncoa` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_new_COA_gncoa`(IN table_name VARCHAR(50), - IN ind INT, - IN supaccount VARCHAR(50), - IN level INT, - IN code_of_account VARCHAR(50), - IN account_description VARCHAR(50), - IN total_cost INT, - IN review_status VARCHAR(50), - IN prn VARCHAR(50), - IN gncoa VARCHAR(50), - IN gn_level INT, - IN gn_supaccount VARCHAR(50), - IN gn_ind INT) -BEGIN - SET @stmt = CONCAT('INSERT INTO ', table_name, - ' (ind, supaccount, level, code_of_account, account_description, - total_cost, review_status, prn, - gncoa, gn_level, gn_supaccount, gn_ind) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); -PREPARE stmt FROM @stmt; -SET @ind = ind; -SET @supaccount = supaccount; -SET @level = level; -SET @code_of_account = code_of_account; -SET @account_description = account_description; -SET @total_cost = total_cost; -SET @review_status = review_status; -SET @prn = prn; -SET @gncoa = gncoa; -SET @gn_level = gn_level; -SET @gn_supaccount = gn_supaccount; -SET @gn_ind = gn_ind; - -EXECUTE stmt USING @ind, @supaccount, @level, @code_of_account, @account_description, -@total_cost, @review_status, @prn, @gncoa, @gn_level, @gn_supaccount, @gn_ind; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_account_all` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_account_all`(IN table_name varchar(50), - IN level int) -BEGIN - SET @stmt=CONCAT('SELECT * FROM ',table_name,' WHERE level <= ?'); - PREPARE stmt FROM @stmt; - SET @level=level; - EXECUTE stmt USING @level; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_account_simple` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_account_simple`(IN table_name varchar(50), - IN level int) -BEGIN - SET @stmt=CONCAT('SELECT ind, - code_of_account, - account_description, - total_cost, - level, - review_status - FROM ',table_name,' WHERE level <= ?'); - PREPARE stmt FROM @stmt; - SET @level=level; - EXECUTE stmt USING @level; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_leveled_accounts_all` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_leveled_accounts_all`(IN acc_table varchar(50), - IN cel_table varchar(50), - IN level int) -BEGIN - SET @stmt=CONCAT('SELECT acc.level, - rankedcoa.code_of_account as code_of_account, - acc.account_description, - sorted_ce.fac_cost, - sorted_ce.lab_cost, - sorted_ce.mat_cost, - acc.total_cost, - acc.review_status - FROM ',acc_table,' as acc - JOIN - (SELECT node.code_of_account AS COA , - CONCAT( REPEAT(" ", node.level), node.code_of_account) AS code_of_account - FROM ',acc_table,' AS node - ORDER BY node.ind) as rankedcoa - ON acc.code_of_account=rankedcoa.COA - JOIN (SELECT splt_act.code_of_account, - cef.cost_2017 AS fac_cost, - cel.cost_2017 AS lab_cost, - cem.cost_2017 AS mat_cost - FROM - (SELECT code_of_account, - CONCAT(code_of_account, "_fac") AS fac_name, - CONCAT(code_of_account, "_lab") AS lab_name, - CONCAT(code_of_account, "_mat") AS mat_name - FROM ',acc_table,') AS splt_act - LEFT JOIN ',cel_table,' AS cef - ON cef.cost_element = splt_act.fac_name - LEFT JOIN ',cel_table,' AS cel - ON cel.cost_element = splt_act.lab_name - LEFT JOIN ',cel_table,' AS cem - ON cem.cost_element = splt_act.mat_name) as sorted_ce - ON sorted_ce.code_of_account=acc.code_of_account - WHERE acc.level <= ? - ORDER BY acc.ind;'); - PREPARE stmt FROM @stmt; - SET @level=level; - EXECUTE stmt USING @level; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_leveled_accounts_gn` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_leveled_accounts_gn`( - IN acc_table VARCHAR(255), - IN map_table VARCHAR(255), - IN level INT -) -BEGIN - SET @stmt = CONCAT( - 'SELECT rankedcoa.gncoa, - map.gncoa_description, - acc.total_cost, - acc.gn_level, - acc.review_status - FROM ', acc_table, ' AS acc - JOIN - ( - SELECT node.gncoa AS COA, - CONCAT(REPEAT(" ", node.gn_level), node.gncoa) AS gncoa - FROM ', acc_table, ' AS node - ORDER BY node.gn_ind - ) AS rankedcoa - ON acc.gncoa = rankedcoa.COA - JOIN ',map_table,' as map - ON acc.gncoa = map.gncoa - WHERE acc.gn_level <= ? - ORDER BY acc.gn_ind;' - ); - - PREPARE stmt FROM @stmt; - SET @level = level; - EXECUTE stmt USING @level; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_leveled_accounts_gn_all` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_leveled_accounts_gn_all`(IN acc_table varchar(50), - IN cel_table varchar(50), - IN level int) -BEGIN - SET @stmt=CONCAT('SELECT acc.gn_level, - rankedcoa.gncoa as gncoa, - acc.account_description, - sorted_ce.fac_cost, - sorted_ce.lab_cost, - sorted_ce.mat_cost, - acc.total_cost, - acc.review_status - FROM ',acc_table,' as acc - JOIN - (SELECT node.gncoa AS COA, - CONCAT(REPEAT(" ", node.gn_level), node.gncoa) AS gncoa - FROM ', acc_table, ' AS node - ORDER BY node.gn_ind) AS rankedcoa - ON acc.gncoa=rankedcoa.COA - JOIN (SELECT splt_act.code_of_account, - cef.cost_2017 AS fac_cost, - cel.cost_2017 AS lab_cost, - cem.cost_2017 AS mat_cost - FROM - (SELECT code_of_account, - CONCAT(code_of_account, "_fac") AS fac_name, - CONCAT(code_of_account, "_lab") AS lab_name, - CONCAT(code_of_account, "_mat") AS mat_name - FROM ',acc_table,') AS splt_act - LEFT JOIN ',cel_table,' AS cef - ON cef.cost_element = splt_act.fac_name - LEFT JOIN ',cel_table,' AS cel - ON cel.cost_element = splt_act.lab_name - LEFT JOIN ',cel_table,' AS cem - ON cem.cost_element = splt_act.mat_name) as sorted_ce - ON sorted_ce.code_of_account=acc.code_of_account - WHERE acc.gn_level <= ? - ORDER BY acc.gn_ind;'); - PREPARE stmt FROM @stmt; - SET @level=level; - EXECUTE stmt USING @level; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_leveled_accounts_simple` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_leveled_accounts_simple`(IN acc_table VARCHAR(255), IN level INT) -BEGIN - SET @stmt = CONCAT('SELECT rankedcoa.code_of_account, - acc.account_description, - acc.total_cost, - acc.level, - acc.review_status - FROM ',acc_table,' as acc - JOIN - (SELECT node.code_of_account AS COA , - CONCAT( REPEAT(" ", node.level), node.code_of_account) AS code_of_account - FROM ',acc_table,' AS node - ORDER BY node.ind) as rankedcoa - ON acc.code_of_account=rankedcoa.COA - WHERE acc.level <= ? - ORDER BY acc.ind;'); - PREPARE stmt FROM @stmt; - SET @level=level; - EXECUTE stmt USING @level; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_table` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_table`(IN table_name VARCHAR(255)) -BEGIN - SET @stmt = CONCAT('SELECT * FROM ',table_name); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_updated_cost_elements` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_updated_cost_elements`(IN cel_table VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT ind, - cost_element, - cost_2017, - sup_cost_ele, - account, - updated - FROM ',cel_table,' - WHERE updated = 1'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `print_user_request_parameter` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `print_user_request_parameter`(IN all_col BOOLEAN, - IN var_table VARCHAR(50), - IN cel_table VARCHAR(50)) -BEGIN - IF all_col THEN - SET @stmt = CONCAT("SELECT va.ind, va.var_name, - (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - FROM ", cel_table, " ce - WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) AS ce_affected - FROM ",var_table," as va - WHERE va.var_value IS NULL - ORDER BY va.ind;"); - ELSE - SET @stmt = CONCAT("SELECT va.var_name, - (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - FROM ", cel_table, " ce - WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) AS ce_affected - FROM ",var_table," as va - WHERE va.var_value IS NULL - ORDER BY va.ind;"); - END IF; - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `remove_specific_row` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `remove_specific_row`( - IN table_name VARCHAR(50), - IN target_code VARCHAR(50) -) -BEGIN - SET SQL_SAFE_UPDATES = 0; - - SET @stmt = CONCAT( - 'DELETE FROM ', table_name, - ' WHERE code_of_account = \'', target_code, '\'' - ); - - -- Debug: Print the constructed SQL statement - SELECT @stmt; - - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `roll_up_account_table_by_gn_level` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `roll_up_account_table_by_gn_level`( - IN table_name VARCHAR(50), - IN from_level INT, - IN to_level INT -) -BEGIN - SET SQL_SAFE_UPDATES = 0; - - SET @stmt = CONCAT( - 'UPDATE ', table_name, ',', - '(SELECT a', to_level, '.gncoa AS ac', to_level, '_coa, ', - 'SUM(ua', from_level, '.total_cost) AS a', to_level, '_cal_total_cost ', - 'FROM ', table_name, ' AS ua', from_level, - ' JOIN ', table_name, ' AS a', to_level, - ' ON ua', from_level, '.gn_supaccount = a', to_level, '.gncoa ', - 'WHERE ua', from_level, '.gn_level = ', from_level, - ' AND a', to_level, '.gn_level = ', to_level, - ' GROUP BY a', to_level, '.gncoa) AS updated_ac', to_level, - ' SET ', - table_name, '.total_cost = updated_ac', to_level, '.a', to_level, '_cal_total_cost, ', - table_name, '.review_status = \'Updated\' ', - 'WHERE ', - table_name, '.gncoa = updated_ac', to_level, '.ac', to_level, '_coa' - ); - - -- Debug: Print the constructed SQL statement - SELECT @stmt; - - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `roll_up_account_table_by_level` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `roll_up_account_table_by_level`(IN table_name varchar(50), - IN from_level int, IN to_level int) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT('UPDATE ', table_name, ',', - '(SELECT a',to_level,'.code_of_account as ac',to_level,'_coa, ', - 'sum(ua',from_level,'.total_cost) as a',to_level,'_cal_total_cost ', - 'FROM ', table_name, ' as ua',from_level, - ' JOIN ', table_name, ' as a',to_level, - ' on ua',from_level,'.supaccount=a',to_level,'.code_of_account ', - 'where ua',from_level,'.level=',from_level, - ' and a',to_level,'.level=',to_level, - ' group by a',to_level,'.code_of_account) as updated_ac',to_level, - ' SET ', - table_name,'.total_cost = updated_ac',to_level,'.a',to_level,'_cal_total_cost,', - table_name,'.review_status = \'Updated\' ', - 'WHERE ', - table_name,'.code_of_account = updated_ac',to_level,'.ac',to_level,'_coa'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `roll_up_cost_elements_by_level` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `roll_up_cost_elements_by_level`(IN table_name varchar(50), - IN from_level int, IN to_level int) -BEGIN - SET @stmt = CONCAT('UPDATE ', table_name, ',', - '(SELECT c',to_level,'.cost_element as ce',to_level,'_ce, ', - 'sum(uc',from_level,'.cost_2017) as c',to_level,'_cal_total_cost ', - 'FROM ', table_name, ' as uc',from_level, - ' JOIN ', table_name, ' as c',to_level, - ' on uc',from_level,'.sup_cost_ele=c',to_level,'.cost_element ', - 'join account as ac',to_level, - ' on c',to_level,'.account = ac',to_level,'.code_of_account ', - 'where ac',to_level,'.level=',to_level, - ' group by c',to_level,'.cost_element) as updated_ce',to_level, - ' SET ', - table_name,'.cost_2017 = updated_ce',to_level,'.c',to_level,'_cal_total_cost,', - table_name,'.updated = 1 ', - 'WHERE ', - table_name,'.cost_element = updated_ce',to_level,'.ce',to_level,'_ce'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `roll_up_lmt_account_2C` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `roll_up_lmt_account_2C`(IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',', - '(SELECT sum(t1.total_cost) as tc, sum(t1.prn) as tprn FROM - ', acc_tabl_name, ' AS t1 LEFT JOIN ', acc_tabl_name, ' as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!=\'2\' - and t1.code_of_account!=\'2C\') as dircost - SET ', acc_tabl_name, '.total_cost = dircost.tc, - ', acc_tabl_name, '.prn=dircost.tprn, - review_status = \'Ready for Review\' - WHERE ', acc_tabl_name, '.code_of_account = \'2C\';'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `roll_up_lmt_direct_cost` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `roll_up_lmt_direct_cost`(IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',', - '(SELECT (total_cost/prn) as talcost - FROM ', acc_tabl_name, ' as pre_acc - WHERE pre_acc.code_of_account =\'2C\') as calcost - SET ', acc_tabl_name, '.total_cost = calcost.talcost, - review_status = \'Ready for Review\' - WHERE ', acc_tabl_name, '.code_of_account = \'2\';'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sum_cost_elements_2C_fac` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sum_cost_elements_2C_fac`(IN cel_tabl_name varchar(50), - IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('SELECT sum(cef.cost_2017) from - (SELECT t1.code_of_account, - CONCAT(t1.code_of_account,\'_fac\') as fac_name - FROM ', acc_tabl_name, ' AS t1 - LEFT JOIN ', acc_tabl_name, ' as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!=\'2\' - and t1.code_of_account!=\'2C\' )as ac - join ', cel_tabl_name, ' as cef - on cef.cost_element = ac.fac_name - where ac.code_of_account!=\'2C\''); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sum_cost_elements_2C_lab` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sum_cost_elements_2C_lab`(IN cel_tabl_name varchar(50), - IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('SELECT sum(cef.cost_2017) from - (SELECT t1.code_of_account, - CONCAT(t1.code_of_account,\'_lab\') as lab_name - FROM ', acc_tabl_name, ' AS t1 - LEFT JOIN ', acc_tabl_name, ' as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!=\'2\' - and t1.code_of_account!=\'2C\' )as ac - join ', cel_tabl_name, ' as cef - on cef.cost_element = ac.lab_name - where ac.code_of_account!=\'2C\''); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sum_cost_elements_2C_mat` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sum_cost_elements_2C_mat`(IN cel_tabl_name varchar(50), - IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('SELECT sum(cef.cost_2017) from - (SELECT t1.code_of_account, - CONCAT(t1.code_of_account,\'_mat\') as mat_name - FROM ', acc_tabl_name, ' AS t1 - LEFT JOIN ', acc_tabl_name, ' as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!=\'2\' - and t1.code_of_account!=\'2C\' )as ac - join ', cel_tabl_name, ' as cef - on cef.cost_element = ac.mat_name - where ac.code_of_account!=\'2C\''); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sum_up_lmt_account_2C` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sum_up_lmt_account_2C`(IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',', - '(SELECT sum(t1.total_cost) as tc, sum(t1.prn) as tprn FROM - ', acc_tabl_name, ' AS t1 LEFT JOIN ', acc_tabl_name, ' as t2 - ON t1.code_of_account = t2.supaccount - WHERE t2.code_of_account IS NULL - and t1.code_of_account!=\'2\' - and t1.code_of_account!=\'2C\') as dircost - SET ', acc_tabl_name, '.total_cost = dircost.tc, - ', acc_tabl_name, '.prn=dircost.tprn, - review_status = \'Ready for Review\' - WHERE ', acc_tabl_name, '.code_of_account = \'2C\';'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sum_up_lmt_direct_cost` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sum_up_lmt_direct_cost`(IN acc_tabl_name varchar(50)) -BEGIN - SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',', - '(SELECT (total_cost/prn) as talcost - FROM ', acc_tabl_name, ' as pre_acc - WHERE pre_acc.code_of_account =\'2C\') as calcost - SET ', acc_tabl_name, '.total_cost = calcost.talcost, - review_status = \'Ready for Review\' - WHERE ', acc_tabl_name, '.code_of_account = \'2\';'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `sup_coa_level` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `sup_coa_level`(IN table_name VARCHAR(50), - IN supaccount VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT level FROM ', table_name, ' WHERE code_of_account = ?'); -PREPARE stmt FROM @stmt; -SET @supaccount = supaccount; -EXECUTE stmt USING @supaccount; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_account_before_insert` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_account_before_insert`(IN table_name VARCHAR(50), - IN min_ind INT) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT('UPDATE ', table_name, - ' SET ind = ind + 1 WHERE ind >?'); - PREPARE stmt FROM @stmt; - SET @min_ind = min_ind; - EXECUTE stmt USING @min_ind; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_account_table_by_cost_elements` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_account_table_by_cost_elements`(IN acc_tabl_name varchar(50), - IN cel_tabl_name varchar(50)) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',', - '(SELECT ', acc_tabl_name, '.code_of_account, - ce.total_cost as cost, - ce.updated as updated - FROM ', acc_tabl_name, ' - JOIN (SELECT account, - sum(cost_2017) as total_cost, - sum(updated) as updated - FROM ', cel_tabl_name, ' - GROUP BY ', cel_tabl_name, '.account ) as ce - on ', acc_tabl_name, '.code_of_account = ce.account - ORDER BY ', acc_tabl_name, '.ind) as updated_account - SET ', acc_tabl_name, '.total_cost = updated_account.cost, - review_status = \'Ready for Review\' - WHERE updated_account.updated > 0 - and ', acc_tabl_name, '.code_of_account = updated_account.code_of_account;'); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_cost_element_on_name` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_cost_element_on_name`(IN table_name VARCHAR(50), - IN `ce_name` VARCHAR(50), - IN `alg_value` DECIMAL(20,5) ) -BEGIN - SET SQL_SAFE_UPDATES = 0; - - SET @stmt = CONCAT('UPDATE ', table_name, - ' SET cost_2017 = ', alg_value, - ', updated = 1 WHERE cost_element = ''', ce_name, ''''); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_new_accounts` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_new_accounts`(IN acc_tabl_name VARCHAR(50), - IN var_tabl_name VARCHAR(50), - IN alg_tabl_name VARCHAR(50)) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT("SELECT ac.ind, ac.code_of_account, - ac.total_cost, ac.alg_name, - ac.variables, - alg.alg_python, alg.alg_formulation, alg.alg_units - FROM ", acc_tabl_name, " AS ac - JOIN ", alg_tabl_name, " AS alg ON ac.alg_name = alg.alg_name - WHERE EXISTS ( - SELECT 1 - FROM ", var_tabl_name, " AS va - WHERE va.user_input = 1 - AND FIND_IN_SET(va.var_name, REPLACE(ac.variables, ' ', '')) > 0);"); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_new_cost_elements` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_new_cost_elements`(IN cel_tabl_name VARCHAR(50), - IN var_tabl_name VARCHAR(50), - IN alg_tabl_name VARCHAR(50)) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT("SELECT ce.ind, ce.cost_element, - ce.cost_2017, ce.alg_name, - ce.variables, ce.algno, - alg.alg_python, alg.alg_formulation, alg.alg_units - FROM ", cel_tabl_name, " AS ce - JOIN ", alg_tabl_name, " AS alg ON ce.alg_name = alg.alg_name - WHERE EXISTS ( - SELECT 1 - FROM ", var_tabl_name, " AS va - WHERE va.user_input = 1 - AND FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0);"); - PREPARE stmt FROM @stmt; - EXECUTE stmt; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_super_variable` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_super_variable`(IN var_table_name VARCHAR(50), - IN alg_table_name VARCHAR(50), IN `u_i_var_name` VARCHAR(50)) -BEGIN - SET @stmt = CONCAT('SELECT var.ind, var.var_name, var.var_value, - var.var_alg, var.var_need, alg.ind, alg.alg_python, - alg.alg_formulation, alg.alg_units, var.var_unit - FROM ', var_table_name, ' as var JOIN ', alg_table_name, ' as alg - ON var.var_alg=alg.alg_name - WHERE var.var_name=?'); -PREPARE stmt FROM @stmt; -SET @var_name = u_i_var_name; -EXECUTE stmt USING @var_name; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_total_cost_on_name` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_total_cost_on_name`(IN table_name VARCHAR(50), - IN `tc_id` VARCHAR(50), - IN `u_i_tc_value` DECIMAL(20,5)) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT('UPDATE ', table_name, ' SET total_cost = ?, - review_status = "User Input" WHERE code_of_account = ?'); - PREPARE stmt FROM @stmt; - SET @tc_id = tc_id; - SET @u_i_tc_value = u_i_tc_value; - EXECUTE stmt USING @u_i_tc_value, @tc_id; - DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `update_variable_info_on_name` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`localhost` PROCEDURE `update_variable_info_on_name`(IN table_name VARCHAR(50), - IN `u_i_var_name` VARCHAR(50), IN `value` DECIMAL(20,5), IN `unit` VARCHAR(50)) -BEGIN - SET SQL_SAFE_UPDATES = 0; - SET @stmt = CONCAT('UPDATE ', table_name, ' SET var_value = ?, - var_unit = ?, - user_input = ? WHERE var_name = ?'); -PREPARE stmt FROM @stmt; -SET @var_value = value; -SET @var_unit = unit; -SET @user_input = 1; -SET @var_name = u_i_var_name; -EXECUTE stmt USING @var_value, @var_unit, @user_input, @var_name; -DEALLOCATE PREPARE stmt; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2025-07-04 15:55:16 diff --git a/src/accertdb.sqlite b/src/accertdb.sqlite new file mode 100644 index 0000000..792498c Binary files /dev/null and b/src/accertdb.sqlite differ diff --git a/src/accertdb_sqlite_schema_data.sql b/src/accertdb_sqlite_schema_data.sql new file mode 100644 index 0000000..8479a17 --- /dev/null +++ b/src/accertdb_sqlite_schema_data.sql @@ -0,0 +1,6934 @@ +PRAGMA foreign_keys=OFF; +BEGIN TRANSACTION; +CREATE TABLE `abr_account` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account_description` text, + `total_cost` REAL DEFAULT NULL, + `level` INTEGER DEFAULT NULL, + `supaccount` text, + `review_status` text, + `prn` REAL DEFAULT NULL, + `gncoa` text, + `gn_level` INTEGER DEFAULT NULL, + `gn_supaccount` text, + `gn_ind` INTEGER DEFAULT NULL, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO abr_account VALUES(1,'2','TOTAL DIRECT COST',1419783854.0,0,'','Unchanged',1.0,'20',0,'',1); +INSERT INTO abr_account VALUES(3,'211','Yardwork',71213859.06000000238,2,'21','Unchanged',0.02762898100000000037,'211',2,'21',3); +INSERT INTO abr_account VALUES(4,'212','Reactor containment building',81425435.32999999821,2,'21','Unchanged',0.0716755959999999942,'212.1',3,'212',4); +INSERT INTO abr_account VALUES(5,'213','Turbine room and heater bay',24604390.80000000074,2,'21','Unchanged',0.02559466999999999993,'213.1',3,'213',5); +INSERT INTO abr_account VALUES(6,'215','Primary auxiliary building and tunnels',12470000.0,2,'21','Unchanged',0.02042077200000000022,'214.2',3,'214',8); +INSERT INTO abr_account VALUES(7,'216','Waste processing building',38750000.0,2,'21','Unchanged',0.01588292700000000155,'215',2,'213',9); +INSERT INTO abr_account VALUES(8,'217','Fuel storage building',28149583.82000000029,2,'21','Unchanged',0.01092124899999999919,'214.1',3,'21',7); +INSERT INTO abr_account VALUES(9,'218A','Control Room/Diesel Generator Building',16250000.0,3,'218','Unchanged',0.02000787500000000136,'213.21',3,'214',6); +INSERT INTO abr_account VALUES(10,'220A.211','Vessel Structure (NSSS)',137000000.0,3,'220A','Unchanged',0.02715804700000000113,'221.121',3,'221',10); +INSERT INTO abr_account VALUES(11,'220A.2121','Lower Internals (NSSS)',45204200.0,3,'220A','Unchanged',0.01232975400000000006,'221.131',3,'221',11); +INSERT INTO abr_account VALUES(12,'220A.2122','Upper Internals (NSSS)',45204200.0,3,'220A','Unchanged',0.01232975400000000006,'221.132',3,'221',12); +INSERT INTO abr_account VALUES(13,'220A.2131','Control Rods (NSSS)',1320000.0,3,'220A','Unchanged',0.001202713000000000002,'221.211',3,'221',13); +INSERT INTO abr_account VALUES(14,'220A.2132','Control Rod Drives (NSSS)',13453440.0,3,'220A','Unchanged',0.01354022600000000069,'221.212',3,'221',14); +INSERT INTO abr_account VALUES(15,'220A.221','Main Coolant Pumps (NSSS)',55696873.2899999991,3,'220A','Unchanged',0.04858962499999999741,'222.11',3,'222',16); +INSERT INTO abr_account VALUES(16,'220A.222','Reactor Coolant Piping (NSSS)',7464800.0,3,'220A','Unchanged',0.004422882000000000376,'222.21',3,'222',18); +INSERT INTO abr_account VALUES(17,'220A.223','Steam Generators (NSSS)',122087095.9000000059,3,'220A','Unchanged',0.05811822099999999769,'222.31',3,'222',20); +INSERT INTO abr_account VALUES(18,'220A.224','Pressurizer (NSSS)',1379368.421000000089,3,'220A','Unchanged',0.003220169000000000156,'222.41',3,'222',22); +INSERT INTO abr_account VALUES(19,'222','Main heat transfer transport system',8220525.703999999911,2,'22','Unchanged',0.01094260300000000039,'222',2,'222',15); +INSERT INTO abr_account VALUES(20,'222.11','Fluid Circulation Drive System (Field Cost 222)',2504335.453000000212,3,'222','Unchanged',0.003333600999999999839,'222.12',3,'222',17); +INSERT INTO abr_account VALUES(21,'222.12','Reactor Coolant Piping System (Field Cost 222)',4924232.686999999918,3,'222','Unchanged',0.006554802999999999672,'222.22',3,'22',19); +INSERT INTO abr_account VALUES(22,'222.13','Steam Generator Equipment (Field Cost 222)',697187.717900000047,3,'222','Unchanged',0.000928049000000000018,'222.32',3,'222',21); +INSERT INTO abr_account VALUES(23,'222.14','Pressurizing System (Field Cost 222)',94769.8455300000059,3,'222','Unchanged',0.0001261509999999999921,'222.43',3,'222',23); +INSERT INTO abr_account VALUES(24,'224','Radwaste processing',59673441.34000000357,2,'22','Unchanged',0.02315162200000000017,'224',2,'22',24); +INSERT INTO abr_account VALUES(25,'226.4','Coolant Treatment & Recycle',34304867.39000000059,3,'226','Unchanged',0.01581788300000000134,'226.35',3,'226',25); +INSERT INTO abr_account VALUES(26,'226.7','Aux Cool Sys (Broken Down Further)',0.0,3,'226','Unchanged',0.02141535699999999945,'226.7',3,'226',26); +INSERT INTO abr_account VALUES(27,'227','Reactor instrumentation and control',61419737.21999999881,2,'22','Unchanged',0.02382913600000000076,'227.2',3,'227',27); +INSERT INTO abr_account VALUES(28,'231','Turbine generator',57399816.3500000015,2,'23','Unchanged',0.1481182769999999927,'232.1',3,'232',28); +INSERT INTO abr_account VALUES(29,'233','Condensing systems',29065851.25,2,'23','Unchanged',0.03203929600000000182,'233.21',3,'23',30); +INSERT INTO abr_account VALUES(30,'234','Feedwater heating system',0.0,2,'23','Unchanged',0.02607718399999999979,'234',2,'24',32); +INSERT INTO abr_account VALUES(31,'235','Other turbine plant equipment',9563415.12099999934,2,'23','Unchanged',0.02467806800000000091,'232.2',3,'233',29); +INSERT INTO abr_account VALUES(32,'241','Switchgear',21904347.80000000074,2,'24','Unchanged',0.01320649699999999934,'241',2,'24',33); +INSERT INTO abr_account VALUES(33,'242','Station service equipment',36970984.97999999672,2,'24','Unchanged',0.02229042399999999966,'242',2,'24',34); +INSERT INTO abr_account VALUES(34,'245','Electric structure and wiring contnr.',40891698.72999999672,2,'24','Unchanged',0.0246542879999999999,'245',2,'24',35); +INSERT INTO abr_account VALUES(35,'246','Power and control wiring',37773534.78999999911,2,'24','Unchanged',0.02277429499999999996,'246',2,'26',36); +INSERT INTO abr_account VALUES(36,'252','Air, water and steam service systems',81851078.87000000477,2,'25','Unchanged',0.03175592399999999788,'262',2,'233',37); +INSERT INTO abr_account VALUES(37,'262','Mechanical equipment',44777444.42000000178,2,'26','Unchanged',0.04935819000000000317,'233.22',3,'232',31); +INSERT INTO abr_account VALUES(2,'2C','Calculated DIRECT COST',1225489991.0,0,'','Unchanged',0.8631525049999999589,'2C',0,'',2); +CREATE TABLE `abr_cost_element` ( + `ind` INTEGER NOT NULL , + `cost_element` text, + `cost_2017` REAL DEFAULT NULL, + `sup_cost_ele` text, + `alg_name` text, + `fun_unit` text, + `variables` text, + `account` text, + `algno` text, + `updated` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO abr_cost_element VALUES(1,'211_fac',810015.1700000000419,'21_fac','esc_1987','million','escalate_1987, ref_211_fac','211','12',0); +INSERT INTO abr_cost_element VALUES(2,'212_fac',0.0,'21_fac','default_0','million','N/A','212','N/A',0); +INSERT INTO abr_cost_element VALUES(3,'213_fac',660388.7199999999721,'21_fac','MWth_scale','million','c_213_fac, mwth, scale_0.8','213','8',0); +INSERT INTO abr_cost_element VALUES(4,'215_fac',2121224.729999999982,'21_fac','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO abr_cost_element VALUES(5,'216_fac',1756069.669999999926,'21_fac','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO abr_cost_element VALUES(6,'217_fac',2842399.830000000074,'21_fac','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO abr_cost_element VALUES(7,'218A_fac',1314294.080000000074,'218_fac','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO abr_cost_element VALUES(8,'220A.211_fac',127380000.0,'220A_fac','unit_weights','million','c_220A.221_cs_weight, c_220A.221_ss_weight','220A.211','N/A',0); +INSERT INTO abr_cost_element VALUES(9,'220A.2121_fac',45204200.0,'220A_fac','unit_weights','million','c_zero, c_220A.2121_ss_weight','220A.2121','5',0); +INSERT INTO abr_cost_element VALUES(10,'220A.2122_fac',45204200.0,'220A_fac','unit_weights','million','c_zero, c_220A.2122_ss_weight','220A.2122','5',0); +INSERT INTO abr_cost_element VALUES(11,'220A.2131_fac',1320000.0,'220A_fac','unit_facility','million','no_of_cr, c_cr_per_unit_fac','220A.2131','16',0); +INSERT INTO abr_cost_element VALUES(12,'220A.2132_fac',13453440.0,'220A_fac','unit_facility','million','no_of_crd, c_crd_per_unit_fac','220A.2132','16',0); +INSERT INTO abr_cost_element VALUES(13,'220A.221_fac',55696873.2899999991,'220A_fac','unit_facility','million','no_of_rcpump, c_pump_per_unit_fac','220A.221','16',0); +INSERT INTO abr_cost_element VALUES(14,'220A.222_fac',7464800.0,'220A_fac','unit_weights','million','c_zero, c_220A.222_ss_weight','220A.222','5',0); +INSERT INTO abr_cost_element VALUES(15,'220A.223_fac',118647119.7699999959,'220A_fac','Sgsum','million','sg_weight, c_sg_weight, no_sg','220A.223','N/A',0); +INSERT INTO abr_cost_element VALUES(16,'220A.224_fac',1379368.419999999926,'220A_fac','MWth_lmfbrscale','million','r_78_220A224_fac, mwth, scale_1.0','220A.224','24',0); +INSERT INTO abr_cost_element VALUES(17,'222.11_fac',1101963.790000000037,'222_fac','MWth_scale','million','c_222.11_fac, mwth, scale_1.0','222.11','8',0); +INSERT INTO abr_cost_element VALUES(18,'222.12_fac',1280778.060000000055,'222_fac','MWth_scale','million','c_222.12_fac, mwth, scale_1.0','222.12','8',0); +INSERT INTO abr_cost_element VALUES(19,'222.13_fac',21900.68000000000029,'222_fac','MWth_scale','million','c_222.13_fac, mwth, scale_1.0','222.13','8',0); +INSERT INTO abr_cost_element VALUES(20,'222.14_fac',4380.140000000000328,'222_fac','MWth_scale','million','c_222.14_fac, mwth, scale_1.0','222.14','8',0); +INSERT INTO abr_cost_element VALUES(21,'222_fac',2409022.680000000167,'22_fac','MWth_scale','million','c_222_fac, mwth, scale_1.0','222','8',0); +INSERT INTO abr_cost_element VALUES(22,'224_fac',46047915.42999999971,'22_fac','esc_1987','million','escalate_1987, ref_224_fac','224','12',0); +INSERT INTO abr_cost_element VALUES(23,'226.4_fac',34304867.39000000059,'226_fac','MWth_scale','million','r_78_226.4_fac, mwth, scale_1.0','226.4','8',0); +INSERT INTO abr_cost_element VALUES(24,'226.7_fac',0.0,'226_fac','default_0','million','N/A','226.7','14',0); +INSERT INTO abr_cost_element VALUES(25,'227_fac',37538349.96000000089,'22_fac','esc_1987','million','escalate_1987, ref_227_fac','227','12',0); +INSERT INTO abr_cost_element VALUES(26,'231_fac',53544604.81000000239,'23_fac','dev_factor_ref','million','c_turbine, scale_tur_231_fac, scale_1.0','231','10',0); +INSERT INTO abr_cost_element VALUES(27,'233_fac',19829554.55000000074,'23_fac','MWreth_scale','million','c_233_fac, mwreth, scale_0.8','233','25',0); +INSERT INTO abr_cost_element VALUES(28,'234_fac',0.0,'23_fac','default_0','million','N/A','234','14',0); +INSERT INTO abr_cost_element VALUES(29,'235_fac',4788444.349999999628,'23_fac','ptn_account','million','c_231_fac, prn_235_of_231_fac','235','4',0); +INSERT INTO abr_cost_element VALUES(30,'241_fac',20635161.28000000119,'24_fac','MWe_scale','million','c_241_fac, mwe, scale_0.4','241','17',0); +INSERT INTO abr_cost_element VALUES(31,'242_fac',33563126.13000000269,'24_fac','MWe_scale','million','c_242_fac, mwe, scale_0.4','242','17',0); +INSERT INTO abr_cost_element VALUES(32,'245_fac',0.0,'24_fac','MWe_scale','million','c_245_fac, mwe, scale_0.4','245','17',0); +INSERT INTO abr_cost_element VALUES(33,'246_fac',2902733.979999999982,'24_fac','MWe_scale','million','c_246_fac, mwe, scale_0.4','246','17',0); +INSERT INTO abr_cost_element VALUES(34,'252_fac',24869567.30999999866,'25_fac','esc_1987','million','escalate_1987, ref_252_fac','252','12',0); +INSERT INTO abr_cost_element VALUES(35,'262_fac',30555532.85000000149,'26_fac','MWreth_scale','million','c_262_fac, mwreth, scale_0.8','262','25',0); +INSERT INTO abr_cost_element VALUES(36,'2c_fac',736246154.6200000048,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO abr_cost_element VALUES(37,'211_lab',41328822.53999999911,'21_lab','esc_1987','million','escalate_1987, ref_211_lab','211','12',0); +INSERT INTO abr_cost_element VALUES(38,'212_lab',43940775.97999999672,'21_lab','containment','million','Tot_Labor_containment','212','7',0); +INSERT INTO abr_cost_element VALUES(39,'213_lab',11873274.11999999919,'21_lab','MWth_scale','million','c_213_lab, mwth, scale_0.8','213','8',0); +INSERT INTO abr_cost_element VALUES(40,'215_lab',7101615.959999999963,'21_lab','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO abr_cost_element VALUES(41,'216_lab',24337584.5,'21_lab','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO abr_cost_element VALUES(42,'217_lab',12836637.90000000037,'21_lab','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO abr_cost_element VALUES(43,'218A_lab',10038481.64000000059,'218_lab','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO abr_cost_element VALUES(44,'220A.211_lab',8750000.0,'220A_lab','NO_ALG','million','N/A','220A.211','N/A',0); +INSERT INTO abr_cost_element VALUES(45,'220A.2121_lab',0.0,'220A_lab','default_0','million','N/A','220A.2121','14',0); +INSERT INTO abr_cost_element VALUES(46,'220A.2122_lab',0.0,'220A_lab','default_0','million','N/A','220A.2122','14',0); +INSERT INTO abr_cost_element VALUES(47,'220A.2131_lab',0.0,'220A_lab','default_0','million','N/A','220A.2131','14',0); +INSERT INTO abr_cost_element VALUES(48,'220A.2132_lab',0.0,'220A_lab','default_0','million','N/A','220A.2132','14',0); +INSERT INTO abr_cost_element VALUES(49,'220A.221_lab',0.0,'220A_lab','default_0','million','N/A','220A.221','14',0); +INSERT INTO abr_cost_element VALUES(50,'220A.222_lab',0.0,'220A_lab','default_0','million','N/A','220A.222','14',0); +INSERT INTO abr_cost_element VALUES(51,'220A.223_lab',3173085.990000000223,'220A_lab','Sgsum','million','N/A','220A.223','N/A',0); +INSERT INTO abr_cost_element VALUES(52,'220A.224_lab',0.0,'220A_lab','default_0','million','N/A','220A.224','14',0); +INSERT INTO abr_cost_element VALUES(53,'222.11_lab',1274883.330000000074,'222_lab','MWth_scale','million','c_222.11_lab, mwth, scale_1.0','222.11','8',0); +INSERT INTO abr_cost_element VALUES(54,'222.12_lab',3317279.459999999963,'222_lab','MWth_scale','million','c_222.12_lab, mwth, scale_1.0','222.12','8',0); +INSERT INTO abr_cost_element VALUES(55,'222.13_lab',613897.3000000000465,'222_lab','MWth_scale','million','r_222.13_lab, mwth, scale_1.0','222.13','8',0); +INSERT INTO abr_cost_element VALUES(56,'222.14_lab',82172.71000000000641,'222_lab','MWth_scale','million','c_222.14_lab, mwth, scale_1.0','222.14','8',0); +INSERT INTO abr_cost_element VALUES(57,'222_lab',5288232.809999999591,'22_mat','MWth_scale','million','c_222_lab, mwth, scale_1.0','222','8',0); +INSERT INTO abr_cost_element VALUES(58,'224_lab',11434348.55000000075,'22_lab','esc_1987','million','escalate_1987, ref_224_lab','224','12',0); +INSERT INTO abr_cost_element VALUES(59,'226.4_lab',0.0,'226_lab','default_0','million','N/A','226.4','14',0); +INSERT INTO abr_cost_element VALUES(60,'226.7_lab',0.0,'226_lab','default_0','million','N/A','226.7','14',0); +INSERT INTO abr_cost_element VALUES(61,'227_lab',21960889.78999999911,'22_lab','esc_1987','million','escalate_1987, ref_227_lab','227','12',0); +INSERT INTO abr_cost_element VALUES(62,'231_lab',588990.6500000000232,'23_lab','ptn_account','million','c_231_fac, prn_fac_231_lab','231','4',0); +INSERT INTO abr_cost_element VALUES(63,'233_lab',8082642.160000000149,'23_lab','MWreth_scale','million','c_233_lab, mwreth, scale_0.8','233','25',0); +INSERT INTO abr_cost_element VALUES(64,'234_lab',0.0,'23_lab','default_0','million','N/A','234','14',0); +INSERT INTO abr_cost_element VALUES(65,'235_lab',4258930.480000000448,'23_lab','ptn_account','million','c_231_lab, prn_235_of_231_lab','235','4',0); +INSERT INTO abr_cost_element VALUES(66,'241_lab',1107205.120000000112,'24_lab','MWe_scale','million','c_241_lab, mwe, scale_0.4','241','17',0); +INSERT INTO abr_cost_element VALUES(67,'242_lab',2861071.439999999945,'24_lab','MWe_scale','million','c_242_lab, mwe, scale_0.4','242','17',0); +INSERT INTO abr_cost_element VALUES(68,'245_lab',32970390.21999999881,'24_lab','MWe_scale','million','c_245_lab, mwe, scale_0.4','245','17',0); +INSERT INTO abr_cost_element VALUES(69,'246_lab',21514837.92000000179,'24_lab','MWe_scale','million','c_246_lab, mwe, scale_0.4','246','17',0); +INSERT INTO abr_cost_element VALUES(70,'252_lab',44371766.00999999792,'25_lab','esc_1987','million','escalate_1987, ref_252_lab','252','12',0); +INSERT INTO abr_cost_element VALUES(71,'262_lab',12634376.80000000074,'26_lab','MWreth_scale','million','c_262_lab, mwreth, scale_0.8','262','25',0); +INSERT INTO abr_cost_element VALUES(72,'2c_lab',330450874.5699999928,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO abr_cost_element VALUES(73,'211_mat',29075021.35000000149,'21_mat','esc_1987','million','escalate_1987, ref_211_mat','211','12',0); +INSERT INTO abr_cost_element VALUES(74,'212_mat',37484659.34000000358,'21_mat','containment','million','Tot_Mat_containment','212','7',0); +INSERT INTO abr_cost_element VALUES(75,'213_mat',12070727.96000000089,'21_mat','MWth_scale','million','c_213_mat, mwth, scale_0.8','213','8',0); +INSERT INTO abr_cost_element VALUES(76,'215_mat',3247159.310000000055,'21_mat','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO abr_cost_element VALUES(77,'216_mat',12656345.83000000007,'21_mat','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO abr_cost_element VALUES(78,'217_mat',12470546.08999999986,'21_mat','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO abr_cost_element VALUES(79,'218A_mat',4897224.28000000026,'218_mat','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO abr_cost_element VALUES(80,'220A.211_mat',870000.0,'220A_mat','NO_ALG','million','N/A','220A.211','N/A',0); +INSERT INTO abr_cost_element VALUES(81,'220A.2121_mat',0.0,'220A_mat','default_0','million','N/A','220A.2121','14',0); +INSERT INTO abr_cost_element VALUES(82,'220A.2122_mat',0.0,'220A_mat','default_0','million','N/A','220A.2122','14',0); +INSERT INTO abr_cost_element VALUES(83,'220A.2131_mat',0.0,'220A_mat','default_0','million','N/A','220A.2131','14',0); +INSERT INTO abr_cost_element VALUES(84,'220A.2132_mat',0.0,'220A_mat','default_0','million','N/A','220A.2132','14',0); +INSERT INTO abr_cost_element VALUES(85,'220A.221_mat',0.0,'220A_mat','default_0','million','N/A','220A.221','14',0); +INSERT INTO abr_cost_element VALUES(86,'220A.222_mat',0.0,'220A_mat','default_0','million','N/A','220A.222','14',0); +INSERT INTO abr_cost_element VALUES(87,'220A.223_mat',266890.1599999999743,'220A_mat','Sgsum','million','N/A','220A.223','N/A',0); +INSERT INTO abr_cost_element VALUES(88,'220A.224_mat',0.0,'220A_mat','default_0','million','N/A','220A.224','14',0); +INSERT INTO abr_cost_element VALUES(89,'222.11_mat',127488.3300000000017,'222_mat','MWth_scale','million','c_222.11_mat, mwth, scale_1.0','222.11','8',0); +INSERT INTO abr_cost_element VALUES(90,'222.12_mat',326175.1599999999743,'222_mat','MWth_scale','million','c_222.12_mat, mwth, scale_1.0','222.12','8',0); +INSERT INTO abr_cost_element VALUES(91,'222.13_mat',61389.7300000000032,'222_mat','MWth_scale','million','r_222.13_mat, mwth, scale_1.0','222.13','8',0); +INSERT INTO abr_cost_element VALUES(92,'222.14_mat',8217.0,'222_mat','MWth_scale','million','c_222.14_mat, mwth, scale_1.0','222.14','8',0); +INSERT INTO abr_cost_element VALUES(93,'222_mat',523270.2199999999721,'22_mat','MWth_scale','million','c_222_mat, mwth, scale_1.0','222','8',0); +INSERT INTO abr_cost_element VALUES(94,'224_mat',2191177.359999999869,'22_mat','esc_1987','million','escalate_1987, ref_224_mat','224','12',0); +INSERT INTO abr_cost_element VALUES(95,'226.4_mat',0.0,'226_mat','default_0','million','N/A','226.4','14',0); +INSERT INTO abr_cost_element VALUES(96,'226.7_mat',0.0,'226_mat','default_0','million','N/A','226.7','14',0); +INSERT INTO abr_cost_element VALUES(97,'227_mat',1920497.469999999973,'22_mat','esc_1987','million','escalate_1987, ref_227_mat','227','12',0); +INSERT INTO abr_cost_element VALUES(98,'231_mat',3266220.89000000013,'23_mat','ptn_account','million','c_231_fac, prn_fac_231_mat','231','4',0); +INSERT INTO abr_cost_element VALUES(99,'233_mat',1153654.540000000037,'23_mat','MWreth_scale','million','c_233_mat, mwreth, scale_0.8','233','25',0); +INSERT INTO abr_cost_element VALUES(100,'234_mat',0.0,'23_mat','default_0','million','N/A','234','14',0); +INSERT INTO abr_cost_element VALUES(101,'235_mat',516040.2899999999791,'23_mat','ptn_account','million','c_231_mat, prn_235_of_231_mat','235','4',0); +INSERT INTO abr_cost_element VALUES(102,'241_mat',161981.3999999999942,'24_mat','MWe_scale','million','c_241_mat, mwe, scale_0.4','241','17',0); +INSERT INTO abr_cost_element VALUES(103,'242_mat',546787.4100000000325,'24_mat','MWe_scale','million','c_242_mat, mwe, scale_0.4','242','17',0); +INSERT INTO abr_cost_element VALUES(104,'245_mat',7921308.519999999553,'24_mat','MWe_scale','million','c_245_mat, mwe, scale_0.4','245','17',0); +INSERT INTO abr_cost_element VALUES(105,'246_mat',13355962.89000000059,'24_mat','MWe_scale','million','c_246_mat, mwe, scale_0.4','246','17',0); +INSERT INTO abr_cost_element VALUES(106,'252_mat',12609745.55000000074,'25_mat','esc_1987','million','escalate_1987, ref_252_mat','252','12',0); +INSERT INTO abr_cost_element VALUES(107,'262_mat',1587534.770000000018,'26_mat','MWreth_scale','million','c_262_mat, mwreth, scale_0.8','262','25',0); +INSERT INTO abr_cost_element VALUES(108,'2c_mat',158795865.4799999893,'','NO_ALG','million','N/A','2','N/A',0); +CREATE TABLE `abr_variable` ( + `ind` INTEGER NOT NULL , + `var_name` text, + `var_description` text, + `var_value` REAL DEFAULT NULL, + `var_unit` text, + `var_alg` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO abr_variable VALUES(1,'c_213_fac','Turbine building structure factory cost',1.770664299999999969,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(2,'c_213_lab','Turbine building structure labor cost',31.8351620000000004,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(3,'c_213_mat','Turbine building structure material cost',32.36458499999999817,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(4,'c_220A.2121_ss_weight','weight of the stainless steel lower internals',145.8199999999999932,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(5,'c_220A.2122_ss_weight','weight of the stainless steel upper internals',145.8199999999999932,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(6,'c_220A.222_ss_weight','weight of the stainless steel reactor coolant piping',24.0799999999999983,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(7,'c_222_fac','Main heat transfer transport system factory cost',8.265356804999999695,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(8,'c_222_lab','Main heat transfer transport system labor cost',18.14392674999999854,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(9,'c_222_mat','Main heat transfer transport system material cost',1.795340115999999986,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(10,'c_222.11_fac','Fluid Circulation Drive System (Field Cost 222) factory cost',3.78083778199999987,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(11,'c_222.11_lab','Fluid Circulation Drive System (Field Cost 222) labor cost',4.374124686000000039,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(12,'c_222.11_mat','Fluid Circulation Drive System (Field Cost 222) material cost',0.437412469000000026,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(13,'c_222.12_fac','Reactor Coolant Piping System (Field Cost 222) factory cost',4.394349539000000248,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(14,'c_222.12_lab','Reactor Coolant Piping System (Field Cost 222) labor cost',11.38158583999999963,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(15,'c_222.12_mat','Reactor Coolant Piping System (Field Cost 222) material cost',1.119106973999999921,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(16,'c_222.13_fac','Steam Generator Equipment (Field Cost 222) factory cost',0.7514123999999999804,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(17,'c_222.14_fac','Pressurizing System (Field Cost 222) factory cost',0.01502824699999999979,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(18,'c_222.14_lab','Pressurizing System (Field Cost 222) labor cost',0.2819345759999999924,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(19,'c_222.14_mat','Pressurizing System (Field Cost 222) material cost',0.02819250800000000153,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(20,'c_231_fac','Turbine factory cost',53.54460481000000272,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(21,'c_231_lab','Turbine labor cost',0.5889906529999999752,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(22,'c_231_mat','Turbine material cost',3.266220890000000043,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(23,'c_233_fac','Condensing Systems factory cost',56.33944199999999825,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(24,'c_233_lab','Condensing Systems labor cost',22.96428500000000028,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(25,'c_233_mat','Condensing Systems material cost',3.277746500000000118,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(26,'c_241_fac','Switchgear factory cost',32.06748044999999792,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(27,'c_241_lab','Switchgear labor cost',1.720620352999999936,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(28,'c_241_mat','Switchgear material cost',0.2517225510000000165,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(29,'c_242_fac','Station service equipment factory cost',52.15781338000000033,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(30,'c_242_lab','Station service equipment labor cost',4.446166005000000254,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(31,'c_242_mat','Station service equipment material cost',0.8497192869999999898,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(32,'c_245_fac','Electric structure and wiring contnr. factory cost',0.0,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(33,'c_245_lab','Electric structure and wiring contnr. labor cost',51.23668914000000285,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(34,'c_245_mat','Electric structure and wiring contnr. material cost',12.30988226999999924,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(35,'c_246_fac','Power and control wiring factory cost',4.5109104689999997,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(36,'c_246_lab','Power and control wiring labor cost',33.4345167000000032,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(37,'c_246_mat','Power and control wiring material cost',20.75545101000000159,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(38,'c_262_fac','Heat Rejection System factory cost',86.81393497999999909,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(39,'c_262_lab','Heat Rejection System labor cost',35.89660736999999813,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(40,'c_262_mat','Heat Rejection System material cost',4.510480682999999936,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(41,'c_cr_per_unit_fac','unit cost of rod',0.05999999999999999778,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(42,'c_crd_per_unit_fac','unit cost of rod drive',0.6115199999999999526,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(43,'c_pump_ap1000','AP1000 factory cost of main coolant pumps',31.25,'million',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO abr_variable VALUES(44,'c_pump_per_unit_fac','Reactor coolant pumps Factory Equipment Cost',13.9242183199999996,'million','pump','c_pump_ap1000,CH_abr1000,CH_AP1000,scale_0.52',NULL,0); +INSERT INTO abr_variable VALUES(45,'c_turbine','Turbine equipment cost',52.64956225000000246,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(46,'c_zero','place holder for weight',0.0,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(47,'CH_abr1000','CH factor of PWR-12 BE',6072830.0,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO abr_variable VALUES(48,'CH_AP1000','CH factor of AP1000',28743750.0,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO abr_variable VALUES(49,'escalate_1987','escalator 1987 to 2017',2.849406999999999802,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(50,'mwe','user_input MWE',NULL,'MW',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(51,'mwreth','rejected thermal power',620.0,'MW',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(52,'mwth','user_input mwth',NULL,'MW',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(53,'no_of_cr','Total control rods',22.0,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(54,'no_of_crd','Total control rod drives',22.0,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(55,'no_of_rcpump','total number of reactor coolant pumps',4.0,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(56,'prn_235_of_231_fac','factory portion of cost from factory of 231',0.08945484200000000663,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(57,'prn_235_of_231_lab','labor portion of cost from labor of 231',1.302615598000000041,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(58,'prn_235_of_231_mat','material portion of cost from labor of 231',0.8584733789999999809,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(59,'prn_fac_231_lab','labor portion of cost from factory of 231',0.06099999999999999867,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(60,'prn_fac_231_mat','material portion of cost from factory of 231',0.01119999999999999989,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(61,'r_222.13_lab','labor cost of Steam Generator Equipment (Field Cost 222)',2.106279999999999931,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(62,'r_222.13_mat','material cost of Steam Generator Equipment (Field Cost 222)',0.2106280000000000096,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(63,'r_78_220A224_fac','factory cost of pressurizer in ref',5.241600000000000036,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(64,'r_78_226.4_fac','Coolant Treatment & Recycle factory cost',117.7000000000000028,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(65,'ref_211_fac','yardwork factory cost',0.284275,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(66,'ref_211_lab','yardwork labor cost',14.50435899999999912,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(67,'ref_211_mat','yardwork material cost',10.20388499999999965,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(68,'ref_224_fac','Radwaste processing factory cost',16.16052583000000097,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(69,'ref_224_lab','Radwaste processing labor cost',4.012887082999999855,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(70,'ref_224_mat','Radwaste processing material cost',0.7689941670000000062,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(71,'ref_227_fac','Reactor instrumentation and control factory cost',13.17409199999999992,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(72,'ref_227_lab','Reactor instrumentation and control labor cost',7.707179000000000002,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(73,'ref_227_mat','Reactor instrumentation and control material cost',0.6739990000000000147,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(74,'ref_252_fac','Air, water and steam service systems factory cost ',8.727980000000000516,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(75,'ref_252_lab','Air, water and steam service systems labor cost ',15.57228100000000026,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(76,'ref_252_mat','Air, water and steam service systems material cost ',4.425392999999999688,'million',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(77,'scale_0.4','electric scale 0.4',0.4000000000000000222,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(78,'scale_0.52','SH scale 1.0',0.5200000000000000177,'1',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO abr_variable VALUES(79,'scale_0.8','thermal scale 0.8',0.8000000000000000444,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(80,'scale_1.0','thermal scale 1.0',1.0,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(81,'scale_tur_231_fac','factory scale of cost from turbine',1.016999999999999904,'1',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(82,'CPI','The Consumer Price Index',2.200000000000000178,'1',NULL,NULL,'infl',0); +INSERT INTO abr_variable VALUES(83,'Void_fraction','Void fraction of the inside of the containment ',0.9170000000000000373,'1',NULL,NULL,'Internal_v_m3',0); +INSERT INTO abr_variable VALUES(84,'liner_fraction','liner fraction of containment',1.0,'1',NULL,NULL,'Liner_s_m2',0); +INSERT INTO abr_variable VALUES(85,'Cont_H_tot_m','Containment total height ',50.59680000000000177,'m',NULL,NULL,'Cont_H_wall_m',0); +INSERT INTO abr_variable VALUES(86,'Cont_rad_out_m','Containment outside radius ',15.24000000000000021,'m',NULL,NULL,'Cont_H_wall_m,Cont_rad_in_m,Basemat_s_m2,Walls_s_m2,Walls_v_m3,Dome_rad_in_m,Dome_s_m2,Dome_v_m3,Surf_paint_m2',0); +INSERT INTO abr_variable VALUES(87,'Cont_shell_t_m','Shell wall thickness ',1.371599999999999931,'m',NULL,NULL,'Cont_rad_in_m',0); +INSERT INTO abr_variable VALUES(88,'Cont_H_wall_m','Containment wall height ',35.35679999999999979,'m','wall_height','Cont_H_tot_m,Cont_rad_out_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s,Surf_paint_m2',0); +INSERT INTO abr_variable VALUES(89,'Basemat_t_m','Basemat thickness ',3.048000000000000042,'m',NULL,NULL,'Basemat_v_m3',0); +INSERT INTO abr_variable VALUES(90,'Dome_t_m','Dome thickness ',1.066799999999999971,'m',NULL,NULL,'Dome_rad_in_m',0); +INSERT INTO abr_variable VALUES(91,'Intern_wall_t','Internal wall average thickness ',1.219200000000000061,'m',NULL,NULL,'Internal_s_m2',0); +INSERT INTO abr_variable VALUES(92,'React_cav_A_m2','Reactor cavity area ',1021.933440000000018,'m^2',NULL,NULL,'Total_Labor_React_cav_liner,Total_Mat_React_cav_liner',0); +INSERT INTO abr_variable VALUES(93,'Cont_rad_in_m','Containment inside radius ',13.8683999999999994,'m','inside_rad','Cont_rad_out_m,Cont_shell_t_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s',0); +INSERT INTO abr_variable VALUES(94,'Basemat_s_m2','Basemat surface',729.6587699000000385,'m^2','round_surface','Cont_rad_out_m','Basemat_v_m3,Total_Labor_Constr_joints_Substr,Total_Labor_Formwork_Substr,Total_Labor_Waterproofing_Substr,Total_Labor_Welded_wire_fabric_Substr,Total_Mat_Constr_joints_Substr,Total_Mat_Formwork_Substr,Total_Mat_Waterproofing_Substr,Total_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO abr_variable VALUES(95,'Basemat_v_m3','Basemat volume',2223.999930999999833,'m^3','basemat_volume','Basemat_s_m2,Basemat_t_m','Struct_v_m3,Total_Labor_Cadweld_Substr,Total_Labor_Concrete_Substr,Total_Labor_Embedded_steel_Substr,Total_Labor_Reinforc_steel_Substr,Total_Mat_Cadweld_Substr,Total_Mat_Concrete_Substr,Total_Mat_Embedded_steel_Substr,Total_Mat_Reinforc_steel_Substr',0); +INSERT INTO abr_variable VALUES(96,'Walls_s_m2','Walls surface',6466.527882000000317,'m^2','walls_surface','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Total_Labor_Constr_joints_Superstr,Total_Labor_Formwork_Superstr,Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Waterproofing_Superstr,Total_Mat_Constr_joints_Superstr,Total_Mat_Formwork_Superstr,Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Waterproofing_Superstr',0); +INSERT INTO abr_variable VALUES(97,'Walls_v_m3','Walls volume',4434.744821999999658,'m^3','wall_volume','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Superstr,Total_Labor_Concrete_Superstr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Reinforc_steel_Superstr,Total_Mat_Cadweld_Superstr,Total_Mat_Concrete_Superstr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Reinforc_steel_Superstr',0); +INSERT INTO abr_variable VALUES(98,'Dome_rad_in_m','Dome inside radius ',14.17319999999999958,'m','inside_rad','Cont_rad_out_m,Dome_t_m','Dome_s_m2,Dome_v_m3,Intern_tot_v_m3,Inside_liner_s',0); +INSERT INTO abr_variable VALUES(99,'Dome_s_m2','Roof surface',2721.48127999999997,'m^2','roof_surface','Cont_rad_out_m,Dome_rad_in_m','Total_Labor_Constr_joints_Dome,Total_Labor_Formwork_Dome,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Waterproofing_Dome,Total_Mat_Constr_joints_Dome,Total_Mat_Formwork_Dome,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Waterproofing_Dome',0); +INSERT INTO abr_variable VALUES(100,'Dome_v_m3','Roof volume',1450.366727999999967,'m^3','roof_volume','Cont_rad_out_m,Dome_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Dome,Total_Labor_Concrete_Dome,Total_Labor_Embedded_steel_Dome,Total_Labor_Reinforc_steel_Dome,Total_Mat_Cadweld_Dome,Total_Mat_Concrete_Dome,Total_Mat_Embedded_steel_Dome,Total_Mat_Reinforc_steel_Dome',0); +INSERT INTO abr_variable VALUES(101,'Intern_tot_v_m3','Tot intenal Volume',27326.62074999999823,'m^3','tot_internal_volume','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Internal_v_m3,Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other,Total_Labor_fl_grate_handrail_stairs,Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other,Total_Mat_fl_grate_handrail_stairs',0); +INSERT INTO abr_variable VALUES(102,'Internal_v_m3','Building internal volume',2268.109522000000198,'m^3','building_internal_volume','Intern_tot_v_m3,Void_fraction','Internal_s_m2,Struct_v_m3,Total_Labor_Cadweld_Interior,Total_Labor_Concrete_Interior,Total_Labor_Embedded_steel_Interior,Total_Labor_Maj_supp_embedments_Interior,Total_Labor_Reinforc_steel_Interior,Total_Mat_Cadweld_Interior,Total_Mat_Concrete_Interior,Total_Mat_Embedded_steel_Interior,Total_Mat_Maj_supp_embedments_Interior,Total_Mat_Reinforc_steel_Interior',0); +INSERT INTO abr_variable VALUES(103,'Internal_s_m2','Building internal surface',3720.652102999999898,'m^2','building_internal _surface','Internal_v_m3,Intern_wall_t','Surf_paint_m2,Total_Labor_Constr_joints_Interior,Total_Labor_Formwork_Interior,Total_Labor_Rubbing_surfaces_Interior,Total_Mat_Constr_joints_Interior,Total_Mat_Formwork_Interior,Total_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO abr_variable VALUES(104,'Struct_v_m3','volume of the structures ',10377.22099999999955,'m^3','volume_of_the_structures ','Basemat_v_m3,Walls_v_m3,Dome_v_m3,Internal_v_m3','Total_Labor_Misc_steel_frames,Total_Labor_Struct_steel,Total_Mat_Misc_steel_frames,Total_Mat_Struct_steel',0); +INSERT INTO abr_variable VALUES(105,'Inside_liner_s','Inside liner surface',4947.305357999999615,'m^2','Inside_liner_surface','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Liner_s_m2,Surf_paint_m2,',0); +INSERT INTO abr_variable VALUES(106,'Liner_s_m2','Liner Surface',4947.305357999999615,'m^2','liner_Surface','Inside_liner_s,liner_fraction','Total_Labor_cont_liner,Total_Mat_cont_liner',0); +INSERT INTO abr_variable VALUES(107,'Surf_paint_m2','painted surface',13512.89169000000038,'m^2','painted_surface','Inside_liner_s,Cont_H_wall_m,Cont_rad_out_m,Internal_s_m2','Total_Labor_painting,Total_Mat_painting',0); +INSERT INTO abr_variable VALUES(108,'infl','Inflation rate',2.870501003999999857,'1','Inflation_rate','CPI','Unit_Labor_Cadweld_Substr,Unit_Labor_Cadweld_Superstr,Unit_Labor_Cadweld_Dome,Unit_Labor_Cadweld_Interior,Unit_Labor_Concrete_Substr,Unit_Labor_Concrete_Superstr,Unit_Labor_Concrete_Dome,Unit_Labor_Concrete_Interior,Unit_Labor_Constr_joints_Substr,Unit_Labor_Constr_joints_Superstr,Unit_Labor_Constr_joints_Dome,Unit_Labor_Constr_joints_Interior,Unit_Labor_Embedded_steel_Substr,Unit_Labor_Embedded_steel_Superstr,Unit_Labor_Embedded_steel_Dome,Unit_Labor_Embedded_steel_Interior,Unit_Labor_Formwork_Substr,Unit_Labor_Formwork_Superstr,Unit_Labor_Formwork_Dome,Unit_Labor_Formwork_Interior,Unit_Labor_Maj_supp_embedments_Interior,Unit_Labor_Reinforc_steel_Substr,Unit_Labor_Reinforc_steel_Superstr,Unit_Labor_Reinforc_steel_Dome,Unit_Labor_Reinforc_steel_Interior,Unit_Labor_Rubbing_surfaces_Superstr,Unit_Labor_Rubbing_surfaces_Dome,Unit_Labor_Rubbing_surfaces_Interior,Unit_Labor_Waterproofing_Substr,Unit_Labor_Waterproofing_Superstr,Unit_Labor_Waterproofing_Dome,Unit_Labor_Welded_wire_fabric_Substr,Unit_Labor_Lighting_Power,Unit_Labor_Plumb_drains,Unit_Labor_Special_HVAC,Unit_Labor_other,Unit_Labor_Misc_steel_frames,Unit_Labor_React_cav_liner,Unit_Labor_Struct_steel,Unit_Labor_cont_liner,Unit_Labor_fl_grate_handrail_stairs,Unit_Labor_painting,Unit_Mat_Cadweld_Substr,Unit_Mat_Cadweld_Superstr,Unit_Mat_Cadweld_Dome,Unit_Mat_Cadweld_Interior,Unit_Mat_Concrete_Substr,Unit_Mat_Concrete_Superstr,Unit_Mat_Concrete_Dome,Unit_Mat_Concrete_Interior,Unit_Mat_Constr_joints_Substr,Unit_Mat_Constr_joints_Superstr,Unit_Mat_Constr_joints_Dome,Unit_Mat_Constr_joints_Interior,Unit_Mat_Embedded_steel_Substr,Unit_Mat_Embedded_steel_Superstr,Unit_Mat_Embedded_steel_Dome,Unit_Mat_Embedded_steel_Interior,Unit_Mat_Formwork_Substr,Unit_Mat_Formwork_Superstr,Unit_Mat_Formwork_Dome,Unit_Mat_Formwork_Interior,Unit_Mat_Maj_supp_embedments_Interior,Unit_Mat_Reinforc_steel_Substr,Unit_Mat_Reinforc_steel_Superstr,Unit_Mat_Reinforc_steel_Dome,Unit_Mat_Reinforc_steel_Interior,Unit_Mat_Rubbing_surfaces_Superstr,Unit_Mat_Rubbing_surfaces_Dome,Unit_Mat_Rubbing_surfaces_Interior,Unit_Mat_Waterproofing_Substr,Unit_Mat_Waterproofing_Superstr,Unit_Mat_Waterproofing_Dome,Unit_Mat_Welded_wire_fabric_Substr,Unit_Mat_Lighting_Power,Unit_Mat_Plumb_drains,Unit_Mat_Special_HVAC,Unit_Mat_other,Unit_Mat_Misc_steel_frames,Unit_Mat_React_cav_liner,Unit_Mat_Struct_steel,Unit_Mat_cont_liner,Unit_Mat_fl_grate_handrail_stairs,Unit_Mat_painting',0); +INSERT INTO abr_variable VALUES(109,'Unit_EEDB_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in EEDB',85.45999999999999374,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Substr',0); +INSERT INTO abr_variable VALUES(110,'Unit_EEDB_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in EEDB',114.6200000000000045,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Superstr',0); +INSERT INTO abr_variable VALUES(111,'Unit_EEDB_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in EEDB',231.0900000000000034,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Dome',0); +INSERT INTO abr_variable VALUES(112,'Unit_EEDB_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in EEDB',48.20000000000000284,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Interior',0); +INSERT INTO abr_variable VALUES(113,'Unit_EEDB_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in EEDB',72.51999999999999603,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Substr',0); +INSERT INTO abr_variable VALUES(114,'Unit_EEDB_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in EEDB',87.39000000000000056,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Superstr',0); +INSERT INTO abr_variable VALUES(115,'Unit_EEDB_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in EEDB',78.01999999999999603,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Dome',0); +INSERT INTO abr_variable VALUES(116,'Unit_EEDB_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in EEDB',97.5699999999999931,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Interior',0); +INSERT INTO abr_variable VALUES(117,'Unit_EEDB_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in EEDB',14.50999999999999979,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Substr',0); +INSERT INTO abr_variable VALUES(118,'Unit_EEDB_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in EEDB',12.43999999999999951,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Superstr',0); +INSERT INTO abr_variable VALUES(119,'Unit_EEDB_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in EEDB',4.75,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Dome',0); +INSERT INTO abr_variable VALUES(120,'Unit_EEDB_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in EEDB',2.049999999999999822,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Interior',0); +INSERT INTO abr_variable VALUES(121,'Unit_EEDB_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in EEDB',3.979999999999999983,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Substr',0); +INSERT INTO abr_variable VALUES(122,'Unit_EEDB_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in EEDB',15.98000000000000042,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Superstr',0); +INSERT INTO abr_variable VALUES(123,'Unit_EEDB_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in EEDB',0.0,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Dome',0); +INSERT INTO abr_variable VALUES(124,'Unit_EEDB_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in EEDB',337.1399999999999864,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Interior',0); +INSERT INTO abr_variable VALUES(125,'Unit_EEDB_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in EEDB',93.1099999999999995,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Substr',0); +INSERT INTO abr_variable VALUES(126,'Unit_EEDB_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in EEDB',109.8299999999999983,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Superstr',0); +INSERT INTO abr_variable VALUES(127,'Unit_EEDB_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in EEDB',58.65999999999999659,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Dome',0); +INSERT INTO abr_variable VALUES(128,'Unit_EEDB_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in EEDB',231.5200000000000102,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Interior',0); +INSERT INTO abr_variable VALUES(129,'Unit_EEDB_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in EEDB',153.5300000000000011,'dollar/m^3',NULL,NULL,'Unit_Labor_Maj_supp_embedments_Interior',0); +INSERT INTO abr_variable VALUES(130,'Unit_EEDB_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in EEDB',322.5500000000000113,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Substr',0); +INSERT INTO abr_variable VALUES(131,'Unit_EEDB_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in EEDB',326.1299999999999955,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Superstr',0); +INSERT INTO abr_variable VALUES(132,'Unit_EEDB_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in EEDB',300.5600000000000022,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Dome',0); +INSERT INTO abr_variable VALUES(133,'Unit_EEDB_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in EEDB',306.7200000000000273,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Interior',0); +INSERT INTO abr_variable VALUES(134,'Unit_EEDB_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in EEDB',8.320000000000000284,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Superstr',0); +INSERT INTO abr_variable VALUES(135,'Unit_EEDB_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in EEDB',5.740000000000000213,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Dome',0); +INSERT INTO abr_variable VALUES(136,'Unit_EEDB_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in EEDB',9.91000000000000014,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Interior',0); +INSERT INTO abr_variable VALUES(137,'Unit_EEDB_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in EEDB',4.580000000000000071,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Substr',0); +INSERT INTO abr_variable VALUES(138,'Unit_EEDB_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in EEDB',0.839999999999999969,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Superstr',0); +INSERT INTO abr_variable VALUES(139,'Unit_EEDB_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in EEDB',0.0,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Dome',0); +INSERT INTO abr_variable VALUES(140,'Unit_EEDB_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in EEDB',10.07000000000000028,'dollar/m^2',NULL,NULL,'Unit_Labor_Welded_wire_fabric_Substr',0); +INSERT INTO abr_variable VALUES(141,'Unit_EEDB_Labor_Lighting_Power','Unit cost of Labor Lighting Power in EEDB',9.83000000000000007,'dollar/m^3',NULL,NULL,'Unit_Labor_Lighting_Power',0); +INSERT INTO abr_variable VALUES(142,'Unit_EEDB_Labor_Plumb_drains','Unit cost of Labor Plumb drains in EEDB',3.020000000000000017,'dollar/m^3',NULL,NULL,'Unit_Labor_Plumb_drains',0); +INSERT INTO abr_variable VALUES(143,'Unit_EEDB_Labor_Special_HVAC','Unit cost of Labor Special HVAC in EEDB',11.08999999999999986,'dollar/m^3',NULL,NULL,'Unit_Labor_Special_HVAC',0); +INSERT INTO abr_variable VALUES(144,'Unit_EEDB_Labor_other','Unit cost of Labor other in EEDB',0.5300000000000000266,'dollar/m^3',NULL,NULL,'Unit_Labor_other',0); +INSERT INTO abr_variable VALUES(145,'Unit_EEDB_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in EEDB',9.93999999999999951,'dollar/m^3',NULL,NULL,'Unit_Labor_Misc_steel_frames',0); +INSERT INTO abr_variable VALUES(146,'Unit_EEDB_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in EEDB',745.9400000000000546,'dollar/m^2',NULL,NULL,'Unit_Labor_React_cav_liner',0); +INSERT INTO abr_variable VALUES(147,'Unit_EEDB_Labor_Struct_steel','Unit cost of Labor Struct steel in EEDB',13.98000000000000042,'dollar/m^3',NULL,NULL,'Unit_Labor_Struct_steel',0); +INSERT INTO abr_variable VALUES(148,'Unit_EEDB_Labor_cont_liner','Unit cost of Labor Containment liner in EEDB',780.3300000000000409,'dollar/m^2',NULL,NULL,'Unit_Labor_cont_liner',0); +INSERT INTO abr_variable VALUES(149,'Unit_EEDB_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in EEDB',1.75,'dollar/m^3',NULL,NULL,'Unit_Labor_fl_grate_handrail_stairs',0); +INSERT INTO abr_variable VALUES(150,'Unit_EEDB_Labor_painting','Unit cost of Labor painting in EEDB',86.79999999999999716,'dollar/m^2',NULL,NULL,'Unit_Labor_painting',0); +INSERT INTO abr_variable VALUES(151,'Unit_EEDB_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in EEDB',44.32000000000000028,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Substr',0); +INSERT INTO abr_variable VALUES(152,'Unit_EEDB_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in EEDB',59.43999999999999773,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Superstr',0); +INSERT INTO abr_variable VALUES(153,'Unit_EEDB_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in EEDB',119.8499999999999944,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Dome',0); +INSERT INTO abr_variable VALUES(154,'Unit_EEDB_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in EEDB',25.0,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Interior',0); +INSERT INTO abr_variable VALUES(155,'Unit_EEDB_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in EEDB',79.09999999999999431,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Substr',0); +INSERT INTO abr_variable VALUES(156,'Unit_EEDB_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in EEDB',54.46999999999999887,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Superstr',0); +INSERT INTO abr_variable VALUES(157,'Unit_EEDB_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in EEDB',48.63000000000000255,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Dome',0); +INSERT INTO abr_variable VALUES(158,'Unit_EEDB_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in EEDB',53.21000000000000085,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Interior',0); +INSERT INTO abr_variable VALUES(159,'Unit_EEDB_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in EEDB',8.900000000000000355,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Substr',0); +INSERT INTO abr_variable VALUES(160,'Unit_EEDB_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in EEDB',7.629999999999999894,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Superstr',0); +INSERT INTO abr_variable VALUES(161,'Unit_EEDB_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in EEDB',2.910000000000000142,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Dome',0); +INSERT INTO abr_variable VALUES(162,'Unit_EEDB_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in EEDB',1.260000000000000008,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Interior',0); +INSERT INTO abr_variable VALUES(163,'Unit_EEDB_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in EEDB',1.879999999999999894,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Substr',0); +INSERT INTO abr_variable VALUES(164,'Unit_EEDB_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in EEDB',7.570000000000000284,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Superstr',0); +INSERT INTO abr_variable VALUES(165,'Unit_EEDB_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in EEDB',0.0,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Dome',0); +INSERT INTO abr_variable VALUES(166,'Unit_EEDB_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in EEDB',159.7299999999999898,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Interior',0); +INSERT INTO abr_variable VALUES(167,'Unit_EEDB_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in EEDB',13.22000000000000063,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Substr',0); +INSERT INTO abr_variable VALUES(168,'Unit_EEDB_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in EEDB',13.65000000000000035,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Superstr',0); +INSERT INTO abr_variable VALUES(169,'Unit_EEDB_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in EEDB',7.669999999999999929,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Dome',0); +INSERT INTO abr_variable VALUES(170,'Unit_EEDB_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in EEDB',21.85000000000000143,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Interior',0); +INSERT INTO abr_variable VALUES(171,'Unit_EEDB_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in EEDB',225.3499999999999944,'dollar/m^3',NULL,NULL,'Unit_Mat_Maj_supp_embedments_Interior',0); +INSERT INTO abr_variable VALUES(172,'Unit_EEDB_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in EEDB',364.7300000000000181,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Substr',0); +INSERT INTO abr_variable VALUES(173,'Unit_EEDB_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in EEDB',258.9499999999999887,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Superstr',0); +INSERT INTO abr_variable VALUES(174,'Unit_EEDB_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in EEDB',238.6500000000000056,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Dome',0); +INSERT INTO abr_variable VALUES(175,'Unit_EEDB_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in EEDB',205.6599999999999966,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Interior',0); +INSERT INTO abr_variable VALUES(176,'Unit_EEDB_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in EEDB',0.6800000000000000488,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Superstr',0); +INSERT INTO abr_variable VALUES(177,'Unit_EEDB_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in EEDB',0.4699999999999999734,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Dome',0); +INSERT INTO abr_variable VALUES(178,'Unit_EEDB_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in EEDB',0.8199999999999999512,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO abr_variable VALUES(179,'Unit_EEDB_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in EEDB',2.430000000000000159,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Substr',0); +INSERT INTO abr_variable VALUES(180,'Unit_EEDB_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in EEDB',0.4500000000000000111,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Superstr',0); +INSERT INTO abr_variable VALUES(181,'Unit_EEDB_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in EEDB',0.0,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Dome',0); +INSERT INTO abr_variable VALUES(182,'Unit_EEDB_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in EEDB',5.19000000000000039,'dollar/m^2',NULL,NULL,'Unit_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO abr_variable VALUES(183,'Unit_EEDB_Mat_Lighting_Power','Unit cost of Material Lighting Power in EEDB',4.959999999999999965,'dollar/m^3',NULL,NULL,'Unit_Mat_Lighting_Power',0); +INSERT INTO abr_variable VALUES(184,'Unit_EEDB_Mat_Plumb_drains','Unit cost of Material Plumb drains in EEDB',1.540000000000000035,'dollar/m^3',NULL,NULL,'Unit_Mat_Plumb_drains',0); +INSERT INTO abr_variable VALUES(185,'Unit_EEDB_Mat_Special_HVAC','Unit cost of Material Special HVAC in EEDB',8.789999999999999147,'dollar/m^3',NULL,NULL,'Unit_Mat_Special_HVAC',0); +INSERT INTO abr_variable VALUES(186,'Unit_EEDB_Mat_other','Unit cost of Material other in EEDB',1.959999999999999965,'dollar/m^3',NULL,NULL,'Unit_Mat_other',0); +INSERT INTO abr_variable VALUES(187,'Unit_EEDB_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in EEDB',16.55999999999999873,'dollar/m^3',NULL,NULL,'Unit_Mat_Misc_steel_frames',0); +INSERT INTO abr_variable VALUES(188,'Unit_EEDB_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in EEDB',607.9600000000000363,'dollar/m^2',NULL,NULL,'Unit_Mat_React_cav_liner',0); +INSERT INTO abr_variable VALUES(189,'Unit_EEDB_Mat_Struct_steel','Unit cost of Material Struct steel in EEDB',27.41000000000000014,'dollar/m^3',NULL,NULL,'Unit_Mat_Struct_steel',0); +INSERT INTO abr_variable VALUES(190,'Unit_EEDB_Mat_cont_liner','Unit cost of Material Containment liner in EEDB',1203.0,'dollar/m^2',NULL,NULL,'Unit_Mat_cont_liner',0); +INSERT INTO abr_variable VALUES(191,'Unit_EEDB_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in EEDB',1.979999999999999983,'dollar/m^3',NULL,NULL,'Unit_Mat_fl_grate_handrail_stairs',0); +INSERT INTO abr_variable VALUES(192,'Unit_EEDB_Mat_painting','Unit cost of Material painting in EEDB',24.67999999999999972,'dollar/m^2',NULL,NULL,'Unit_Mat_painting',0); +INSERT INTO abr_variable VALUES(193,'Unit_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in 2017',245.3100000000000022,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Substr,infl','Total_Labor_Cadweld_Substr',0); +INSERT INTO abr_variable VALUES(194,'Unit_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in 2017',329.0199999999999819,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Superstr,infl','Total_Labor_Cadweld_Superstr',0); +INSERT INTO abr_variable VALUES(195,'Unit_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in 2017',663.3400000000000318,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Dome,infl','Total_Labor_Cadweld_Dome',0); +INSERT INTO abr_variable VALUES(196,'Unit_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in 2017',138.3600000000000137,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Interior,infl','Total_Labor_Cadweld_Interior',0); +INSERT INTO abr_variable VALUES(197,'Unit_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in 2017',208.1699999999999875,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Substr,infl','Total_Labor_Concrete_Substr',0); +INSERT INTO abr_variable VALUES(198,'Unit_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in 2017',250.8499999999999944,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Superstr,infl','Total_Labor_Concrete_Superstr',0); +INSERT INTO abr_variable VALUES(199,'Unit_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in 2017',223.9600000000000079,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Dome,infl','Total_Labor_Concrete_Dome',0); +INSERT INTO abr_variable VALUES(200,'Unit_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in 2017',280.0699999999999932,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Interior,infl','Total_Labor_Concrete_Interior',0); +INSERT INTO abr_variable VALUES(201,'Unit_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in 2017',41.64999999999999858,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Substr,infl','Total_Labor_Constr_joints_Substr',0); +INSERT INTO abr_variable VALUES(202,'Unit_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in 2017',35.71000000000000085,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Superstr,infl','Total_Labor_Constr_joints_Superstr',0); +INSERT INTO abr_variable VALUES(203,'Unit_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in 2017',13.63000000000000078,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Dome,infl','Total_Labor_Constr_joints_Dome',0); +INSERT INTO abr_variable VALUES(204,'Unit_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in 2017',5.879999999999999894,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Interior,infl','Total_Labor_Constr_joints_Interior',0); +INSERT INTO abr_variable VALUES(205,'Unit_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in 2017',11.41999999999999993,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Substr,infl','Total_Labor_Embedded_steel_Substr',0); +INSERT INTO abr_variable VALUES(206,'Unit_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in 2017',45.86999999999999745,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Superstr,infl','Total_Labor_Embedded_steel_Superstr',0); +INSERT INTO abr_variable VALUES(207,'Unit_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in 2017',0.0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Dome,infl','Total_Labor_Embedded_steel_Dome',0); +INSERT INTO abr_variable VALUES(208,'Unit_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in 2017',967.759999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Interior,infl','Total_Labor_Embedded_steel_Interior',0); +INSERT INTO abr_variable VALUES(209,'Unit_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in 2017',267.2699999999999819,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Substr,infl','Total_Labor_Formwork_Substr',0); +INSERT INTO abr_variable VALUES(210,'Unit_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in 2017',315.2699999999999819,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Superstr,infl','Total_Labor_Formwork_Superstr',0); +INSERT INTO abr_variable VALUES(211,'Unit_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in 2017',168.3799999999999955,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Dome,infl','Total_Labor_Formwork_Dome',0); +INSERT INTO abr_variable VALUES(212,'Unit_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in 2017',664.5800000000000409,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Interior,infl','Total_Labor_Formwork_Interior',0); +INSERT INTO abr_variable VALUES(213,'Unit_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in 2017',440.7099999999999796,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Maj_supp_embedments_Interior,infl','Total_Labor_Maj_supp_embedments_Interior',0); +INSERT INTO abr_variable VALUES(214,'Unit_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in 2017',925.879999999999996,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Substr,infl','Total_Labor_Reinforc_steel_Substr',0); +INSERT INTO abr_variable VALUES(215,'Unit_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in 2017',936.159999999999969,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Superstr,infl','Total_Labor_Reinforc_steel_Superstr',0); +INSERT INTO abr_variable VALUES(216,'Unit_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in 2017',862.759999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Dome,infl','Total_Labor_Reinforc_steel_Dome',0); +INSERT INTO abr_variable VALUES(217,'Unit_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in 2017',880.4400000000000546,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Interior,infl','Total_Labor_Reinforc_steel_Interior',0); +INSERT INTO abr_variable VALUES(218,'Unit_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in 2017',23.87999999999999901,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Superstr,infl','Total_Labor_Rubbing_surfaces_Superstr',0); +INSERT INTO abr_variable VALUES(219,'Unit_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in 2017',16.48000000000000042,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Dome,infl','Total_Labor_Rubbing_surfaces_Dome',0); +INSERT INTO abr_variable VALUES(220,'Unit_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in 2017',28.44999999999999929,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Interior,infl','Total_Labor_Rubbing_surfaces_Interior',0); +INSERT INTO abr_variable VALUES(221,'Unit_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in 2017',13.15000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Substr,infl','Total_Labor_Waterproofing_Substr',0); +INSERT INTO abr_variable VALUES(222,'Unit_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in 2017',2.410000000000000142,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Superstr,infl','Total_Labor_Waterproofing_Superstr',0); +INSERT INTO abr_variable VALUES(223,'Unit_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in 2017',0.0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Dome,infl','Total_Labor_Waterproofing_Dome',0); +INSERT INTO abr_variable VALUES(224,'Unit_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in 2017',28.91000000000000014,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Welded_wire_fabric_Substr,infl','Total_Labor_Welded_wire_fabric_Substr',0); +INSERT INTO abr_variable VALUES(225,'Unit_Labor_Lighting_Power','Unit cost of Labor Lighting Power in 2017',28.21999999999999887,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Lighting_Power,infl','Total_Labor_Lighting_Power',0); +INSERT INTO abr_variable VALUES(226,'Unit_Labor_Plumb_drains','Unit cost of Labor Plumb drains in 2017',8.669999999999999929,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Plumb_drains,infl','Total_Labor_Plumb_drains',0); +INSERT INTO abr_variable VALUES(227,'Unit_Labor_Special_HVAC','Unit cost of Labor Special HVAC in 2017',31.8299999999999983,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Special_HVAC,infl','Total_Labor_Special_HVAC',0); +INSERT INTO abr_variable VALUES(228,'Unit_Labor_other','Unit cost of Labor other in 2017',1.520000000000000017,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_other,infl','Total_Labor_other',0); +INSERT INTO abr_variable VALUES(229,'Unit_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in 2017',28.53000000000000113,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Misc_steel_frames,infl','Total_Labor_Misc_steel_frames',0); +INSERT INTO abr_variable VALUES(230,'Unit_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in 2017',2141.219999999999799,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_React_cav_liner,infl','Total_Labor_React_cav_liner',0); +INSERT INTO abr_variable VALUES(231,'Unit_Labor_Struct_steel','Unit cost of Labor Struct steel in 2017',40.13000000000000255,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Struct_steel,infl','Total_Labor_Struct_steel',0); +INSERT INTO abr_variable VALUES(232,'Unit_Labor_cont_liner','Unit cost of Labor Containment liner in 2017',2239.940000000000054,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_cont_liner,infl','Total_Labor_cont_liner',0); +INSERT INTO abr_variable VALUES(233,'Unit_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',5.019999999999999574,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_fl_grate_handrail_stairs,infl','Total_Labor_fl_grate_handrail_stairs',0); +INSERT INTO abr_variable VALUES(234,'Unit_Labor_painting','Unit cost of Labor painting in 2017',249.1599999999999966,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_painting,infl','Total_Labor_painting',0); +INSERT INTO abr_variable VALUES(235,'Unit_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in 2017',127.2199999999999989,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Substr,infl','Total_Mat_Cadweld_Substr',0); +INSERT INTO abr_variable VALUES(236,'Unit_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in 2017',170.6200000000000045,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Superstr,infl','Total_Mat_Cadweld_Superstr',0); +INSERT INTO abr_variable VALUES(237,'Unit_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in 2017',344.0299999999999727,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Dome,infl','Total_Mat_Cadweld_Dome',0); +INSERT INTO abr_variable VALUES(238,'Unit_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in 2017',71.76000000000000511,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Interior,infl','Total_Mat_Cadweld_Interior',0); +INSERT INTO abr_variable VALUES(239,'Unit_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in 2017',227.0600000000000022,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Substr,infl','Total_Mat_Concrete_Substr',0); +INSERT INTO abr_variable VALUES(240,'Unit_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in 2017',156.3600000000000137,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Superstr,infl','Total_Mat_Concrete_Superstr',0); +INSERT INTO abr_variable VALUES(241,'Unit_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in 2017',139.5900000000000034,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Dome,infl','Total_Mat_Concrete_Dome',0); +INSERT INTO abr_variable VALUES(242,'Unit_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in 2017',152.740000000000009,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Interior,infl','Total_Mat_Concrete_Interior',0); +INSERT INTO abr_variable VALUES(243,'Unit_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in 2017',25.55000000000000071,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Substr,infl','Total_Mat_Constr_joints_Substr',0); +INSERT INTO abr_variable VALUES(244,'Unit_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in 2017',21.89999999999999857,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Superstr,infl','Total_Mat_Constr_joints_Superstr',0); +INSERT INTO abr_variable VALUES(245,'Unit_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in 2017',8.349999999999999645,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Dome,infl','Total_Mat_Constr_joints_Dome',0); +INSERT INTO abr_variable VALUES(246,'Unit_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in 2017',3.620000000000000106,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Interior,infl','Total_Mat_Constr_joints_Interior',0); +INSERT INTO abr_variable VALUES(247,'Unit_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in 2017',5.400000000000000355,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Substr,infl','Total_Mat_Embedded_steel_Substr',0); +INSERT INTO abr_variable VALUES(248,'Unit_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in 2017',21.73000000000000042,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Superstr,infl','Total_Mat_Embedded_steel_Superstr',0); +INSERT INTO abr_variable VALUES(249,'Unit_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in 2017',0.0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Dome,infl','Total_Mat_Embedded_steel_Dome',0); +INSERT INTO abr_variable VALUES(250,'Unit_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in 2017',458.509999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Interior,infl','Total_Mat_Embedded_steel_Interior',0); +INSERT INTO abr_variable VALUES(251,'Unit_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in 2017',37.95000000000000285,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Substr,infl','Total_Mat_Formwork_Substr',0); +INSERT INTO abr_variable VALUES(252,'Unit_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in 2017',39.17999999999999972,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Superstr,infl','Total_Mat_Formwork_Superstr',0); +INSERT INTO abr_variable VALUES(253,'Unit_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in 2017',22.01999999999999958,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Dome,infl','Total_Mat_Formwork_Dome',0); +INSERT INTO abr_variable VALUES(254,'Unit_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in 2017',62.71999999999999887,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Interior,infl','Total_Mat_Formwork_Interior',0); +INSERT INTO abr_variable VALUES(255,'Unit_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in 2017',646.8700000000000045,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Maj_supp_embedments_Interior,infl','Total_Mat_Maj_supp_embedments_Interior',0); +INSERT INTO abr_variable VALUES(256,'Unit_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in 2017',1046.960000000000036,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Substr,infl','Total_Mat_Reinforc_steel_Substr',0); +INSERT INTO abr_variable VALUES(257,'Unit_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in 2017',743.32000000000005,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Superstr,infl','Total_Mat_Reinforc_steel_Superstr',0); +INSERT INTO abr_variable VALUES(258,'Unit_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in 2017',685.0499999999999546,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Dome,infl','Total_Mat_Reinforc_steel_Dome',0); +INSERT INTO abr_variable VALUES(259,'Unit_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in 2017',590.3500000000000227,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Interior,infl','Total_Mat_Reinforc_steel_Interior',0); +INSERT INTO abr_variable VALUES(260,'Unit_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in 2017',1.949999999999999956,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Superstr,infl','Total_Mat_Rubbing_surfaces_Superstr',0); +INSERT INTO abr_variable VALUES(261,'Unit_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in 2017',1.350000000000000088,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Dome,infl','Total_Mat_Rubbing_surfaces_Dome',0); +INSERT INTO abr_variable VALUES(262,'Unit_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in 2017',2.350000000000000088,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Interior,infl','Total_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO abr_variable VALUES(263,'Unit_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in 2017',6.980000000000000426,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Substr,infl','Total_Mat_Waterproofing_Substr',0); +INSERT INTO abr_variable VALUES(264,'Unit_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in 2017',1.290000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Superstr,infl','Total_Mat_Waterproofing_Superstr',0); +INSERT INTO abr_variable VALUES(265,'Unit_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in 2017',0.0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Dome,infl','Total_Mat_Waterproofing_Dome',0); +INSERT INTO abr_variable VALUES(266,'Unit_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in 2017',14.90000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Welded_wire_fabric_Substr,infl','Total_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO abr_variable VALUES(267,'Unit_Mat_Lighting_Power','Unit cost of Material Lighting Power in 2017',14.24000000000000021,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Lighting_Power,infl','Total_Mat_Lighting_Power',0); +INSERT INTO abr_variable VALUES(268,'Unit_Mat_Plumb_drains','Unit cost of Material Plumb drains in 2017',4.419999999999999929,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Plumb_drains,infl','Total_Mat_Plumb_drains',0); +INSERT INTO abr_variable VALUES(269,'Unit_Mat_Special_HVAC','Unit cost of Material Special HVAC in 2017',25.23000000000000042,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Special_HVAC,infl','Total_Mat_Special_HVAC',0); +INSERT INTO abr_variable VALUES(270,'Unit_Mat_other','Unit cost of Material other in 2017',5.629999999999999894,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_other,infl','Total_Mat_other',0); +INSERT INTO abr_variable VALUES(271,'Unit_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in 2017',47.53999999999999915,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Misc_steel_frames,infl','Total_Mat_Misc_steel_frames',0); +INSERT INTO abr_variable VALUES(272,'Unit_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in 2017',1745.15000000000009,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_React_cav_liner,infl','Total_Mat_React_cav_liner',0); +INSERT INTO abr_variable VALUES(273,'Unit_Mat_Struct_steel','Unit cost of Material Struct steel in 2017',78.68000000000000683,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Struct_steel,infl','Total_Mat_Struct_steel',0); +INSERT INTO abr_variable VALUES(274,'Unit_Mat_cont_liner','Unit cost of Material Containment liner in 2017',3453.210000000000036,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_cont_liner,infl','Total_Mat_cont_liner',0); +INSERT INTO abr_variable VALUES(275,'Unit_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',5.679999999999999716,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_fl_grate_handrail_stairs,infl','Total_Mat_fl_grate_handrail_stairs',0); +INSERT INTO abr_variable VALUES(276,'Unit_Mat_painting','Unit cost of Material painting in 2017',70.84000000000000341,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_painting,infl','Total_Mat_painting',0); +INSERT INTO abr_variable VALUES(277,'Total_Labor_Cadweld_Substr','Total cost of Labor Cadweld Substructure (base mat) in 2017',545576.1300000000046,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Substr,Basemat_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO abr_variable VALUES(278,'Total_Labor_Cadweld_Superstr','Total cost of Labor Cadweld Superstructure (shell) in 2017',1459105.659999999917,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Superstr,Walls_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO abr_variable VALUES(279,'Total_Labor_Cadweld_Dome','Total cost of Labor Cadweld Superstructure (dome) in 2017',962092.180000000051,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Dome,Dome_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO abr_variable VALUES(280,'Total_Labor_Cadweld_Interior','Total cost of Labor Cadweld Interior structure in 2017',313811.4299999999931,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Interior,Internal_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO abr_variable VALUES(281,'Total_Labor_Concrete_Substr','Total cost of Labor Concrete Substructure (base mat) in 2017',462967.25,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Substr,Basemat_v_m3','Sum_Labor_Concrete',0); +INSERT INTO abr_variable VALUES(282,'Total_Labor_Concrete_Superstr','Total cost of Labor Concrete Superstructure (shell) in 2017',1112469.409999999916,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Superstr,Walls_v_m3','Sum_Labor_Concrete',0); +INSERT INTO abr_variable VALUES(283,'Total_Labor_Concrete_Dome','Total cost of Labor Concrete Superstructure (dome) in 2017',324819.0399999999791,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Dome,Dome_v_m3','Sum_Labor_Concrete',0); +INSERT INTO abr_variable VALUES(284,'Total_Labor_Concrete_Interior','Total cost of Labor Concrete Interior structure in 2017',635240.2800000000279,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Interior,Internal_v_m3','Sum_Labor_Concrete',0); +INSERT INTO abr_variable VALUES(285,'Total_Labor_Constr_joints_Substr','Total cost of Labor Construction joints Substructure (base mat) in 2017',30391.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Substr,Basemat_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO abr_variable VALUES(286,'Total_Labor_Constr_joints_Superstr','Total cost of Labor Construction joints Superstructure (shell) in 2017',230913.4500000000116,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Superstr,Walls_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO abr_variable VALUES(287,'Total_Labor_Constr_joints_Dome','Total cost of Labor Construction joints Superstructure (dome) in 2017',37107.06999999999971,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Dome,Dome_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO abr_variable VALUES(288,'Total_Labor_Constr_joints_Interior','Total cost of Labor Construction joints Interior structure in 2017',21894.27999999999884,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Interior,Internal_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO abr_variable VALUES(289,'Total_Labor_Embedded_steel_Substr','Total cost of Labor Embedded steel Substructure (base mat) in 2017',25408.29999999999928,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Substr,Basemat_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO abr_variable VALUES(290,'Total_Labor_Embedded_steel_Superstr','Total cost of Labor Embedded steel Superstructure (shell) in 2017',203424.4299999999931,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Superstr,Walls_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO abr_variable VALUES(291,'Total_Labor_Embedded_steel_Dome','Total cost of Labor Embedded steel Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Dome,Dome_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO abr_variable VALUES(292,'Total_Labor_Embedded_steel_Interior','Total cost of Labor Embedded steel Interior structure in 2017',2194987.279999999795,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Interior,Internal_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO abr_variable VALUES(293,'Total_Labor_Formwork_Substr','Total cost of Labor Formwork Substructure (base mat) in 2017',195017.609999999986,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Substr,Basemat_s_m2','Sum_Labor_Formwork',0); +INSERT INTO abr_variable VALUES(294,'Total_Labor_Formwork_Superstr','Total cost of Labor Formwork Superstructure (shell) in 2017',2038683.659999999917,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Superstr,Walls_s_m2','Sum_Labor_Formwork',0); +INSERT INTO abr_variable VALUES(295,'Total_Labor_Formwork_Dome','Total cost of Labor Formwork Superstructure (dome) in 2017',458252.7899999999791,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Dome,Dome_s_m2','Sum_Labor_Formwork',0); +INSERT INTO abr_variable VALUES(296,'Total_Labor_Formwork_Interior','Total cost of Labor Formwork Interior structure in 2017',2472664.990000000223,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Interior,Internal_s_m2','Sum_Labor_Formwork',0); +INSERT INTO abr_variable VALUES(297,'Total_Labor_Maj_supp_embedments_Interior','Total cost of Labor Major Support Embedments Interior structure in 2017',999574.050000000046,'dollar','tol_contaiment_ce_cost','Unit_Labor_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Labor_Maj_supp_embedments',0); +INSERT INTO abr_variable VALUES(298,'Total_Labor_Reinforc_steel_Substr','Total cost of Labor Reinforc steel Substructure (base mat) in 2017',2059157.280000000027,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Substr,Basemat_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(299,'Total_Labor_Reinforc_steel_Superstr','Total cost of Labor Reinforc steel Superstructure (shell) in 2017',4151615.160000000149,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Superstr,Walls_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(300,'Total_Labor_Reinforc_steel_Dome','Total cost of Labor Reinforc steel Superstructure (dome) in 2017',1251315.179999999935,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Dome,Dome_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(301,'Total_Labor_Reinforc_steel_Interior','Total cost of Labor Reinforc steel Interior structure in 2017',1996934.5,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Interior,Internal_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(302,'Total_Labor_Rubbing_surfaces_Superstr','Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017',154437.2900000000081,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO abr_variable VALUES(303,'Total_Labor_Rubbing_surfaces_Dome','Total cost of Labor Rubbing surfaces Superstructure (dome) in 2017',44840.95999999999913,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO abr_variable VALUES(304,'Total_Labor_Rubbing_surfaces_Interior','Total cost of Labor Rubbing surfaces Interior structure in 2017',105840.1399999999995,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO abr_variable VALUES(305,'Total_Labor_Waterproofing_Substr','Total cost of Labor Waterproofing Substructure (base mat) in 2017',9592.75,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Substr,Basemat_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO abr_variable VALUES(306,'Total_Labor_Waterproofing_Superstr','Total cost of Labor Waterproofing Superstructure (shell) in 2017',15592.22999999999957,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Superstr,Walls_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO abr_variable VALUES(307,'Total_Labor_Waterproofing_Dome','Total cost of Labor Waterproofing Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Dome,Dome_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO abr_variable VALUES(308,'Total_Labor_Welded_wire_fabric_Substr','Total cost of Labor Welded wire fabric Substructure (base mat) in 2017',21091.47999999999957,'dollar','tol_contaiment_ce_cost','Unit_Labor_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Labor_Welded_wire_fabric',0); +INSERT INTO abr_variable VALUES(309,'Total_Labor_Lighting_Power','Total cost of Labor Lighting Power in 2017',771075.9399999999441,'dollar','tol_contaiment_ce_cost','Unit_Labor_Lighting_Power,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO abr_variable VALUES(310,'Total_Labor_Plumb_drains','Total cost of Labor Plumb drains in 2017',236892.1000000000058,'dollar','tol_contaiment_ce_cost','Unit_Labor_Plumb_drains,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO abr_variable VALUES(311,'Total_Labor_Special_HVAC','Total cost of Labor Special HVAC in 2017',869911.7099999999628,'dollar','tol_contaiment_ce_cost','Unit_Labor_Special_HVAC,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO abr_variable VALUES(312,'Total_Labor_other','Total cost of Labor other in 2017',41573.77999999999884,'dollar','tol_contaiment_ce_cost','Unit_Labor_other,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO abr_variable VALUES(313,'Total_Labor_Misc_steel_frames','Total cost of Labor miscellaneous steel frames in 2017',296090.9600000000209,'dollar','tol_contaiment_ce_cost','Unit_Labor_Misc_steel_frames,Struct_v_m3','Tot_Labor_others',0); +INSERT INTO abr_variable VALUES(314,'Total_Labor_React_cav_liner','Total cost of Labor Reactor cavity liner plate in 2017',2188185.870000000111,'dollar','tol_contaiment_ce_cost','Unit_Labor_React_cav_liner,React_cav_A_m2','Tot_Labor_others',0); +INSERT INTO abr_variable VALUES(315,'Total_Labor_Struct_steel','Total cost of Labor Struct steel in 2017',416433.7700000000186,'dollar','tol_contaiment_ce_cost','Unit_Labor_Struct_steel,Struct_v_m3','Tot_Labor_others',0); +INSERT INTO abr_variable VALUES(316,'Total_Labor_cont_liner','Total cost of Labor Containment liner in 2017',11081657.50999999978,'dollar','tol_contaiment_ce_cost','Unit_Labor_cont_liner,Liner_s_m2','Tot_Labor_others',0); +INSERT INTO abr_variable VALUES(317,'Total_Labor_fl_grate_handrail_stairs','Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',137271.9100000000034,'dollar','tol_contaiment_ce_cost','Unit_Labor_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Labor_others',0); +INSERT INTO abr_variable VALUES(318,'Total_Labor_painting','Total cost of Labor painting in 2017',3366865.169999999926,'dollar','tol_contaiment_ce_cost','Unit_Labor_painting,Surf_paint_m2','Tot_Labor_others',0); +INSERT INTO abr_variable VALUES(319,'Total_Mat_Cadweld_Substr','Total cost of Material Cadweld Substructure (base mat) in 2017',282938.6199999999954,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Substr,Basemat_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO abr_variable VALUES(320,'Total_Mat_Cadweld_Superstr','Total cost of Material Cadweld Superstructure (shell) in 2017',756667.5999999999768,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Superstr,Walls_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO abr_variable VALUES(321,'Total_Mat_Cadweld_Dome','Total cost of Material Cadweld Superstructure (dome) in 2017',498969.0100000000093,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Dome,Dome_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO abr_variable VALUES(322,'Total_Mat_Cadweld_Interior','Total cost of Material Cadweld Interior structure in 2017',162765.2699999999896,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Interior,Internal_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO abr_variable VALUES(323,'Total_Mat_Concrete_Substr','Total cost of Material Concrete Substructure (base mat) in 2017',504973.9299999999931,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Substr,Basemat_v_m3','Sum_Mat_Concrete',0); +INSERT INTO abr_variable VALUES(324,'Total_Mat_Concrete_Superstr','Total cost of Material Concrete Superstructure (shell) in 2017',693399.8000000000465,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Superstr,Walls_v_m3','Sum_Mat_Concrete',0); +INSERT INTO abr_variable VALUES(325,'Total_Mat_Concrete_Dome','Total cost of Material Concrete Superstructure (dome) in 2017',202460.2699999999896,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Dome,Dome_v_m3','Sum_Mat_Concrete',0); +INSERT INTO abr_variable VALUES(326,'Total_Mat_Concrete_Interior','Total cost of Material Concrete Interior structure in 2017',346429.5900000000257,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Interior,Internal_v_m3','Sum_Mat_Concrete',0); +INSERT INTO abr_variable VALUES(327,'Total_Mat_Constr_joints_Substr','Total cost of Material Construction joints Substructure (base mat) in 2017',18640.93000000000029,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Substr,Basemat_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO abr_variable VALUES(328,'Total_Mat_Constr_joints_Superstr','Total cost of Material Construction joints Superstructure (shell) in 2017',141629.390000000014,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Superstr,Walls_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO abr_variable VALUES(329,'Total_Mat_Constr_joints_Dome','Total cost of Material Construction joints Superstructure (dome) in 2017',22732.95999999999913,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Dome,Dome_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO abr_variable VALUES(330,'Total_Mat_Constr_joints_Interior','Total cost of Material Construction joints Interior structure in 2017',13456.96999999999935,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Interior,Internal_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO abr_variable VALUES(331,'Total_Mat_Embedded_steel_Substr','Total cost of Material Embedded steel Substructure (base mat) in 2017',12001.90999999999986,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Substr,Basemat_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO abr_variable VALUES(332,'Total_Mat_Embedded_steel_Superstr','Total cost of Material Embedded steel Superstructure (shell) in 2017',96365.6399999999995,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Superstr,Walls_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO abr_variable VALUES(333,'Total_Mat_Embedded_steel_Dome','Total cost of Material Embedded steel Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Dome,Dome_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO abr_variable VALUES(334,'Total_Mat_Embedded_steel_Interior','Total cost of Material Embedded steel Interior structure in 2017',1039939.839999999968,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Interior,Internal_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO abr_variable VALUES(335,'Total_Mat_Formwork_Substr','Total cost of Material Formwork Substructure (base mat) in 2017',27689.11000000000058,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Substr,Basemat_s_m2','Sum_Mat_Formwork',0); +INSERT INTO abr_variable VALUES(336,'Total_Mat_Formwork_Superstr','Total cost of Material Formwork Superstructure (shell) in 2017',253373.6900000000023,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Superstr,Walls_s_m2','Sum_Mat_Formwork',0); +INSERT INTO abr_variable VALUES(337,'Total_Mat_Formwork_Dome','Total cost of Material Formwork Superstructure (dome) in 2017',59918.15000000000145,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Dome,Dome_s_m2','Sum_Mat_Formwork',0); +INSERT INTO abr_variable VALUES(338,'Total_Mat_Formwork_Interior','Total cost of Material Formwork Interior structure in 2017',233360.9599999999919,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Interior,Internal_s_m2','Sum_Mat_Formwork',0); +INSERT INTO abr_variable VALUES(339,'Total_Mat_Maj_supp_embedments_Interior','Total cost of Material Major Support Embedments Interior structure in 2017',1467166.110000000102,'dollar','tol_contaiment_ce_cost','Unit_Mat_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Mat_Maj_supp_embedments',0); +INSERT INTO abr_variable VALUES(340,'Total_Mat_Reinforc_steel_Substr','Total cost of Material Reinforc steel Substructure (base mat) in 2017',2328434.14000000013,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Substr,Basemat_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(341,'Total_Mat_Reinforc_steel_Superstr','Total cost of Material Reinforc steel Superstructure (shell) in 2017',3296417.819999999833,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Superstr,Walls_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(342,'Total_Mat_Reinforc_steel_Dome','Total cost of Material Reinforc steel Superstructure (dome) in 2017',993566.569999999949,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Dome,Dome_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(343,'Total_Mat_Reinforc_steel_Interior','Total cost of Material Reinforc steel Interior structure in 2017',1338972.189999999945,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Interior,Internal_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO abr_variable VALUES(344,'Total_Mat_Rubbing_surfaces_Superstr','Total cost of Material Rubbing surfaces Superstructure (shell) in 2017',12622.28000000000065,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO abr_variable VALUES(345,'Total_Mat_Rubbing_surfaces_Dome','Total cost of Material Rubbing surfaces Superstructure (dome) in 2017',3671.65000000000009,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO abr_variable VALUES(346,'Total_Mat_Rubbing_surfaces_Interior','Total cost of Material Rubbing surfaces Interior structure in 2017',8757.709999999999126,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO abr_variable VALUES(347,'Total_Mat_Waterproofing_Substr','Total cost of Material Waterproofing Substructure (base mat) in 2017',5089.600000000000363,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Substr,Basemat_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO abr_variable VALUES(348,'Total_Mat_Waterproofing_Superstr','Total cost of Material Waterproofing Superstructure (shell) in 2017',8352.979999999999564,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Superstr,Walls_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO abr_variable VALUES(349,'Total_Mat_Waterproofing_Dome','Total cost of Material Waterproofing Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Dome,Dome_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO abr_variable VALUES(350,'Total_Mat_Welded_wire_fabric_Substr','Total cost of Material Welded wire fabric Substructure (base mat) in 2017',10870.37999999999919,'dollar','tol_contaiment_ce_cost','Unit_Mat_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Mat_Welded_wire_fabric',0); +INSERT INTO abr_variable VALUES(351,'Total_Mat_Lighting_Power','Total cost of Material Lighting Power in 2017',389067.8200000000069,'dollar','tol_contaiment_ce_cost','Unit_Mat_Lighting_Power,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO abr_variable VALUES(352,'Total_Mat_Plumb_drains','Total cost of Material Plumb drains in 2017',120799.2799999999989,'dollar','tol_contaiment_ce_cost','Unit_Mat_Plumb_drains,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO abr_variable VALUES(353,'Total_Mat_Special_HVAC','Total cost of Material Special HVAC in 2017',689497.1999999999535,'dollar','tol_contaiment_ce_cost','Unit_Mat_Special_HVAC,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO abr_variable VALUES(354,'Total_Mat_other','Total cost of Material other in 2017',153744.5400000000081,'dollar','tol_contaiment_ce_cost','Unit_Mat_other,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO abr_variable VALUES(355,'Total_Mat_Misc_steel_frames','Total cost of Material miscellaneous steel frames in 2017',493286.3499999999768,'dollar','tol_contaiment_ce_cost','Unit_Mat_Misc_steel_frames,Struct_v_m3','Tot_Mat_others',0); +INSERT INTO abr_variable VALUES(356,'Total_Mat_React_cav_liner','Total cost of Material Reactor cavity liner plate in 2017',1783426.929999999935,'dollar','tol_contaiment_ce_cost','Unit_Mat_React_cav_liner,React_cav_A_m2','Tot_Mat_others',0); +INSERT INTO abr_variable VALUES(357,'Total_Mat_Struct_steel','Total cost of Material Struct steel in 2017',816484.2399999999907,'dollar','tol_contaiment_ce_cost','Unit_Mat_Struct_steel,Struct_v_m3','Tot_Mat_others',0); +INSERT INTO abr_variable VALUES(358,'Total_Mat_cont_liner','Total cost of Material Containment liner in 2017',17084097.73000000044,'dollar','tol_contaiment_ce_cost','Unit_Mat_cont_liner,Liner_s_m2','Tot_Mat_others',0); +INSERT INTO abr_variable VALUES(359,'Total_Mat_fl_grate_handrail_stairs','Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',155313.359999999986,'dollar','tol_contaiment_ce_cost','Unit_Mat_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Mat_others',0); +INSERT INTO abr_variable VALUES(360,'Total_Mat_painting','Total cost of Material painting in 2017',957306.819999999949,'dollar','tol_contaiment_ce_cost','Unit_Mat_painting,Surf_paint_m2','Tot_Mat_others',0); +INSERT INTO abr_variable VALUES(361,'Sum_Labor_Cadweld','Total cost of Labor Cadweld',3280585.404000000096,'dollar','sum_ce','Total_Labor_Cadweld_Substr,Total_Labor_Cadweld_Superstr,Total_Labor_Cadweld_Dome,Total_Labor_Cadweld_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(362,'Sum_Labor_Concrete','Total cost of Labor Concrete',2535495.978999999818,'dollar','sum_ce','Total_Labor_Concrete_Substr,Total_Labor_Concrete_Superstr,Total_Labor_Concrete_Dome,Total_Labor_Concrete_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(363,'Sum_Labor_Constr_joints','Total cost of Labor Constr joints',320305.7974999999861,'dollar','sum_ce','Total_Labor_Constr_joints_Substr,Total_Labor_Constr_joints_Superstr,Total_Labor_Constr_joints_Dome,Total_Labor_Constr_joints_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(364,'Sum_Labor_Embedded_steel','Total cost of Labor Embedded steel',2423820.007000000216,'dollar','sum_ce','Total_Labor_Embedded_steel_Substr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Embedded_steel_Dome,Total_Labor_Embedded_steel_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(365,'Sum_Labor_Formwork','Total cost of Labor Formwork',5164619.048000000417,'dollar','sum_ce','Total_Labor_Formwork_Substr,Total_Labor_Formwork_Superstr,Total_Labor_Formwork_Dome,Total_Labor_Formwork_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(366,'Sum_Labor_Maj_supp_embedments','Total cost of Labor Maj supp embedments',999574.054800000041,'dollar','sum_ce','Total_Labor_Maj_supp_embedments_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(367,'Sum_Labor_Reinforc_steel','Total cost of Labor Reinforc steel',9459022.11700000055,'dollar','sum_ce','Total_Labor_Reinforc_steel_Substr,Total_Labor_Reinforc_steel_Superstr,Total_Labor_Reinforc_steel_Dome,Total_Labor_Reinforc_steel_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(368,'Sum_Labor_Rubbing_surfaces','Total cost of Labor Rubbing surfaces',305118.4025999999721,'dollar','sum_ce','Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Rubbing_surfaces_Interior','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(369,'Sum_Labor_Waterproofing','Total cost of Labor Waterproofing',25184.97376000000076,'dollar','sum_ce','Total_Labor_Waterproofing_Substr,Total_Labor_Waterproofing_Superstr,Total_Labor_Waterproofing_Dome','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(370,'Sum_Labor_Welded_wire_fabric','Total cost of Labor Welded wire fabric',21091.47636000000056,'dollar','sum_ce','Total_Labor_Welded_wire_fabric_Substr','Tot_Labor_concr',0); +INSERT INTO abr_variable VALUES(371,'Sum_Mat_Cadweld','Total cost of Material Cadweld',1701340.489999999991,'dollar','sum_ce','Total_Mat_Cadweld_Substr,Total_Mat_Cadweld_Superstr,Total_Mat_Cadweld_Dome,Total_Mat_Cadweld_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(372,'Sum_Mat_Concrete','Total cost of Material Concrete',1747263.58899999992,'dollar','sum_ce','Total_Mat_Concrete_Substr,Total_Mat_Concrete_Superstr,Total_Mat_Concrete_Dome,Total_Mat_Concrete_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(373,'Sum_Mat_Constr_joints','Total cost of Material Constr joints',196460.25,'dollar','sum_ce','Total_Mat_Constr_joints_Substr,Total_Mat_Constr_joints_Superstr,Total_Mat_Constr_joints_Dome,Total_Mat_Constr_joints_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(374,'Sum_Mat_Embedded_steel','Total cost of Material Embedded steel',1148307.391000000061,'dollar','sum_ce','Total_Mat_Embedded_steel_Substr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Embedded_steel_Dome,Total_Mat_Embedded_steel_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(375,'Sum_Mat_Formwork','Total cost of Material Formwork',574341.9096999999601,'dollar','sum_ce','Total_Mat_Formwork_Substr,Total_Mat_Formwork_Superstr,Total_Mat_Formwork_Dome,Total_Mat_Formwork_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(376,'Sum_Mat_Maj_supp_embedments','Total cost of Material Maj supp embedments',1467166.110000000102,'dollar','sum_ce','Total_Mat_Maj_supp_embedments_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(377,'Sum_Mat_Reinforc_steel','Total cost of Material Reinforc steel',7957390.726999999955,'dollar','sum_ce','Total_Mat_Reinforc_steel_Substr,Total_Mat_Reinforc_steel_Superstr,Total_Mat_Reinforc_steel_Dome,Total_Mat_Reinforc_steel_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(378,'Sum_Mat_Rubbing_surfaces','Total cost of Material Rubbing surfaces',25051.63696999999957,'dollar','sum_ce','Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Rubbing_surfaces_Interior','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(379,'Sum_Mat_Waterproofing','Total cost of Material Waterproofing',13442.58020000000033,'dollar','sum_ce','Total_Mat_Waterproofing_Substr,Total_Mat_Waterproofing_Superstr,Total_Mat_Waterproofing_Dome','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(380,'Sum_Mat_Welded_wire_fabric','Total cost of Material Welded wire fabric',10870.37999999999919,'dollar','sum_ce','Total_Mat_Welded_wire_fabric_Substr','Tot_Mat_concr',0); +INSERT INTO abr_variable VALUES(381,'Tot_Labor_concr','Total cost of labor of containment construction',24534817.26000000163,'dollar','sum_ce','Sum_Labor_Cadweld,Sum_Labor_Concrete,Sum_Labor_Constr_joints,Sum_Labor_Embedded_steel,Sum_Labor_Formwork,Sum_Labor_Maj_supp_embedments,Sum_Labor_Reinforc_steel,Sum_Labor_Rubbing_surfaces,Sum_Labor_Waterproofing,Sum_Labor_Welded_wire_fabric','Tot_Labor_containment',0); +INSERT INTO abr_variable VALUES(382,'Tot_Labor_equipment','Total cost of labor of containment equipments',1919453.529000000096,'dollar','sum_ce','Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other','Tot_Labor_containment',0); +INSERT INTO abr_variable VALUES(383,'Tot_Labor_others','Total cost of labor of other non-concrete related items ',17486505.19000000135,'dollar','sum_ce','Total_Labor_Misc_steel_frames,Total_Labor_React_cav_liner,Total_Labor_Struct_steel,Total_Labor_cont_liner,Total_Labor_fl_grate_handrail_stairs,Total_Labor_painting','Tot_Labor_containment',0); +INSERT INTO abr_variable VALUES(384,'Tot_Mat_concr','Total cost of material of containment construction',14841635.07000000029,'dollar','sum_ce','Sum_Mat_Cadweld,Sum_Mat_Concrete,Sum_Mat_Constr_joints,Sum_Mat_Embedded_steel,Sum_Mat_Formwork,Sum_Mat_Maj_supp_embedments,Sum_Mat_Reinforc_steel,Sum_Mat_Rubbing_surfaces,Sum_Mat_Waterproofing,Sum_Mat_Welded_wire_fabric','Tot_Mat_containment',0); +INSERT INTO abr_variable VALUES(385,'Tot_Mat_equipment','Total cost of material of containment equipments',1353108.841999999946,'dollar','sum_ce','Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other','Tot_Mat_containment',0); +INSERT INTO abr_variable VALUES(386,'Tot_Mat_others','Total cost of material of other non-concrete related items ',21289915.44000000135,'dollar','sum_ce','Total_Mat_Misc_steel_frames,Total_Mat_React_cav_liner,Total_Mat_Struct_steel,Total_Mat_cont_liner,Total_Mat_fl_grate_handrail_stairs,Total_Mat_painting','Tot_Mat_containment',0); +INSERT INTO abr_variable VALUES(387,'Tot_Labor_containment','Total cost of labor of containment',43940775.97999999672,'dollar','sum_ce','Tot_Labor_concr,Tot_Labor_equipment,Tot_Labor_others',NULL,0); +INSERT INTO abr_variable VALUES(388,'Tot_Mat_containment','Total cost of material of containment',37484659.35000000149,'dollar','sum_ce','Tot_Mat_concr,Tot_Mat_equipment,Tot_Mat_others',NULL,0); +INSERT INTO abr_variable VALUES(389,'c_220A.221_ss_weight','weight of the stainless steel Vessel',323.6999999999999887,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(399,'c_220A.221_cs_weight','weight of the carbon steel Vessel',62.70000000000000284,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(400,'sg_weight','weight of SG',144.0,'ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(401,'c_sg_weight','cost of SG by weight',0.1400000000000000134,'million/ton',NULL,NULL,NULL,0); +INSERT INTO abr_variable VALUES(402,'no_sg','number of SG',4.0,'1',NULL,NULL,NULL,0); +CREATE TABLE `account` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account_description` text, + `total_cost` REAL DEFAULT NULL, + `level` INTEGER DEFAULT NULL, + `supaccount` text, + `review_status` text, + `prn` REAL DEFAULT NULL, + `gncoa` text, + `gn_level` INTEGER DEFAULT NULL, + `gn_supaccount` text, + `gn_ind` INTEGER DEFAULT NULL, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO account VALUES(1,'2','TOTAL DIRECT COST',2579172917.0,0,'','Unchanged',1.0,'20',0,'',1); +INSERT INTO account VALUES(2,'21','Structures and improvements subtotal',569959917.0,1,'2','Unchanged',0.2219203809999999999,'21',1,'20',2); +INSERT INTO account VALUES(3,'211','Yardwork',71213900.0,2,'21','Unchanged',0.0276289519999999983,'211',2,'21',3); +INSERT INTO account VALUES(4,'212','Reactor containment building',182702257.0,2,'21','Unchanged',0.07167537699999999846,'212.1',3,'212',5); +INSERT INTO account VALUES(5,'213','Turbine room and heater bay',65970400.0,2,'21','Unchanged',0.02559462399999999985,'213.1',3,'213',9); +INSERT INTO account VALUES(6,'214','Security building',3880760.0,2,'21','Unchanged',0.001505623999999999895,'216.2',3,'216',25); +INSERT INTO account VALUES(7,'215','Primary auxiliary building and tunnels',52634700.0,2,'21','Unchanged',0.02042075499999999877,'214.2',3,'214',17); +INSERT INTO account VALUES(8,'216','Waste processing building',40938300.0,2,'21','Unchanged',0.01588288699999999831,'215',2,'21',22); +INSERT INTO account VALUES(9,'217','Fuel storage building',28149600.0,2,'21','Unchanged',0.01092123799999999978,'214.1',3,'214',16); +INSERT INTO account VALUES(10,'218','Other structures',124470000.0,2,'21','Unchanged',0.04829079199999999906,'216',2,'22',23); +INSERT INTO account VALUES(11,'218A','Control Room/Diesel Generator Building',51570400.0,3,'218','Unchanged',0.02000783700000000053,'213.21',3,'213',10); +INSERT INTO account VALUES(12,'218B','Administration + Services Building',18938200.0,3,'218','Unchanged',0.007347478999999999643,'216.1',3,'216',24); +INSERT INTO account VALUES(13,'218D','Fire Pump House, Including Foundations',1216200.0,3,'218','Unchanged',0.0004718510000000000195,'214.5',3,'214',19); +INSERT INTO account VALUES(14,'218E','Emergency Feed Pump Building',7119140.0,3,'218','Unchanged',0.002762021999999999828,'214.7',3,'214',21); +INSERT INTO account VALUES(15,'218F','Manway Tnls. (Radiological Ctrl Access Tunnels)',2170960.0,3,'218','Unchanged',0.0008422699999999999979,'212.2',3,'212',6); +INSERT INTO account VALUES(16,'218G','Elec. Tunnels',193104.0,3,'218','Unchanged',7.490000000000000455e-05,'213.4',3,'213',14); +INSERT INTO account VALUES(17,'218H','Non- Essen. Switchgear Bldg.',1526990.0,3,'218','Unchanged',0.0005924279999999999868,'214.6',3,'214',20); +INSERT INTO account VALUES(18,'218J','Main Steam + Feedwater Pipe Enc.',22416800.0,3,'218','Unchanged',0.008697075999999999766,'213.31',3,'213',12); +INSERT INTO account VALUES(19,'218K','Pipe Tunnels',904119.0,3,'218','Unchanged',0.0003507720000000000087,'213.32',3,'213',13); +INSERT INTO account VALUES(20,'218L','Technical Support Center',2249450.0,3,'218','Unchanged',0.0008727220000000000376,'216.4',3,'216',26); +INSERT INTO account VALUES(21,'218P','Containment Equipment Hatch Missile Shield',626665.0,3,'218','Unchanged',0.0002431280000000000073,'212.3',3,'212',7); +INSERT INTO account VALUES(22,'218S','Waste Water Treatment',2186330.0,3,'218','Unchanged',0.0008482329999999999949,'214.3',3,'214',18); +INSERT INTO account VALUES(23,'218T','Ultimate Heat Sink Structures',13097500.0,3,'218','Unchanged',0.005081455000000000346,'233.11',4,'233.1',98); +INSERT INTO account VALUES(24,'218V','Control Rm Emergency Air Intake Building',253976.0,3,'218','Unchanged',9.84999999999999955e-05,'213.22',3,'213',11); +INSERT INTO account VALUES(25,'22','Reactor plant equipment',867215000.0,1,'2','Unchanged',0.3364545629999999843,'22',1,'20',27); +INSERT INTO account VALUES(26,'220A','Nuclear steam supply (NSSS)',514720000.0,2,'22','Unchanged',0.1996966059999999988,'221.3',3,'221',123); +INSERT INTO account VALUES(27,'220A.211','Vessel Structure (NSSS)',70000000.0,3,'220A','Unchanged',0.02715799400000000127,'221.121',4,'221.12',31); +INSERT INTO account VALUES(28,'220A.2121','Lower Internals (NSSS)',31780000.0,3,'220A','Unchanged',0.01232972899999999935,'221.131',4,'221.13',34); +INSERT INTO account VALUES(29,'220A.2122','Upper Internals (NSSS)',31780000.0,3,'220A','Unchanged',0.01232972899999999935,'221.132',4,'221.13',35); +INSERT INTO account VALUES(30,'220A.2131','Control Rods (NSSS)',3100000.0,3,'220A','Unchanged',0.001202710999999999972,'221.211',4,'221.2',38); +INSERT INTO account VALUES(31,'220A.2132','Control Rod Drives (NSSS)',34900000.0,3,'220A','Unchanged',0.01354020000000000049,'221.212',4,'221.2',39); +INSERT INTO account VALUES(32,'220A.221','Main Coolant Pumps (NSSS)',125240000.0,3,'220A','Unchanged',0.04858952999999999884,'222.11',4,'222.1',43); +INSERT INTO account VALUES(33,'220A.222','Reactor Coolant Piping (NSSS)',11400000.0,3,'220A','Unchanged',0.004422872999999999909,'222.21',4,'222.2',46); +INSERT INTO account VALUES(34,'220A.223','Steam Generators (NSSS)',149800000.0,3,'220A','Unchanged',0.0581181060000000027,'222.31',4,'222.3',49); +INSERT INTO account VALUES(35,'220A.224','Pressurizer (NSSS)',8300000.0,3,'220A','Unchanged',0.003220161999999999938,'222.41',4,'222.4',52); +INSERT INTO account VALUES(36,'220A.225','Pressurizer Relief Tank (NSSS)',1850000.0,3,'220A','Unchanged',0.0007177470000000000247,'222.42',4,'222.4',53); +INSERT INTO account VALUES(37,'220A.2311','Residual Heat Removal Pumps & Drives (NSSS)',1940000.0,3,'220A','Unchanged',0.0007526640000000000023,'223.11',4,'223.1',57); +INSERT INTO account VALUES(38,'220A.2312','Residual Heat Removal Heat Exchanger (NSSS)',6260000.0,3,'220A','Unchanged',0.002428701000000000123,'223.12',4,'223.1',58); +INSERT INTO account VALUES(39,'220A.2321','Safety Injection Pumps And Drives (NSSS)',1720000.0,3,'220A','Unchanged',0.0006673109999999999676,'223.31',4,'223.3',61); +INSERT INTO account VALUES(40,'220A.2322','Accumulator Tank (NSSS)',15300000.0,3,'220A','Unchanged',0.005935961000000000015,'223.32',4,'223.3',62); +INSERT INTO account VALUES(41,'220A.2323','Boron Injection Tank (NSSS)',899999.0,3,'220A','Unchanged',0.0003491740000000000013,'223.33',4,'223.3',63); +INSERT INTO account VALUES(42,'220A.2324','Boron Injection Surge Tank (NSSS)',50001.0,3,'220A','Unchanged',1.939899999999999841e-05,'223.34',4,'223.3',64); +INSERT INTO account VALUES(43,'220A.2325','Boron Injection Recirc. Pump & Drives (NSSS)',40000.0,3,'220A','Unchanged',1.550000000000000067e-05,'223.35',4,'223.3',65); +INSERT INTO account VALUES(44,'220A.251','Fuel Handling Tools (NSSS)',400000.0,3,'220A','Unchanged',0.0001551889999999999943,'225.1',3,'225',71); +INSERT INTO account VALUES(45,'220A.254','Fuel Storage Racks (NSSS)',2510000.0,3,'220A','Unchanged',0.000973808000000000052,'225.3',3,'225',73); +INSERT INTO account VALUES(46,'220A.2611','Rotating Machinery (Pumps And Motors) (NSSS)',2220000.0,3,'220A','Unchanged',0.0008612960000000000016,'226.31',4,'226.3',78); +INSERT INTO account VALUES(47,'220A.2612','Heat Transfer Equipment (NSSS)',2450000.0,3,'220A','Unchanged',0.000950529999999999995,'226.32',4,'226.3',79); +INSERT INTO account VALUES(48,'220A.2613','Tanks And Pressure Vessels (NSSS)',1140000.0,3,'220A','Unchanged',0.0004422869999999999754,'226.33',4,'226.3',80); +INSERT INTO account VALUES(49,'220A.2614','Purification And Filtration Equipment (NSSS)',2450000.0,3,'220A','Unchanged',0.000950529999999999995,'226.34',4,'226.3',81); +INSERT INTO account VALUES(50,'220A.262','Maintenance Equipment (NSSS)',9190000.0,3,'220A','Unchanged',0.003565457000000000174,'226.81',4,'226.8',86); +INSERT INTO account VALUES(51,'220A.27','Instrumentation And Control (NSSS)',0.0,3,'220A','Unchanged',0.0,'227.11',3,'227',90); +INSERT INTO account VALUES(52,'221','Reactor equipment',29966900.0,2,'22','Unchanged',0.01162629800000000018,'221',2,'22',28); +INSERT INTO account VALUES(53,'221.11','Reactor Support (Field Cost 221)',3910160.0,3,'221','Unchanged',0.001517029999999999942,'221.11',3,'221',29); +INSERT INTO account VALUES(54,'221.12','Vessel Structure (Field Cost 221)',7037480.0,3,'221','Unchanged',0.002730340999999999845,'221.122',4,'221.12',32); +INSERT INTO account VALUES(55,'221.13','Vessel Internals (Field Cost 221)',1703810.0,3,'221','Unchanged',0.0006610290000000000436,'221.133',4,'221.13',36); +INSERT INTO account VALUES(56,'221.14','Transport To Site (Field Cost 221)',15781400.0,3,'221','Unchanged',0.00612273100000000018,'342',2,'34',120); +INSERT INTO account VALUES(57,'221.21','Control Rod System (Field Cost 221)',1533970.0,3,'221','Unchanged',0.0005951360000000000156,'221.213',4,'221.2',40); +INSERT INTO account VALUES(58,'222','Main heat transfer transport system',28204600.0,2,'22','Unchanged',0.01094257600000000074,'222',2,'22',41); +INSERT INTO account VALUES(59,'222.11','Fluid Circulation Drive System (Field Cost 222)',8592380.0,3,'222','Unchanged',0.003333597000000000209,'222.12',4,'222.1',44); +INSERT INTO account VALUES(60,'222.12','Reactor Coolant Piping System (Field Cost 222)',16895000.0,3,'222','Unchanged',0.006554776000000000005,'222.22',4,'222.2',47); +INSERT INTO account VALUES(61,'222.13','Steam Generator Equipment (Field Cost 222)',2392050.0,3,'222','Unchanged',0.000928046999999999987,'222.32',4,'222.3',50); +INSERT INTO account VALUES(62,'222.14','Pressurizing System (Field Cost 222)',325156.0,3,'222','Unchanged',0.0001261509999999999921,'222.43',4,'222.4',54); +INSERT INTO account VALUES(63,'223','Safeguards system',35379000.0,2,'22','Unchanged',0.01372603799999999944,'223',2,'22',55); +INSERT INTO account VALUES(64,'223.1','Residual Heat Removal Sys (Field Cost 223)',6810250.0,3,'223','Unchanged',0.002642181999999999865,'223.13',4,'223.1',59); +INSERT INTO account VALUES(65,'223.3','Safety Injection System (Field Cost 223)',10383200.0,3,'223','Unchanged',0.004028384000000000305,'223.36',4,'223.3',66); +INSERT INTO account VALUES(66,'223.4','Containment Spray System (Field Cost 223)',15105600.0,3,'223','Unchanged',0.00586054000000000002,'223.4',3,'223',67); +INSERT INTO account VALUES(67,'223.5','Combustible Gas Control System (Field Cost 223)',3079990.0,3,'223','Unchanged',0.001194947999999999931,'223.5',3,'223',68); +INSERT INTO account VALUES(68,'224','Radwaste processing',59673400.0,2,'22','Unchanged',0.02315156900000000031,'224',2,'22',69); +INSERT INTO account VALUES(69,'225','Fuel handling and storage',9024530.0,2,'22','Unchanged',0.003501259000000000055,'225.2',3,'225',72); +INSERT INTO account VALUES(70,'226','Other reactor plant equipment',107592000.0,2,'22','Unchanged',0.04174261199999999839,'226',2,'22',74); +INSERT INTO account VALUES(71,'226.1','Inert Gas Sys',3533410.0,3,'226','Unchanged',0.001370862000000000035,'226.1',3,'226',75); +INSERT INTO account VALUES(72,'226.3','Reactor Makeup Water Sys',4252970.0,3,'226','Unchanged',0.001650030000000000029,'226.2',3,'226',76); +INSERT INTO account VALUES(73,'226.4','Coolant Treatment & Recycle',40770700.0,3,'226','Unchanged',0.01581786300000000145,'226.35',4,'226.3',82); +INSERT INTO account VALUES(74,'226.6','Fluid Leak Detection Sys',492958.0,3,'226','Unchanged',0.0001912539999999999955,'226.6',3,'226',83); +INSERT INTO account VALUES(75,'226.7','Aux Cool Sys (Broken Down Further)',55198200.0,3,'226','Unchanged',0.02141531899999999863,'226.7',3,'226',84); +INSERT INTO account VALUES(76,'226.8','Maintenance Equipment',1519680.0,3,'226','Unchanged',0.0005895920000000000023,'226.82',4,'226.8',87); +INSERT INTO account VALUES(77,'226.9','Sampling Equip',1831380.0,3,'226','Unchanged',0.0007105230000000000139,'226.9',3,'226',88); +INSERT INTO account VALUES(78,'227','Reactor instrumentation and control',61419700.0,2,'22','Unchanged',0.0238290830000000009,'227.12',3,'227',91); +INSERT INTO account VALUES(79,'228','Reactor plant miscellaneous items',21234600.0,2,'22','Unchanged',0.008238416000000000141,'228',2,'22',92); +INSERT INTO account VALUES(80,'23','Turbine plant equipment',637636000.0,1,'2','Unchanged',0.2473844910000000119,'23',1,'20',93); +INSERT INTO account VALUES(81,'231','Turbine generator',381776000.0,2,'23','Unchanged',0.1481181450000000066,'232.1',3,'232',94); +INSERT INTO account VALUES(82,'233','Condensing systems',82581500.0,2,'23','Unchanged',0.0320392550000000026,'233.21',4,'233.1',100); +INSERT INTO account VALUES(83,'234','Feedwater heating system',67214100.0,2,'23','Unchanged',0.02607714400000000001,'234',2,'23',102); +INSERT INTO account VALUES(84,'235','Other turbine plant equipment',63607900.0,2,'23','Unchanged',0.02467804200000000072,'232.2',3,'232',95); +INSERT INTO account VALUES(85,'236','Instrumentation and control',19530400.0,2,'23','Unchanged',0.007577234999999999874,'236',2,'23',103); +INSERT INTO account VALUES(86,'237','Turbine plant miscellaneous items',22926000.0,2,'23','Unchanged',0.008894631000000000065,'237',2,'23',104); +INSERT INTO account VALUES(87,'24','Electric plant equipment',231722000.0,1,'2','Unchanged',0.08990149399999999847,'24',1,'20',105); +INSERT INTO account VALUES(88,'241','Switchgear',34039800.0,2,'24','Unchanged',0.01320646699999999952,'241',2,'24',107); +INSERT INTO account VALUES(89,'242','Station service equipment',57453700.0,2,'24','Unchanged',0.02229038900000000072,'242',2,'24',108); +INSERT INTO account VALUES(90,'243','Switchboards',5838140.0,2,'24','Unchanged',0.002265030999999999815,'243',2,'24',109); +INSERT INTO account VALUES(91,'244','Protective equipment',12142400.0,2,'24','Unchanged',0.004710902999999999793,'244',2,'24',110); +INSERT INTO account VALUES(92,'245','Electric structure and wiring contnr.',63546600.0,2,'24','Unchanged',0.02465425900000000128,'245',2,'24',111); +INSERT INTO account VALUES(93,'246','Power and control wiring',58700900.0,2,'24','Unchanged',0.02277426700000000081,'246',2,'24',112); +INSERT INTO account VALUES(94,'25','Miscellaneous plant equipment subtotal',133073000.0,1,'2','Unchanged',0.05162851000000000245,'26',1,'20',113); +INSERT INTO account VALUES(95,'251','Transportation and lifting equipment',17078900.0,2,'25','Unchanged',0.00662612399999999973,'261',2,'26',114); +INSERT INTO account VALUES(96,'252','Air, water and steam service systems',81851100.0,2,'25','Unchanged',0.0317558809999999997,'262.1',3,'262',116); +INSERT INTO account VALUES(97,'253','Communications equipment',18279100.0,2,'25','Unchanged',0.00709176699999999969,'263',2,'26',118); +INSERT INTO account VALUES(98,'254','Furnishings and fixtures',7795930.0,2,'25','Unchanged',0.003024596999999999963,'264',2,'26',119); +INSERT INTO account VALUES(99,'255','Waste water treatment equipment',8067760.0,2,'25','Unchanged',0.003130060000000000047,'262.2',3,'262',117); +INSERT INTO account VALUES(100,'26','Main condenser heat rejection system',139567000.0,1,'2','Unchanged',0.05414799599999999686,'233',2,'23',96); +INSERT INTO account VALUES(101,'261','Structures',12345700.0,2,'26','Unchanged',0.004789777999999999745,'233.12',4,'233.1',99); +INSERT INTO account VALUES(102,'262','Mechanical equipment',127221000.0,2,'26','Unchanged',0.04935810100000000144,'233.22',4,'233.1',101); +INSERT INTO account VALUES(103,'DUMMY212','Reactor Island Civil Structures',NULL,NULL,NULL,'Unchanged',0.0,'212',2,'21',4); +INSERT INTO account VALUES(104,'DUMMY213','Main Function Buildings',NULL,NULL,NULL,'Unchanged',0.0,'213',2,'21',8); +INSERT INTO account VALUES(105,'DUMMY214','Buildings to Support Main Function ',NULL,NULL,NULL,'Unchanged',0.0,'214',2,'21',15); +INSERT INTO account VALUES(112,'DUMMY221.12','Outer vessel structure',NULL,NULL,NULL,'Unchanged',0.0,'221.12',3,'221',30); +INSERT INTO account VALUES(113,'DUMMY221.13','Inner vessel structure',NULL,NULL,NULL,'Unchanged',0.0,'221.13',3,'221',33); +INSERT INTO account VALUES(114,'DUMMY221.2','Reactivity control system',NULL,NULL,NULL,'Unchanged',0.0,'221.2',3,'221',37); +INSERT INTO account VALUES(115,'DUMMY222.1','Fluid circulation drive system',NULL,NULL,NULL,'Unchanged',0.0,'222.1',3,'222',42); +INSERT INTO account VALUES(116,'DUMMY222.2','Reactor heat transfer piping system',NULL,NULL,NULL,'Unchanged',0.0,'222.2',3,'222',45); +INSERT INTO account VALUES(117,'DUMMY222.3','Heat exchangers',NULL,NULL,NULL,'Unchanged',0.0,'222.3',3,'222',48); +INSERT INTO account VALUES(118,'DUMMY222.4','Pressurizer system',NULL,NULL,NULL,'Unchanged',0.0,'222.4',3,'222',51); +INSERT INTO account VALUES(119,'DUMMY223.1','Internal Residual Heat Removal System',NULL,NULL,NULL,'Unchanged',0.0,'223.1',3,'223',56); +INSERT INTO account VALUES(120,'DUMMY223.2','Reactivity Safety Injection System',NULL,NULL,NULL,'Unchanged',0.0,'223.3',3,'223',60); +INSERT INTO account VALUES(106,'DUMMY225','Fuel Handling Systems',NULL,NULL,NULL,'Unchanged',0.0,'225',2,'22',70); +INSERT INTO account VALUES(121,'DUMMY226.3','Other Reactor Plant Equipment Coolant treatment systems ',NULL,NULL,NULL,'Unchanged',0.0,'226.3',3,'226',77); +INSERT INTO account VALUES(122,'DUMMY226.8','Other Reactor Plant Equipment Maintenance',NULL,NULL,NULL,'Unchanged',0.0,'226.8',3,'226',85); +INSERT INTO account VALUES(107,'DUMMY227','Reactor Instrumentation and Control (I&C)',NULL,NULL,NULL,'Unchanged',0.0,'227',2,'22',89); +INSERT INTO account VALUES(108,'DUMMY232','Energy Applications',NULL,NULL,NULL,'Unchanged',0.0,'232',2,'23',106); +INSERT INTO account VALUES(123,'DUMMY233.1','Water Condensing Systems',NULL,NULL,NULL,'Unchanged',0.0,'233.1',3,'233',97); +INSERT INTO account VALUES(109,'DUMMY262','Air, Water, Plant Fuel Oil, and Steam Systems',NULL,NULL,NULL,'Unchanged',0.0,'262',2,'26',115); +INSERT INTO account VALUES(110,'DUMMY30','Capitalized Indirect Services Cost',NULL,NULL,NULL,'Unchanged',0.0,'30',0,NULL,121); +INSERT INTO account VALUES(111,'DUMMY34','Shipping and Transportation Costs',NULL,NULL,NULL,'Unchanged',0.0,'34',1,'30',122); +CREATE TABLE `cost_element` ( + `ind` INTEGER NOT NULL , + `cost_element` TEXT NOT NULL, + `cost_2017` REAL DEFAULT NULL, + `sup_cost_ele` text, + `alg_name` text, + `fun_unit` text, + `variables` text, + `account` text, + `algno` text, + `updated` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`,`cost_element`) +); +INSERT INTO cost_element VALUES(1,'211_fac',810015.0,'21_fac','esc_1987','million','escalate_1987, ref_211_fac','211','12',0); +INSERT INTO cost_element VALUES(2,'212_fac',0.0,'21_fac','NO_ALG','million','N/A','212','N/A',0); +INSERT INTO cost_element VALUES(3,'213_fac',1770660.0,'21_fac','MWth_scale','million','c_213_fac, mwth, scale_0.8','213','8',0); +INSERT INTO cost_element VALUES(4,'214_fac',147944.0,'21_fac','NO_ALG','million','N/A','214','N/A',0); +INSERT INTO cost_element VALUES(5,'215_fac',8953480.0,'21_fac','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO cost_element VALUES(6,'216_fac',1855240.0,'21_fac','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO cost_element VALUES(7,'217_fac',2842400.0,'21_fac','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO cost_element VALUES(8,'218A_fac',4171000.0,'218_fac','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO cost_element VALUES(9,'218B_fac',2337580.0,'218_fac','complex','million','c_218B_fac','218B','23',0); +INSERT INTO cost_element VALUES(10,'218D_fac',112407.0,'218_fac','NO_ALG','million','N/A','218D','N/A',0); +INSERT INTO cost_element VALUES(11,'218E_fac',63607.0,'218_fac','NO_ALG','million','N/A','218E','N/A',0); +INSERT INTO cost_element VALUES(12,'218F_fac',0.0,'218_fac','NO_ALG','million','N/A','218F','N/A',0); +INSERT INTO cost_element VALUES(13,'218G_fac',27448.0,'218_fac','NO_ALG','million','N/A','218G','N/A',0); +INSERT INTO cost_element VALUES(14,'218H_fac',54566.0,'218_fac','NO_ALG','million','N/A','218H','N/A',0); +INSERT INTO cost_element VALUES(15,'218J_fac',94629.0,'218_fac','complex','million','c_218J_fac','218J','23',0); +INSERT INTO cost_element VALUES(16,'218K_fac',0.0,'218_fac','NO_ALG','million','N/A','218K','N/A',0); +INSERT INTO cost_element VALUES(17,'218L_fac',147944.0,'218_fac','NO_ALG','million','N/A','218L','N/A',0); +INSERT INTO cost_element VALUES(18,'218P_fac',0.0,'218_fac','NO_ALG','million','N/A','218P','N/A',0); +INSERT INTO cost_element VALUES(19,'218S_fac',23670.0,'218_fac','NO_ALG','million','N/A','218S','N/A',0); +INSERT INTO cost_element VALUES(20,'218T_fac',121724.0,'218_fac','complex','million','c_218T_fac','218T','23',0); +INSERT INTO cost_element VALUES(21,'218V_fac',0.0,'218_fac','NO_ALG','million','N/A','218V','N/A',0); +INSERT INTO cost_element VALUES(22,'218_fac',7154570.0,'21_fac','NO_ALG','million','N/A','218','N/A',0); +INSERT INTO cost_element VALUES(23,'21_fac',64195200.0,'2_fac','NO_ALG','million','N/A','21','N/A',0); +INSERT INTO cost_element VALUES(24,'220A.211_fac',70000000.0,'220A_fac','unit_weights','million','c_221.12_cs_weight, c_221.12_ss_weight','220A.211','5',0); +INSERT INTO cost_element VALUES(25,'220A.2121_fac',31780000.0,'220A_fac','unit_weights','million','c_zero, c_220A.2121_ss_weight','220A.2121','5',0); +INSERT INTO cost_element VALUES(26,'220A.2122_fac',31780000.0,'220A_fac','unit_weights','million','c_zero, c_220A.2122_ss_weight','220A.2122','5',0); +INSERT INTO cost_element VALUES(27,'220A.2131_fac',3100000.0,'220A_fac','unit_facility','million','no_of_cr, c_cr_per_unit_fac','220A.2131','16',0); +INSERT INTO cost_element VALUES(28,'220A.2132_fac',34900000.0,'220A_fac','unit_facility','million','no_of_crd, c_crd_per_unit_fac','220A.2132','16',0); +INSERT INTO cost_element VALUES(29,'220A.221_fac',125240000.0,'220A_fac','unit_facility','million','no_of_rcpump, c_pump_per_unit_fac','220A.221','16',0); +INSERT INTO cost_element VALUES(30,'220A.222_fac',11400000.0,'220A_fac','unit_weights','million','c_zero, c_220A.222_ss_weight','220A.222','5',0); +INSERT INTO cost_element VALUES(31,'220A.223_fac',149800000.0,'220A_fac','NO_ALG','million','N/A','220A.223','N/A',0); +INSERT INTO cost_element VALUES(32,'220A.224_fac',8300000.0,'220A_fac','unit_weights_plate','million','c_220A.224_cs_weight_plate, c_220A.224_ss_weight','220A.224','18',0); +INSERT INTO cost_element VALUES(33,'220A.225_fac',1850000.0,'220A_fac','unit_weights','million','c_zero, c_220A.225_ss_weight','220A.225','5',0); +INSERT INTO cost_element VALUES(34,'220A.2311_fac',1940000.0,'220A_fac','complex','million','c_220A.2311_fac','220A.2311','23',0); +INSERT INTO cost_element VALUES(35,'220A.2312_fac',6260000.0,'220A_fac','unit_weights_factor','million','c_220A.2312_cs_weight, c_220A.2312_ss_weight, factor_220A.2312','220A.2312','21',0); +INSERT INTO cost_element VALUES(36,'220A.2321_fac',1720000.0,'220A_fac','complex','million','c_220A.2321_fac','220A.2321','23',0); +INSERT INTO cost_element VALUES(37,'220A.2322_fac',15300000.0,'220A_fac','total_weight_prn','million','c_220A.2322_tot_weight, prn_220A.2322cs, prn_220A.2322ss, no_of_acu','220A.2322','20',0); +INSERT INTO cost_element VALUES(38,'220A.2323_fac',899999.0,'220A_fac','total_weight_prn','million','c_220A.2323_tot_weight, prn_220A.2323cs, prn_220A.2323ss, no_of_bit','220A.2323','20',0); +INSERT INTO cost_element VALUES(39,'220A.2324_fac',50001.0,'220A_fac','unit_weights','million','c_zero, c_220A.2324_ss_weight','220A.2324','5',0); +INSERT INTO cost_element VALUES(40,'220A.2325_fac',40000.0,'220A_fac','complex','million','c_220A.2325_fac','220A.2325','23',0); +INSERT INTO cost_element VALUES(41,'220A.251_fac',400000.0,'220A_fac','unit_weights_factor','million','c_220A.251_cs_weight, c_220A.251_ss_weight, factor_220A.251','220A.251','21',0); +INSERT INTO cost_element VALUES(42,'220A.254_fac',2510000.0,'220A_fac','esc_1978','million','escalate_1978, ref_220A.254_1978','220A.254','19',0); +INSERT INTO cost_element VALUES(43,'220A.2611_fac',2220000.0,'220A_fac','sum_multi_accounts','million','c_226.4111_fac, c_226.4112_fac, c_226.41131_fac, c_226.41132_fac, c_226.4114_fac, c_226.41151_fac, c_226.41152_fac','220A.2611','1',0); +INSERT INTO cost_element VALUES(44,'220A.2612_fac',2450000.0,'220A_fac','sum_multi_accounts','million','c_226.4121_fac, c_226.4122_fac, c_226.4123_fac, c_226.4124_fac, c_226.4125_fac, c_226.4126_fac, c_226.4127_fac, c_226.4128_fac','220A.2612','1',0); +INSERT INTO cost_element VALUES(45,'220A.2613_fac',1140000.0,'220A_fac','sum_multi_accounts','million','c_226.4133_fac, c_226.4134_fac, c_226.4135_fac, c_226.4131_fac','220A.2613','1',0); +INSERT INTO cost_element VALUES(46,'220A.2614_fac',2450000.0,'220A_fac','sum_multi_accounts','million','c_226.4141_fac, c_226.4142_fac, c_226.4143_fac, c_226.4144_fac, c_226.4145_fac','220A.2614','1',0); +INSERT INTO cost_element VALUES(47,'220A.262_fac',9190000.0,'220A_fac','NO_ALG','million','N/A','220A.262','N/A',0); +INSERT INTO cost_element VALUES(48,'220A.27_fac',0.0,'220A_fac','default_0','million','N/A','220A.27','14',0); +INSERT INTO cost_element VALUES(49,'220A_fac',514720000.0,'22_fac','NO_ALG','million','N/A','220A','N/A',0); +INSERT INTO cost_element VALUES(50,'221.11_fac',2317290.0,'221_fac','NO_ALG','million','N/A','221.11','N/A',0); +INSERT INTO cost_element VALUES(51,'221.12_fac',0.0,'221_fac','default_0','million','N/A','221.12','14',0); +INSERT INTO cost_element VALUES(52,'221.13_fac',0.0,'221_fac','default_0','million','N/A','221.13','14',0); +INSERT INTO cost_element VALUES(53,'221.14_fac',0.0,'221_fac','default_0','million','N/A','221.14','14',0); +INSERT INTO cost_element VALUES(54,'221.21_fac',71734.0,'221_fac','NO_ALG','million','N/A','221.21','N/A',0); +INSERT INTO cost_element VALUES(55,'221_fac',2389020.0,'22_fac','NO_ALG','million','N/A','221','N/A',0); +INSERT INTO cost_element VALUES(56,'222.11_fac',3780840.0,'222_fac','MWth_scale','million','c_222.11_fac, mwth, scale_1.0','222.11','8',0); +INSERT INTO cost_element VALUES(57,'222.12_fac',4394350.0,'222_fac','MWth_scale','million','c_222.12_fac, mwth, scale_1.0','222.12','8',0); +INSERT INTO cost_element VALUES(58,'222.13_fac',75141.0,'222_fac','esc_1987','million','escalate_1987, ref_222.13_fac','222.13','12',0); +INSERT INTO cost_element VALUES(59,'222.14_fac',15028.0,'222_fac','MWth_scale','million','c_222.14_fac, mwth, scale_1.0','222.14','8',0); +INSERT INTO cost_element VALUES(60,'222_fac',8265360.0,'22_fac','MWth_scale','million','c_222_fac, mwth, scale_1.0','222','8',0); +INSERT INTO cost_element VALUES(61,'223.1_fac',2969910.0,'223_fac','factor_sum','million','fac_223.1, prn_223.1_fac, c_220A.2311_fac, c_220A.2312_fac','223.1','22',0); +INSERT INTO cost_element VALUES(62,'223.3_fac',3743030.0,'223_fac','factor_sum','million','fac_223.3, prn_223.3_fac, c_220A.2321_fac, c_220A.2322_fac, c_220A.2323_fac, c_220A.2324_fac, c_220A.2325_fac','223.3','22',0); +INSERT INTO cost_element VALUES(63,'223.4_fac',8660310.0,'223_fac','unit_volume','million','c_223.4_unit_vol_fac, vol_223.4','223.4','9',0); +INSERT INTO cost_element VALUES(64,'223.5_fac',2459540.0,'223_fac','NO_ALG','million','N/A','223.5','N/A',0); +INSERT INTO cost_element VALUES(65,'223_fac',17832800.0,'22_fac','NO_ALG','million','N/A','223','N/A',0); +INSERT INTO cost_element VALUES(66,'224_fac',46047900.0,'22_fac','esc_1987','million','escalate_1987, ref_224_fac','224','12',0); +INSERT INTO cost_element VALUES(67,'225_fac',6278660.0,'22_fac','NO_ALG','million','N/A','225','N/A',0); +INSERT INTO cost_element VALUES(68,'226.1_fac',2058360.0,'226_fac','NO_ALG','million','N/A','226.1','N/A',0); +INSERT INTO cost_element VALUES(69,'226.3_fac',2274530.0,'226_fac','NO_ALG','million','N/A','226.3','N/A',0); +INSERT INTO cost_element VALUES(70,'226.4_fac',19443300.0,'226_fac','MWth_scale','million','c_226.4_fac, mwth, scale_1.0','226.4','8',0); +INSERT INTO cost_element VALUES(71,'226.6_fac',442507.0,'226_fac','NO_ALG','million','N/A','226.6','N/A',0); +INSERT INTO cost_element VALUES(72,'226.7_fac',28179300.0,'226_fac','MWth_scale','million','c_226.7_fac, mwth, scale_1.0','226.7','8',0); +INSERT INTO cost_element VALUES(73,'226.8_fac',0.0,'226_fac','NO_ALG','million','N/A','226.8','N/A',0); +INSERT INTO cost_element VALUES(74,'226.9_fac',1038110.0,'226_fac','NO_ALG','million','N/A','226.9','N/A',0); +INSERT INTO cost_element VALUES(75,'226_fac',53436100.0,'22_fac','NO_ALG','million','N/A','226','N/A',0); +INSERT INTO cost_element VALUES(76,'227_fac',37538400.0,'22_fac','esc_1987','million','escalate_1987, ref_227_fac','227','12',0); +INSERT INTO cost_element VALUES(77,'228_fac',0.0,'22_fac','default_0','million','N/A','228','14',0); +INSERT INTO cost_element VALUES(78,'22_fac',686508000.0,'2_fac','NO_ALG','million','N/A','22','N/A',0); +INSERT INTO cost_element VALUES(79,'231_fac',356031000.0,'23_fac','dev_factor_ref','million','c_turbine, scale_tur_231_fac, n_231','231','10',0); +INSERT INTO cost_element VALUES(80,'233_fac',56339400.0,'23_fac','MWth_scale','million','c_233_fac, mwth, scale_0.8','233','8',0); +INSERT INTO cost_element VALUES(81,'234_fac',44874300.0,'23_fac','MWth_scale','million','c_234_fac, mwth, scale_0.8','234','8',0); +INSERT INTO cost_element VALUES(82,'235_fac',31848700.0,'23_fac','ptn_account','million','c_231_fac, prn_235_of_231_fac','235','4',0); +INSERT INTO cost_element VALUES(83,'236_fac',5322810.0,'23_fac','esc_1987','million','escalate_1987, ref_236_fac','236','12',0); +INSERT INTO cost_element VALUES(84,'237_fac',0.0,'23_fac','default_0','million','N/A','237','14',0); +INSERT INTO cost_element VALUES(85,'23_fac',494417000.0,'2_fac','NO_ALG','million','N/A','23','N/A',0); +INSERT INTO cost_element VALUES(86,'241_fac',32067500.0,'24_fac','MWe_scale','million','c_241_fac, mwe, scale_0.4','241','17',0); +INSERT INTO cost_element VALUES(87,'242_fac',52157800.0,'24_fac','MWe_scale','million','c_242_fac, mwe, scale_0.4','242','17',0); +INSERT INTO cost_element VALUES(88,'243_fac',4477640.0,'24_fac','NO_ALG','million','N/A','243','N/A',0); +INSERT INTO cost_element VALUES(89,'244_fac',0.0,'24_fac','NO_ALG','million','N/A','244','N/A',0); +INSERT INTO cost_element VALUES(90,'245_fac',0.0,'24_fac','default_0','million','N/A','245','14',0); +INSERT INTO cost_element VALUES(91,'246_fac',4510910.0,'24_fac','MWe_scale','million','c_246_fac, mwe, scale_0.4','246','17',0); +INSERT INTO cost_element VALUES(92,'24_fac',93213800.0,'2_fac','NO_ALG','million','N/A','24','N/A',0); +INSERT INTO cost_element VALUES(93,'251_fac',14416500.0,'25_fac','sum_multi_accounts','million','c_251.12_fac, c_251.111_fac, c_251.112_fac, c_251.16_fac, c_251.17_fac','251','1',0); +INSERT INTO cost_element VALUES(94,'252_fac',24869600.0,'25_fac','esc_1987','million','escalate_1987, ref_252_fac','252','12',0); +INSERT INTO cost_element VALUES(95,'253_fac',5552920.0,'25_fac','esc_1987','million','escalate_1987, ref_253_fac','253','12',0); +INSERT INTO cost_element VALUES(96,'254_fac',6181990.0,'25_fac','NO_ALG','million','N/A','254','N/A',0); +INSERT INTO cost_element VALUES(97,'255_fac',2161480.0,'25_fac','NO_ALG','million','N/A','255','N/A',0); +INSERT INTO cost_element VALUES(98,'25_fac',53182400.0,'2_fac','NO_ALG','million','N/A','25','N/A',0); +INSERT INTO cost_element VALUES(99,'261_fac',498939.0,'26_fac','NO_ALG','million','N/A','261','N/A',0); +INSERT INTO cost_element VALUES(100,'262_fac',86813900.0,'26_fac','MWth_scale','million','c_262_fac, mwth, scale_0.8','262','8',0); +INSERT INTO cost_element VALUES(101,'26_fac',87312900.0,'2_fac','NO_ALG','million','N/A','26','N/A',0); +INSERT INTO cost_element VALUES(102,'2_fac',1475120000.0,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO cost_element VALUES(103,'211_lab',41328800.0,'21_lab','esc_1987','million','escalate_1987, ref_211_lab','211','12',0); +INSERT INTO cost_element VALUES(104,'212_lab',101951276.2999999971,'21_lab','containment','million','Tot_Labor_containment','212','7',0); +INSERT INTO cost_element VALUES(105,'213_lab',31835200.0,'21_lab','MWth_scale','million','c_213_lab, mwth, scale_0.8','213','8',0); +INSERT INTO cost_element VALUES(106,'214_lab',2686150.0,'21_lab','NO_ALG','million','N/A','214','N/A',0); +INSERT INTO cost_element VALUES(107,'215_lab',29975200.0,'21_lab','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO cost_element VALUES(108,'216_lab',25712000.0,'21_lab','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO cost_element VALUES(109,'217_lab',12836600.0,'21_lab','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO cost_element VALUES(110,'218A_lab',31857800.0,'218_lab','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO cost_element VALUES(111,'218B_lab',9663950.0,'218_lab','complex','million','c_218B_lab','218B','23',0); +INSERT INTO cost_element VALUES(112,'218D_lab',682327.0,'218_lab','NO_ALG','million','N/A','218D','N/A',0); +INSERT INTO cost_element VALUES(113,'218E_lab',4872660.0,'218_lab','NO_ALG','million','N/A','218E','N/A',0); +INSERT INTO cost_element VALUES(114,'218F_lab',1535890.0,'218_lab','NO_ALG','million','N/A','218F','N/A',0); +INSERT INTO cost_element VALUES(115,'218G_lab',120171.0,'218_lab','NO_ALG','million','N/A','218G','N/A',0); +INSERT INTO cost_element VALUES(116,'218H_lab',824097.0,'218_lab','NO_ALG','million','N/A','218H','N/A',0); +INSERT INTO cost_element VALUES(117,'218J_lab',15059800.0,'218_lab','complex','million','c_218J_lab','218J','23',0); +INSERT INTO cost_element VALUES(118,'218K_lab',582777.0,'218_lab','NO_ALG','million','N/A','218K','N/A',0); +INSERT INTO cost_element VALUES(119,'218L_lab',1417080.0,'218_lab','NO_ALG','million','N/A','218L','N/A',0); +INSERT INTO cost_element VALUES(120,'218P_lab',477504.0,'218_lab','NO_ALG','million','N/A','218P','N/A',0); +INSERT INTO cost_element VALUES(121,'218S_lab',1378470.0,'218_lab','NO_ALG','million','N/A','218S','N/A',0); +INSERT INTO cost_element VALUES(122,'218T_lab',8910340.0,'218_lab','complex','million','c_218T_lab','218T','23',0); +INSERT INTO cost_element VALUES(123,'218V_lab',173258.0,'218_lab','NO_ALG','million','N/A','218V','N/A',0); +INSERT INTO cost_element VALUES(124,'218_lab',77556100.0,'21_lab','NO_ALG','million','N/A','218','N/A',0); +INSERT INTO cost_element VALUES(125,'21_lab',323446000.0,'2_lab','NO_ALG','million','N/A','21','N/A',0); +INSERT INTO cost_element VALUES(126,'220A.211_lab',0.0,'220A_lab','default_0','million','N/A','220A.211','14',0); +INSERT INTO cost_element VALUES(127,'220A.2121_lab',0.0,'220A_lab','default_0','million','N/A','220A.2121','14',0); +INSERT INTO cost_element VALUES(128,'220A.2122_lab',0.0,'220A_lab','default_0','million','N/A','220A.2122','14',0); +INSERT INTO cost_element VALUES(129,'220A.2131_lab',0.0,'220A_lab','default_0','million','N/A','220A.2131','14',0); +INSERT INTO cost_element VALUES(130,'220A.2132_lab',0.0,'220A_lab','default_0','million','N/A','220A.2132','14',0); +INSERT INTO cost_element VALUES(131,'220A.221_lab',0.0,'220A_lab','default_0','million','N/A','220A.221','14',0); +INSERT INTO cost_element VALUES(132,'220A.222_lab',0.0,'220A_lab','default_0','million','N/A','220A.222','14',0); +INSERT INTO cost_element VALUES(133,'220A.223_lab',0.0,'220A_lab','default_0','million','N/A','220A.223','14',0); +INSERT INTO cost_element VALUES(134,'220A.224_lab',0.0,'220A_lab','default_0','million','N/A','220A.224','14',0); +INSERT INTO cost_element VALUES(135,'220A.225_lab',0.0,'220A_lab','default_0','million','N/A','220A.225','14',0); +INSERT INTO cost_element VALUES(136,'220A.2311_lab',0.0,'220A_lab','default_0','million','N/A','220A.2311','14',0); +INSERT INTO cost_element VALUES(137,'220A.2312_lab',0.0,'220A_lab','default_0','million','N/A','220A.2312','14',0); +INSERT INTO cost_element VALUES(138,'220A.2321_lab',0.0,'220A_lab','default_0','million','N/A','220A.2321','14',0); +INSERT INTO cost_element VALUES(139,'220A.2322_lab',0.0,'220A_lab','default_0','million','N/A','220A.2322','14',0); +INSERT INTO cost_element VALUES(140,'220A.2323_lab',0.0,'220A_lab','default_0','million','N/A','220A.2323','14',0); +INSERT INTO cost_element VALUES(141,'220A.2324_lab',0.0,'220A_lab','default_0','million','N/A','220A.2324','14',0); +INSERT INTO cost_element VALUES(142,'220A.2325_lab',0.0,'220A_lab','default_0','million','N/A','220A.2325','14',0); +INSERT INTO cost_element VALUES(143,'220A.251_lab',0.0,'220A_lab','default_0','million','N/A','220A.251','14',0); +INSERT INTO cost_element VALUES(144,'220A.254_lab',0.0,'220A_lab','default_0','million','N/A','220A.254','14',0); +INSERT INTO cost_element VALUES(145,'220A.2611_lab',0.0,'220A_lab','default_0','million','N/A','220A.2611','14',0); +INSERT INTO cost_element VALUES(146,'220A.2612_lab',0.0,'220A_lab','default_0','million','N/A','220A.2612','14',0); +INSERT INTO cost_element VALUES(147,'220A.2613_lab',0.0,'220A_lab','default_0','million','N/A','220A.2613','14',0); +INSERT INTO cost_element VALUES(148,'220A.2614_lab',0.0,'220A_lab','default_0','million','N/A','220A.2614','14',0); +INSERT INTO cost_element VALUES(149,'220A.262_lab',0.0,'220A_lab','NO_ALG','million','N/A','220A.262','N/A',0); +INSERT INTO cost_element VALUES(150,'220A.27_lab',0.0,'220A_lab','default_0','million','N/A','220A.27','14',0); +INSERT INTO cost_element VALUES(151,'220A_lab',0.0,'22_lab','NO_ALG','million','N/A','220A','N/A',0); +INSERT INTO cost_element VALUES(152,'221.11_lab',1448070.0,'221_lab','NO_ALG','million','N/A','221.11','N/A',0); +INSERT INTO cost_element VALUES(153,'221.12_lab',6397710.0,'221_lab','cost_by_weight','million','c_221.12_tol_weight, c_rpv_lab','221.12','13',0); +INSERT INTO cost_element VALUES(154,'221.13_lab',1548920.0,'221_lab','NO_ALG','million','N/A','221.13','N/A',0); +INSERT INTO cost_element VALUES(155,'221.14_lab',0.0,'221_lab','default_0','million','N/A','221.14','14',0); +INSERT INTO cost_element VALUES(156,'221.21_lab',1329300.0,'221_lab','NO_ALG','million','N/A','221.21','N/A',0); +INSERT INTO cost_element VALUES(157,'221_lab',10724000.0,'22_lab','NO_ALG','million','N/A','221','N/A',0); +INSERT INTO cost_element VALUES(158,'222.11_lab',4374120.0,'222_lab','MWth_scale','million','c_222.11_lab, mwth, scale_1.0','222.11','8',0); +INSERT INTO cost_element VALUES(159,'222.12_lab',11381600.0,'222_lab','MWth_scale','million','c_222.12_lab, mwth, scale_1.0','222.12','8',0); +INSERT INTO cost_element VALUES(160,'222.13_lab',2106280.0,'222_lab','unit_facility','million','no_of_sg, c_SG_per_unit_lab','222.13','16',0); +INSERT INTO cost_element VALUES(161,'222.14_lab',281935.0,'222_lab','MWth_scale','million','c_222.14_lab, mwth, scale_1.0','222.14','8',0); +INSERT INTO cost_element VALUES(162,'222_lab',18143900.0,'22_lab','MWth_scale','million','c_222_lab, mwth, scale_1.0','222','8',0); +INSERT INTO cost_element VALUES(163,'223.1_lab',3507460.0,'223_lab','factor_sum','million','fac_223.1, prn_223.1_lab, c_220A.2311_fac, c_220A.2312_fac','223.1','22',0); +INSERT INTO cost_element VALUES(164,'223.3_lab',5687570.0,'223_lab','factor_sum','million','fac_223.3, prn_223.3_lab, c_220A.2321_fac, c_220A.2322_fac, c_220A.2323_fac, c_220A.2324_fac, c_220A.2325_fac','223.3','22',0); +INSERT INTO cost_element VALUES(165,'223.4_lab',5857020.0,'223_lab','unit_volume','million','c_223.4_unit_vol_lab, vol_223.4','223.4','9',0); +INSERT INTO cost_element VALUES(166,'223.5_lab',564893.0,'223_lab','NO_ALG','million','N/A','223.5','N/A',0); +INSERT INTO cost_element VALUES(167,'223_lab',15616900.0,'22_lab','NO_ALG','million','N/A','223','N/A',0); +INSERT INTO cost_element VALUES(168,'224_lab',11434300.0,'22_lab','esc_1987','million','escalate_1987, ref_224_lab','224','12',0); +INSERT INTO cost_element VALUES(169,'225_lab',2444480.0,'22_lab','NO_ALG','million','N/A','225','N/A',0); +INSERT INTO cost_element VALUES(170,'226.1_lab',1342510.0,'226_lab','NO_ALG','million','N/A','226.1','N/A',0); +INSERT INTO cost_element VALUES(171,'226.3_lab',1563980.0,'226_lab','NO_ALG','million','N/A','226.3','N/A',0); +INSERT INTO cost_element VALUES(172,'226.4_lab',18621600.0,'226_lab','MWth_scale','million','c_226.4_lab, mwth, scale_1.0','226.4','8',0); +INSERT INTO cost_element VALUES(173,'226.6_lab',48049.0,'226_lab','NO_ALG','million','N/A','226.6','N/A',0); +INSERT INTO cost_element VALUES(174,'226.7_lab',24625600.0,'226_lab','MWth_scale','million','c_226.7_lab, mwth, scale_1.0','226.7','8',0); +INSERT INTO cost_element VALUES(175,'226.8_lab',1519680.0,'226_lab','NO_ALG','million','N/A','226.8','N/A',0); +INSERT INTO cost_element VALUES(176,'226.9_lab',716141.0,'226_lab','NO_ALG','million','N/A','226.9','N/A',0); +INSERT INTO cost_element VALUES(177,'226_lab',47112100.0,'22_lab','NO_ALG','million','N/A','226','N/A',0); +INSERT INTO cost_element VALUES(178,'227_lab',21960900.0,'22_lab','esc_1987','million','escalate_1987, ref_227_lab','227','12',0); +INSERT INTO cost_element VALUES(179,'228_lab',12175700.0,'22_lab','esc_1987','million','escalate_1987, ref_228_lab','228','12',0); +INSERT INTO cost_element VALUES(180,'22_lab',139612000.0,'2_lab','NO_ALG','million','N/A','22','N/A',0); +INSERT INTO cost_element VALUES(181,'231_lab',21746100.0,'23_lab','ptn_account','million','c_231_fac, prn_fac_231_lab','231','4',0); +INSERT INTO cost_element VALUES(182,'233_lab',22964300.0,'23_lab','MWth_scale','million','c_233_lab, mwth, scale_0.8','233','8',0); +INSERT INTO cost_element VALUES(183,'234_lab',20317400.0,'23_lab','MWth_scale','million','c_234_lab, mwth, scale_0.8','234','8',0); +INSERT INTO cost_element VALUES(184,'235_lab',28326900.0,'23_lab','ptn_account','million','c_231_lab, prn_235_of_231_lab','235','4',0); +INSERT INTO cost_element VALUES(185,'236_lab',13083300.0,'23_lab','esc_1987','million','escalate_1987, ref_236_lab','236','12',0); +INSERT INTO cost_element VALUES(186,'237_lab',13130900.0,'23_lab','MWth_scale','million','c_237_lab, mwth, scale_0.8','237','8',0); +INSERT INTO cost_element VALUES(187,'23_lab',119569000.0,'2_lab','NO_ALG','million','N/A','23','N/A',0); +INSERT INTO cost_element VALUES(188,'241_lab',1720620.0,'24_lab','MWe_scale','million','c_241_lab, mwe, scale_0.4','241','17',0); +INSERT INTO cost_element VALUES(189,'242_lab',4446170.0,'24_lab','MWe_scale','million','c_242_lab, mwe, scale_0.4','242','17',0); +INSERT INTO cost_element VALUES(190,'243_lab',1005350.0,'24_lab','NO_ALG','million','N/A','243','N/A',0); +INSERT INTO cost_element VALUES(191,'244_lab',7102570.0,'24_lab','NO_ALG','million','N/A','244','N/A',0); +INSERT INTO cost_element VALUES(192,'245_lab',51236700.0,'24_lab','MWe_scale','million','c_245_lab, mwe, scale_0.4','245','17',0); +INSERT INTO cost_element VALUES(193,'246_lab',33434500.0,'24_lab','MWe_scale','million','c_246_lab, mwe, scale_0.4','246','17',0); +INSERT INTO cost_element VALUES(194,'24_lab',98945900.0,'2_lab','NO_ALG','million','N/A','24','N/A',0); +INSERT INTO cost_element VALUES(195,'251_lab',2420360.0,'25_lab','sum_multi_accounts','million','c_251.12_lab, c_251.111_lab, c_251.112_lab, c_251.16_lab, c_251.17_lab','251','1',0); +INSERT INTO cost_element VALUES(196,'252_lab',44371800.0,'25_lab','esc_1987','million','escalate_1987, ref_252_lab','252','12',0); +INSERT INTO cost_element VALUES(197,'253_lab',11036100.0,'25_lab','esc_1987','million','escalate_1987, ref_253_lab','253','12',0); +INSERT INTO cost_element VALUES(198,'254_lab',1431940.0,'25_lab','NO_ALG','million','N/A','254','N/A',0); +INSERT INTO cost_element VALUES(199,'255_lab',5369350.0,'25_lab','NO_ALG','million','N/A','255','N/A',0); +INSERT INTO cost_element VALUES(200,'25_lab',64629600.0,'2_lab','NO_ALG','million','N/A','25','N/A',0); +INSERT INTO cost_element VALUES(201,'261_lab',7642620.0,'26_lab','NO_ALG','million','N/A','261','N/A',0); +INSERT INTO cost_element VALUES(202,'262_lab',35896600.0,'26_lab','MWth_scale','million','c_262_lab, mwth, scale_0.8','262','8',0); +INSERT INTO cost_element VALUES(203,'26_lab',43539200.0,'2_lab','NO_ALG','million','N/A','26','N/A',0); +INSERT INTO cost_element VALUES(204,'2_lab',789741000.0,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO cost_element VALUES(205,'211_mat',29075000.0,'21_mat','esc_1987','million','escalate_1987, ref_211_mat','211','12',0); +INSERT INTO cost_element VALUES(206,'212_mat',80750981.0,'21_mat','containment','million','Tot_Mat_containment','212','7',0); +INSERT INTO cost_element VALUES(207,'213_mat',32364600.0,'21_mat','MWth_scale','million','c_213_mat, mwth, scale_0.8','213','8',0); +INSERT INTO cost_element VALUES(208,'214_mat',1046670.0,'21_mat','NO_ALG','million','N/A','214','N/A',0); +INSERT INTO cost_element VALUES(209,'215_mat',13705900.0,'21_mat','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO cost_element VALUES(210,'216_mat',13371100.0,'21_mat','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO cost_element VALUES(211,'217_mat',12470500.0,'21_mat','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO cost_element VALUES(212,'218A_mat',15541700.0,'218_mat','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO cost_element VALUES(213,'218B_mat',6936620.0,'218_mat','complex','million','c_218B_mat','218B','23',0); +INSERT INTO cost_element VALUES(214,'218D_mat',421468.0,'218_mat','NO_ALG','million','N/A','218D','N/A',0); +INSERT INTO cost_element VALUES(215,'218E_mat',2182870.0,'218_mat','NO_ALG','million','N/A','218E','N/A',0); +INSERT INTO cost_element VALUES(216,'218F_mat',635078.0,'218_mat','NO_ALG','million','N/A','218F','N/A',0); +INSERT INTO cost_element VALUES(217,'218G_mat',45485.0,'218_mat','NO_ALG','million','N/A','218G','N/A',0); +INSERT INTO cost_element VALUES(218,'218H_mat',648326.0,'218_mat','NO_ALG','million','N/A','218H','N/A',0); +INSERT INTO cost_element VALUES(219,'218J_mat',7262350.0,'218_mat','complex','million','c_218J_mat','218J','23',0); +INSERT INTO cost_element VALUES(220,'218K_mat',321342.0,'218_mat','NO_ALG','million','N/A','218K','N/A',0); +INSERT INTO cost_element VALUES(221,'218L_mat',684428.0,'218_mat','NO_ALG','million','N/A','218L','N/A',0); +INSERT INTO cost_element VALUES(222,'218P_mat',149161.0,'218_mat','NO_ALG','million','N/A','218P','N/A',0); +INSERT INTO cost_element VALUES(223,'218S_mat',784185.0,'218_mat','NO_ALG','million','N/A','218S','N/A',0); +INSERT INTO cost_element VALUES(224,'218T_mat',4065430.0,'218_mat','complex','million','c_218T_mat','218T','23',0); +INSERT INTO cost_element VALUES(225,'218V_mat',80718.0,'218_mat','NO_ALG','million','N/A','218V','N/A',0); +INSERT INTO cost_element VALUES(226,'218_mat',39759100.0,'21_mat','NO_ALG','million','N/A','218','N/A',0); +INSERT INTO cost_element VALUES(227,'21_mat',184361000.0,'2_mat','NO_ALG','million','N/A','21','N/A',0); +INSERT INTO cost_element VALUES(228,'220A.211_mat',0.0,'220A_mat','default_0','million','N/A','220A.211','14',0); +INSERT INTO cost_element VALUES(229,'220A.2121_mat',0.0,'220A_mat','default_0','million','N/A','220A.2121','14',0); +INSERT INTO cost_element VALUES(230,'220A.2122_mat',0.0,'220A_mat','default_0','million','N/A','220A.2122','14',0); +INSERT INTO cost_element VALUES(231,'220A.2131_mat',0.0,'220A_mat','default_0','million','N/A','220A.2131','14',0); +INSERT INTO cost_element VALUES(232,'220A.2132_mat',0.0,'220A_mat','default_0','million','N/A','220A.2132','14',0); +INSERT INTO cost_element VALUES(233,'220A.221_mat',0.0,'220A_mat','default_0','million','N/A','220A.221','14',0); +INSERT INTO cost_element VALUES(234,'220A.222_mat',0.0,'220A_mat','default_0','million','N/A','220A.222','14',0); +INSERT INTO cost_element VALUES(235,'220A.223_mat',0.0,'220A_mat','default_0','million','N/A','220A.223','14',0); +INSERT INTO cost_element VALUES(236,'220A.224_mat',0.0,'220A_mat','default_0','million','N/A','220A.224','14',0); +INSERT INTO cost_element VALUES(237,'220A.225_mat',0.0,'220A_mat','default_0','million','N/A','220A.225','14',0); +INSERT INTO cost_element VALUES(238,'220A.2311_mat',0.0,'220A_mat','default_0','million','N/A','220A.2311','14',0); +INSERT INTO cost_element VALUES(239,'220A.2312_mat',0.0,'220A_mat','default_0','million','N/A','220A.2312','14',0); +INSERT INTO cost_element VALUES(240,'220A.2321_mat',0.0,'220A_mat','default_0','million','N/A','220A.2321','14',0); +INSERT INTO cost_element VALUES(241,'220A.2322_mat',0.0,'220A_mat','default_0','million','N/A','220A.2322','14',0); +INSERT INTO cost_element VALUES(242,'220A.2323_mat',0.0,'220A_mat','default_0','million','N/A','220A.2323','14',0); +INSERT INTO cost_element VALUES(243,'220A.2324_mat',0.0,'220A_mat','default_0','million','N/A','220A.2324','14',0); +INSERT INTO cost_element VALUES(244,'220A.2325_mat',0.0,'220A_mat','default_0','million','N/A','220A.2325','14',0); +INSERT INTO cost_element VALUES(245,'220A.251_mat',0.0,'220A_mat','default_0','million','N/A','220A.251','14',0); +INSERT INTO cost_element VALUES(246,'220A.254_mat',0.0,'220A_mat','default_0','million','N/A','220A.254','14',0); +INSERT INTO cost_element VALUES(247,'220A.2611_mat',0.0,'220A_mat','default_0','million','N/A','220A.2611','14',0); +INSERT INTO cost_element VALUES(248,'220A.2612_mat',0.0,'220A_mat','default_0','million','N/A','220A.2612','14',0); +INSERT INTO cost_element VALUES(249,'220A.2613_mat',0.0,'220A_mat','default_0','million','N/A','220A.2613','14',0); +INSERT INTO cost_element VALUES(250,'220A.2614_mat',0.0,'220A_mat','default_0','million','N/A','220A.2614','14',0); +INSERT INTO cost_element VALUES(251,'220A.262_mat',0.0,'220A_mat','default_0','million','N/A','220A.262','14',0); +INSERT INTO cost_element VALUES(252,'220A.27_mat',0.0,'220A_mat','default_0','million','N/A','220A.27','14',0); +INSERT INTO cost_element VALUES(253,'220A_mat',0.0,'22_mat','default_0','million','N/A','220A','14',0); +INSERT INTO cost_element VALUES(254,'221.11_mat',144807.0,'221_mat','NO_ALG','million','N/A','221.11','N/A',0); +INSERT INTO cost_element VALUES(255,'221.12_mat',639771.0,'221_mat','cost_by_weight','million','c_221.12_tol_weight, c_rpv_mat','221.12','13',0); +INSERT INTO cost_element VALUES(256,'221.13_mat',154890.0,'221_mat','NO_ALG','million','N/A','221.13','N/A',0); +INSERT INTO cost_element VALUES(257,'221.14_mat',15781400.0,'221_mat','esc_1987','million','escalate_1987, ref_221.14_mat','221.14','12',0); +INSERT INTO cost_element VALUES(258,'221.21_mat',132931.0,'221_mat','NO_ALG','million','N/A','221.21','N/A',0); +INSERT INTO cost_element VALUES(259,'221_mat',16853800.0,'22_mat','NO_ALG','million','N/A','221','N/A',0); +INSERT INTO cost_element VALUES(260,'222.11_mat',437412.0,'222_mat','MWth_scale','million','c_222.11_mat, mwth, scale_1.0','222.11','8',0); +INSERT INTO cost_element VALUES(261,'222.12_mat',1119110.0,'222_mat','MWth_scale','million','c_222.12_mat, mwth, scale_1.0','222.12','8',0); +INSERT INTO cost_element VALUES(262,'222.13_mat',210628.0,'222_mat','unit_facility','million','no_of_sg, c_SG_per_unit_mat','222.13','16',0); +INSERT INTO cost_element VALUES(263,'222.14_mat',28193.0,'222_mat','MWth_scale','million','c_222.14_mat, mwth, scale_1.0','222.14','8',0); +INSERT INTO cost_element VALUES(264,'222_mat',1795340.0,'22_mat','MWth_scale','million','c_222_mat, mwth, scale_1.0','222','8',0); +INSERT INTO cost_element VALUES(265,'223.1_mat',332871.0,'223_mat','factor_sum','million','fac_223.1, prn_223.1_mat, c_220A.2311_fac, c_220A.2312_fac','223.1','22',0); +INSERT INTO cost_element VALUES(266,'223.3_mat',952591.0,'223_mat','factor_sum','million','fac_223.3, prn_223.3_mat, c_220A.2321_fac, c_220A.2322_fac, c_220A.2323_fac, c_220A.2324_fac, c_220A.2325_fac','223.3','22',0); +INSERT INTO cost_element VALUES(267,'223.4_mat',588220.0,'223_mat','unit_volume','million','c_223.4_unit_vol_mat, vol_223.4','223.4','9',0); +INSERT INTO cost_element VALUES(268,'223.5_mat',55563.0,'223_mat','NO_ALG','million','N/A','223.5','N/A',0); +INSERT INTO cost_element VALUES(269,'223_mat',1929240.0,'22_mat','NO_ALG','million','N/A','223','N/A',0); +INSERT INTO cost_element VALUES(270,'224_mat',2191180.0,'22_mat','esc_1987','million','escalate_1987, ref_224_mat','224','12',0); +INSERT INTO cost_element VALUES(271,'225_mat',301394.0,'22_mat','NO_ALG','million','N/A','225','N/A',0); +INSERT INTO cost_element VALUES(272,'226.1_mat',132534.0,'226_mat','NO_ALG','million','N/A','226.1','N/A',0); +INSERT INTO cost_element VALUES(273,'226.3_mat',414455.0,'226_mat','NO_ALG','million','N/A','226.3','N/A',0); +INSERT INTO cost_element VALUES(274,'226.4_mat',2705780.0,'226_mat','MWth_scale','million','c_226.4_mat, mwth, scale_1.0','226.4','8',0); +INSERT INTO cost_element VALUES(275,'226.6_mat',2402.0,'226_mat','NO_ALG','million','N/A','226.6','N/A',0); +INSERT INTO cost_element VALUES(276,'226.7_mat',2393290.0,'226_mat','MWth_scale','million','c_226.7_mat, mwth, scale_1.0','226.7','8',0); +INSERT INTO cost_element VALUES(277,'226.8_mat',0.0,'226_mat','default_0','million','N/A','226.8','14',0); +INSERT INTO cost_element VALUES(278,'226.9_mat',77122.0,'226_mat','NO_ALG','million','N/A','226.9','N/A',0); +INSERT INTO cost_element VALUES(279,'226_mat',7044000.0,'22_mat','NO_ALG','million','N/A','226','N/A',0); +INSERT INTO cost_element VALUES(280,'227_mat',1920500.0,'22_mat','esc_1987','million','escalate_1987, ref_227_mat','227','12',0); +INSERT INTO cost_element VALUES(281,'228_mat',9058820.0,'22_mat','esc_1987','million','escalate_1987, ref_228_mat','228','12',0); +INSERT INTO cost_element VALUES(282,'22_mat',41094300.0,'2_mat','NO_ALG','million','N/A','22','N/A',0); +INSERT INTO cost_element VALUES(283,'231_mat',3998110.0,'23_mat','ptn_account','million','c_231_fac, prn_fac_231_mat','231','4',0); +INSERT INTO cost_element VALUES(284,'233_mat',3277750.0,'23_mat','MWth_scale','million','c_233_mat, mwth, scale_0.8','233','8',0); +INSERT INTO cost_element VALUES(285,'234_mat',2022430.0,'23_mat','MWth_scale','million','c_234_mat, mwth, scale_0.8','234','8',0); +INSERT INTO cost_element VALUES(286,'235_mat',3432270.0,'23_mat','ptn_account','million','c_231_mat, prn_235_of_231_mat','235','4',0); +INSERT INTO cost_element VALUES(287,'236_mat',1124370.0,'23_mat','esc_1987','million','escalate_1987, ref_236_mat','236','12',0); +INSERT INTO cost_element VALUES(288,'237_mat',9795180.0,'23_mat','MWth_scale','million','c_237_mat, mwth, scale_0.8','237','8',0); +INSERT INTO cost_element VALUES(289,'23_mat',23650100.0,'2_mat','NO_ALG','million','N/A','23','N/A',0); +INSERT INTO cost_element VALUES(290,'241_mat',251723.0,'24_mat','MWe_scale','million','c_241_mat, mwe, scale_0.4','241','17',0); +INSERT INTO cost_element VALUES(291,'242_mat',849719.0,'24_mat','MWe_scale','million','c_242_mat, mwe, scale_0.4','242','17',0); +INSERT INTO cost_element VALUES(292,'243_mat',355156.0,'24_mat','NO_ALG','million','N/A','243','N/A',0); +INSERT INTO cost_element VALUES(293,'244_mat',5039850.0,'24_mat','NO_ALG','million','N/A','244','N/A',0); +INSERT INTO cost_element VALUES(294,'245_mat',12309900.0,'24_mat','MWe_scale','million','c_245_mat, mwe, scale_0.4','245','17',0); +INSERT INTO cost_element VALUES(295,'246_mat',20755500.0,'24_mat','MWe_scale','million','c_246_mat, mwe, scale_0.4','246','17',0); +INSERT INTO cost_element VALUES(296,'24_mat',39561800.0,'2_mat','NO_ALG','million','N/A','24','N/A',0); +INSERT INTO cost_element VALUES(297,'251_mat',242037.0,'25_mat','sum_multi_accounts','million','c_251.12_mat, c_251.111_mat, c_251.112_mat, c_251.16_mat, c_251.17_mat','251','1',0); +INSERT INTO cost_element VALUES(298,'252_mat',12609700.0,'25_mat','esc_1987','million','escalate_1987, ref_252_mat','252','12',0); +INSERT INTO cost_element VALUES(299,'253_mat',1690000.0,'25_mat','esc_1987','million','escalate_1987, ref_253_mat','253','12',0); +INSERT INTO cost_element VALUES(300,'254_mat',182008.0,'25_mat','NO_ALG','million','N/A','254','N/A',0); +INSERT INTO cost_element VALUES(301,'255_mat',536936.0,'25_mat','NO_ALG','million','N/A','255','N/A',0); +INSERT INTO cost_element VALUES(302,'25_mat',15260700.0,'2_mat','NO_ALG','million','N/A','25','N/A',0); +INSERT INTO cost_element VALUES(303,'261_mat',4204130.0,'26_mat','NO_ALG','million','N/A','261','N/A',0); +INSERT INTO cost_element VALUES(304,'262_mat',4510480.0,'26_mat','MWth_scale','million','c_262_mat, mwth, scale_0.8','262','8',0); +INSERT INTO cost_element VALUES(305,'26_mat',8714610.0,'2_mat','NO_ALG','million','N/A','26','N/A',0); +INSERT INTO cost_element VALUES(306,'2_mat',312642000.0,'','NO_ALG','million','N/A','2','N/A',0); +CREATE TABLE `escalation` ( + `ind` INTEGER NOT NULL , + `name` TEXT NOT NULL, + `description` text, + `revision` text, + `value` REAL DEFAULT NULL, + `year_of_interest` datetime DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO escalation VALUES(1,'Combustion Engineering',NULL,NULL,6.719999999999999752,'2017-01-01 00:00:00'); +INSERT INTO escalation VALUES(2,'EEDB',NULL,NULL,2.849406500000000175,'2017-01-01 00:00:00'); +INSERT INTO escalation VALUES(3,'Holcomb',NULL,NULL,1.100000000000000089,'2017-01-01 00:00:00'); +INSERT INTO escalation VALUES(4,'Robertson',NULL,NULL,13.83999999999999986,'2017-01-01 00:00:00'); +CREATE TABLE `facility` ( + `ind` INTEGER NOT NULL , + `name` TEXT NOT NULL, + `description` text, + `account` TEXT DEFAULT NULL, + `references` text, + `reference_year` datetime DEFAULT NULL, + `year_of_interest` datetime DEFAULT NULL, + `escalation_name` TEXT DEFAULT NULL, + `escalation_factorsValue` REAL DEFAULT NULL, + PRIMARY KEY (`ind`,`name`) +); +INSERT INTO facility VALUES(1,'Electrical Equipment','Including switchgear, station service equipment, switchboards, protective equipment, electrical raceways, conduit, and wiring.','24','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.849406500000000175); +INSERT INTO facility VALUES(2,'Heat Rejection Equipment','Including heat rejection equipment.','25','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.849406500000000175); +INSERT INTO facility VALUES(3,'Miscellaneous Equipment','Including air, water, and steam service systems. Other accounts cover lift equipment, communications equipment, fixtures and furnishings, and wastewater processing','26','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.849406500000000175); +INSERT INTO facility VALUES(4,'Reactor Plant Equipment','Reactor plant equipment, including the reactor equipment itself, main heat transfer systems, reactor safety (safeguards) equipment, radioactive waste processing systems, fuel handling and storage systems, reactor instrumentation and control hardware, and other reactor plant equipment.','22','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.849406500000000175); +INSERT INTO facility VALUES(5,'Structures and Improvements','Site preparation and yardwork, and construction of the various buildings and structures on the site. Building estimates generally cover excavation, subsurface concrete, and superstructures. Also cover standard building services but not process-related piping, ventilation, and equipment.','21','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.849406500000000175); +INSERT INTO facility VALUES(6,'Turbine-Generator Equipment','Turbine generator equipment, beginning with supercritical fluid or steam from steam generators (PWR) or salt-to-water heat transfer equipment (AHTR) and ending with electricity at the generator outputs.','23','PWR-12-BE','1978-01-01 00:00:00','2017-01-01 00:00:00','EEDB',2.849406500000000175); +CREATE TABLE `fusion_acco` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account_description` text, + `total_cost` REAL DEFAULT NULL, + `level` INTEGER DEFAULT NULL, + `supaccount` text, + `review_status` text, + `prn` REAL DEFAULT NULL, + `alg_name` text, + `fun_unit` text, + `variables` text, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO fusion_acco VALUES(1,'2','Plant direct cost',5523932823.0,0,'','Unchanged',1.0,'acc2','million',''); +INSERT INTO fusion_acco VALUES(2,'21','Total account 21 cost',778648283.5,1,'2','Unchanged',0.140959043000000006,'acc21','million',''); +INSERT INTO fusion_acco VALUES(3,'211','Site improvements, facilities, land',35200000.0,2,'21','Unchanged',0.006372272000000000005,'acc211','million','csi, lsa, cland'); +INSERT INTO fusion_acco VALUES(4,'212','Reactor building cost',452161853.1000000238,2,'21','Unchanged',0.08185505999999999338,'acc212','million','ucrb, rbvol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(5,'213','Turbine building cost',38000000.0,2,'21','Unchanged',0.006879157000000000327,'acc213','million','ireactor, cturbb, lsa'); +INSERT INTO fusion_acco VALUES(6,'214','Reactor maintenance and warm shop buildings cost',160708943.6999999881,2,'21','Unchanged',0.02909321100000000076,'acc214','million',''); +INSERT INTO fusion_acco VALUES(7,'2141','Reactor maintenance building cost',103067666.7999999971,3,'214','Unchanged',0.01865838499999999956,'acc2141','million','ucmb, rmbvol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(8,'2142','Warm shop cost',57641276.92000000178,3,'214','Unchanged',0.01043482599999999948,'acc2142','million','ucws, wsvol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(9,'215','Tritium building cost',14800000.0,2,'21','Unchanged',0.002679251000000000115,'acc215','million','uctr, triv, exprb, lsa'); +INSERT INTO fusion_acco VALUES(10,'216','Electrical equipment building cost',19706763.55999999865,2,'21','Unchanged',0.003567523999999999869,'acc216','million','ucel, elevol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(11,'217','Other buildings cost',58070723.20000000298,2,'21','Unchanged',0.01051256899999999939,'acc217','million',''); +INSERT INTO fusion_acco VALUES(12,'2171','Additional buildings cost',18000000.0,3,'217','Unchanged',0.003258548,'acc2171','million','ucad, admvol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(13,'2172','Control room buildings cost',21000000.0,3,'217','Unchanged',0.003801638999999999887,'acc2172','million','ucco, convol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(14,'2173','Shop and warehouses cost',11500000.0,3,'217','Unchanged',0.002081850000000000106,'acc2173','million','ucsh, shovol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(15,'2174','Cryogenic building cost',7570723.200000000186,3,'217','Unchanged',0.00137053099999999992,'acc2174','million','uccr, cryvol, exprb, lsa'); +INSERT INTO fusion_acco VALUES(16,'22','Total account 22 cost',4450975680.0,1,'2','Unchanged',0.8057620939999999843,'acc22','million',''); +INSERT INTO fusion_acco VALUES(17,'221','Total account 221 cost',1413062555.0,2,'22','Unchanged',0.2558073390000000224,'acc221','million',''); +INSERT INTO fusion_acco VALUES(18,'2211','First wall cost',191300792.0999999941,3,'221','Unchanged',0.0346312670000000003,'acc2211','million','ife, ucfwa, ucfws, fwarea, ucfwps, ucblss, fwmatm, uccarb, ucblli2o, ucconc, ifueltyp, fwallcst, lsa'); +INSERT INTO fusion_acco VALUES(19,'2212','Blanket total cost',981664978.600000023,3,'221','Unchanged',0.17771124499999999,'acc2212','million',''); +INSERT INTO fusion_acco VALUES(20,'22121','Blanket beryllium cost',261092739.8000000119,4,'2212','Unchanged',0.04726573399999999676,'acc22121','million','ife, wtbllipb, ucbllipb, whtblbe, ucblbe, iblanket, lsa'); +INSERT INTO fusion_acco VALUES(21,'22122','Blanket breeder material cost',639846060.7000000477,4,'2212','Unchanged',0.1158316149999999989,'acc22122','million','whtblli, ucblli, whtblbreed, ucblbreed, wtblli2o, ucblli2o, iblanket, lsa, ife'); +INSERT INTO fusion_acco VALUES(22,'22123','Blanket stainless steel cost',80726178.23999999463,4,'2212','Unchanged',0.01461389599999999949,'acc22123','million','whtblss, ucblss, lsa'); +INSERT INTO fusion_acco VALUES(23,'22124','Blanket vanadium cost',0.0,4,'2212','Unchanged',0.0,'acc22124','million','whtblvd, ucblvd, ife, lsa'); +INSERT INTO fusion_acco VALUES(24,'2213','Total shield cost',156788405.4000000059,3,'221','Unchanged',0.02838347399999999882,'acc2213','million',''); +INSERT INTO fusion_acco VALUES(25,'22131','Bulk shield cost',78394202.68000000716,4,'2213','Unchanged',0.01419173699999999941,'acc22131','million','ife, whtshld, ucshld, lsa, shmatm, uccarb, ucblli2o, ucconc'); +INSERT INTO fusion_acco VALUES(26,'22132','Penetration shielding cost',78394202.68000000716,4,'2213','Unchanged',0.01419173699999999941,'acc22132','million','ife, wpenshld, ucpens, lsa'); +INSERT INTO fusion_acco VALUES(27,'2214','Total support structure cost',41648347.21999999881,3,'221','Unchanged',0.007539619000000000008,'acc2214','million','gsmass, ucgss, lsa'); +INSERT INTO fusion_acco VALUES(28,'2215','Divertor cost',41660031.85999999941,3,'221','Unchanged',0.007541733999999999591,'acc2215','million','ife, divsur, ucdiv, ifueltyp, divcst'); +INSERT INTO fusion_acco VALUES(29,'222','Total account 222 cost',1755392733.0,2,'22','Unchanged',0.317779521999999981,'acc222','million',''); +INSERT INTO fusion_acco VALUES(30,'2221','TF magnet assemblies cost',820550431.8999999761,3,'222','Unchanged',0.1485446069999999952,'acc2221','million',''); +INSERT INTO fusion_acco VALUES(31,'22211','TF coil conductor cost',130258092.5,4,'2221','Unchanged',0.0235806799999999997,'acc22211','million','whtcp, uccpcl1, itart, ifueltyp, cpstcst, whtconsc,tfleng, n_tf_turn, uccu, whtconcu, cconshtf, cconfix, n_tf, lsa, i_tf_sup, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, fkind, i_tf_sc_mat'); +INSERT INTO fusion_acco VALUES(32,'22212','TF coil winding cost',55700223.22999999672,4,'2221','Unchanged',0.01008343599999999945,'acc22212','million','whttflgs, uccpclb, lsa, ucwindtf, n_tf, tfleng, n_tf_turn, i_tf_sup'); +INSERT INTO fusion_acco VALUES(33,'22213','TF coil case cost',439106666.3000000119,4,'2221','Unchanged',0.07949167399999999828,'acc22213','million','whtcas, uccase, n_tf, lsa, i_tf_sup'); +INSERT INTO fusion_acco VALUES(34,'22214','TF intercoil structure cost',150045051.5999999941,4,'2221','Unchanged',0.02716272200000000025,'acc22214','million','aintmass, ucint, lsa, i_tf_sup'); +INSERT INTO fusion_acco VALUES(35,'22215','TF coil gravity support structure',45440398.22999999672,4,'2221','Unchanged',0.008226094999999999241,'acc22215','million','clgsmass, ucgss, lsa, i_tf_sup'); +INSERT INTO fusion_acco VALUES(36,'2222','PF magnet assemblies cost',680800177.0,3,'222','Unchanged',0.1232455570000000055,'acc2222','million',''); +INSERT INTO fusion_acco VALUES(37,'22221','PF coil conductor cost',466068431.1999999881,4,'2222','Unchanged',0.08437257400000000574,'acc22221','million','ipfres, cconshpf, iohcl, nohc, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, isumatpf, fcupfsu, vf, ric_0, ric_1, ric_2, ric_3, ric_4, ric_5, ric_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, rjconpf_0, rjconpf_1, rjconpf_2, rjconpf_3, rjconpf_4, rjconpf_5, rjconpf_6, rjconpf_7, dcond_0, dcond_1, dcond_2, dcond_3, dcond_4, dcond_5, dcond_6, dcond_7, dcond_8, uccu, dcopper, cconfix, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, lsa, isumatoh, awpoh, vfohc, fcuohsu'); +INSERT INTO fusion_acco VALUES(38,'22222','PF coil winding cost',77130237.29000000655,4,'2222','Unchanged',0.01396292099999999967,'acc22222','million','ucwindpf, lsa, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, nohc'); +INSERT INTO fusion_acco VALUES(39,'22223','PF coil case cost',129551313.7999999971,4,'2222','Unchanged',0.02345273200000000043,'acc22223','million','uccase, whtpfs, lsa'); +INSERT INTO fusion_acco VALUES(40,'22224','PF coil support structure cost',8050194.629999999889,4,'2222','Unchanged',0.001457329999999999954,'acc22224','million','ucfnc, fncmass, lsa'); +INSERT INTO fusion_acco VALUES(41,'2223','Vacuum vessel assembly cost',254042123.8000000119,3,'222','Unchanged',0.04598935800000000101,'acc2223','million','vvmass, uccryo, lsa'); +INSERT INTO fusion_acco VALUES(42,'223','Total account 223 cost',241046837.6999999881,2,'22','Unchanged',0.04363681600000000188,'acc223','million',''); +INSERT INTO fusion_acco VALUES(43,'2231','ECH system cost',241046837.6999999881,3,'223','Unchanged',0.04363681600000000188,'acc2231','million','ucech, echpwr, exprf, ifedrv, dcdrv1, dcdrv2, cdriv1, mcdriv, edrive, etadrv, dcdrv0, cdriv0 ,cdriv3, fcdfuel, ife, cdriv2, ifueltyp'); +INSERT INTO fusion_acco VALUES(44,'2232','Lower hybrid system cost',0.0,3,'223','Unchanged',0.0,'acc2232','million','iefrf, uclh, plhybd, exprf, ucich, fcdfuel, ifueltyp, ife'); +INSERT INTO fusion_acco VALUES(45,'2233','Neutral beam system cost',0.0,3,'223','Unchanged',0.0,'acc2233','million','ucnbi, exprf, fcdfuel, ifueltyp, pnbitot, ife, ifedrv'); +INSERT INTO fusion_acco VALUES(46,'224','Total account 224 cost',26934799.03999999911,2,'22','Unchanged',0.004876018999999999667,'acc224','million',''); +INSERT INTO fusion_acco VALUES(47,'2241','High vacuum pumps cost',12480000.0,3,'224','Unchanged',0.002259259999999999915,'acc2241','million','vpumpn, uccpmp, uctpmp, ntype'); +INSERT INTO fusion_acco VALUES(48,'2242','Backing pumps cost',4680000.0,3,'224','Unchanged',0.0008472220000000000141,'acc2242','million','nvduct, ucbpmp'); +INSERT INTO fusion_acco VALUES(49,'2243','Vacuum duct cost',2590254.5,3,'224','Unchanged',0.0004689149999999999786,'acc2243','million','nvduct, dlscal, ucduct'); +INSERT INTO fusion_acco VALUES(50,'2244','Valves cost',5884544.540000000037,3,'224','Unchanged',0.001065282000000000078,'acc2244','million','nvduct, vcdimax, ucvalv'); +INSERT INTO fusion_acco VALUES(51,'2245','Duct shielding cost',0.0,3,'224','Unchanged',0.0,'acc2245','million','nvduct, vacdshm, ucvdsh'); +INSERT INTO fusion_acco VALUES(52,'2246','Instrumentation cost',1300000.0,3,'224','Unchanged',0.0002353400000000000066,'acc2246','million','ucviac'); +INSERT INTO fusion_acco VALUES(53,'225','Total account 225 cost',154876266.0,2,'22','Unchanged',0.02803731900000000151,'acc225','million',''); +INSERT INTO fusion_acco VALUES(54,'2251','Total, TF coil power costs',98208291.4500000029,3,'225','Unchanged',0.01777868999999999978,'acc2251','million',''); +INSERT INTO fusion_acco VALUES(55,'22511','TF coil power supplies cost',3967323.069999999833,4,'2251','Unchanged',0.0007182059999999999877,'acc22511','million','uctfps, tfckw, tfcmw, expel'); +INSERT INTO fusion_acco VALUES(56,'22512','TF coil breakers cost',34112697.54999999701,4,'2251','Unchanged',0.006175436999999999767,'acc22512','million','uctfbr, n_tf, cpttf, vtfskv, expel, uctfsw, i_tf_sup'); +INSERT INTO fusion_acco VALUES(57,'22513','TF coil dump resistors cost',21125590.33999999986,4,'2251','Unchanged',0.003824375000000000083,'acc22513','million','uctfdr, estotftgj, uctfgr, n_tf'); +INSERT INTO fusion_acco VALUES(58,'22514','TF coil instrumentation and control',4800000.0,4,'2251','Unchanged',0.000868945999999999998,'acc22514','million','uctfic, n_tf'); +INSERT INTO fusion_acco VALUES(59,'22515','TF coil bussing cost',34202680.49000000208,4,'2251','Unchanged',0.006191725999999999828,'acc22515','million','uctfbus, tfbusmas, ucbus, cpttf, tfbusl, i_tf_sup'); +INSERT INTO fusion_acco VALUES(60,'2252','Total, PF coil power costs',39768511.03999999911,3,'225','Unchanged',0.007199310999999999905,'acc2252','million',''); +INSERT INTO fusion_acco VALUES(61,'22521','PF coil power supplies cost',2932371.330000000074,4,'2252','Unchanged',0.000530847999999999997,'acc22521','million','ucpfps, peakmva'); +INSERT INTO fusion_acco VALUES(62,'22522','PF coil instrumentation and control',3600000.0,4,'2252','Unchanged',0.0006517100000000000063,'acc22522','million','ucpfic, pfckts'); +INSERT INTO fusion_acco VALUES(63,'22523','PF coil bussing cost',11995200.0,4,'2252','Unchanged',0.00217149600000000019,'acc22523','million','ucpfb, spfbusl, acptmax'); +INSERT INTO fusion_acco VALUES(64,'22524','PF coil burn power supplies cost',1267929.139999999898,4,'2252','Unchanged',0.0002295339999999999881,'acc22524','million','ucpfbs, pfckts, srcktpm'); +INSERT INTO fusion_acco VALUES(65,'22525','PF coil breakers cost',14709370.27999999933,4,'2252','Unchanged',0.002662844000000000148,'acc22525','million','ucpfbk, pfckts, acptmax, vpfskv'); +INSERT INTO fusion_acco VALUES(66,'22526','PF coil dump resistors cost',4363640.290000000037,4,'2252','Unchanged',0.0007899520000000000152,'acc22526','million','ucpfdr1, ensxpfm'); +INSERT INTO fusion_acco VALUES(67,'22527','PF coil ac breakers cost',900000.0,4,'2252','Unchanged',0.0001629269999999999938,'acc22527','million','ucpfcb, pfckts'); +INSERT INTO fusion_acco VALUES(68,'2253','Total, energy storage cost',16899463.51000000164,3,'225','Unchanged',0.003059317000000000199,'acc2253','million','lpulse, istore, ucblss, pthermmw, tdown, dtstor, pnetelmw'); +INSERT INTO fusion_acco VALUES(69,'226','Total account 226 cost',332122997.5,2,'22','Unchanged',0.06012437300000000178,'acc226','million',''); +INSERT INTO fusion_acco VALUES(70,'2261','Total, reactor cooling system cost',109472365.5999999941,3,'226','Unchanged',0.01981783100000000102,'acc2261','million',''); +INSERT INTO fusion_acco VALUES(71,'22611','Pumps and piping system cost',37134735.97999999672,4,'2261','Unchanged',0.006722518000000000243,'acc22611','million','uchts_0, uchts_1, coolwh, pfwdiv, exphts, pnucblkt, pnucshld, lsa'); +INSERT INTO fusion_acco VALUES(72,'22612','Primary heat exchanger cost',72337629.59999999403,4,'2261','Unchanged',0.01309531300000000078,'acc22612','million','ucphx, nphx, pthermmw, exphts, lsa'); +INSERT INTO fusion_acco VALUES(73,'2262','Pumps, piping cost',29300032.53000000119,3,'226','Unchanged',0.005304198000000000419,'acc2262','million','ucahts, pinjht, exphts, crypmw, vachtmw, trithtmw, fachtmw, ife, tdspmw, tfacmw, lsa'); +INSERT INTO fusion_acco VALUES(74,'2263','Total, cryogenic system cost',193350599.4000000059,3,'226','Unchanged',0.03500234399999999774,'acc2263','million','uccry, tmpcry, helpow, lsa, expcry'); +INSERT INTO fusion_acco VALUES(75,'227','Total account 227 cost',252539491.5999999941,2,'22','Unchanged',0.0457173359999999973,'acc227','million',''); +INSERT INTO fusion_acco VALUES(76,'2271','Fuelling system cost',22300000.0,3,'227','Unchanged',0.004036978999999999567,'acc2271','million','ucf1'); +INSERT INTO fusion_acco VALUES(77,'2272','Fuel processing and purification cost',103001575.2999999971,3,'227','Unchanged',0.01864642099999999983,'acc2272','million','ife, rndfuel, afuel, umass, gain, edrive, fburn, reprat, ucfpr'); +INSERT INTO fusion_acco VALUES(78,'2273','Atmospheric recovery systems cost',58061674.54999999701,3,'227','Unchanged',0.0105109309999999994,'acc2273','million','ftrit, ucdtc, volrci, wsvol'); +INSERT INTO fusion_acco VALUES(79,'2274','Nuclear building ventilation cost',69176241.76999999582,3,'227','Unchanged',0.01252300599999999973,'acc2274','million','ucnbv, volrci, wsvol'); +INSERT INTO fusion_acco VALUES(80,'228','Instrumentation and control cost',150000000.0,2,'22','Unchanged',0.0271545660000000015,'acc228','million','uciac'); +INSERT INTO fusion_acco VALUES(81,'229','Maintenance equipment cost',125000000.0,2,'22','Unchanged',0.02262880499999999836,'acc229','million','ucme'); +INSERT INTO fusion_acco VALUES(82,'23','Turbine plant equipment cost',178012556.3000000119,1,'2','Unchanged',0.03222569200000000022,'acc23','million','ireactor, ucturb_0, ucturb_1, coolwh, pgrossmw, exptpe'); +INSERT INTO fusion_acco VALUES(83,'24','Total account 24 cost',40776153.70000000299,1,'2','Unchanged',0.007381724999999999572,'acc24','million',''); +INSERT INTO fusion_acco VALUES(84,'241','Switchyard equipment cost',18400000.0,2,'24','Unchanged',0.003330959999999999998,'acc241','million','ucswyd, lsa'); +INSERT INTO fusion_acco VALUES(85,'242','Transformers cost',7502814.230000000447,2,'24','Unchanged',0.001358237999999999894,'acc242','million','ucpp, pacpmw, expepe, ucap, fcsht, lsa'); +INSERT INTO fusion_acco VALUES(86,'243','Low voltage equipment cost',6573339.46999999974,2,'24','Unchanged',0.001189975000000000017,'acc243','million','uclv, tlvpmw, lsa'); +INSERT INTO fusion_acco VALUES(87,'244','Diesel backup equipment cost',6800000.0,2,'24','Unchanged',0.001231007000000000108,'acc244','million','ucdgen, lsa'); +INSERT INTO fusion_acco VALUES(88,'245','Auxiliary facilities cost',1500000.0,2,'24','Unchanged',0.0002715460000000000052,'acc245','million','ucaf, lsa'); +INSERT INTO fusion_acco VALUES(89,'25','Miscellaneous plant equipment cost',25000000.0,1,'2','Unchanged',0.004525760999999999673,'acc25','million','ucmisc, lsa'); +INSERT INTO fusion_acco VALUES(90,'26','Heat rejection system cost',50520149.78000000119,1,'2','Unchanged',0.00914568500000000062,'acc26','million','ireactor, powfmw, pinjwp, tfcmw, pthermmw, pgrossmw, uchrs, lsa'); +CREATE TABLE `fusion_alg` ( + `ind` INTEGER DEFAULT NULL, + `alg_name` TEXT NOT NULL, + `alg_for` text, + `alg_description` text, + `alg_python` text, + `alg_formulation` text, + `alg_units` text, + PRIMARY KEY (`alg_name`) +); +INSERT INTO fusion_alg VALUES(1,'acc211','c','Site_improvements,_facilities,_land_(M$)','FusionFunc','acc211= csi*cmlsa[lsa-1] + cland','million'); +INSERT INTO fusion_alg VALUES(2,'acc212','c','Reactor_building_cost_(M$)','FusionFunc','acc212= (1.0e-6*ucrb*rbvol)**exprb* cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(3,'acc213','c','Turbine_building_cost_(M$)','FusionFunc',' if ireactor == 1:\n acc213 = cturbb * cmlsa[lsa - 1]\n else: acc213 = 0.0e0','million'); +INSERT INTO fusion_alg VALUES(4,'acc2141','c','Reactor_maintenance_building_cost_(M$)','FusionFunc','acc2142 = 1.0e-6*ucmb*rmbvol**exprb*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(5,'acc2142','c','Warm_shop_cost_(M$)','FusionFunc','acc2142 = (1.0e-6*ucws*wsvol)**exprb*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(6,'acc215','c','Tritium_building_cost_(M$)','FusionFunc','acc215 = ((1.0e-6*uctr*triv)*exprb)*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(7,'acc216','c','Electrical_equipment_building_cost_(M$)','FusionFunc','acc216 = 1.0e-6*ucel*elevol**exprb*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(8,'acc2171','c','Additional_buildings_cost_(M$)','FusionFunc','acc2171 = 1.0e-6*ucad*admvol**exprb* cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(9,'acc2172','c','Control_room_buildings_cost_(M$)','FusionFunc','acc2172 = 1.0e-6*ucconc*convol**exprb* cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(10,'acc2173','c','Shop_and_warehouses_cost_(M$)','FusionFunc','acc2173 = 1.0e-6*ucsh*shovol**exprb*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(11,'acc2174','c','Cryogenic_building_cost_(M$)','FusionFunc','acc2174 = 1.0e-6*uccr*cryvol**exprb*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(12,'acc2211','c','First_wall_cost_(M$)','FusionFunc','if ife == 1:\n acc2211 = (1.0e-6*cmlsa[lsa - 1]\n * (ucblss*(fwmatm(1, 1)+ fwmatm(2, 1)+ fwmatm(3, 1))\n + uccarb*(fwmatm(1, 2)+ fwmatm(2, 2)+ fwmatm(3, 2))\n + ucblli2o*(fwmatm(1, 4) + fwmatm(2, 4)+ fwmatm(3, 4))\n + ucconc*(fwmatm(1, 5)+ fwmatm(2, 5)+ fwmatm(3, 5))))\n else:\n acc2211 = (1.0e-6* cmlsa[lsa - 1]*((ucfwa + ucfws)* fwarea+ ucfwps)) \n acc2211 = fkind * acc2211\n if ifueltyp == 1:\n acc2211 = 0\n acc2211 = fwallcst\n elif ifueltyp == 2:\n fwallcst = acc2211\n else:\n fwallcst = 0.0e0','million'); +INSERT INTO fusion_alg VALUES(13,'acc22121','c','Blanket_beryllium_cost_(M$)','FusionFunc','if ife == 1:\n acc22121 = 0\n else:\n if iblanket == 4:\n acc22121 = 1.0e-6*wtbllipb*ucbllipb\n else:\n acc22121 = 1.0e-6*whtblbe*ucblbe\n acc22121 = fkind*acc22121*cmlsa[lsa-1]','million'); +INSERT INTO fusion_alg VALUES(14,'acc22122','c','Blanket_breeder_material_cost_(M$)','FusionFunc','if ife == 1:\n if iblanket == 4:\n acc22122 = 1.0e-6*whtblli*ucblli\n else:\n if iblanket == 2:\n acc22122 = 1.0e-6*whtblbreed*ucblbreed\n else:\n acc22122 = 1.0e-6*wtblli2o*ucblli2o\n else:\n acc22122 = 1.0e-6*wtblli2o*ucblli2o\n acc22122 =fkind*acc22122*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(15,'acc22123','c','Blanket_stainless_steel_cost_(M$)','FusionFunc','acc22123 = acc22123 = 1.0e-6*whtblss*ucblss\n acc22123 = fkind*acc22123*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(16,'acc22124','c','Blanket_vanadium_cost_(M$)','FusionFunc','if ife == 1:\n acc22124 = 1.0e-6*whtblvd*ucblvd\n else:\n acc22124 = 0\n acc22124 = fkind*acc22124*cmlsa[lsa-1]\n return acc22124','million'); +INSERT INTO fusion_alg VALUES(17,'acc22131','c','Bulk_shield_cost_(M$)','FusionFunc','if ife == 1:\n acc22131 = 1.0e-6*cmlsa[lsa - 1]*ucshld*(shmatm[1, 0] + shmatm[2, 0]+shmatm[3, 0])\n + uccarb*(shmatm[1, 1]+ shmatm[2, 1]+ shmatm[3, 1])\n + ucblli2o*(shmatm[1, 1]+ shmatm[2, 1]+ shmatm[3, 1])\n + ucconc* (shmatm[1, 1] + shmatm[2, 1]+ shmatm[3, 1]) \n else:\n acc22131 = 1.0e-6*whtshld*ucshld*cmlsa[lsa - 1] \n acc22131 = fkind*acc22131','million'); +INSERT INTO fusion_alg VALUES(18,'acc22132','c','Penetration_shielding_cost_(M$)','FusionFunc','if ife == 1:\n acc22132 = 1.0e-6*wpenshld*ucpens* cmlsa[lsa - 1]\n else:\n acc22132 = 1.0e-6*wpenshld*ucpens* cmlsa[lsa - 1]\n acc22132 = fkind*acc22132','million'); +INSERT INTO fusion_alg VALUES(19,'acc2214','c','Total_support_structure_cost_(M$)','FusionFunc','acc2214 = 1.0e-6*gsmass*ucgss*cmlsa[lsa - 1]\n acc2214 = fkind*acc2214','million'); +INSERT INTO fusion_alg VALUES(20,'acc2215','c','Divertor_cost_(M$)','FusionFunc','if ife == 1:\n acc2215 = 0\n divcst = 0\n else:\n acc2215 = 1.0e-6 * divsur * ucdiv\n acc2215 = fkind * acc2215\n if ifueltyp == 1:\n acc2215 = 0\n acc2215 = divcst \n elif ifueltyp == 2:\n divcst = acc2215\n else:\n divcst = 0.0e0 ','million'); +INSERT INTO fusion_alg VALUES(21,'acc22211','c','TF_coil_conductor_cost_(M$)','FusionFunc','if i_tf_sup == 1: \n costtfsc = ucsc[i_tf_sc_mat - 1]*whtconsc/(tfleng*n_tf_turn)\n costtfcu = uccu*whtconcu/(tfleng*n_tf_turn)\n costwire = costtfsc+costtfcu\n ctfconpm = costwire+cconshtf+cconfix\n acc22211 = 1.0e-6*ctfconpm*n_tf*tfleng*n_tf_turn\n acc22211 = fkind*acc22211*cmlsa[lsa - 1]\n else: \n acc22211 = 1.0e-6*whtcp*uccpcl1*cmlsa[lsa - 1]\n acc22211 = fkind*acc22211\n if (itart == 1) and (ifueltyp == 1):\n acc22211 = cpstcst\n accc22211 = 0.0e0\n elif (itart == 1) and (ifueltyp == 2):\n acc22211 = cpstcst','million'); +INSERT INTO fusion_alg VALUES(22,'acc22212','c','TF_coil_winding_cost_(M$)','FusionFunc','if i_tf_sup == 1:\n acc22212 = 1.0e-6*ucwindtf*n_tf*tfleng*n_tf_turn\n acc22212 = fkind*acc22212*cmlsa[lsa-1]\n else:\n acc22212 = 1.0e-6*whttflgs*uccpclb*cmlsa[lsa - 1]\n acc22212 = fkind*acc22212','million'); +INSERT INTO fusion_alg VALUES(23,'acc22213','c','TF_coil_case_cost_(M$)','FusionFunc',' if i_tf_sup == 1:\n acc22213 = 1.0e-6*(whtcas*uccase)*n_tf\n acc22213 = fkind*acc22213*cmlsa[lsa - 1]\n else:\n acc22213 = 0','million'); +INSERT INTO fusion_alg VALUES(24,'acc22214','c','TF_intercoil_structure_cost_(M$)','FusionFunc','if i_tf_sup == 1:\n acc22214 = 1.0e-6*aintmass*ucint\n acc22214 = fkind*acc22214*cmlsa[lsa - 1]\n else:\n acc22214 = 0','million'); +INSERT INTO fusion_alg VALUES(25,'acc22215','c','TF_coil_gravity_support_structure_(M$)','FusionFunc','if i_tf_sup == 1:\n acc22215 = 1.0e-6*clgsmass*ucgss\n acc22215 = fkind*acc22215*cmlsa[lsa - 1]\n else:\n acc22215 = 0','million'); +INSERT INTO fusion_alg VALUES(26,'acc22221','c','PF_coil_conductor_cost_(M$)','FusionFunc',NULL,'million'); +INSERT INTO fusion_alg VALUES(27,'acc22222','c','PF_coil_winding_cost_(M$)','FusionFunc','for i in range(0, nohc):\n pfwndl = pfwndl +(twopi*rpf[i] *turns[i])\n acc22222 = 1.0e-6*ucwindpf*pfwndl\n acc22222 = fkind*acc22222*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(28,'acc22223','c','PF_coil_case_cost_(M$)','FusionFunc','acc22223 = 1.0e-6*uccase*whtpfs\n acc22223 = fkind*acc22223*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(29,'acc22224','c','PF_coil_support_structure_cost_(M$)','FusionFunc','acc22224 = 1.0e-6*ucfnc*fncmass\n acc22224 = fkind*acc22224*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(30,'acc2223','c','Vacuum_vessel_assembly_cost_(M$)','FusionFunc','acc2223 = 1.0e-6*vvmass*uccryo\n acc2223 = fkind*acc2223*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(31,'acc2231','c','ECH_system_cost_(M$)','FusionFunc',NULL,'million'); +INSERT INTO fusion_alg VALUES(32,'acc2232','c','Lower_hybrid_system_cost_(M$)','FusionFunc','if ife == 1:\n if iefrf == 2:\n acc2232 = (1.0e-6*uclh*(1.0e6*plhybd)**exprf)\n else:\n acc2232 = (1.0e-6*ucich*(1.0e6*plhybd)**exprf)\n if ifueltyp == 1:\n acc2232 = (1.0e0-fcdfuel)*acc2232\n acc2232 = fkind * acc2232\n else:\n if ifueltyp == 1:\n acc2232 = 0.0e0','million'); +INSERT INTO fusion_alg VALUES(33,'acc2233','c','Neutral_beam_system_cost_(M$)','FusionFunc','if ife == 1:\n acc2233 = (1.0e-6*ucnbi*(1.0e6*pnbitot)**exprf)\n if ifueltyp == 1:\n acc2233 = (1.0e0-fcdfuel)*acc2233\n acc2233 = fkind*acc2233\n else:\n if ifedrv == 2:\n acc2233 = 0.0e0','million'); +INSERT INTO fusion_alg VALUES(34,'acc2241','c','High_vacuum_pumps_cost_(M$)','FusionFunc','if ntype == 1:\n acc2241 = 1.0e-6*vpumpn*uccpmp\n else:\n acc2241 = 1.0e-6*vpumpn*uctpmp\n acc2241 = fkind*acc2241','million'); +INSERT INTO fusion_alg VALUES(35,'acc2242','c','Backing_pumps_cost_(M$)','FusionFunc','acc2242 = 1.0e-6*nvduct*ucbpmp\n acc2242 = fkind*acc2242 ','million'); +INSERT INTO fusion_alg VALUES(36,'acc2243','c','Vacuum_duct_cost_(M$)','FusionFunc',NULL,'million'); +INSERT INTO fusion_alg VALUES(37,'acc2244','c','Valves_cost_(M$)','FusionFunc','acc2244 = 1.0e-6*2.0e0*nvduct*((vcdimax*1.2e0)**1.4e0)*ucvalv\n acc2244 = fkind*acc2244','million'); +INSERT INTO fusion_alg VALUES(38,'acc2245','c','Duct_shielding_cost_(M$)','FusionFunc','acc2245 = 1.0e-6*nvduct*vacdshm*ucvdsh\n acc2245 = fkind*acc2245','million'); +INSERT INTO fusion_alg VALUES(39,'acc2246','c','Instrumentation_cost_(M$)','FusionFunc','acc2246 = 1.0e-6*ucviac\n acc2246 = fkind*acc2246','million'); +INSERT INTO fusion_alg VALUES(40,'acc22511','c','TF_coil_power_supplies_cost_(M$)','FusionFunc','acc22511 = 1.0e-6*uctfps*(tfckw*1.0e3+tfcmw*1.0e6)**expel\n acc22511 = fkind*acc22511','million'); +INSERT INTO fusion_alg VALUES(41,'acc22512','c','TF_coil_breakers_cost_(M$)','FusionFunc',' if i_tf_sup == 1:\n acc22512 = 1.0e-6*(uctfbr*n_tf*(cpttf*vtfskv*1.0e3)**expel+uctfsw*cpttf)\n else:\n acc22512 = 0.0e0\n acc22512 = fkind*acc22512','million'); +INSERT INTO fusion_alg VALUES(42,'acc22513','c','TF_coil_dump_resistors_cost_(M$)','FusionFunc','acc22513 = 1.0e-6*(1.0e9*uctfdr*estotftgj+uctfgr*0.5e0*n_tf)\n acc22513 = fkind*acc22513','million'); +INSERT INTO fusion_alg VALUES(43,'acc22514','c','TF_coil_instrumentation_and_control_(M$)','FusionFunc','acc22514 = 1.0e-6*uctfic*(30.0e0*n_tf)\n acc22514 = fkind*acc22514 ','million'); +INSERT INTO fusion_alg VALUES(44,'acc22515','c','TF_coil_bussing_cost_(M$)','FusionFunc',' if i_tf_sup == 1:\n acc22515 = 1.0e-6*ucbus*cpttf*tfbusl\n else:\n acc22515 = 1.0e-6*uctfbus*tfbusmas\n acc22515 = fkind*acc22515','million'); +INSERT INTO fusion_alg VALUES(45,'acc22521','c','PF_coil_power_supplies_cost_(M$)','FusionFunc',NULL,'million'); +INSERT INTO fusion_alg VALUES(46,'acc22522','c','PF_coil_instrumentation_and_control_(M$)','FusionFunc','acc22522 = 1.0e-6*ucpfic*pfckts*30.0e0\n acc22522 = fkind*acc22522','million'); +INSERT INTO fusion_alg VALUES(47,'acc22523','c','PF_coil_bussing_cost_(M$)','FusionFunc','acc22523 = 1.0e-6*ucpfb*spfbusl*acptmax\n acc22523 = fkind*acc22523','million'); +INSERT INTO fusion_alg VALUES(48,'acc22524','c','PF_coil_burn_power_supplies_cost_(M$)','FusionFunc','if pfckts == 0:\n acc22524 = 0.0e0\n else:\n acc22524 = 1.0e-6*ucpfbs*pfckts*(srcktpm/pfckts)**0.7e0\n acc22524 = fkind*acc22524','million'); +INSERT INTO fusion_alg VALUES(49,'acc22525','c','PF_coil_breakers_cost_(M$)','FusionFunc','acc22525 = 1.0e-6*ucpfbk*pfckts*((acptmax*vpfskv)**0.7e0)\n acc22525 = fkind*acc22525','million'); +INSERT INTO fusion_alg VALUES(50,'acc22526','c','PF_coil_dump_resistors_cost_(M$)','FusionFunc','acc22526 = 1.0e-6*ucpfdr1*ensxpfm\n acc22526 = fkind*acc22526','million'); +INSERT INTO fusion_alg VALUES(51,'acc22527','c','PF_coil_ac_breakers_cost_(M$)','FusionFunc',' acc22527 = 1.0e-6*ucpfcb*pfckts\n acc22527 = fkind*acc22527','million'); +INSERT INTO fusion_alg VALUES(52,'acc2253','c','Total,_energy_storage_cost_(M$)','FusionFunc','if lpulse == 1:\n if istore == 1:\n acc2253 = 0.1e0\n acc2253 = acc2253 + 0.8e0\n acc2253 = acc2253 + 4.0e0\n acc2253 = acc2253 + 0.5e0\n acc2253 = acc2253 + 2.8e0\n acc2253 = acc2253 + 29.0e0\n elif istore == 2:\n acc2253 = 0.1e0\n acc2253 = acc2253 + 0.8e0\n acc2253 = acc2253 + 2.8e0\n acc2253 = acc2253 + 4.0e0\n acc2253 = acc2253 + 330.0e0\n acc2253 = acc2253 + 1.0e0\n acc2253 = acc2253 + 2.0e0\n acc2253 = acc2253 + 18.0e0\n elif istore == 3:\n shcss = 520.0e0\n acc2253 = ucblss*(pthermmw * 1.0e6)*tdown/(shcss*dtstor)\n if istore < 3:\n acc2253 = acc2253*pnetelmw / 1200.0e0\n acc2253 = acc2253*1.36e0','million'); +INSERT INTO fusion_alg VALUES(56,'acc2262','c','Total,_auxiliary_cooling_system_cost_(M$)','FusionFunc','cal_acc2262 = cal_accppa','million'); +INSERT INTO fusion_alg VALUES(57,'acc2263','c','Total,_cryogenic_system_cost_(M$)','FusionFunc',NULL,'million'); +INSERT INTO fusion_alg VALUES(58,'acc2271','c','Fuelling_system_cost_(M$)','FusionFunc','acc2271 = 1.0e-6*ucf1\n acc2271 = fkind*acc2271','million'); +INSERT INTO fusion_alg VALUES(59,'acc2272','c','Fuel_processing_and_purification_cost_(M$)','FusionFunc','if ife == 1:\n targtm = (gain*edrive*3.0e0*1.67e-27*1.0e3)/(1.602e-19 * 17.6e6 * fburn)\n wtgpd = targtm*reprat*86400.0e0\n else:\n wtgpd = 2.0e0*rndfuel*afuel*umass*1000.0e0*86400.0e0\n acc2272 = 1.0e-6*ucfpr*(0.5e0+0.5e0*(wtgpd/60.0e0)**0.67e0)\n acc2272 = fkind*acc2272','million'); +INSERT INTO fusion_alg VALUES(60,'acc2273','c','Atmospheric_recovery_systems_cost_(M$)','FusionFunc','if ftrit > 1.0e-3:\n acc2273 = (1.0e-6*ucdtc*((cfrht / 1.0e4) ** 0.6e0*(volrci+wsvol)))\n else:\n acc2273 = 0.0e0\n acc2273 = fkind*acc2273','million'); +INSERT INTO fusion_alg VALUES(61,'acc2274','c','Nuclear_building_ventilation_cost_(M$)','FusionFunc','acc2274 = 1.0e-6*ucnbv*(volrci+wsvol)**0.8e0\n acc2274 =fkind*acc2274','million'); +INSERT INTO fusion_alg VALUES(62,'acc228','c','Instrumentation_and_control_cost_(M$)','FusionFunc','acc228 = 1.0e-6*uciac\n acc228 = fkind*acc228','million'); +INSERT INTO fusion_alg VALUES(63,'acc229','c','Maintenance_equipment_cost_(M$)','FusionFunc','acc229 = 1.0e-6*ucme\n acc229 = fkind*acc229','million'); +INSERT INTO fusion_alg VALUES(64,'acc23','c','Turbine_plant_equipment_cost_(M$)','FusionFunc','if ireactor == 1:\n acc23 = (1.0e-6*ucturb[coolwh - 1]*(pgrossmw / 1200.0e0)**exptpe)','million'); +INSERT INTO fusion_alg VALUES(65,'acc241','c','Switchyard_equipment_cost_(M$)','FusionFunc','acc241 = 1.0e-6*ucswyd*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(66,'acc242','c','Transformers_cost_(M$)','FusionFunc','acc242 = 1.0e-6*((ucpp*(pacpmw* 1.0e3)**expepe)+ucap*(fcsht * 1.0e3))\n acc242 = acc242 * cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(67,'acc243','c','Low_voltage_equipment_cost_(M$)','FusionFunc',NULL,'million'); +INSERT INTO fusion_alg VALUES(68,'acc244','c','Diesel_backup_equipment_cost_(M$)','FusionFunc','acc244 = 1.0e-6*ucdgen*4.0e0*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(69,'acc245','c','Auxiliary_facilities_cost_(M$)','FusionFunc','acc245 = 1.0e-6*ucaf*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(70,'acc25','c','Miscellaneous_plant_equipment_cost_(M$)','FusionFunc','acc25 = 1.0e-6*ucmisc*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(71,'acc26','c','Heat_rejection_system_cost_(M$)','FusionFunc','if ireactor == 0:\n pwrrej = powfmw+pinjwp+tfcmw\n else:\n pwrrej = pthermmw - pgrossmw\n acc26 = (1.0e-6*uchrs*pwrrej)/ 2300.0e0*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(54,'acchx','c','Primary_heat_exchanger_cost_(M$)','FusionFunc','acchx = 1.0e-6*ucphx*nphx*(1.0e6*pthermmw/nphx)**exphts\n acchx =fkind*acchx*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(53,'accpp','c','Pumps_and_piping_system_cost_(M$)','FusionFunc','accpp = 1.0e-6*uchts[coolwh-1]*((1.0e6*pfwdiv)**exphts+\n (1.0e6*pnucblkt)**exphts+(1.0e6*pnucshld)**exphts)\n accpp =fkind*accpp*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(55,'accppa','c','Pumps,_piping_cost_(M$)','FusionFunc','acccppa = (1.0e-6*ucahts*((1.0e6*pinjht)**exphts+(1.0e6*crypmw)**exphts+\n (1.0e6*vachtmw)**exphts+(1.0e6*trithtmw)**exphts+(1.0e6*fachtmw)**exphts))\n if ife == 1:\n acccppa = acccppa+1.0e-6*ucahts*((1.0e6*tdspmw)**exphts\n + (1.0e6*tfacmw)**exphts)\n acccppa =fkind*acccppa*cmlsa[lsa - 1]','million'); +INSERT INTO fusion_alg VALUES(73,'calaintmass','v','intercoil structure mass calculation','FusionFunc','calaintmass = 0.18e0 * st_f_b**2 * intercoil_surface * denstl','kg'); +INSERT INTO fusion_alg VALUES(85,'calawpoh','v','central solenoid conductor+void area with area of steel subtracted calculation ','FusionFunc','areaspf = oh_steel_frac * areaoh\n calawpoh = areaoh - areaspf','m2'); +INSERT INTO fusion_alg VALUES(74,'calclgsmass','v','gravity support structure for TF coil, PF coil and intercoil support systems calculation','FusionFunc','calclgsmass = 0.2*aintmass','kg'); +INSERT INTO fusion_alg VALUES(77,'caldlscal','v','system duct length scaling calcualtion','FusionFunc','caldlscal = l1 * d[imax] ** 1.4e0 + (ltot - l1) * (d[imax] * 1.2e0) ** 1.4e0',NULL); +INSERT INTO fusion_alg VALUES(76,'calechpwr','v','ECH power calculation','FusionFunc','calechpwr = (1.0e-6* (faccd - faccdfix)* plascur / effrfss)+ pheat','MW'); +INSERT INTO fusion_alg VALUES(72,'calelevol','v','volume of electrical equipment building cost calculation','FusionFunc','calelevol = tfcbv + pfbldgm3 + esbldgm3 + pibv','m3'); +INSERT INTO fusion_alg VALUES(75,'calfncmass','v','PF coil outer support fence mass calculation','FusionFunc','calfncmass = 2.1e-11 * ai * ai * r0 * akappa * a','kg'); +INSERT INTO fusion_alg VALUES(78,'calgsmass','v','reactor core gravity support mass calculation','FusionFunc','ws1 = coolmass + fwmass + blmass + shldmass + dvrtmass\n gsm1 = 5.0e0 * 9.807e0 * ws1 * dens / sigal\n ws2 = ws1 + tfmass + pfmass + cal_calaintmass + clgsmass\n gsm2 = 1.0e-3 * 34.77e0 * (r0 + 1.0e0) * np.sqrt(0.001e0 * ws2) * dens\n gsm3 = 1.0e-6 * 0.3e0 * (tfhmax + 2.0e0) * ws2 * dens\n calgsmass = gsm1 + gsm2 + gsm3','kg'); +INSERT INTO fusion_alg VALUES(79,'calintercoil_surface','v','intercoil surface area','FusionFunc','calaintmass = 0.18e0 * st_f_b**2 * intercoil_surface * denstl','m^2'); +INSERT INTO fusion_alg VALUES(80,'calrbvol','v','reactor building volume calculation','FusionFunc','rbw = 2.0e0 * wrbi + 2.0e0 * rbwt\n rbl = drbi + 2.0e0 * rbwt\n rbh = hrbi + rbrt + fndt\n calrbvol = rbvfac * rbw * rbl * rbh','m3'); +INSERT INTO fusion_alg VALUES(83,'calrmbvol','v','volume of maintenance and assembly building calculation ','FusionFunc',' tcw = shro - shri + 4.0e0 * trcl\n tcl = 5.0e0 * tcw + 2.0e0 * hcwt\n dcw = 2.0e0 * tcw + 1.0e0\n hcw = shro - shri + 3.0e0 * hccl + 2.0e0\n hcl = 3.0e0 * (shro - shri) + 4.0e0 * hccl + tcw\n rmbw = hcw + dcw + 3.0e0 * hcwt\n rmbl = hcl + 2.0e0 * hcwt\n if wgt2 > 1.0e0:\n wgts = wgt2\n else:\n wgts = shmf * shm / n_tf\n cran = 9.41e-6 * wgts + 5.1e0\n rmbh = (10.0e0 + shh+ trcl + cran+ stcl+ fndt)\n tch = shh + stcl + fndt\n calrmbvol = mbvfac * rmbw * rmbl * rmbh + tcw * tcl * tch','m3'); +INSERT INTO fusion_alg VALUES(81,'calrndfuel','v','fuel burnup rate calculation','FusionFunc','fusionrate = fusionrate + (1.0e6*palpnb)/ (1.0e3 * ealphadt * echarge* vol)\n fusrat= fusionrate*vol\n calrndfuel = fusrat','reactions/ second '); +INSERT INTO fusion_alg VALUES(86,'caltargtm','v','mass of fuel calculation','FusionFunc','targtm = (gain* edrive * 3.0e0 * 1.67e-27 * 1.0e3/ (1.602e-19 * 17.6e6 * fburn))',NULL); +INSERT INTO fusion_alg VALUES(82,'calvolrci','v','internal volulme of reactor building calculation ','FusionFunc','calvolrci = rbvfac * 2.0e0 * wrbi * drbi * hrbi','m3'); +INSERT INTO fusion_alg VALUES(84,'calwsvol','v','volume of warm shop building calculation ','FusionFunc','tcw = shro - shri + 4.0e0 * trcl\n hcw = shro - shri + 3.0e0 * hccl + 2.0e0\n hcl = 3.0e0 * (shro - shri) + 4.0e0 * hccl + tcw\n dcw = 2.0e0 * tcw + 1.0e0\n rmbw = hcw + dcw + 3.0e0 * hcwt\n rmbl = hcl + 2.0e0 * hcwt\n rmbw = hcw + dcw + 3.0e0 * hcwt\n wsa = (rmbw + 7e0)*20+(rmbl*7)\n if wgt2 > 1.0e0:\n wgts = wgt2\n else:\n wgts = shmf * shm / n_tf\n cran = 9.41e-6 * wgts + 5.1e0\n rmbh = (10.0e0 + shh+ trcl + cran+ stcl+ fndt)\n calwsvol = wsvfac*wsa*rmbh','m3'); +INSERT INTO fusion_alg VALUES(87,'calwtgpd','v','mass of fuel used per day calcualtion','FusionFunc','ife = INTEGER(ife)\n if ife ==1:\n wtgpd = targtm*reprat*86400\n else:\n wtgpd = 2.0e0* rndfuel* afuel * umass* 1000.0e0* 86400.0e0',NULL); +INSERT INTO fusion_alg VALUES(96,'crfcdr','v','cdr_capital_recovery_factor_(M$)','FusionFunc','crfcdr = (fefcdr * discount_rate) / (fefcdr - 1.0e0)','million'); +INSERT INTO fusion_alg VALUES(94,'crfcp','v','cp_capital_recovery_factor_(M$)','FusionFunc','itart = INTEGER(itart)\n ife = INTEGER(ife)\n if (itart == 1) and (ife != 1):\n crfcp = (fefcp * discount_rate) / (fefcp - 1.0e0)\n else: \n crfcp = 0','million'); +INSERT INTO fusion_alg VALUES(92,'crfdiv','v','div_capital_recovery_factor_(M$)','FusionFunc','ife = INTEGER(ife)\n if ife == 1:\n crfdiv = 0\n else:\n crfdiv = (fefdiv * discount_rate) / (fefdiv - 1.0e0)','million'); +INSERT INTO fusion_alg VALUES(90,'crffwbl','v','fwb_capital_recovery_factor_(M$)','FusionFunc','crffwbl = (feffwbl * discount_rate) / (feffwbl - 1.0e0)','million'); +INSERT INTO fusion_alg VALUES(95,'fefcdr','v','cdr_compound_interest_factor_(M$)','FusionFunc','fefcdr = (1.0e0 + discount_rate) ** cdrlife','N/A'); +INSERT INTO fusion_alg VALUES(93,'fefcp','v','cp_compound_interest_factor_(M$)','FusionFunc',' itart = INTEGER(itart)\n ife = INTEGER(ife)\n if (itart == 1) and (ife != 1):\n fefcp = (1.0e0 + discount_rate) ** cplife\n else:\n fefcp = 0','N/A'); +INSERT INTO fusion_alg VALUES(91,'fefdiv','v','div_compound_interest_factor_(M$)','FusionFunc','ife = INTEGER(ife)\n if ife == 1:\n fefdiv = 0\n else:\n fefdiv = (1.0e0 + discount_rate) ** divlife','N/A'); +INSERT INTO fusion_alg VALUES(89,'feffwbl','v','fwb_compound_interest_factor_(M$)','FusionFunc','feffwbl = (1+discount_rate)**fwbllife','N/A'); +INSERT INTO fusion_alg VALUES(88,'fwbllife','v','fwb_operational_life_','FusionFunc','fwbllife = bktlife','years'); +INSERT INTO fusion_alg VALUES(97,'stcalaintmass','v','stellarator intercoil structure mass calculation','Stellarator','aintmass = 0.18e0 * st_f_b**2 * intercoil_surface * denstl','kg'); +INSERT INTO fusion_alg VALUES(99,'stcalclgsmass','v','stellarator gravity support structure for TF coil, PF coil and intercoil support systems calculation','Stellarator','clgsmass = 0.2*aintmass','kg'); +INSERT INTO fusion_alg VALUES(98,'stcalintercoil_surface','v','stellarator intercoil surface area','Stellarator','intercoil_surface = (stella_config_coilsurface*st_f_r**2-tftort*stella_config_coillength * st_f_r * st_f_n)','m2'); +CREATE TABLE `fusion_lcoe` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account description` text, + `total_cost` REAL DEFAULT NULL, + `unit` text, + `alg_name` text, + `variables` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO fusion_lcoe VALUES(7,'anncap','Annual cost of plant capital cost ',990632029.200000047,'dolllar','anncap','capcost, fcr0','','',0); +INSERT INTO fusion_lcoe VALUES(8,'anncdr','cdr annual cost of replacements ',0.0,'dolllar','anncdr','cfind_0, cfind_1, cfind_2, cfind_3, ifueltyp, cdcost, fcdfuel, lsa, fcap0cp, crfcdr','','',0); +INSERT INTO fusion_lcoe VALUES(9,'anncp','cp annual cost of replacements ',0.0,'dolllar','anncp','cfind_0, cfind_1, cfind_2, cfind_3, itart, ife, cpstcst, lsa, fcap0cp, crfcp, ifueltyp, cplife, tlife','','',0); +INSERT INTO fusion_lcoe VALUES(10,'anndecom','decom annual cost ',23703519.67999999971,'dolllar','anndecom','decomf, concost, fcr0, discount_rate, dintrt, tlife, dtlife','','',0); +INSERT INTO fusion_lcoe VALUES(11,'anndiv','div annual cost of replacements ',0.0,'dolllar','anndiv','cfind_0, cfind_1, cfind_2, cfind_3, ife, divcst, fcap0cp, crfdiv,lsa, divlife, tlife','','',0); +INSERT INTO fusion_lcoe VALUES(12,'annfuel','fuel annual cost ',1152418.348999999929,'dolllar','annfuel','ucfuel, pnetelmw, fhe3, wtgpd, uche3, n_day_year, cfactr, reprat, uctarg, ife','','',0); +INSERT INTO fusion_lcoe VALUES(16,'annfuelt','fuel components annual cost ',5706719.57899999991,'dolllar','annfuelt','annfwbl, anndiv, anncdr, anncp, annfuel, annwst','','',0); +INSERT INTO fusion_lcoe VALUES(13,'annfwbl','fwb annual cost of replacements ',0.0,'dolllar','annfwbl','fcap0cp, crffwbl, tlife, ifueltyp, cfind_0, cfind_1, cfind_2, cfind_3, lsa, cal_acc2212, fwallcst, fwbllife','','',0); +INSERT INTO fusion_lcoe VALUES(14,'annoam','oam annual cost ',43000001.46000000089,'dolllar','annoam','pnetelmw, lsa, ucoam_0, ucoam_1, ucoam_2, ucoam_3','','',0); +INSERT INTO fusion_lcoe VALUES(17,'anntot','total annual costs ',1063042270.0,'dolllar','anntot','anncap, annfuelt, annoam, anndecom','','',0); +INSERT INTO fusion_lcoe VALUES(15,'annwst','waste annual cost ',4554301.230000000448,'dolllar','annwst','ucwst_0, ucwst_1, ucwst_2, ucwst_3, lsa, pnetelmw','','',0); +INSERT INTO fusion_lcoe VALUES(1,'c9','Indirect cost ',1842231596.0,'dolllar','acc9','cal_acc221, cal_acc222, cal_acc223','','',0); +INSERT INTO fusion_lcoe VALUES(6,'capcost','Total capital investment ',10254989951.0,'dolllar','acccapcost','cal_acconcost, cal_accmoneyint','','',0); +INSERT INTO fusion_lcoe VALUES(3,'ccont','Total contingency ',1436402062.0,'dolllar','acccont','fcontng, cal_acc2, cal_accindrt','','',0); +INSERT INTO fusion_lcoe VALUES(28,'coe','total cost of electricity ',516125439.1000000239,'dolllar','coe','coecap, coefuelt, coeoam, coedecom, ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anncap','','',0); +INSERT INTO fusion_lcoe VALUES(18,'coecap','Cost of electricity due to plant capital cost ',480969012.8000000119,'dolllar','coecap','n_day_year, pnetelmw, cfactr, tburn, tcycle, anncap, ife','','',0); +INSERT INTO fusion_lcoe VALUES(19,'coecdr','cdr replacement cost of electricity ',0.0,'dolllar','coecdr','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anncdr','','',0); +INSERT INTO fusion_lcoe VALUES(20,'coecp','cp replacement cost of electricity ',0.0,'dolllar','coecp','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anncp','','',0); +INSERT INTO fusion_lcoe VALUES(21,'coedecom','decom cost of electricity ',11508469.4600000009,'dolllar','coedecom','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anndecom','','',0); +INSERT INTO fusion_lcoe VALUES(22,'coediv','div replacement cost of electricity ',0.0,'dolllar','coediv','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, anndiv','','',0); +INSERT INTO fusion_lcoe VALUES(23,'coefuel','fuel cost of electricity ',559519.0740000000223,'dolllar','coefuel','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, annfuel','','',0); +INSERT INTO fusion_lcoe VALUES(27,'coefuelt','fuel components cost of electricity ',2770711.22399999993,'dolllar','coefuelt','coefwbl, coediv, coecdr, coecp, coefuel, coewst','','',0); +INSERT INTO fusion_lcoe VALUES(24,'coefwbl','fwb replacement cost of electricity ',0.0,'dolllar','coefwbl','n_day_year, pnetelmw, cfactr, tburn, tcycle, annfwbl, ife','','',0); +INSERT INTO fusion_lcoe VALUES(25,'coeoam','coam cost of electricity ',20877245.67999999971,'dolllar','coeoam','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, annoam','','',0); +INSERT INTO fusion_lcoe VALUES(26,'coewst','waste cost of electricity ',2211192.149999999907,'dolllar','coewst','ife, pnetelmw, n_day_year, cfactr, tburn, tcycle, annwst','','',0); +INSERT INTO fusion_lcoe VALUES(4,'concost','Constructed cost ',8802566481.0,'dolllar','accconcost','cal_acc2, cal_accindrt, cal_acccont','','',0); +INSERT INTO fusion_lcoe VALUES(2,'crctcore','Reactor core cost ',3409502126.0,'dolllar','accrctcore','cal_acc2, cowner, cfind_0, cfind_1, cfind_2, cfind_3','','',0); +INSERT INTO fusion_lcoe VALUES(5,'moneyint','Interest during construction ',1452423469.0,'dolllar','accmoneyint','cal_acconcost, fcap0','','',0); +CREATE TABLE `fusion_varv` ( + `ind` INTEGER DEFAULT NULL, + `var_name` TEXT NOT NULL, + `var_description` text, + `var_value` REAL DEFAULT NULL, + `var_unit` text, + `var_alg` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`var_name`) +); +INSERT INTO fusion_varv VALUES(1,'a','plasma minor radius ',2.66666666699999988,'m','','','fncmass',0); +INSERT INTO fusion_varv VALUES(2,'acptmax','average of currents in PF circuits',23.33333332999999854,'kA','','','',0); +INSERT INTO fusion_varv VALUES(3,'admvol','volume of administration buildings',100000.0,'m3','','','',0); +INSERT INTO fusion_varv VALUES(4,'afuel','average mass of fuel portion of ions',2.5,'amu','','','wtgpd',0); +INSERT INTO fusion_varv VALUES(5,'ai','',16658822.34999999963,'A','','','aintmass, fncmass',0); +INSERT INTO fusion_varv VALUES(6,'aintmass','intercoil structure mass',4287001.474519036711,'kg','calaintmass','ai, tf_h_width, b0','gsmass',0); +INSERT INTO fusion_varv VALUES(7,'akappa','plasma elongation',1.850000000000000088,'N/A','','','fncmass',0); +INSERT INTO fusion_varv VALUES(8,'areaoh','Central solenoid vertical cross-sectional area',9.067197218000000447,'m2','','','awpoh',0); +INSERT INTO fusion_varv VALUES(9,'awpoh','central solenoid conductor+void area with area of steel subtracted',4.416007689219206612,'m2','calawpoh','oh_steel_frac, areaoh',NULL,0); +INSERT INTO fusion_varv VALUES(10,'b0','aixal B-field ',5.27129690499999981,'T','','','aintmass',0); +INSERT INTO fusion_varv VALUES(387,'bktlife','full power blanket lifetime',6.075999999999999624,'years',NULL,NULL,'fwbllife',0); +INSERT INTO fusion_varv VALUES(11,'blmass','blanket mass',2967570.481999999844,'kg','','','gsmass',0); +INSERT INTO fusion_varv VALUES(12,'cconfix','fixed cost of superconducting cable',80.0,'$/m','','','',0); +INSERT INTO fusion_varv VALUES(13,'cconshpf','cost of PF coil steel conduit/sheath',70.0,'$/m','','','',0); +INSERT INTO fusion_varv VALUES(14,'cconshtf','cost of TF coil steel conduit/sheath',75.0,'$/m','','','',0); +INSERT INTO fusion_varv VALUES(349,'cdcost','current drive system cost',241.0699999999999932,'million',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(15,'cdirt','total plant direct cost',5520.0,'M$','','','',0); +INSERT INTO fusion_varv VALUES(16,'cdriv0','IFE generic/laser driver cost at edrive=0',154.3000000000000113,'M$','','','',0); +INSERT INTO fusion_varv VALUES(17,'cdriv1','IFE low energy heavy ion beam driver cost extrapolated to `edrive=0`',163.1999999999999887,'M$','','','',0); +INSERT INTO fusion_varv VALUES(18,'cdriv2','IFE high energy heavy ion beam driver cost extrapolated to `edrive=0`',244.9000000000000056,'M$','','','',0); +INSERT INTO fusion_varv VALUES(19,'cdriv3','IFE driver cost (`ifedrv==3`)',1.463000000000000078,'($/J wall plug)','','','',0); +INSERT INTO fusion_varv VALUES(392,'cdrlife','lifetime of heating/current drive system',6.076245551577470038,'years',NULL,NULL,'fefcdr',NULL); +INSERT INTO fusion_varv VALUES(357,'cfactr','total plant availability fraction',0.8000000000000000444,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(20,'cfind_0','indirect cost factor ',0.2439999999999999947,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(21,'cfind_1','indirect cost factor ',0.2439999999999999947,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(22,'cfind_2','indirect cost factor ',0.2439999999999999947,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(23,'cfind_3','indirect cost factor ',0.2899999999999999801,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(24,'cland','cost of land',19.19999999999999929,'M$','','','',0); +INSERT INTO fusion_varv VALUES(25,'clgsmass','gravity support structure for TF coil, PF coil and intercoil support systems',1298297.092233689967,'kg','calclgsmass','coilmass, r0, dens, sigal','gsmass',0); +INSERT INTO fusion_varv VALUES(26,'coilmass','total mass of coils plus support pluss vaccum vessel and cryostat ',34970608.25,'kg','','','clgsmass',0); +INSERT INTO fusion_varv VALUES(27,'convol','volume of control, protection and i&c building',60000.0,'m3','','','',0); +INSERT INTO fusion_varv VALUES(28,'coolmass','total water coolant mass ',1180.194345999999996,'kg','','','gsmass',0); +INSERT INTO fusion_varv VALUES(29,'coolwh','Switch for blanket coolant',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(30,'cowner','owner cost factor',0.1499999999999999945,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(352,'cplife','calculated full power year lifetime of centrepost',0.0,'years',NULL,NULL,'fefcp',0); +INSERT INTO fusion_varv VALUES(31,'cpstcst','ST centrepost direct cost',0.0,'M$','','','',0); +INSERT INTO fusion_varv VALUES(32,'cpttf','TF coil current per turn',87100.0,'A','','','',0); +INSERT INTO fusion_varv VALUES(350,'crfcdr','current drive capital recovery factor',0.19081627000000001,'N/A','crfcdr','discount_rate, cdrlife',NULL,0); +INSERT INTO fusion_varv VALUES(351,'crfcp','centrepost capital recovery factor',0.0,'N/A','crfcp','itart, ife, fefcp, discount_rate',NULL,0); +INSERT INTO fusion_varv VALUES(358,'crfdiv','divertor capital recovery factor',0.2729304739999999785,'N/A','crfdiv','fefdiv, discount_rate, ife',NULL,0); +INSERT INTO fusion_varv VALUES(359,'crffwbl','first wall and blanket capital recovery factor',0.19081627000000001,'N/A','crffwbl','feffwbl, discount_rate',NULL,0); +INSERT INTO fusion_varv VALUES(33,'crypmw','cryogenic plant power',44.20000000000000285,'MW','','','',0); +INSERT INTO fusion_varv VALUES(34,'cryvol','volume of cryoplant building',16458.09390262030137,'m3','','','',0); +INSERT INTO fusion_varv VALUES(35,'csi','allowance for site costs',16.0,'million','','','',0); +INSERT INTO fusion_varv VALUES(36,'cturbb','cost of turbine building',38.0,'M$','','','',0); +INSERT INTO fusion_varv VALUES(37,'d_0','vacuum duct diameter',0.1010000000000000065,'m','','','dlscal',0); +INSERT INTO fusion_varv VALUES(38,'d_1','vacuum duct diameter',0.2010000000000000119,'m','','','dlscal',0); +INSERT INTO fusion_varv VALUES(39,'d_2','vacuum duct diameter',0.4869999999999999885,'m','','','dlscal',0); +INSERT INTO fusion_varv VALUES(40,'d_3','vacuum duct diameter',9.99999999999999955e-07,'m','','','dlscal',0); +INSERT INTO fusion_varv VALUES(41,'dcdrv0','IFE generic/laser driver cost gradient',111.4000000000000056,'M$/MJ','','','',0); +INSERT INTO fusion_varv VALUES(42,'dcdrv1','HIB driver cost gradient at low energy',78.0,'M$/MJ','','','',0); +INSERT INTO fusion_varv VALUES(43,'dcdrv2','HIB driver cost gradient at high energy',59.89999999999999858,'M$/MJ','','','',0); +INSERT INTO fusion_varv VALUES(44,'dcond_0','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(45,'dcond_1','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(46,'dcond_2','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(47,'dcond_3','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(48,'dcond_4','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(49,'dcond_5','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(50,'dcond_6','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(51,'dcond_7','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(52,'dcond_8','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(53,'dcopper','density of copper',8900.0,'kg/m3','','','',0); +INSERT INTO fusion_varv VALUES(354,'decomf','proportion of constructed cost required for decommissioning fund',0.1000000000000000055,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(54,'dens','density of coil gravity support mass',7800.0,'kg/m3','','','clgsmass, gsmass',0); +INSERT INTO fusion_varv VALUES(356,'dintrt','diff between borrowing and saving interest rates',0.0,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(355,'discount_rate','effective cost of money in constant dollars',0.043499999999999997,'N/A',NULL,NULL,'feffwbl, crffwbl, fefdiv, crfdiv, fefcp, crfcp, fefcdr, crfcdr',0); +INSERT INTO fusion_varv VALUES(55,'divcst','divertor direct cost',0.0,'M$','','','',0); +INSERT INTO fusion_varv VALUES(360,'divlife','full power lifetime of divertor',4.077389057999999621,'years',NULL,NULL,'fefdiv',0); +INSERT INTO fusion_varv VALUES(56,'divsur','divertor surface area',149.0,'m2','','','',0); +INSERT INTO fusion_varv VALUES(57,'dlscal','vacuum system duct length scaling',3.831737432999999804,'N/A','caldlscal','l1, ltot, imax, d_0, d_1, d_2, d_3',NULL,0); +INSERT INTO fusion_varv VALUES(58,'drbi','length to allow laydown',107.4482842999999975,'m','','','rbvol, volrci',0); +INSERT INTO fusion_varv VALUES(361,'dtlife','period prior to the end of the plant life that the decommissioning fund is used',0.0,'years',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(59,'dtstor','maximum allowable temperature change in stainless steel thermal storage block',300.0,'K','','','',0); +INSERT INTO fusion_varv VALUES(60,'dvrtmass','total mass of divertor and associated structure',36452.52788000000145,'kg','','','gsmass',0); +INSERT INTO fusion_varv VALUES(61,'ealphadt','alpha birth energy in D-T reaction ',3520.0,'keV','','','rndfuel',0); +INSERT INTO fusion_varv VALUES(62,'echarge','electron charge',1.599999999999999913e-19,'C','','','rndfuel',0); +INSERT INTO fusion_varv VALUES(63,'echpwr','ECH power ',80.3489458868084796,'MW','calechpwr','faccd, faccdfix, plascur, effrfss, pheat','',0); +INSERT INTO fusion_varv VALUES(64,'edrive','IFE driver energy',5000000.0,'J','','','targtm',0); +INSERT INTO fusion_varv VALUES(65,'effrfss','lower hybrid current drive efficienty',0.04641051599999999889,'A/W','','','echpwr',0); +INSERT INTO fusion_varv VALUES(66,'elevol','volume of electrical equipment building',51859.90411732225038,'m3','calelevol','tfcbv, pfbldgm3, esbldgm3, pibv',NULL,0); +INSERT INTO fusion_varv VALUES(67,'ensxpfm','maximum stored energy in the PF circuits',29100.0,'MJ','','','',0); +INSERT INTO fusion_varv VALUES(68,'esbldgm3','volume of energy storage equipment building (not used if `lpulse=0`)',1000.0,'m3','','','elevol',0); +INSERT INTO fusion_varv VALUES(69,'estotftgj','total stored energy in the toroidal field',120.0,'GJ','','','',0); +INSERT INTO fusion_varv VALUES(70,'etadrv','IFE driver wall plug to target efficiency',0.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(345,'expcry',NULL,0.6700000000000000399,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(71,'expel','',0.6999999999999999556,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(72,'expepe','',0.9000000000000000222,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(73,'exphts','',0.6999999999999999556,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(74,'exprb','',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(75,'exprf','',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(76,'exptpe','',0.8299999999999999601,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(77,'faccd','fraction of plasma current produced by auxiliary current drive',0.01490185400000000083,'N/A','','','echpwr',0); +INSERT INTO fusion_varv VALUES(78,'faccdfix','fixed auxiliary current',0.0,'A','','','echpwr',0); +INSERT INTO fusion_varv VALUES(79,'fachtmw','facility heat removal',55.5,'MW','','','',0); +INSERT INTO fusion_varv VALUES(80,'fburn','IFE burn fraction',0.3332999999999999852,'fraction of tritium fused/target','','','targtm',0); +INSERT INTO fusion_varv VALUES(81,'fcap0','average cost of money for construction of plant assuming design/construction time of six years',1.165000000000000035,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(347,'fcap0cp','average cost of money for replaceable components assuming lead time for these of two years',1.080000000000000072,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(82,'fcdfuel','fraction of current drive cost treated as fuel (if `ifueltyp = 1`)',0.1000000000000000055,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(83,'fcontng','project contingency factor',0.1950000000000000066,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(348,'fcr0','fixed charge rate during construction',0.0966000000000000053,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(84,'fcsht','total baseline power required at all times',55.5,'MW','','','',0); +INSERT INTO fusion_varv VALUES(85,'fcuohsu','copper fraction of strand in central solenoid',0.6999999999999999556,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(86,'fcupfsu','copper fraction of cable conductor (PF coils)',0.6899999999999999467,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(389,'fefcdr','current drive system compound interest factor',1.295283065831750013,'N/A','fefcdr','discount_rate, cdrlife','crfcdr',0); +INSERT INTO fusion_varv VALUES(390,'fefcp','centrepost compound interest factor',0.0,'N/A','fefcp','itart, ife, discount_rate, cplife','crfcp',0); +INSERT INTO fusion_varv VALUES(391,'fefdiv','divertor compound interest factor',1.189599922344150018,'N/A','fefdiv','divlife, discount_rate, ife','crfdiv',0); +INSERT INTO fusion_varv VALUES(388,'feffwbl','first wall and blanket compound interest factor',1.295283065800000077,'N/A','feffwbl','discount_rate, fwbllife','crffwbl',0); +INSERT INTO fusion_varv VALUES(362,'fhe3','helium-3 fuel fraction',0.0,'N/A',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(87,'fkind','multiplier for Nth of a kind costs',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(88,'fncmass','PF coil outer support fence mass',230005.5609766293201,'kg','calfncmass','a, ai, akappa, r0','',0); +INSERT INTO fusion_varv VALUES(89,'fndt','foundation thickness',2.0,'m','','','rbvol, rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(90,'ftrit','tritium fuel fraction',0.5,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(91,'fusionrate','fusion reaction rate',310000000000000000.0,'reactions/m3/sec','','','rndfuel',0); +INSERT INTO fusion_varv VALUES(92,'fwallcst','first wall cost',0.0,'M$','','','',0); +INSERT INTO fusion_varv VALUES(93,'fwarea','first wall total surface area',1600.0,'m2','','','',0); +INSERT INTO fusion_varv VALUES(378,'fwbllife','first wall and blanket operational life',6.076245551999999606,'years','fwbllife','bktlife',NULL,0); +INSERT INTO fusion_varv VALUES(94,'fwmass','first wall mass',154494.008600000001,'kg','','','gsmass',0); +INSERT INTO fusion_varv VALUES(95,'fwmatm','IFE first wall material masses',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(96,'gain','IFE target gain',0.0,'N/A','','','targtm',0); +INSERT INTO fusion_varv VALUES(97,'gsmass','reactor core gravity support mass ',1189952.777999999933,'kg','calgsmass','coolmass, fwmass, blmass, shldmass, dvrtmass, tfmass, pfmass, tfhmax, dens, sigal, aintmass, clgsmass, r0','',0); +INSERT INTO fusion_varv VALUES(98,'hccl','clearance around components in hot cell ',5.0,'m','','','rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(99,'hcwt','hot cell wall thickness ',1.5,'m','','','rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(100,'helpow','Heat removal at cryogenic temperature tmpcry',89543.42311000000337,'W','','','',0); +INSERT INTO fusion_varv VALUES(101,'hrbi','tfh allows TF coil to be lifted right out',73.33248107999999376,'m','','','volrci, rbvol',0); +INSERT INTO fusion_varv VALUES(102,'i_tf_sc_mat','Switch for superconductor material in TF coils',5.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(103,'i_tf_sup','Switch for TF coil conductor model',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(104,'iblanket','switch for blanket model',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(105,'iefrf','Switch for current drive efficiency model',10.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(106,'ife','switch for the IFE option',0.0,'N/A','','','wtgpd, fefdiv, crfdiv, fefcp, crfcp',0); +INSERT INTO fusion_varv VALUES(107,'ifedrv','Switch for type of IFE driver',2.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(108,'ifueltyp','switch for fuel type',0.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(109,'imax','d[imax] = diameter of passage from divertor to pumping ducts',2.0,'N/A','','','dlscal',0); +INSERT INTO fusion_varv VALUES(110,'iohcl','Switch for existence of central solenoid',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(111,'ipfres','switch for PF & CS coil conductor type',0.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(112,'ireactor','Switch for net electric power and cost of electricity calculations',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(113,'istore','Switch for thermal storage method',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(114,'isumatoh','switch for superconductor material in central solenoid',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(115,'isumatpf','switch for superconductor material in PF coils',3.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(116,'itart','switch for spherical tokamak (ST) models',0.0,'N/A','','','fefcp, crfcp',0); +INSERT INTO fusion_varv VALUES(117,'l1','length of passage from divertor to ducts',1.712079117000000039,'m','','','dlscal',0); +INSERT INTO fusion_varv VALUES(118,'lpulse','Switch for reactor model',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(119,'lsa','Level of safety assurance switch (generally use 3 or 4)',4.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(120,'ltot','total passage length',8.512079117000000749,'m','','','dlscal',0); +INSERT INTO fusion_varv VALUES(121,'mbvfac','maintenance building volume multiplication factor',2.799999999999999823,'N/A','','','rmbvol',0); +INSERT INTO fusion_varv VALUES(122,'mcdriv','IFE driver cost multiplier',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(363,'n_day_year','average number of days in a year',365.2425000000000068,'days',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(123,'n_tf','Number of TF coils (default = 50 for stellarators). Number of TF coils outer legs for ST',16.0,'N/A','','','rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(124,'n_tf_turn','number of turns per TF coil',151.324691446132988,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(125,'nohc','number of PF coils (excluding the central solenoid) + 1',7.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(126,'nphx','number of primary heat exchangers',3.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(127,'ntype','switch for vacuum pump type',1.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(128,'nvduct','number of ducts (torus to pumps)',16.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(129,'oh_steel_frac','central solenoid steel fraction ',0.5129688279999999879,'N/A','','','awpoh',0); +INSERT INTO fusion_varv VALUES(130,'pacpmw','total pulsed power system load',508.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(131,'palpnb','alpha power from hot neutral beam ions',0.0,'MW','','','rndfuel',0); +INSERT INTO fusion_varv VALUES(132,'peakmva','peak MVA requirement',83.78203800999999374,'MW','','','',0); +INSERT INTO fusion_varv VALUES(133,'pfbldgm3','volume of PF coil power supply building',20000.0,'m3','','','elevol',0); +INSERT INTO fusion_varv VALUES(134,'pfckts','number of PF coil circuits',12.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(135,'pfmass','total mass of PF coils plus cases',5063259.411999999546,'kg','','','gsmass',0); +INSERT INTO fusion_varv VALUES(136,'pfwdiv','heat removal from first wall/divertor',0.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(137,'pfwndl','',0.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(138,'pgrossmw','gross electric power',881.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(139,'pheat','heating power not used for current drive ',75.0,'MW','','','echpwr',0); +INSERT INTO fusion_varv VALUES(140,'pibv','power injection building volume ',20000.0,'m3','','','elevol',0); +INSERT INTO fusion_varv VALUES(141,'pinjht','power dissipated in heating and current drive system',80.29999999999999716,'MW','','','',0); +INSERT INTO fusion_varv VALUES(142,'pinjwp','injector wall plug power',160.6978918000000078,'MW','','','',0); +INSERT INTO fusion_varv VALUES(143,'plascur','plasma current ',16658822.34999999963,'A','','','echpwr',0); +INSERT INTO fusion_varv VALUES(144,'plhybd','lower hybrid injection power',0.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(145,'pnbitot','neutral beam power entering vacuum vessel',0.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(146,'pnetelmw','net electric power',401.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(147,'pnucblkt','nuclear heating in the blanket',1310.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(148,'pnucshld','nuclear heating in the shield',1.429999999999999938,'MW','','','',0); +INSERT INTO fusion_varv VALUES(149,'powfmw','fusion power',1640.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(150,'pthermmw','High-grade heat useful for electric production',2203.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(151,'r0','plasma major radius',8.0,'m','','','clgsmass, fncmass',0); +INSERT INTO fusion_varv VALUES(152,'rbrt','reactor building roof thickness',1.0,'m','','','rbvol',0); +INSERT INTO fusion_varv VALUES(153,'rbvfac','reactor building volume multiplication factor',1.600000000000000088,'N/A','','','rbvol, volrci',0); +INSERT INTO fusion_varv VALUES(154,'rbvol','reactor building volume',1130404.632700673071,'m3','calrbvol','wrbi, rbwt, drbi, hrbi, rbrt, fndt, rbvfac','',0); +INSERT INTO fusion_varv VALUES(155,'rbwt','reactor building wall thickness',2.0,'m','','','rbvol',0); +INSERT INTO fusion_varv VALUES(156,'reprat','IFE driver repetition rate',0.0,'Hz','','','wtgpd',0); +INSERT INTO fusion_varv VALUES(157,'ric_0','peak current in coil i ',17.94655535000000057,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(158,'ric_1','peak current in coil i ',20.66898691999999826,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(159,'ric_2','peak current in coil i ',-7.722601120000000207,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(160,'ric_3','peak current in coil i ',-7.722601120000000207,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(161,'ric_4','peak current in coil i ',-5.237676740000000386,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(162,'ric_5','peak current in coil i ',-5.237676740000000386,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(163,'ric_6','peak current in coil i ',-185.6894060799999978,'MA-turns','','','',0); +INSERT INTO fusion_varv VALUES(164,'rjconpf_0','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(165,'rjconpf_1','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(174,'rjconpf_10','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(175,'rjconpf_11','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(176,'rjconpf_12','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(177,'rjconpf_13','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(178,'rjconpf_14','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(179,'rjconpf_15','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(180,'rjconpf_16','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(181,'rjconpf_17','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(182,'rjconpf_18','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(183,'rjconpf_19','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(166,'rjconpf_2','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(184,'rjconpf_20','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(185,'rjconpf_21','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(167,'rjconpf_3','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(168,'rjconpf_4','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(169,'rjconpf_5','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(170,'rjconpf_6','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(171,'rjconpf_7','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(172,'rjconpf_8','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(173,'rjconpf_9','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO fusion_varv VALUES(342,'rmbvol','add',396414.1030000000027,'m3','calrmbvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, mbvfac, fndt',NULL,0); +INSERT INTO fusion_varv VALUES(380,'rndfuel','fuel burn up rate',5.85194467117951484e+20,'reactions/sec','calrndfuel','fusionrate, palpnb, ealphadt, echarge, vol','wtgpd',0); +INSERT INTO fusion_varv VALUES(186,'rpf_0','radius of PF coil in i',5.566666670000000038,'m','','','',0); +INSERT INTO fusion_varv VALUES(187,'rpf_1','radius of PF coil in i',5.566666670000000038,'m','','','',0); +INSERT INTO fusion_varv VALUES(188,'rpf_2','radius of PF coil in i',16.72949721999999895,'m','','','',0); +INSERT INTO fusion_varv VALUES(189,'rpf_3','radius of PF coil in i',16.72949721999999895,'m','','','',0); +INSERT INTO fusion_varv VALUES(190,'rpf_4','radius of PF coil in i',15.20644854000000023,'m','','','',0); +INSERT INTO fusion_varv VALUES(191,'rpf_5','radius of PF coil in i',15.20644854000000023,'m','','','',0); +INSERT INTO fusion_varv VALUES(192,'rpf_6','radius of PF coil in i',2.279760550000000219,'m','','','',0); +INSERT INTO fusion_varv VALUES(385,'shh','height of attached shield',16.71000000000000085,'m',NULL,NULL,'rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(379,'shldmass','total mass of sheild',2449818.833849217742,'kg',NULL,NULL,'gsmass',0); +INSERT INTO fusion_varv VALUES(384,'shm','total mass of attached sheild',2449818.833849217742,'kg',NULL,NULL,'rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(193,'shmatm','IFE shield material masses ',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(383,'shmf','fraction of shield mass per TF coil to be moved in the maximum shield lift',0.5,'N/A',NULL,NULL,'rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(344,'shovol','volume of shops and buildings for plant auxiliaries',100000.0,'m3',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(382,'shri','inner radius of attached shield',4.065333333333334131,'m',NULL,NULL,'rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(381,'shro','outer radius of attached shield',12.73466666666666747,'m',NULL,NULL,'rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(346,'sigal','allowable stress of coil gravity support mass',25000000.0,'Pa',NULL,NULL,'clgsmass, gsmass',0); +INSERT INTO fusion_varv VALUES(194,'spfbusl','total PF coil circuit bus length',2450.0,'m','','','',0); +INSERT INTO fusion_varv VALUES(195,'srcktpm','sum of resistive PF coil power',964.0,'kW','','','',0); +INSERT INTO fusion_varv VALUES(196,'stcl','clearance above crane to roof',3.0,'m','','','rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(386,'targtm','mass of fuel calculation',0.0,'kg','caltargtm','gain, edrive, fburn','wtgpd',0); +INSERT INTO fusion_varv VALUES(365,'tburn','burn time',7246.138178000000152,'sec',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(366,'tcycle','full cycle time',9889.3146248200701,'sec',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(197,'tdown','down time',2633.176446999999826,'s','','','',0); +INSERT INTO fusion_varv VALUES(198,'tdspmw','IFE target delivery system power',0.0100000000000000002,'MW','','','',0); +INSERT INTO fusion_varv VALUES(199,'tf_h_width','TF coil horizontal bore',13.6395211199999995,'m','','','aintmass',0); +INSERT INTO fusion_varv VALUES(200,'tfacmw','IFE target factory power',0.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(201,'tfbusl','TF coil bus length',3190.0,'m','','','',0); +INSERT INTO fusion_varv VALUES(202,'tfbusmas','TF coil bus mass ',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(203,'tfcbv','volume of TF coil power supply building (calculated if TF coils are superconducting)',10859.90411999999923,'m3','','','elevol',0); +INSERT INTO fusion_varv VALUES(204,'tfckw','available DC power for charging the TF coils',28500.0,'kW','','','',0); +INSERT INTO fusion_varv VALUES(205,'tfcmw','Peak power per TF power supply',0.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(206,'tfhmax','TF coil max height',8.818217163999999997,'m','','','gsmass',0); +INSERT INTO fusion_varv VALUES(207,'tfleng','TF coil circumference',47.9276261124613967,'m','','','',0); +INSERT INTO fusion_varv VALUES(208,'tfmass','total mass of TF coils plus cases',11340223.07000000029,'kg','','','gsmass',0); +INSERT INTO fusion_varv VALUES(353,'tlife','full power year plant lifetime',30.0,'years',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(209,'tlvpmw','estimate of total low voltage power',329.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(210,'tmpcry','coil temperature for cryogenic plant power calculation',4.5,'K','','','',0); +INSERT INTO fusion_varv VALUES(211,'trcl','transportation clearance between components ',1.0,'m','','','rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(212,'trithtmw','power required for tritium processing',15.0,'MW','','','',0); +INSERT INTO fusion_varv VALUES(213,'triv','volume of tritium fuel handling and health physics buildings',40000.0,'m3','','','',0); +INSERT INTO fusion_varv VALUES(214,'turns_0','number of turns in PF coil i',448.663883999999996,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(215,'turns_1','number of turns in PF coil i',516.7246730000000526,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(216,'turns_2','number of turns in PF coil i',193.0650280000000122,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(217,'turns_3','number of turns in PF coil i',193.0650280000000122,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(218,'turns_4','number of turns in PF coil i',130.9419179999999869,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(219,'turns_5','number of turns in PF coil i',130.9419179999999869,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(220,'turns_6','number of turns in PF coil i',4642.23515000000043,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(221,'twopi','2 pi',6.283185307179580015,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(222,'ucad','unit cost for administration buildings',180.0,'M$/m3','','','',0); +INSERT INTO fusion_varv VALUES(223,'ucaf','unit cost for aux facility power equipment',1500000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(224,'ucahts','unit cost for aux heat transport equipment',31.0,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(225,'ucap','unit cost of auxiliary transformer',17.0,'$/kVA','','','',0); +INSERT INTO fusion_varv VALUES(226,'ucblbe','unit cost for blanket beryllium',260.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(227,'ucblbreed','unit cost for breeder material',875.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(228,'ucblli','unit cost for blanket lithium',875.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(229,'ucblli2o','unit cost for blanket Li_2O',600.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(230,'ucbllipb','unit cost for blanket Li-Pb (30% Li6)',10.30000000000000072,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(231,'ucblss','unit cost for blanket stainless steel ',90.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(232,'ucblvd','unit cost for blanket vanadium ',200.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(233,'ucbpmp','vacuum system backing pump cost',293000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(234,'ucbus','cost of aluminium bus for TF coil',0.1229999999999999983,'$/A-m','','','',0); +INSERT INTO fusion_varv VALUES(235,'uccarb','cost of carbon cloth',50.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(236,'uccase','cost of superconductor case',50.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(237,'ucco','unit cost for control buildings',350.0,'M$/m3','','','',0); +INSERT INTO fusion_varv VALUES(238,'ucconc','cost of concrete',0.1000000000000000055,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(239,'uccpcl1','cost of high strength tapered copper',250.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(240,'uccpclb','cost of TF outboard leg plate coils',150.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(241,'uccpmp','vacuum system cryopump cost ',390000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(242,'uccr','unit cost for cryogenic building',460.0,'M$/vol','','','',0); +INSERT INTO fusion_varv VALUES(243,'uccry',' heat transport system cryoplant costs',93000.0,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(244,'uccryo','unit cost for vacuum vessel',32.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(245,'uccu','unit cost for copper in superconducting cable',75.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(246,'ucdgen','cost per 8 MW diesel generator',1700000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(247,'ucdiv','cost of divertor blade',280000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(248,'ucdtc','detritiation, air cleanup cost',13.0,'$/10000m3/hr','','','',0); +INSERT INTO fusion_varv VALUES(249,'ucduct','vacuum system duct cost',42300.0,'$/m','','','',0); +INSERT INTO fusion_varv VALUES(250,'ucech','ECH system cost',3.0,'$/w','','','',0); +INSERT INTO fusion_varv VALUES(251,'ucel','unit cost for electrical equipment building',380.0,'M$/m3','','','',0); +INSERT INTO fusion_varv VALUES(252,'ucf1','cost of fuelling system',22300000.0,'$',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(253,'ucfnc','outer PF coil fence support cost',35.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(254,'ucfpr','cost of 60g/day tritium processing unit ',44000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(367,'ucfuel','unit cost of D-T fuel',3.450000000000000177,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(255,'ucfwa','first wall armour cost',60000.0,'$/m2','','','',0); +INSERT INTO fusion_varv VALUES(256,'ucfwps','first wall passive stabiliser cost',10000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(257,'ucfws','first wall structure cost',53000.0,'$/m2','','','',0); +INSERT INTO fusion_varv VALUES(258,'ucgss','cost of reactor structure',35.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(377,'uche3','cost of helium',1000000.0,'$/kg',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(259,'uchrs','cost pf heat rejection system ',87900000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(260,'uchts_0','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',15.30000000000000071,'($/W)','','','',0); +INSERT INTO fusion_varv VALUES(261,'uchts_1','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',19.10000000000000143,'($/W)','','','',0); +INSERT INTO fusion_varv VALUES(262,'uciac','cost of instrumentation, control & diagnostics ',150000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(263,'ucich','ICH system cost',3.0,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(264,'ucint','superconductor intercoil structure cost',35.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(265,'uclh','lower hybrid system cost ',3.299999999999999823,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(266,'uclv','low voltage system cost',16.0,'$/kVA','','','',0); +INSERT INTO fusion_varv VALUES(267,'ucmb','unit cost for reactor maintenance building',260.0,'M$/m3','','','',0); +INSERT INTO fusion_varv VALUES(268,'ucme','cost of maintenance equipment',125000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(269,'ucmisc','miscellaneous plant allowance',25000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(270,'ucnbi','NBI system cost',3.299999999999999823,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(271,'ucnbv','cost of nuclear building ventilation',1000.0,'$/m3','','','',0); +INSERT INTO fusion_varv VALUES(369,'ucoam_0','annual cost of operation and maintenance ',68.79999999999999716,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(370,'ucoam_1','annual cost of operation and maintenance ',68.79999999999999716,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(371,'ucoam_2','annual cost of operation and maintenance ',68.79999999999999716,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(372,'ucoam_3','annual cost of operation and maintenance ',74.40000000000000569,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(272,'ucpens','penetration shield cost',32.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(273,'ucpfb','cost of PF coil buses',210.0,'$/kA-m','','','',0); +INSERT INTO fusion_varv VALUES(274,'ucpfbk','cost of PF coil DC breakers',16600.0,'$/MVA','','','',0); +INSERT INTO fusion_varv VALUES(275,'ucpfbs','cost of PF burn power supplies',4900.0,'$/kW','','','',0); +INSERT INTO fusion_varv VALUES(276,'ucpfcb','cost of PF coil AC breakers',75000.0,'$/circuit','','','',0); +INSERT INTO fusion_varv VALUES(277,'ucpfdr1','cost factor for dump resistors',150.0,'$/MJ','','','',0); +INSERT INTO fusion_varv VALUES(278,'ucpfic','cost of PF instrumentation and control',10000.0,'$/channel','','','',0); +INSERT INTO fusion_varv VALUES(279,'ucpfps','cost of PF coil pulsed power supplies',35000.0,'$/MVA','','','',0); +INSERT INTO fusion_varv VALUES(280,'ucphx','primary heat transport cost',15.0,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(281,'ucpp','cost of primary power transformers',48.0,'$/kVA','','','',0); +INSERT INTO fusion_varv VALUES(282,'ucrb','cost of reactor building',400.0,'M$/m3','','','',0); +INSERT INTO fusion_varv VALUES(283,'ucsc_0','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(284,'ucsc_1','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(285,'ucsc_2','cost of superconductor',300.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(286,'ucsc_3','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(287,'ucsc_4','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(288,'ucsc_5','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(289,'ucsc_6','cost of superconductor',300.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(290,'ucsc_7','cost of superconductor',1200.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(291,'ucsc_8','cost of superconductor',1200.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(292,'ucsh','cost of shops and warehouses',115.0,'M$/m3','','','',0); +INSERT INTO fusion_varv VALUES(293,'ucshld','cost of shield structural steel',32.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(294,'ucswyd','switchyard equipment costs',18400000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(368,'uctarg','cost of IFE target',0.2999999999999999889,'$/target',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(295,'uctfbr','cost of TF coil breakers',1.219999999999999974,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(296,'uctfbus','cost of TF coil bus',100.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(297,'uctfdr','cost of TF coil dump resistors',0.0001749999999999999983,'$/J','','','',0); +INSERT INTO fusion_varv VALUES(298,'uctfgr','additional cost of TF coil dump resistors',5000.0,'$/coil','','','',0); +INSERT INTO fusion_varv VALUES(299,'uctfic','cost of TF coil instrumentation and control',10000.0,'$/coil','','','',0); +INSERT INTO fusion_varv VALUES(300,'uctfps',' cost of TF coil power supplies',24.0,'$/W','','','',0); +INSERT INTO fusion_varv VALUES(301,'uctfsw','cost of TF coil slow dump switches',1.0,'$/A','','','',0); +INSERT INTO fusion_varv VALUES(302,'uctpmp','cost of turbomolecular pump',111000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(303,'uctr','cost of tritium building',370.0,'$/m3','','','',0); +INSERT INTO fusion_varv VALUES(304,'ucturb_0','cost of turbine plant equipment (dependent on coolant type coolwh)',230000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(305,'ucturb_1','cost of turbine plant equipment (dependent on coolant type coolwh)',245000000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(306,'ucvalv','vacuum system valve cost',390000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(307,'ucvdsh','vacuum duct shield cost',26.0,'$/kg','','','',0); +INSERT INTO fusion_varv VALUES(308,'ucviac','vacuum system instrumentation and control cost ',1300000.0,'$','','','',0); +INSERT INTO fusion_varv VALUES(309,'ucwindpf','cost of PF coil superconductor windings',465.0,'$/m','','','',0); +INSERT INTO fusion_varv VALUES(310,'ucwindtf','cost of TF coil superconductor windings',480.0,'$/m3','','','',0); +INSERT INTO fusion_varv VALUES(343,'ucws','add',460.0,'$/m3',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(373,'ucwst_0','cost of waste disposal',0.0,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(374,'ucwst_1','cost of waste disposal',3.939999999999999947,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(375,'ucwst_2','cost of waste disposal',5.910000000000000142,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(376,'ucwst_3','cost of waste disposal',7.879999999999999894,'M$/year/1200MW',NULL,NULL,NULL,0); +INSERT INTO fusion_varv VALUES(311,'umass','unified atomic mass unit',1.660538920999999832e-27,'kg',NULL,NULL,'wtgpd',0); +INSERT INTO fusion_varv VALUES(312,'vacdshm','mass of vacuum duct shield ',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(313,'vachtmw','vacuum pump power',0.5,'MW','','','',0); +INSERT INTO fusion_varv VALUES(314,'vcdimax','diameter of duct passage',0.4869999999999999885,'m','','','',0); +INSERT INTO fusion_varv VALUES(315,'vf','winding pack void fraction of PF coil i for coolant',0.2999999999999999889,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(316,'vfohc','void fraction of central solenoid conductor for coolant',0.2999999999999999889,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(317,'vol','plasma volume',1888.171153999999888,'m3','','','rndfuel',0); +INSERT INTO fusion_varv VALUES(318,'volrci','internal volume of reactor building',996572.356988769258,'m3','calvolrci','rbvfac, wrbi, drbi, hrbi',NULL,0); +INSERT INTO fusion_varv VALUES(319,'vpfskv','PF coil voltage',20.0,'kV','','','',0); +INSERT INTO fusion_varv VALUES(320,'vpumpn','number of high vacuum pumps',32.0,'N/A','','','',0); +INSERT INTO fusion_varv VALUES(321,'vtfskv','voltage across a TF coil during quench',9.47000000000000063,'kV','','','',0); +INSERT INTO fusion_varv VALUES(322,'vvmass','vacuum vessel mass',7938816.368934799918,'kg','','','',0); +INSERT INTO fusion_varv VALUES(323,'wgt2','hot cell crane capacity (calculated if 0 is input)',100000.0,'kg','','','rmbvol, wsvol',0); +INSERT INTO fusion_varv VALUES(324,'whtblbe','mass of blanket - beryllium part',1004202.845180199947,'kg','','','',0); +INSERT INTO fusion_varv VALUES(325,'whtblbreed','mass of blanket - breeder part',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(326,'whtblli','mass of blanket - lithium part ',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(327,'whtblss','mass of blanket - steel part',896957.5360152999638,'kg','','','',0); +INSERT INTO fusion_varv VALUES(328,'whtblvd','mass of blanket - vanadium part',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(329,'whtcas','mass per coil of external case',548883.3328847710508,'kg','','','',0); +INSERT INTO fusion_varv VALUES(330,'whtconcu','copper mass in TF coil conductor',57523.1575900077005,'kg/coil','','','',0); +INSERT INTO fusion_varv VALUES(331,'whtconsc','superconductor mass in TF coil cable',4504.559685734840059,'kg/coil','','','',0); +INSERT INTO fusion_varv VALUES(332,'whtcp','mass of TF coil inboard legs',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(333,'whtpfs','total mass of the PF coil structure',2591026.27600000007,'kg','','','',0); +INSERT INTO fusion_varv VALUES(334,'whtshld','mass of shield',2449818.833849209827,'kg','','','',0); +INSERT INTO fusion_varv VALUES(335,'whttflgs','mass of the TF coil legs',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(336,'wpenshld','mass of the penetration shield',2449818.833849209827,'kg','','','',0); +INSERT INTO fusion_varv VALUES(337,'wrbi','distance from centre of machine to building wall ',39.52419142000000107,'m','','','rbvol, volrci',0); +INSERT INTO fusion_varv VALUES(338,'wsvfac','warm shop building volume multiplication factor',1.899999999999999912,'N/A','','','wsvol',0); +INSERT INTO fusion_varv VALUES(339,'wsvol','volume of warm shop building',125307.1237284889067,'m3','calwsvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, fndt, wsvfac',NULL,0); +INSERT INTO fusion_varv VALUES(340,'wtblli2o','mass of blanket - Li_2O part',1066410.101076320046,'kg','','','',0); +INSERT INTO fusion_varv VALUES(341,'wtbllipb','mass of blanket - Li-Pb part',0.0,'kg','','','',0); +INSERT INTO fusion_varv VALUES(364,'wtgpd','mass of fuel used per day',419.7908975999999939,'kg','calwtgpd','targtm, reprat, rndfuel, afuel, umass, ife',NULL,0); +CREATE TABLE `gncoamapping` ( + `gncoa` text, + `gncoa_description` text +); +INSERT INTO gncoamapping VALUES('20','Capitalized Direct Costs'); +INSERT INTO gncoamapping VALUES('21','Structures and Improvements'); +INSERT INTO gncoamapping VALUES('211','Site Preparation/Yard Work'); +INSERT INTO gncoamapping VALUES('212','Reactor Island Civil Structures'); +INSERT INTO gncoamapping VALUES('212.1','Reactor containment building'); +INSERT INTO gncoamapping VALUES('212.2','Manway Tnls. (Radiological Ctrl Access Tunnels)'); +INSERT INTO gncoamapping VALUES('212.3','Containment Equipment Hatch Missile Shield'); +INSERT INTO gncoamapping VALUES('213','Main Function Buildings'); +INSERT INTO gncoamapping VALUES('213.1','Energy Conversion Building'); +INSERT INTO gncoamapping VALUES('213.21','Control Room/Diesel Generator Building'); +INSERT INTO gncoamapping VALUES('213.22','Control Rm Emergency Air Intake Building'); +INSERT INTO gncoamapping VALUES('213.31','Main Steam + Feedwater Pipe Enc.'); +INSERT INTO gncoamapping VALUES('213.32','Pipe Tunnels'); +INSERT INTO gncoamapping VALUES('213.4','Electrical Tunnels'); +INSERT INTO gncoamapping VALUES('214','Buildings to Support Main Function '); +INSERT INTO gncoamapping VALUES('214.1','Spent Fuel Management Building'); +INSERT INTO gncoamapping VALUES('214.2','Balance of Plant Service Building'); +INSERT INTO gncoamapping VALUES('214.3','Wastewater Treatment Building'); +INSERT INTO gncoamapping VALUES('214.5','Fire Protection Building'); +INSERT INTO gncoamapping VALUES('214.6','Non-essential Switchgear Building'); +INSERT INTO gncoamapping VALUES('214.7','Emergency and Start-up Power Systems'); +INSERT INTO gncoamapping VALUES('215','Supply Chain Buildings'); +INSERT INTO gncoamapping VALUES('216','Human Resources Buildings'); +INSERT INTO gncoamapping VALUES('216.1','Administration Building'); +INSERT INTO gncoamapping VALUES('216.2','Security Building and Gatehouse'); +INSERT INTO gncoamapping VALUES('216.4','Operation and Maintenance (O&M) Center '); +INSERT INTO gncoamapping VALUES('22','Structures and Improvements'); +INSERT INTO gncoamapping VALUES('221','Reactor Components'); +INSERT INTO gncoamapping VALUES('221.11','Reactor support'); +INSERT INTO gncoamapping VALUES('221.12','Outer vessel structure'); +INSERT INTO gncoamapping VALUES('221.121','Outer vessel structure equip'); +INSERT INTO gncoamapping VALUES('221.122','Outer vessel structure field'); +INSERT INTO gncoamapping VALUES('221.13','Inner vessel structure'); +INSERT INTO gncoamapping VALUES('221.131','Inner vessel structure lower'); +INSERT INTO gncoamapping VALUES('221.132','Inner vessel structure uppper'); +INSERT INTO gncoamapping VALUES('221.133','Inner vessel structure field'); +INSERT INTO gncoamapping VALUES('221.2','Reactivity control system'); +INSERT INTO gncoamapping VALUES('221.211','Reactivity control system control rods'); +INSERT INTO gncoamapping VALUES('221.212','Reactivity control system control drivers'); +INSERT INTO gncoamapping VALUES('221.213','Reactivity control system field'); +INSERT INTO gncoamapping VALUES('222','Main heat transfer system'); +INSERT INTO gncoamapping VALUES('222.1','Fluid circulation drive system'); +INSERT INTO gncoamapping VALUES('222.11','Fluid circulation drive system Equip'); +INSERT INTO gncoamapping VALUES('222.12','Fluid circulation drive system Field'); +INSERT INTO gncoamapping VALUES('222.2','Reactor heat transfer piping system'); +INSERT INTO gncoamapping VALUES('222.21','Reactor heat transfer piping system Equip'); +INSERT INTO gncoamapping VALUES('222.22','Reactor heat transfer piping system Field'); +INSERT INTO gncoamapping VALUES('222.3','Heat exchangers'); +INSERT INTO gncoamapping VALUES('222.31','Heat exchangers Equip'); +INSERT INTO gncoamapping VALUES('222.32','Heat exchangers Field'); +INSERT INTO gncoamapping VALUES('222.4','Pressurizer system'); +INSERT INTO gncoamapping VALUES('222.41','Pressurizer system Equip'); +INSERT INTO gncoamapping VALUES('222.42','Pressurizer system Relief Tank Equip'); +INSERT INTO gncoamapping VALUES('222.43','Pressurizer system Field'); +INSERT INTO gncoamapping VALUES('223','Safety Systems'); +INSERT INTO gncoamapping VALUES('223.1','Internal Residual Heat Removal System'); +INSERT INTO gncoamapping VALUES('223.11','Internal Residual Heat Removal System Pumps & Drives'); +INSERT INTO gncoamapping VALUES('223.12','Internal Residual Heat Removal System Heat Exchanger'); +INSERT INTO gncoamapping VALUES('223.13','Internal Residual Heat Removal System Others'); +INSERT INTO gncoamapping VALUES('223.3','Reactivity Safety Injection System'); +INSERT INTO gncoamapping VALUES('223.31','Reactivity Safety Injection System Pumps And Drives'); +INSERT INTO gncoamapping VALUES('223.32','Reactivity Safety Injection System Accumulator Tank'); +INSERT INTO gncoamapping VALUES('223.33','Reactivity Safety Injection System Boron Injection Tank'); +INSERT INTO gncoamapping VALUES('223.34','Reactivity Safety Injection System Boron Injection Surge Tank '); +INSERT INTO gncoamapping VALUES('223.35','Reactivity Safety Injection System Boron Injection Recirc. Pump, Drives'); +INSERT INTO gncoamapping VALUES('223.36','Reactivity Safety Injection System Others'); +INSERT INTO gncoamapping VALUES('223.4','Containment Spray System'); +INSERT INTO gncoamapping VALUES('223.5','Combustible Gas Control System'); +INSERT INTO gncoamapping VALUES('224','Radioactive Byproduct Processing Systems'); +INSERT INTO gncoamapping VALUES('225','Fuel Handling Systems'); +INSERT INTO gncoamapping VALUES('225.1','Core Refueling Equipment'); +INSERT INTO gncoamapping VALUES('225.2','Ex-Core Operational Fuel Handling Equipment'); +INSERT INTO gncoamapping VALUES('225.3','Fuel Handling Systems Other'); +INSERT INTO gncoamapping VALUES('226','Other Reactor Plant Equipment'); +INSERT INTO gncoamapping VALUES('226.1','Other Reactor Plant Equipment Inert Gas Sys'); +INSERT INTO gncoamapping VALUES('226.2','Other Reactor Plant Equipment Reactor Makeup Water Sys'); +INSERT INTO gncoamapping VALUES('226.3','Other Reactor Plant Equipment Coolant treatment systems '); +INSERT INTO gncoamapping VALUES('226.31','Other Reactor Plant Equipment Rotating Machinery (Pumps And Motors'); +INSERT INTO gncoamapping VALUES('226.32','Other Reactor Plant Equipment Heat Transfer Equipment'); +INSERT INTO gncoamapping VALUES('226.33','Other Reactor Plant Equipment Tanks And Pressure Vessels '); +INSERT INTO gncoamapping VALUES('226.34','Other Reactor Plant Equipment Purification And Filtration Equipment'); +INSERT INTO gncoamapping VALUES('226.35','Other Reactor Plant Equipment Coolant Treatment & Recycle'); +INSERT INTO gncoamapping VALUES('226.6','Other Reactor Plant Equipment Fluid Leak Detection Sys'); +INSERT INTO gncoamapping VALUES('226.7','Other Reactor Plant Equipment Aux Cool Sys'); +INSERT INTO gncoamapping VALUES('226.8','Other Reactor Plant Equipment Maintenance'); +INSERT INTO gncoamapping VALUES('226.81','Other Reactor Plant Equipment Maintenance Equipment'); +INSERT INTO gncoamapping VALUES('226.82','Other Reactor Plant Equipment Maintenance Equipment labor'); +INSERT INTO gncoamapping VALUES('226.9','Other Reactor Plant Equipment Sampling Equip'); +INSERT INTO gncoamapping VALUES('227','Reactor Instrumentation and Control (I&C)'); +INSERT INTO gncoamapping VALUES('227.11','Instrumentation '); +INSERT INTO gncoamapping VALUES('227.12','Reactor Control '); +INSERT INTO gncoamapping VALUES('228','Reactor Plant Miscellaneous Items'); +INSERT INTO gncoamapping VALUES('23','Energy Conversion System'); +INSERT INTO gncoamapping VALUES('232','Energy Applications'); +INSERT INTO gncoamapping VALUES('232.1','Electricity Generation Systems'); +INSERT INTO gncoamapping VALUES('232.2','Process Heat Export Equipment'); +INSERT INTO gncoamapping VALUES('233','Ultimate Heat Sink'); +INSERT INTO gncoamapping VALUES('233.1','Water Condensing Systems'); +INSERT INTO gncoamapping VALUES('233.11','Water Condensing Systems Structures'); +INSERT INTO gncoamapping VALUES('233.12','Water Condensing Systems Structures'); +INSERT INTO gncoamapping VALUES('233.21','Air-based Cooling Systems'); +INSERT INTO gncoamapping VALUES('233.22','Air-based Cooling Systems'); +INSERT INTO gncoamapping VALUES('234','Feed Heating Systems'); +INSERT INTO gncoamapping VALUES('236','Common Instrumentation & Controls'); +INSERT INTO gncoamapping VALUES('237','Miscellaneous Energy System Equipment'); +INSERT INTO gncoamapping VALUES('24','Electrical Equipment'); +INSERT INTO gncoamapping VALUES('241','Switchgear'); +INSERT INTO gncoamapping VALUES('242','Station Service Equipment'); +INSERT INTO gncoamapping VALUES('243','Switchboards'); +INSERT INTO gncoamapping VALUES('244','Protective Systems Equipment'); +INSERT INTO gncoamapping VALUES('245','Electrical Raceway Systems'); +INSERT INTO gncoamapping VALUES('246','Power and Control Cables and Wiring'); +INSERT INTO gncoamapping VALUES('26','Miscellaneous Equipment'); +INSERT INTO gncoamapping VALUES('261','Transportation and Lift Equipment'); +INSERT INTO gncoamapping VALUES('262','Air, Water, Plant Fuel Oil, and Steam Systems'); +INSERT INTO gncoamapping VALUES('262.1','Air, water and steam service systems'); +INSERT INTO gncoamapping VALUES('262.2','Waste water treatment '); +INSERT INTO gncoamapping VALUES('263','Furnishing and Fixtures'); +INSERT INTO gncoamapping VALUES('264','Miscellaneous Equipment'); +INSERT INTO gncoamapping VALUES('30','Capitalized Indirect Services Cost'); +INSERT INTO gncoamapping VALUES('34','Shipping and Transportation Costs'); +INSERT INTO gncoamapping VALUES('342','Reactor System Modules Shipping and Transportation'); +INSERT INTO gncoamapping VALUES('221.3','Non-fuel core internals'); +CREATE TABLE `heatpipe_account` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account_description` text, + `total_cost` REAL DEFAULT NULL, + `level` INTEGER DEFAULT NULL, + `supaccount` text, + `review_status` text, + `prn` REAL DEFAULT NULL, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO heatpipe_account VALUES(1,'2','TOTAL DIRECT COST',76831858.0,0,'','Unchanged',1.0); +INSERT INTO heatpipe_account VALUES(3,'211','Yardwork',2609431.0,2,'21','Unchanged',0.03395999999999999713); +INSERT INTO heatpipe_account VALUES(4,'212','Reactor containment',418694.0,2,'21','Unchanged',0.005449999999999999984); +INSERT INTO heatpipe_account VALUES(5,'213','Building and utilities',16301349.0,2,'21','Unchanged',0.2121699999999999975); +INSERT INTO heatpipe_account VALUES(6,'218T','Reactor startup facility',1027100.0,3,'218','Unchanged',0.01336999999999999995); +INSERT INTO heatpipe_account VALUES(7,'221.12','Outer vessel',103946.0,3,'221','Unchanged',0.001350000000000000071); +INSERT INTO heatpipe_account VALUES(8,'221.13','Inner vessel',318739.0,3,'221','Unchanged',0.004150000000000000043); +INSERT INTO heatpipe_account VALUES(9,'221.21','Reactivity control system',9043404.0,3,'221','Unchanged',0.1176999999999999991); +INSERT INTO heatpipe_account VALUES(10,'221.22','Reflector',3277300.0,3,'221','Unchanged',0.04265999999999999653); +INSERT INTO heatpipe_account VALUES(11,'221.23','Shield',3902600.0,3,'221','Unchanged',0.05079000000000000181); +INSERT INTO heatpipe_account VALUES(12,'221.24','Moderator',0.0,3,'221','Unchanged',0.0); +INSERT INTO heatpipe_account VALUES(13,'222.12','Reactor coolant system (heat pipes)',11340000.0,3,'222','Unchanged',0.1476000000000000089); +INSERT INTO heatpipe_account VALUES(14,'222.13','Heat exchangers',1254784.0,3,'222','Unchanged',0.01633000000000000076); +INSERT INTO heatpipe_account VALUES(15,'227','Instrumentation & control',8500000.0,2,'22','Unchanged',0.1106300000000000061); +INSERT INTO heatpipe_account VALUES(16,'231','Turbine and electric systems',18734511.0,2,'23','Unchanged',0.2438400000000000011); +INSERT INTO heatpipe_account VALUES(2,'2C','Calculated DIRECT COST',76831858.0,0,'','Unchanged',1.0); +CREATE TABLE `heatpipe_cost_element` ( + `ind` INTEGER NOT NULL, + `cost_element` text, + `cost_2017` REAL DEFAULT NULL, + `sup_cost_ele` text, + `alg_name` text, + `fun_unit` text, + `variables` text, + `account` text, + `algno` text, + `updated` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO heatpipe_cost_element VALUES(1,'211_lab',2609431.0,'21_lab','Yardwork_cost','million','land_surface_area','211','49',0); +INSERT INTO heatpipe_cost_element VALUES(2,'212_mat',10043.0,'21_mat','Reactor_containment_mat_cost','million','containment_subVolume','212','50',0); +INSERT INTO heatpipe_cost_element VALUES(3,'212_lab',408651.0,'21_lab','Reactor_containment_lab_cost','million','Containment_hole_volume','212','51',0); +INSERT INTO heatpipe_cost_element VALUES(4,'213_mat',6458349.0,'21_mat','Building_and_utilities_mat_cost','million','Turbine_building_surface_area','213','52',0); +INSERT INTO heatpipe_cost_element VALUES(5,'213_lab',9843000.0,'21_lab','Building_and_utilities_lab_cost','million','Distance_to_utilities, Number_of_shipping_containers','213','53',0); +INSERT INTO heatpipe_cost_element VALUES(6,'218T_fac',1027100.0,'21_fac','Reactor_startup_facility_cost','million','Battery_capacity_required','218T','54',0); +INSERT INTO heatpipe_cost_element VALUES(7,'221.12_mat',99430.0,'22_mat','Outer_vessel_mat_cost','million','primary_outer_vessel_SS_mass','221.12','55',0); +INSERT INTO heatpipe_cost_element VALUES(8,'221.12_lab',4516.0,'22_lab','Outer_vessel_lab_cost','million','primary_outer_vessel_SS_mass','221.12','56',0); +INSERT INTO heatpipe_cost_element VALUES(9,'221.13_mat',318739.0,'22_mat','Inner_vessel_cost','million','primary_inner_vessel_SS_mass','221.13','57',0); +INSERT INTO heatpipe_cost_element VALUES(10,'221.21_mat',9043404.0,'22_mat','Reactivity_control_system_cost','million','B4C_total_neutron_poison_mass_Kg, Number_of_control_rod_drums, number_of_emergency_control_rods','221.21','58',0); +INSERT INTO heatpipe_cost_element VALUES(11,'221.22_mat',3277300.0,'22_mat','Reflector_cost','million','stainless_steel_316_reflector_mass, Al2O3_reflector_mass, BeO_reflector_mass','221.22','59',0); +INSERT INTO heatpipe_cost_element VALUES(12,'221.23_mat',3902600.0,'22_mat','Shield_cost','million','shield_B4C_mass','221.23','60',0); +INSERT INTO heatpipe_cost_element VALUES(13,'221.24_mat',0.0,'22_mat','Moderator_cost','million','moderator_ZrH_mass','221.24','61',0); +INSERT INTO heatpipe_cost_element VALUES(14,'222.12_mat',11340000.0,'22_mat','cooling_heat_pipes_cost','million','number_of_core_cooling_heat_pipes, mass_production_cost_reduction_factor','222.12','62',0); +INSERT INTO heatpipe_cost_element VALUES(15,'222.13_mat',100000.0,'22_mat','heat_exchangers_mat_cost','million','number_of_heat_exchangers','222.13','63',0); +INSERT INTO heatpipe_cost_element VALUES(16,'222.13_lab',1060000.0,'22_lab','heat_exchangers_lab_cost','million','number_of_heat_exchangers','222.13','64',0); +INSERT INTO heatpipe_cost_element VALUES(17,'222.13_fac',94784.0,'22_fac','heat_exchangers_fac_cost','million','number_of_heat_exchangers, heat_exchangers_mass','222.13','65',0); +INSERT INTO heatpipe_cost_element VALUES(18,'227_fac',8500000.0,'22_fac','instrumentation_contorl_cost','million','number_of_IO_sensors','227','66',0); +INSERT INTO heatpipe_cost_element VALUES(19,'231_fac',18734511.0,'23_fac','turb_and_elec_sys_cost','million','mwth, mwe','231','67',0); +INSERT INTO heatpipe_cost_element VALUES(20,'2c_mat',34549864.0,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO heatpipe_cost_element VALUES(21,'2c_lab',13925597.0,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO heatpipe_cost_element VALUES(22,'2c_fac',28356395.0,'','NO_ALG','million','N/A','2','N/A',0); +CREATE TABLE `heatpipe_variable` ( + `ind` INTEGER NOT NULL, + `var_name` text, + `var_description` text, + `var_value` REAL DEFAULT NULL, + `var_unit` text, + `var_alg` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO heatpipe_variable VALUES(1,'land_surface_area','land surface area',32000.0,'squareMeter',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(2,'containment_subVolume','containment subVolume = ISO width* ISO length *ISO subheight',76.79999999999999716,'cubeMeter',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(3,'Containment_hole_volume','Containment hole volume = (2 concrete thickness * ISO width) * (2 concrete thickness * ISO length) * (2 concrete thickness * ISO sub_height) - ISO width *ISO length* ISO subheight ',446.3000000000000113,'cubeMeter',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(4,'Turbine_building_surface_area','Turbine building surface area',1000.0,'squareMeter',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(5,'Distance_to_utilities','Distance to utilities',1000.0,'m',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(6,'Number_of_shipping_containers','Number of shipping containers',0.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(7,'Battery_capacity_required','Battery capacity required',135.0,'kW',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(8,'primary_outer_vessel_SS_mass','primary outer vessel SS mass',0.2999999999999999889,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(9,'primary_inner_vessel_SS_mass','primary inner vessel SS mass',1.0,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(10,'B4C_total_neutron_poison_mass_Kg','B4C total neutron poison mass (Kg)',529.8999999999999773,'kg',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(11,'Number_of_control_rod_drums','Number of control rod drums',12.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(12,'number_of_emergency_control_rods','number of emergency control rods',2.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(13,'stainless_steel_316_reflector_mass','stainless steel 316 reflector mass',2.0,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(14,'Al2O3_reflector_mass','Al2O3 reflector mass',7.900000000000000355,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(15,'BeO_reflector_mass','BeO reflector mass',1.699999999999999956,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(16,'shield_B4C_mass','shield B4C mass',4108.5,'kg',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(17,'moderator_ZrH_mass','moderator ZrH mass',0.0,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(18,'mass_production_cost_reduction_factor','mass production cost reduction factor',0.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(19,'number_of_core_cooling_heat_pipes','number of core cooling heat pipes',1134.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(20,'number_of_heat_exchangers','number of heat exchangers',2.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(21,'heat_exchangers_mass','heat exchangers mass',0.4000000000000000222,'ton',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(22,'number_of_IO_sensors','number of IO sensors',1000.0,'1',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(23,'mwth','user_input mwth',5.0,'MW',NULL,NULL,NULL,0); +INSERT INTO heatpipe_variable VALUES(24,'mwe','user_input MWE',1.800000000000000044,'MW',NULL,NULL,NULL,0); +CREATE TABLE `lfr_account` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account_description` text, + `total_cost` REAL DEFAULT NULL, + `level` INTEGER DEFAULT NULL, + `supaccount` text, + `review_status` text, + `prn` REAL DEFAULT NULL, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO lfr_account VALUES(37,'2','TOTAL DIRECT COST',1419783854.0,0,'','Unchanged',1.0); +INSERT INTO lfr_account VALUES(1,'211','Yardwork',71213859.06000000238,2,'21','Unchanged',0.02762898000000000089); +INSERT INTO lfr_account VALUES(2,'212','Reactor containment building',81425435.32999999821,2,'21','Unchanged',0.07167560000000000598); +INSERT INTO lfr_account VALUES(3,'213','Turbine room and heater bay',24604390.80000000074,2,'21','Unchanged',0.02559466999999999993); +INSERT INTO lfr_account VALUES(4,'215','Primary auxiliary building and tunnels',12470000.0,2,'21','Unchanged',0.02042077000000000129); +INSERT INTO lfr_account VALUES(5,'216','Waste processing building',38750000.0,2,'21','Unchanged',0.01588292999999999997); +INSERT INTO lfr_account VALUES(6,'217','Fuel storage building',28149583.82000000029,2,'21','Unchanged',0.0109212500000000004); +INSERT INTO lfr_account VALUES(7,'218A','Control Room/Diesel Generator Building',16250000.0,3,'218','Unchanged',0.02000787999999999873); +INSERT INTO lfr_account VALUES(8,'220A.211','Vessel Structure (NSSS)',137000000.0,3,'220A','Unchanged',0.02715804999999999956); +INSERT INTO lfr_account VALUES(9,'220A.2121','Lower Internals (NSSS)',45204200.0,3,'220A','Unchanged',0.01232975000000000043); +INSERT INTO lfr_account VALUES(10,'220A.2122','Upper Internals (NSSS)',45204200.0,3,'220A','Unchanged',0.01232975000000000043); +INSERT INTO lfr_account VALUES(11,'220A.2131','Control Rods (NSSS)',1320000.0,3,'220A','Unchanged',0.001202710000000000063); +INSERT INTO lfr_account VALUES(12,'220A.2132','Control Rod Drives (NSSS)',13453440.0,3,'220A','Unchanged',0.01354023000000000032); +INSERT INTO lfr_account VALUES(13,'220A.221','Main Coolant Pumps (NSSS)',55696873.2899999991,3,'220A','Unchanged',0.0485896300000000017); +INSERT INTO lfr_account VALUES(14,'220A.222','Reactor Coolant Piping (NSSS)',7464800.0,3,'220A','Unchanged',0.004422879999999999693); +INSERT INTO lfr_account VALUES(15,'220A.223','Steam Generators (NSSS)',122087095.9000000059,3,'220A','Unchanged',0.05811821999999999822); +INSERT INTO lfr_account VALUES(16,'220A.224','Pressurizer (NSSS)',1379368.421000000089,3,'220A','Unchanged',0.003220170000000000063); +INSERT INTO lfr_account VALUES(21,'222','Main heat transfer transport system',8220525.703999999911,2,'22','Unchanged',0.01094260000000000024); +INSERT INTO lfr_account VALUES(17,'222.11','Fluid Circulation Drive System (Field Cost 222)',2504335.453000000212,3,'222','Unchanged',0.003333599999999999932); +INSERT INTO lfr_account VALUES(18,'222.12','Reactor Coolant Piping System (Field Cost 222)',4924232.686999999918,3,'222','Unchanged',0.006554800000000000383); +INSERT INTO lfr_account VALUES(19,'222.13','Steam Generator Equipment (Field Cost 222)',697187.717900000047,3,'222','Unchanged',0.000928050000000000033); +INSERT INTO lfr_account VALUES(20,'222.14','Pressurizing System (Field Cost 222)',94769.8455300000059,3,'222','Unchanged',0.0001261500000000000034); +INSERT INTO lfr_account VALUES(22,'224','Radwaste processing',59673441.34000000357,2,'22','Unchanged',0.02315162000000000122); +INSERT INTO lfr_account VALUES(23,'226.4','Coolant Treatment & Recycle',34304867.39000000059,3,'226','Unchanged',0.01581787999999999945); +INSERT INTO lfr_account VALUES(24,'226.7','Aux Cool Sys (Broken Down Further)',0.0,3,'226','Unchanged',0.02141536000000000134); +INSERT INTO lfr_account VALUES(25,'227','Reactor instrumentation and control',61419737.21999999881,2,'22','Unchanged',0.02382913999999999866); +INSERT INTO lfr_account VALUES(26,'231','Turbine generator',57399816.3500000015,2,'23','Unchanged',0.1481182799999999911); +INSERT INTO lfr_account VALUES(27,'233','Condensing systems',29065851.25,2,'23','Unchanged',0.03203929999999999973); +INSERT INTO lfr_account VALUES(28,'234','Feedwater heating system',0.0,2,'23','Unchanged',0.02607717999999999842); +INSERT INTO lfr_account VALUES(29,'235','Other turbine plant equipment',9563415.12099999934,2,'23','Unchanged',0.02467806999999999987); +INSERT INTO lfr_account VALUES(30,'241','Switchgear',21904347.80000000074,2,'24','Unchanged',0.01320649999999999949); +INSERT INTO lfr_account VALUES(31,'242','Station service equipment',36970984.97999999672,2,'24','Unchanged',0.02229041999999999829); +INSERT INTO lfr_account VALUES(32,'245','Electric structure and wiring contnr.',40891698.72999999672,2,'24','Unchanged',0.02465428999999999885); +INSERT INTO lfr_account VALUES(33,'246','Power and control wiring',37773534.78999999911,2,'24','Unchanged',0.02277430000000000079); +INSERT INTO lfr_account VALUES(34,'252','Air, water and steam service systems',81851078.87000000477,2,'25','Unchanged',0.03175591999999999999); +INSERT INTO lfr_account VALUES(35,'262','Mechanical equipment',44777444.42000000178,2,'26','Unchanged',0.04935819000000000317); +INSERT INTO lfr_account VALUES(36,'2C','Calculated DIRECT COST',1225489991.0,0,'','Unchanged',0.8631525100000000394); +INSERT INTO lfr_account VALUES(38,'311','Chilled Water Facilities',0.0,2,'31','Unchanged',0.0); +CREATE TABLE `lfr_cost_element` ( + `ind` INTEGER NOT NULL , + `cost_element` text, + `cost_2017` REAL DEFAULT NULL, + `sup_cost_ele` text, + `alg_name` text, + `fun_unit` text, + `variables` text, + `account` text, + `algno` text, + `updated` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO lfr_cost_element VALUES(1,'211_fac',810015.1700000000419,'21_fac','esc_1987','million','escalate_1987, ref_211_fac','211','12',0); +INSERT INTO lfr_cost_element VALUES(2,'212_fac',0.0,'21_fac','default_0','million','N/A','212','N/A',0); +INSERT INTO lfr_cost_element VALUES(3,'213_fac',660388.7199999999721,'21_fac','MWth_scale','million','c_213_fac, mwth, scale_0.8','213','8',0); +INSERT INTO lfr_cost_element VALUES(4,'215_fac',2121224.729999999982,'21_fac','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO lfr_cost_element VALUES(5,'216_fac',1756069.669999999926,'21_fac','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO lfr_cost_element VALUES(6,'217_fac',2842399.830000000074,'21_fac','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO lfr_cost_element VALUES(7,'218A_fac',1314294.080000000074,'218_fac','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO lfr_cost_element VALUES(8,'220A.211_fac',127380000.0,'220A_fac','NO_ALG','million','N/A','220A.211','N/A',0); +INSERT INTO lfr_cost_element VALUES(9,'220A.2121_fac',45204200.0,'220A_fac','unit_weights','million','c_zero, c_220A.2121_ss_weight','220A.2121','5',0); +INSERT INTO lfr_cost_element VALUES(10,'220A.2122_fac',45204200.0,'220A_fac','unit_weights','million','c_zero, c_220A.2122_ss_weight','220A.2122','5',0); +INSERT INTO lfr_cost_element VALUES(11,'220A.2131_fac',1320000.0,'220A_fac','unit_facility','million','no_of_cr, c_cr_per_unit_fac','220A.2131','16',0); +INSERT INTO lfr_cost_element VALUES(12,'220A.2132_fac',13453440.0,'220A_fac','unit_facility','million','no_of_crd, c_crd_per_unit_fac','220A.2132','16',0); +INSERT INTO lfr_cost_element VALUES(13,'220A.221_fac',55696873.2899999991,'220A_fac','unit_facility','million','no_of_rcpump, c_pump_per_unit_fac','220A.221','16',0); +INSERT INTO lfr_cost_element VALUES(14,'220A.222_fac',7464800.0,'220A_fac','unit_weights','million','c_zero, c_220A.222_ss_weight','220A.222','5',0); +INSERT INTO lfr_cost_element VALUES(15,'220A.223_fac',118647119.7699999959,'220A_fac','Sgsum','million','N/A','220A.223','N/A',0); +INSERT INTO lfr_cost_element VALUES(16,'220A.224_fac',1379368.419999999926,'220A_fac','MWth_lmfbrscale','million','r_78_220A224_fac, mwth, scale_1.0','220A.224','24',0); +INSERT INTO lfr_cost_element VALUES(17,'222.11_fac',1101963.790000000037,'222_fac','MWth_scale','million','c_222.11_fac, mwth, scale_1.0','222.11','8',0); +INSERT INTO lfr_cost_element VALUES(18,'222.12_fac',1280778.060000000055,'222_fac','MWth_scale','million','c_222.12_fac, mwth, scale_1.0','222.12','8',0); +INSERT INTO lfr_cost_element VALUES(19,'222.13_fac',21900.68000000000029,'222_fac','MWth_scale','million','c_222.13_fac, mwth, scale_1.0','222.13','8',0); +INSERT INTO lfr_cost_element VALUES(20,'222.14_fac',4380.140000000000328,'222_fac','MWth_scale','million','c_222.14_fac, mwth, scale_1.0','222.14','8',0); +INSERT INTO lfr_cost_element VALUES(21,'222_fac',2409022.680000000167,'22_fac','MWth_scale','million','c_222_fac, mwth, scale_1.0','222','8',0); +INSERT INTO lfr_cost_element VALUES(22,'224_fac',46047915.42999999971,'22_fac','esc_1987','million','escalate_1987, ref_224_fac','224','12',0); +INSERT INTO lfr_cost_element VALUES(23,'226.4_fac',34304867.39000000059,'226_fac','MWth_scale','million','r_78_226.4_fac, mwth, scale_1.0','226.4','8',0); +INSERT INTO lfr_cost_element VALUES(24,'226.7_fac',0.0,'226_fac','default_0','million','N/A','226.7','14',0); +INSERT INTO lfr_cost_element VALUES(25,'227_fac',37538349.96000000089,'22_fac','esc_1987','million','escalate_1987, ref_227_fac','227','12',0); +INSERT INTO lfr_cost_element VALUES(26,'231_fac',53544604.81000000239,'23_fac','dev_factor_ref','million','c_turbine, scale_tur_231_fac, scale_1.0','231','10',0); +INSERT INTO lfr_cost_element VALUES(27,'233_fac',19829554.55000000074,'23_fac','MWreth_scale','million','c_233_fac, mwreth, scale_0.8','233','25',0); +INSERT INTO lfr_cost_element VALUES(28,'234_fac',0.0,'23_fac','default_0','million','N/A','234','14',0); +INSERT INTO lfr_cost_element VALUES(29,'235_fac',4788444.349999999628,'23_fac','ptn_account','million','c_231_fac, prn_235_of_231_fac','235','4',0); +INSERT INTO lfr_cost_element VALUES(30,'241_fac',20635161.28000000119,'24_fac','MWe_scale','million','c_241_fac, mwe, scale_0.4','241','17',0); +INSERT INTO lfr_cost_element VALUES(31,'242_fac',33563126.13000000269,'24_fac','MWe_scale','million','c_242_fac, mwe, scale_0.4','242','17',0); +INSERT INTO lfr_cost_element VALUES(32,'245_fac',0.0,'24_fac','MWe_scale','million','c_245_fac, mwe, scale_0.4','245','17',0); +INSERT INTO lfr_cost_element VALUES(33,'246_fac',2902733.979999999982,'24_fac','MWe_scale','million','c_246_fac, mwe, scale_0.4','246','17',0); +INSERT INTO lfr_cost_element VALUES(34,'252_fac',24869567.30999999866,'25_fac','esc_1987','million','escalate_1987, ref_252_fac','252','12',0); +INSERT INTO lfr_cost_element VALUES(35,'262_fac',30555532.85000000149,'26_fac','MWreth_scale','million','c_262_fac, mwreth, scale_0.8','262','25',0); +INSERT INTO lfr_cost_element VALUES(36,'2c_fac',736246154.6200000048,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO lfr_cost_element VALUES(37,'211_lab',41328822.53999999911,'21_lab','esc_1987','million','escalate_1987, ref_211_lab','211','12',0); +INSERT INTO lfr_cost_element VALUES(38,'212_lab',43940775.97999999672,'21_lab','containment','million','Tot_Labor_containment','212','7',0); +INSERT INTO lfr_cost_element VALUES(39,'213_lab',11873274.11999999919,'21_lab','MWth_scale','million','c_213_lab, mwth, scale_0.8','213','8',0); +INSERT INTO lfr_cost_element VALUES(40,'215_lab',7101615.959999999963,'21_lab','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO lfr_cost_element VALUES(41,'216_lab',24337584.5,'21_lab','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO lfr_cost_element VALUES(42,'217_lab',12836637.90000000037,'21_lab','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO lfr_cost_element VALUES(43,'218A_lab',10038481.64000000059,'218_lab','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO lfr_cost_element VALUES(44,'220A.211_lab',8750000.0,'220A_lab','NO_ALG','million','N/A','220A.211','N/A',0); +INSERT INTO lfr_cost_element VALUES(45,'220A.2121_lab',0.0,'220A_lab','default_0','million','N/A','220A.2121','14',0); +INSERT INTO lfr_cost_element VALUES(46,'220A.2122_lab',0.0,'220A_lab','default_0','million','N/A','220A.2122','14',0); +INSERT INTO lfr_cost_element VALUES(47,'220A.2131_lab',0.0,'220A_lab','default_0','million','N/A','220A.2131','14',0); +INSERT INTO lfr_cost_element VALUES(48,'220A.2132_lab',0.0,'220A_lab','default_0','million','N/A','220A.2132','14',0); +INSERT INTO lfr_cost_element VALUES(49,'220A.221_lab',0.0,'220A_lab','default_0','million','N/A','220A.221','14',0); +INSERT INTO lfr_cost_element VALUES(50,'220A.222_lab',0.0,'220A_lab','default_0','million','N/A','220A.222','14',0); +INSERT INTO lfr_cost_element VALUES(51,'220A.223_lab',3173085.990000000223,'220A_lab','Sgsum','million','N/A','220A.223','N/A',0); +INSERT INTO lfr_cost_element VALUES(52,'220A.224_lab',0.0,'220A_lab','default_0','million','N/A','220A.224','14',0); +INSERT INTO lfr_cost_element VALUES(53,'222.11_lab',1274883.330000000074,'222_lab','MWth_scale','million','c_222.11_lab, mwth, scale_1.0','222.11','8',0); +INSERT INTO lfr_cost_element VALUES(54,'222.12_lab',3317279.459999999963,'222_lab','MWth_scale','million','c_222.12_lab, mwth, scale_1.0','222.12','8',0); +INSERT INTO lfr_cost_element VALUES(55,'222.13_lab',613897.3000000000465,'222_lab','MWth_scale','million','r_222.13_lab, mwth, scale_1.0','222.13','8',0); +INSERT INTO lfr_cost_element VALUES(56,'222.14_lab',82172.71000000000641,'222_lab','MWth_scale','million','c_222.14_lab, mwth, scale_1.0','222.14','8',0); +INSERT INTO lfr_cost_element VALUES(57,'222_lab',5288232.809999999591,'22_mat','MWth_scale','million','c_222_lab, mwth, scale_1.0','222','8',0); +INSERT INTO lfr_cost_element VALUES(58,'224_lab',11434348.55000000075,'22_lab','esc_1987','million','escalate_1987, ref_224_lab','224','12',0); +INSERT INTO lfr_cost_element VALUES(59,'226.4_lab',0.0,'226_lab','default_0','million','N/A','226.4','14',0); +INSERT INTO lfr_cost_element VALUES(60,'226.7_lab',0.0,'226_lab','default_0','million','N/A','226.7','14',0); +INSERT INTO lfr_cost_element VALUES(61,'227_lab',21960889.78999999911,'22_lab','esc_1987','million','escalate_1987, ref_227_lab','227','12',0); +INSERT INTO lfr_cost_element VALUES(62,'231_lab',588990.6500000000232,'23_lab','ptn_account','million','c_231_fac, prn_fac_231_lab','231','4',0); +INSERT INTO lfr_cost_element VALUES(63,'233_lab',8082642.160000000149,'23_lab','MWreth_scale','million','c_233_lab, mwreth, scale_0.8','233','25',0); +INSERT INTO lfr_cost_element VALUES(64,'234_lab',0.0,'23_lab','default_0','million','N/A','234','14',0); +INSERT INTO lfr_cost_element VALUES(65,'235_lab',4258930.480000000448,'23_lab','ptn_account','million','c_231_lab, prn_235_of_231_lab','235','4',0); +INSERT INTO lfr_cost_element VALUES(66,'241_lab',1107205.120000000112,'24_lab','MWe_scale','million','c_241_lab, mwe, scale_0.4','241','17',0); +INSERT INTO lfr_cost_element VALUES(67,'242_lab',2861071.439999999945,'24_lab','MWe_scale','million','c_242_lab, mwe, scale_0.4','242','17',0); +INSERT INTO lfr_cost_element VALUES(68,'245_lab',32970390.21999999881,'24_lab','MWe_scale','million','c_245_lab, mwe, scale_0.4','245','17',0); +INSERT INTO lfr_cost_element VALUES(69,'246_lab',21514837.92000000179,'24_lab','MWe_scale','million','c_246_lab, mwe, scale_0.4','246','17',0); +INSERT INTO lfr_cost_element VALUES(70,'252_lab',44371766.00999999792,'25_lab','esc_1987','million','escalate_1987, ref_252_lab','252','12',0); +INSERT INTO lfr_cost_element VALUES(71,'262_lab',12634376.80000000074,'26_lab','MWreth_scale','million','c_262_lab, mwreth, scale_0.8','262','25',0); +INSERT INTO lfr_cost_element VALUES(72,'2c_lab',330450874.5699999928,'','NO_ALG','million','N/A','2','N/A',0); +INSERT INTO lfr_cost_element VALUES(73,'211_mat',29075021.35000000149,'21_mat','esc_1987','million','escalate_1987, ref_211_mat','211','12',0); +INSERT INTO lfr_cost_element VALUES(74,'212_mat',37484659.34000000358,'21_mat','containment','million','Tot_Mat_containment','212','7',0); +INSERT INTO lfr_cost_element VALUES(75,'213_mat',12070727.96000000089,'21_mat','MWth_scale','million','c_213_mat, mwth, scale_0.8','213','8',0); +INSERT INTO lfr_cost_element VALUES(76,'215_mat',3247159.310000000055,'21_mat','NO_ALG','million','N/A','215','N/A',0); +INSERT INTO lfr_cost_element VALUES(77,'216_mat',12656345.83000000007,'21_mat','NO_ALG','million','N/A','216','N/A',0); +INSERT INTO lfr_cost_element VALUES(78,'217_mat',12470546.08999999986,'21_mat','NO_ALG','million','N/A','217','N/A',0); +INSERT INTO lfr_cost_element VALUES(79,'218A_mat',4897224.28000000026,'218_mat','NO_ALG','million','N/A','218A','N/A',0); +INSERT INTO lfr_cost_element VALUES(80,'220A.211_mat',870000.0,'220A_mat','NO_ALG','million','N/A','220A.211','N/A',0); +INSERT INTO lfr_cost_element VALUES(81,'220A.2121_mat',0.0,'220A_mat','default_0','million','N/A','220A.2121','14',0); +INSERT INTO lfr_cost_element VALUES(82,'220A.2122_mat',0.0,'220A_mat','default_0','million','N/A','220A.2122','14',0); +INSERT INTO lfr_cost_element VALUES(83,'220A.2131_mat',0.0,'220A_mat','default_0','million','N/A','220A.2131','14',0); +INSERT INTO lfr_cost_element VALUES(84,'220A.2132_mat',0.0,'220A_mat','default_0','million','N/A','220A.2132','14',0); +INSERT INTO lfr_cost_element VALUES(85,'220A.221_mat',0.0,'220A_mat','default_0','million','N/A','220A.221','14',0); +INSERT INTO lfr_cost_element VALUES(86,'220A.222_mat',0.0,'220A_mat','default_0','million','N/A','220A.222','14',0); +INSERT INTO lfr_cost_element VALUES(87,'220A.223_mat',266890.1599999999743,'220A_mat','Sgsum','million','N/A','220A.223','N/A',0); +INSERT INTO lfr_cost_element VALUES(88,'220A.224_mat',0.0,'220A_mat','default_0','million','N/A','220A.224','14',0); +INSERT INTO lfr_cost_element VALUES(89,'222.11_mat',127488.3300000000017,'222_mat','MWth_scale','million','c_222.11_mat, mwth, scale_1.0','222.11','8',0); +INSERT INTO lfr_cost_element VALUES(90,'222.12_mat',326175.1599999999743,'222_mat','MWth_scale','million','c_222.12_mat, mwth, scale_1.0','222.12','8',0); +INSERT INTO lfr_cost_element VALUES(91,'222.13_mat',61389.7300000000032,'222_mat','MWth_scale','million','r_222.13_mat, mwth, scale_1.0','222.13','8',0); +INSERT INTO lfr_cost_element VALUES(92,'222.14_mat',8217.0,'222_mat','MWth_scale','million','c_222.14_mat, mwth, scale_1.0','222.14','8',0); +INSERT INTO lfr_cost_element VALUES(93,'222_mat',523270.2199999999721,'22_mat','MWth_scale','million','c_222_mat, mwth, scale_1.0','222','8',0); +INSERT INTO lfr_cost_element VALUES(94,'224_mat',2191177.359999999869,'22_mat','esc_1987','million','escalate_1987, ref_224_mat','224','12',0); +INSERT INTO lfr_cost_element VALUES(95,'226.4_mat',0.0,'226_mat','default_0','million','N/A','226.4','14',0); +INSERT INTO lfr_cost_element VALUES(96,'226.7_mat',0.0,'226_mat','default_0','million','N/A','226.7','14',0); +INSERT INTO lfr_cost_element VALUES(97,'227_mat',1920497.469999999973,'22_mat','esc_1987','million','escalate_1987, ref_227_mat','227','12',0); +INSERT INTO lfr_cost_element VALUES(98,'231_mat',3266220.89000000013,'23_mat','ptn_account','million','c_231_fac, prn_fac_231_mat','231','4',0); +INSERT INTO lfr_cost_element VALUES(99,'233_mat',1153654.540000000037,'23_mat','MWreth_scale','million','c_233_mat, mwreth, scale_0.8','233','25',0); +INSERT INTO lfr_cost_element VALUES(100,'234_mat',0.0,'23_mat','default_0','million','N/A','234','14',0); +INSERT INTO lfr_cost_element VALUES(101,'235_mat',516040.2899999999791,'23_mat','ptn_account','million','c_231_mat, prn_235_of_231_mat','235','4',0); +INSERT INTO lfr_cost_element VALUES(102,'241_mat',161981.3999999999942,'24_mat','MWe_scale','million','c_241_mat, mwe, scale_0.4','241','17',0); +INSERT INTO lfr_cost_element VALUES(103,'242_mat',546787.4100000000325,'24_mat','MWe_scale','million','c_242_mat, mwe, scale_0.4','242','17',0); +INSERT INTO lfr_cost_element VALUES(104,'245_mat',7921308.519999999553,'24_mat','MWe_scale','million','c_245_mat, mwe, scale_0.4','245','17',0); +INSERT INTO lfr_cost_element VALUES(105,'246_mat',13355962.89000000059,'24_mat','MWe_scale','million','c_246_mat, mwe, scale_0.4','246','17',0); +INSERT INTO lfr_cost_element VALUES(106,'252_mat',12609745.55000000074,'25_mat','esc_1987','million','escalate_1987, ref_252_mat','252','12',0); +INSERT INTO lfr_cost_element VALUES(107,'262_mat',1587534.770000000018,'26_mat','MWreth_scale','million','c_262_mat, mwreth, scale_0.8','262','25',0); +INSERT INTO lfr_cost_element VALUES(108,'2c_mat',158795865.4799999893,'','NO_ALG','million','N/A','2','N/A',0); +CREATE TABLE `lfr_variable` ( + `ind` INTEGER NOT NULL , + `var_name` text, + `var_description` text, + `var_value` REAL DEFAULT NULL, + `var_unit` text, + `var_alg` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO lfr_variable VALUES(1,'c_213_fac','Turbine building structure factory cost',1.770664299999999969,'million','','','',0); +INSERT INTO lfr_variable VALUES(2,'c_213_lab','Turbine building structure labor cost',31.8351620000000004,'million','','','',0); +INSERT INTO lfr_variable VALUES(3,'c_213_mat','Turbine building structure material cost',32.36458499999999817,'million','','','',0); +INSERT INTO lfr_variable VALUES(4,'c_220A.2121_ss_weight','weight of the stainless steel lower internals',145.8199999999999932,'ton','','','',0); +INSERT INTO lfr_variable VALUES(5,'c_220A.2122_ss_weight','weight of the stainless steel upper internals',145.8199999999999932,'ton','','','',0); +INSERT INTO lfr_variable VALUES(6,'c_220A.222_ss_weight','weight of the stainless steel reactor coolant piping',24.0799999999999983,'ton','','','',0); +INSERT INTO lfr_variable VALUES(7,'c_222_fac','Main heat transfer transport system factory cost',8.265356804999999695,'million','','','',0); +INSERT INTO lfr_variable VALUES(8,'c_222_lab','Main heat transfer transport system labor cost',18.14392674999999854,'million','','','',0); +INSERT INTO lfr_variable VALUES(9,'c_222_mat','Main heat transfer transport system material cost',1.795340115999999986,'million','','','',0); +INSERT INTO lfr_variable VALUES(10,'c_222.11_fac','Fluid Circulation Drive System (Field Cost 222) factory cost',3.78083778199999987,'million','','','',0); +INSERT INTO lfr_variable VALUES(11,'c_222.11_lab','Fluid Circulation Drive System (Field Cost 222) labor cost',4.374124686000000039,'million','','','',0); +INSERT INTO lfr_variable VALUES(12,'c_222.11_mat','Fluid Circulation Drive System (Field Cost 222) material cost',0.437412469000000026,'million','','','',0); +INSERT INTO lfr_variable VALUES(13,'c_222.12_fac','Reactor Coolant Piping System (Field Cost 222) factory cost',4.394349539000000248,'million','','','',0); +INSERT INTO lfr_variable VALUES(14,'c_222.12_lab','Reactor Coolant Piping System (Field Cost 222) labor cost',11.38158583999999963,'million','','','',0); +INSERT INTO lfr_variable VALUES(15,'c_222.12_mat','Reactor Coolant Piping System (Field Cost 222) material cost',1.119106973999999921,'million','','','',0); +INSERT INTO lfr_variable VALUES(16,'c_222.13_fac','Steam Generator Equipment (Field Cost 222) factory cost',0.7514123999999999804,'million','','','',0); +INSERT INTO lfr_variable VALUES(17,'c_222.14_fac','Pressurizing System (Field Cost 222) factory cost',0.01502824699999999979,'million','','','',0); +INSERT INTO lfr_variable VALUES(18,'c_222.14_lab','Pressurizing System (Field Cost 222) labor cost',0.2819345759999999924,'million','','','',0); +INSERT INTO lfr_variable VALUES(19,'c_222.14_mat','Pressurizing System (Field Cost 222) material cost',0.02819250800000000153,'million','','','',0); +INSERT INTO lfr_variable VALUES(20,'c_231_fac','Turbine factory cost',53.54460481000000272,'million','','','',0); +INSERT INTO lfr_variable VALUES(21,'c_231_lab','Turbine labor cost',0.5889906529999999752,'million','','','',0); +INSERT INTO lfr_variable VALUES(22,'c_231_mat','Turbine material cost',3.266220890000000043,'million','','','',0); +INSERT INTO lfr_variable VALUES(23,'c_233_fac','Condensing Systems factory cost',56.33944199999999825,'million','','','',0); +INSERT INTO lfr_variable VALUES(24,'c_233_lab','Condensing Systems labor cost',22.96428500000000028,'million','','','',0); +INSERT INTO lfr_variable VALUES(25,'c_233_mat','Condensing Systems material cost',3.277746500000000118,'million','','','',0); +INSERT INTO lfr_variable VALUES(26,'c_241_fac','Switchgear factory cost',32.06748044999999792,'million','','','',0); +INSERT INTO lfr_variable VALUES(27,'c_241_lab','Switchgear labor cost',1.720620352999999936,'million','','','',0); +INSERT INTO lfr_variable VALUES(28,'c_241_mat','Switchgear material cost',0.2517225510000000165,'million','','','',0); +INSERT INTO lfr_variable VALUES(29,'c_242_fac','Station service equipment factory cost',52.15781338000000033,'million','','','',0); +INSERT INTO lfr_variable VALUES(30,'c_242_lab','Station service equipment labor cost',4.446166005000000254,'million','','','',0); +INSERT INTO lfr_variable VALUES(31,'c_242_mat','Station service equipment material cost',0.8497192869999999898,'million','','','',0); +INSERT INTO lfr_variable VALUES(32,'c_245_fac','Electric structure and wiring contnr. factory cost',0.0,'million','','','',0); +INSERT INTO lfr_variable VALUES(33,'c_245_lab','Electric structure and wiring contnr. labor cost',51.23668914000000285,'million','','','',0); +INSERT INTO lfr_variable VALUES(34,'c_245_mat','Electric structure and wiring contnr. material cost',12.30988226999999924,'million','','','',0); +INSERT INTO lfr_variable VALUES(35,'c_246_fac','Power and control wiring factory cost',4.5109104689999997,'million','','','',0); +INSERT INTO lfr_variable VALUES(36,'c_246_lab','Power and control wiring labor cost',33.4345167000000032,'million','','','',0); +INSERT INTO lfr_variable VALUES(37,'c_246_mat','Power and control wiring material cost',20.75545101000000159,'million','','','',0); +INSERT INTO lfr_variable VALUES(38,'c_262_fac','Heat Rejection System factory cost',86.81393497999999909,'million','','','',0); +INSERT INTO lfr_variable VALUES(39,'c_262_lab','Heat Rejection System labor cost',35.89660736999999813,'million','','','',0); +INSERT INTO lfr_variable VALUES(40,'c_262_mat','Heat Rejection System material cost',4.510480682999999936,'million','','','',0); +INSERT INTO lfr_variable VALUES(41,'c_cr_per_unit_fac','unit cost of rod',0.05999999999999999778,'million','','','',0); +INSERT INTO lfr_variable VALUES(42,'c_crd_per_unit_fac','unit cost of rod drive',0.6115199999999999526,'million','','','',0); +INSERT INTO lfr_variable VALUES(43,'c_pump_ap1000','AP1000 factory cost of main coolant pumps',31.25,'million','','','c_pump_per_unit_fac',0); +INSERT INTO lfr_variable VALUES(44,'c_pump_per_unit_fac','Reactor coolant pumps Factory Equipment Cost',13.9242183199999996,'million','pump','c_pump_ap1000,CH_abr1000,CH_AP1000,scale_0.52','',0); +INSERT INTO lfr_variable VALUES(45,'c_turbine','Turbine equipment cost',52.64956225000000246,'million','','','',0); +INSERT INTO lfr_variable VALUES(46,'c_zero','place holder for weight',0.0,'ton','','','',0); +INSERT INTO lfr_variable VALUES(47,'CH_abr1000','CH factor of PWR-12 BE',6072830.0,'gpm*feet','','','c_pump_per_unit_fac',0); +INSERT INTO lfr_variable VALUES(48,'CH_AP1000','CH factor of AP1000',28743750.0,'gpm*feet','','','c_pump_per_unit_fac',0); +INSERT INTO lfr_variable VALUES(49,'escalate_1987','escalator 1987 to 2017',2.849406999999999802,'1','','','',0); +INSERT INTO lfr_variable VALUES(50,'mwe','user_input MWE',0.0,'MW','','','',0); +INSERT INTO lfr_variable VALUES(51,'mwreth','rejected thermal power',620.0,'MW','','','',0); +INSERT INTO lfr_variable VALUES(52,'mwth','user_input mwth',0.0,'MW','','','',0); +INSERT INTO lfr_variable VALUES(53,'no_of_cr','Total control rods',22.0,'1','','','',0); +INSERT INTO lfr_variable VALUES(54,'no_of_crd','Total control rod drives',22.0,'1','','','',0); +INSERT INTO lfr_variable VALUES(55,'no_of_rcpump','total number of reactor coolant pumps',4.0,'1','','','',0); +INSERT INTO lfr_variable VALUES(56,'prn_235_of_231_fac','factory portion of cost from factory of 231',0.08945484200000000663,'1','','','',0); +INSERT INTO lfr_variable VALUES(57,'prn_235_of_231_lab','labor portion of cost from labor of 231',1.302615598000000041,'1','','','',0); +INSERT INTO lfr_variable VALUES(58,'prn_235_of_231_mat','material portion of cost from labor of 231',0.8584733789999999809,'1','','','',0); +INSERT INTO lfr_variable VALUES(59,'prn_fac_231_lab','labor portion of cost from factory of 231',0.06099999999999999867,'1','','','',0); +INSERT INTO lfr_variable VALUES(60,'prn_fac_231_mat','material portion of cost from factory of 231',0.01119999999999999989,'1','','','',0); +INSERT INTO lfr_variable VALUES(61,'r_222.13_lab','labor cost of Steam Generator Equipment (Field Cost 222)',2.106279999999999931,'million','','','',0); +INSERT INTO lfr_variable VALUES(62,'r_222.13_mat','material cost of Steam Generator Equipment (Field Cost 222)',0.2106280000000000096,'million','','','',0); +INSERT INTO lfr_variable VALUES(63,'r_78_220A224_fac','factory cost of pressurizer in ref',5.241600000000000036,'million','','','',0); +INSERT INTO lfr_variable VALUES(64,'r_78_226.4_fac','Coolant Treatment & Recycle factory cost',117.7000000000000028,'million','','','',0); +INSERT INTO lfr_variable VALUES(65,'ref_211_fac','yardwork factory cost',0.284275,'million','','','',0); +INSERT INTO lfr_variable VALUES(66,'ref_211_lab','yardwork labor cost',14.50435899999999912,'million','','','',0); +INSERT INTO lfr_variable VALUES(67,'ref_211_mat','yardwork material cost',10.20388499999999965,'million','','','',0); +INSERT INTO lfr_variable VALUES(68,'ref_224_fac','Radwaste processing factory cost',16.16052583000000097,'million','','','',0); +INSERT INTO lfr_variable VALUES(69,'ref_224_lab','Radwaste processing labor cost',4.012887082999999855,'million','','','',0); +INSERT INTO lfr_variable VALUES(70,'ref_224_mat','Radwaste processing material cost',0.7689941670000000062,'million','','','',0); +INSERT INTO lfr_variable VALUES(71,'ref_227_fac','Reactor instrumentation and control factory cost',13.17409199999999992,'million','','','',0); +INSERT INTO lfr_variable VALUES(72,'ref_227_lab','Reactor instrumentation and control labor cost',7.707179000000000002,'million','','','',0); +INSERT INTO lfr_variable VALUES(73,'ref_227_mat','Reactor instrumentation and control material cost',0.6739990000000000147,'million','','','',0); +INSERT INTO lfr_variable VALUES(74,'ref_252_fac','Air, water and steam service systems factory cost ',8.727980000000000516,'million','','','',0); +INSERT INTO lfr_variable VALUES(75,'ref_252_lab','Air, water and steam service systems labor cost ',15.57228100000000026,'million','','','',0); +INSERT INTO lfr_variable VALUES(76,'ref_252_mat','Air, water and steam service systems material cost ',4.425392999999999688,'million','','','',0); +INSERT INTO lfr_variable VALUES(77,'scale_0.4','electric scale 0.4',0.4000000000000000222,'1','','','',0); +INSERT INTO lfr_variable VALUES(78,'scale_0.52','SH scale 1.0',0.5200000000000000177,'1','','','c_pump_per_unit_fac',0); +INSERT INTO lfr_variable VALUES(79,'scale_0.8','thermal scale 0.8',0.8000000000000000444,'1','','','',0); +INSERT INTO lfr_variable VALUES(80,'scale_1.0','thermal scale 1.0',1.0,'1','','','',0); +INSERT INTO lfr_variable VALUES(81,'scale_tur_231_fac','factory scale of cost from turbine',1.016999999999999904,'1','','','',0); +INSERT INTO lfr_variable VALUES(82,'CPI','The Consumer Price Index',2.200000000000000178,'1','','','infl',0); +INSERT INTO lfr_variable VALUES(83,'Void_fraction','Void fraction of the inside of the containment ',0.9170000000000000373,'1','','','Internal_v_m3',0); +INSERT INTO lfr_variable VALUES(84,'liner_fraction','liner fraction of containment',1.0,'1','','','Liner_s_m2',0); +INSERT INTO lfr_variable VALUES(85,'Cont_H_tot_m','Containment total height ',50.59680000000000177,'m','','','Cont_H_wall_m',0); +INSERT INTO lfr_variable VALUES(86,'Cont_rad_out_m','Containment outside radius ',15.24000000000000021,'m','','','Cont_H_wall_m,Cont_rad_in_m,Basemat_s_m2,Walls_s_m2,Walls_v_m3,Dome_rad_in_m,Dome_s_m2,Dome_v_m3,Surf_paint_m2',0); +INSERT INTO lfr_variable VALUES(87,'Cont_shell_t_m','Shell wall thickness ',1.371599999999999931,'m','','','Cont_rad_in_m',0); +INSERT INTO lfr_variable VALUES(88,'Cont_H_wall_m','Containment wall height ',35.35679999999999979,'m','wall_height','Cont_H_tot_m,Cont_rad_out_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s,Surf_paint_m2',0); +INSERT INTO lfr_variable VALUES(89,'Basemat_t_m','Basemat thickness ',3.048000000000000042,'m','','','Basemat_v_m3',0); +INSERT INTO lfr_variable VALUES(90,'Dome_t_m','Dome thickness ',1.066799999999999971,'m','','','Dome_rad_in_m',0); +INSERT INTO lfr_variable VALUES(91,'Intern_wall_t','Internal wall average thickness ',1.219200000000000061,'m','','','Internal_s_m2',0); +INSERT INTO lfr_variable VALUES(92,'React_cav_A_m2','Reactor cavity area ',1021.933440000000018,'m^2','','','Total_Labor_React_cav_liner,Total_Mat_React_cav_liner',0); +INSERT INTO lfr_variable VALUES(93,'Cont_rad_in_m','Containment inside radius ',13.8683999999999994,'m','inside_rad','Cont_rad_out_m,Cont_shell_t_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s',0); +INSERT INTO lfr_variable VALUES(94,'Basemat_s_m2','Basemat surface',729.6587699000000385,'m^2','round_surface','Cont_rad_out_m','Basemat_v_m3,Total_Labor_Constr_joints_Substr,Total_Labor_Formwork_Substr,Total_Labor_Waterproofing_Substr,Total_Labor_Welded_wire_fabric_Substr,Total_Mat_Constr_joints_Substr,Total_Mat_Formwork_Substr,Total_Mat_Waterproofing_Substr,Total_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO lfr_variable VALUES(95,'Basemat_v_m3','Basemat volume',2223.999930999999833,'m^3','basemat_volume','Basemat_s_m2,Basemat_t_m','Struct_v_m3,Total_Labor_Cadweld_Substr,Total_Labor_Concrete_Substr,Total_Labor_Embedded_steel_Substr,Total_Labor_Reinforc_steel_Substr,Total_Mat_Cadweld_Substr,Total_Mat_Concrete_Substr,Total_Mat_Embedded_steel_Substr,Total_Mat_Reinforc_steel_Substr',0); +INSERT INTO lfr_variable VALUES(96,'Walls_s_m2','Walls surface',6466.527882000000317,'m^2','walls_surface','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Total_Labor_Constr_joints_Superstr,Total_Labor_Formwork_Superstr,Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Waterproofing_Superstr,Total_Mat_Constr_joints_Superstr,Total_Mat_Formwork_Superstr,Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Waterproofing_Superstr',0); +INSERT INTO lfr_variable VALUES(97,'Walls_v_m3','Walls volume',4434.744821999999658,'m^3','wall_volume','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Superstr,Total_Labor_Concrete_Superstr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Reinforc_steel_Superstr,Total_Mat_Cadweld_Superstr,Total_Mat_Concrete_Superstr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Reinforc_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(98,'Dome_rad_in_m','Dome inside radius ',14.17319999999999958,'m','inside_rad','Cont_rad_out_m,Dome_t_m','Dome_s_m2,Dome_v_m3,Intern_tot_v_m3,Inside_liner_s',0); +INSERT INTO lfr_variable VALUES(99,'Dome_s_m2','Roof surface',2721.48127999999997,'m^2','roof_surface','Cont_rad_out_m,Dome_rad_in_m','Total_Labor_Constr_joints_Dome,Total_Labor_Formwork_Dome,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Waterproofing_Dome,Total_Mat_Constr_joints_Dome,Total_Mat_Formwork_Dome,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Waterproofing_Dome',0); +INSERT INTO lfr_variable VALUES(100,'Dome_v_m3','Roof volume',1450.366727999999967,'m^3','roof_volume','Cont_rad_out_m,Dome_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Dome,Total_Labor_Concrete_Dome,Total_Labor_Embedded_steel_Dome,Total_Labor_Reinforc_steel_Dome,Total_Mat_Cadweld_Dome,Total_Mat_Concrete_Dome,Total_Mat_Embedded_steel_Dome,Total_Mat_Reinforc_steel_Dome',0); +INSERT INTO lfr_variable VALUES(101,'Intern_tot_v_m3','Tot intenal Volume',27326.62074999999823,'m^3','tot_internal_volume','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Internal_v_m3,Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other,Total_Labor_fl_grate_handrail_stairs,Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other,Total_Mat_fl_grate_handrail_stairs',0); +INSERT INTO lfr_variable VALUES(102,'Internal_v_m3','Building internal volume',2268.109522000000198,'m^3','building_internal_volume','Intern_tot_v_m3,Void_fraction','Internal_s_m2,Struct_v_m3,Total_Labor_Cadweld_Interior,Total_Labor_Concrete_Interior,Total_Labor_Embedded_steel_Interior,Total_Labor_Maj_supp_embedments_Interior,Total_Labor_Reinforc_steel_Interior,Total_Mat_Cadweld_Interior,Total_Mat_Concrete_Interior,Total_Mat_Embedded_steel_Interior,Total_Mat_Maj_supp_embedments_Interior,Total_Mat_Reinforc_steel_Interior',0); +INSERT INTO lfr_variable VALUES(103,'Internal_s_m2','Building internal surface',3720.652102999999898,'m^2','building_internal _surface','Internal_v_m3,Intern_wall_t','Surf_paint_m2,Total_Labor_Constr_joints_Interior,Total_Labor_Formwork_Interior,Total_Labor_Rubbing_surfaces_Interior,Total_Mat_Constr_joints_Interior,Total_Mat_Formwork_Interior,Total_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO lfr_variable VALUES(104,'Struct_v_m3','volume of the structures ',10377.22099999999955,'m^3','volume_of_the_structures ','Basemat_v_m3,Walls_v_m3,Dome_v_m3,Internal_v_m3','Total_Labor_Misc_steel_frames,Total_Labor_Struct_steel,Total_Mat_Misc_steel_frames,Total_Mat_Struct_steel',0); +INSERT INTO lfr_variable VALUES(105,'Inside_liner_s','Inside liner surface',4947.305357999999615,'m^2','Inside_liner_surface','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Liner_s_m2,Surf_paint_m2,',0); +INSERT INTO lfr_variable VALUES(106,'Liner_s_m2','Liner Surface',4947.305357999999615,'m^2','liner_Surface','Inside_liner_s,liner_fraction','Total_Labor_cont_liner,Total_Mat_cont_liner',0); +INSERT INTO lfr_variable VALUES(107,'Surf_paint_m2','painted surface',13512.89169000000038,'m^2','painted_surface','Inside_liner_s,Cont_H_wall_m,Cont_rad_out_m,Internal_s_m2','Total_Labor_painting,Total_Mat_painting',0); +INSERT INTO lfr_variable VALUES(108,'infl','Inflation rate',2.870501003999999857,'1','Inflation_rate','CPI','Unit_Labor_Cadweld_Substr,Unit_Labor_Cadweld_Superstr,Unit_Labor_Cadweld_Dome,Unit_Labor_Cadweld_Interior,Unit_Labor_Concrete_Substr,Unit_Labor_Concrete_Superstr,Unit_Labor_Concrete_Dome,Unit_Labor_Concrete_Interior,Unit_Labor_Constr_joints_Substr,Unit_Labor_Constr_joints_Superstr,Unit_Labor_Constr_joints_Dome,Unit_Labor_Constr_joints_Interior,Unit_Labor_Embedded_steel_Substr,Unit_Labor_Embedded_steel_Superstr,Unit_Labor_Embedded_steel_Dome,Unit_Labor_Embedded_steel_Interior,Unit_Labor_Formwork_Substr,Unit_Labor_Formwork_Superstr,Unit_Labor_Formwork_Dome,Unit_Labor_Formwork_Interior,Unit_Labor_Maj_supp_embedments_Interior,Unit_Labor_Reinforc_steel_Substr,Unit_Labor_Reinforc_steel_Superstr,Unit_Labor_Reinforc_steel_Dome,Unit_Labor_Reinforc_steel_Interior,Unit_Labor_Rubbing_surfaces_Superstr,Unit_Labor_Rubbing_surfaces_Dome,Unit_Labor_Rubbing_surfaces_Interior,Unit_Labor_Waterproofing_Substr,Unit_Labor_Waterproofing_Superstr,Unit_Labor_Waterproofing_Dome,Unit_Labor_Welded_wire_fabric_Substr,Unit_Labor_Lighting_Power,Unit_Labor_Plumb_drains,Unit_Labor_Special_HVAC,Unit_Labor_other,Unit_Labor_Misc_steel_frames,Unit_Labor_React_cav_liner,Unit_Labor_Struct_steel,Unit_Labor_cont_liner,Unit_Labor_fl_grate_handrail_stairs,Unit_Labor_painting,Unit_Mat_Cadweld_Substr,Unit_Mat_Cadweld_Superstr,Unit_Mat_Cadweld_Dome,Unit_Mat_Cadweld_Interior,Unit_Mat_Concrete_Substr,Unit_Mat_Concrete_Superstr,Unit_Mat_Concrete_Dome,Unit_Mat_Concrete_Interior,Unit_Mat_Constr_joints_Substr,Unit_Mat_Constr_joints_Superstr,Unit_Mat_Constr_joints_Dome,Unit_Mat_Constr_joints_Interior,Unit_Mat_Embedded_steel_Substr,Unit_Mat_Embedded_steel_Superstr,Unit_Mat_Embedded_steel_Dome,Unit_Mat_Embedded_steel_Interior,Unit_Mat_Formwork_Substr,Unit_Mat_Formwork_Superstr,Unit_Mat_Formwork_Dome,Unit_Mat_Formwork_Interior,Unit_Mat_Maj_supp_embedments_Interior,Unit_Mat_Reinforc_steel_Substr,Unit_Mat_Reinforc_steel_Superstr,Unit_Mat_Reinforc_steel_Dome,Unit_Mat_Reinforc_steel_Interior,Unit_Mat_Rubbing_surfaces_Superstr,Unit_Mat_Rubbing_surfaces_Dome,Unit_Mat_Rubbing_surfaces_Interior,Unit_Mat_Waterproofing_Substr,Unit_Mat_Waterproofing_Superstr,Unit_Mat_Waterproofing_Dome,Unit_Mat_Welded_wire_fabric_Substr,Unit_Mat_Lighting_Power,Unit_Mat_Plumb_drains,Unit_Mat_Special_HVAC,Unit_Mat_other,Unit_Mat_Misc_steel_frames,Unit_Mat_React_cav_liner,Unit_Mat_Struct_steel,Unit_Mat_cont_liner,Unit_Mat_fl_grate_handrail_stairs,Unit_Mat_painting',0); +INSERT INTO lfr_variable VALUES(109,'Unit_EEDB_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in EEDB',85.45999999999999374,'dollar/m^3','','','Unit_Labor_Cadweld_Substr',0); +INSERT INTO lfr_variable VALUES(110,'Unit_EEDB_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in EEDB',114.6200000000000045,'dollar/m^3','','','Unit_Labor_Cadweld_Superstr',0); +INSERT INTO lfr_variable VALUES(111,'Unit_EEDB_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in EEDB',231.0900000000000034,'dollar/m^3','','','Unit_Labor_Cadweld_Dome',0); +INSERT INTO lfr_variable VALUES(112,'Unit_EEDB_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in EEDB',48.20000000000000284,'dollar/m^3','','','Unit_Labor_Cadweld_Interior',0); +INSERT INTO lfr_variable VALUES(113,'Unit_EEDB_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in EEDB',72.51999999999999603,'dollar/m^3','','','Unit_Labor_Concrete_Substr',0); +INSERT INTO lfr_variable VALUES(114,'Unit_EEDB_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in EEDB',87.39000000000000056,'dollar/m^3','','','Unit_Labor_Concrete_Superstr',0); +INSERT INTO lfr_variable VALUES(115,'Unit_EEDB_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in EEDB',78.01999999999999603,'dollar/m^3','','','Unit_Labor_Concrete_Dome',0); +INSERT INTO lfr_variable VALUES(116,'Unit_EEDB_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in EEDB',97.5699999999999931,'dollar/m^3','','','Unit_Labor_Concrete_Interior',0); +INSERT INTO lfr_variable VALUES(117,'Unit_EEDB_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in EEDB',14.50999999999999979,'dollar/m^2','','','Unit_Labor_Constr_joints_Substr',0); +INSERT INTO lfr_variable VALUES(118,'Unit_EEDB_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in EEDB',12.43999999999999951,'dollar/m^2','','','Unit_Labor_Constr_joints_Superstr',0); +INSERT INTO lfr_variable VALUES(119,'Unit_EEDB_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in EEDB',4.75,'dollar/m^2','','','Unit_Labor_Constr_joints_Dome',0); +INSERT INTO lfr_variable VALUES(120,'Unit_EEDB_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in EEDB',2.049999999999999822,'dollar/m^2','','','Unit_Labor_Constr_joints_Interior',0); +INSERT INTO lfr_variable VALUES(121,'Unit_EEDB_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in EEDB',3.979999999999999983,'dollar/m^3','','','Unit_Labor_Embedded_steel_Substr',0); +INSERT INTO lfr_variable VALUES(122,'Unit_EEDB_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in EEDB',15.98000000000000042,'dollar/m^3','','','Unit_Labor_Embedded_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(123,'Unit_EEDB_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in EEDB',0.0,'dollar/m^3','','','Unit_Labor_Embedded_steel_Dome',0); +INSERT INTO lfr_variable VALUES(124,'Unit_EEDB_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in EEDB',337.1399999999999864,'dollar/m^3','','','Unit_Labor_Embedded_steel_Interior',0); +INSERT INTO lfr_variable VALUES(125,'Unit_EEDB_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in EEDB',93.1099999999999995,'dollar/m^2','','','Unit_Labor_Formwork_Substr',0); +INSERT INTO lfr_variable VALUES(126,'Unit_EEDB_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in EEDB',109.8299999999999983,'dollar/m^2','','','Unit_Labor_Formwork_Superstr',0); +INSERT INTO lfr_variable VALUES(127,'Unit_EEDB_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in EEDB',58.65999999999999659,'dollar/m^2','','','Unit_Labor_Formwork_Dome',0); +INSERT INTO lfr_variable VALUES(128,'Unit_EEDB_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in EEDB',231.5200000000000102,'dollar/m^2','','','Unit_Labor_Formwork_Interior',0); +INSERT INTO lfr_variable VALUES(129,'Unit_EEDB_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in EEDB',153.5300000000000011,'dollar/m^3','','','Unit_Labor_Maj_supp_embedments_Interior',0); +INSERT INTO lfr_variable VALUES(130,'Unit_EEDB_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in EEDB',322.5500000000000113,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Substr',0); +INSERT INTO lfr_variable VALUES(131,'Unit_EEDB_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in EEDB',326.1299999999999955,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(132,'Unit_EEDB_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in EEDB',300.5600000000000022,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Dome',0); +INSERT INTO lfr_variable VALUES(133,'Unit_EEDB_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in EEDB',306.7200000000000273,'dollar/m^3','','','Unit_Labor_Reinforc_steel_Interior',0); +INSERT INTO lfr_variable VALUES(134,'Unit_EEDB_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in EEDB',8.320000000000000284,'dollar/m^2','','','Unit_Labor_Rubbing_surfaces_Superstr',0); +INSERT INTO lfr_variable VALUES(135,'Unit_EEDB_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in EEDB',5.740000000000000213,'dollar/m^2','','','Unit_Labor_Rubbing_surfaces_Dome',0); +INSERT INTO lfr_variable VALUES(136,'Unit_EEDB_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in EEDB',9.91000000000000014,'dollar/m^2','','','Unit_Labor_Rubbing_surfaces_Interior',0); +INSERT INTO lfr_variable VALUES(137,'Unit_EEDB_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in EEDB',4.580000000000000071,'dollar/m^2','','','Unit_Labor_Waterproofing_Substr',0); +INSERT INTO lfr_variable VALUES(138,'Unit_EEDB_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in EEDB',0.839999999999999969,'dollar/m^2','','','Unit_Labor_Waterproofing_Superstr',0); +INSERT INTO lfr_variable VALUES(139,'Unit_EEDB_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in EEDB',0.0,'dollar/m^2','','','Unit_Labor_Waterproofing_Dome',0); +INSERT INTO lfr_variable VALUES(140,'Unit_EEDB_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in EEDB',10.07000000000000028,'dollar/m^2','','','Unit_Labor_Welded_wire_fabric_Substr',0); +INSERT INTO lfr_variable VALUES(141,'Unit_EEDB_Labor_Lighting_Power','Unit cost of Labor Lighting Power in EEDB',9.83000000000000007,'dollar/m^3','','','Unit_Labor_Lighting_Power',0); +INSERT INTO lfr_variable VALUES(142,'Unit_EEDB_Labor_Plumb_drains','Unit cost of Labor Plumb drains in EEDB',3.020000000000000017,'dollar/m^3','','','Unit_Labor_Plumb_drains',0); +INSERT INTO lfr_variable VALUES(143,'Unit_EEDB_Labor_Special_HVAC','Unit cost of Labor Special HVAC in EEDB',11.08999999999999986,'dollar/m^3','','','Unit_Labor_Special_HVAC',0); +INSERT INTO lfr_variable VALUES(144,'Unit_EEDB_Labor_other','Unit cost of Labor other in EEDB',0.5300000000000000266,'dollar/m^3','','','Unit_Labor_other',0); +INSERT INTO lfr_variable VALUES(145,'Unit_EEDB_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in EEDB',9.93999999999999951,'dollar/m^3','','','Unit_Labor_Misc_steel_frames',0); +INSERT INTO lfr_variable VALUES(146,'Unit_EEDB_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in EEDB',745.9400000000000546,'dollar/m^2','','','Unit_Labor_React_cav_liner',0); +INSERT INTO lfr_variable VALUES(147,'Unit_EEDB_Labor_Struct_steel','Unit cost of Labor Struct steel in EEDB',13.98000000000000042,'dollar/m^3','','','Unit_Labor_Struct_steel',0); +INSERT INTO lfr_variable VALUES(148,'Unit_EEDB_Labor_cont_liner','Unit cost of Labor Containment liner in EEDB',780.3300000000000409,'dollar/m^2','','','Unit_Labor_cont_liner',0); +INSERT INTO lfr_variable VALUES(149,'Unit_EEDB_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in EEDB',1.75,'dollar/m^3','','','Unit_Labor_fl_grate_handrail_stairs',0); +INSERT INTO lfr_variable VALUES(150,'Unit_EEDB_Labor_painting','Unit cost of Labor painting in EEDB',86.79999999999999716,'dollar/m^2','','','Unit_Labor_painting',0); +INSERT INTO lfr_variable VALUES(151,'Unit_EEDB_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in EEDB',44.32000000000000028,'dollar/m^3','','','Unit_Mat_Cadweld_Substr',0); +INSERT INTO lfr_variable VALUES(152,'Unit_EEDB_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in EEDB',59.43999999999999773,'dollar/m^3','','','Unit_Mat_Cadweld_Superstr',0); +INSERT INTO lfr_variable VALUES(153,'Unit_EEDB_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in EEDB',119.8499999999999944,'dollar/m^3','','','Unit_Mat_Cadweld_Dome',0); +INSERT INTO lfr_variable VALUES(154,'Unit_EEDB_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in EEDB',25.0,'dollar/m^3','','','Unit_Mat_Cadweld_Interior',0); +INSERT INTO lfr_variable VALUES(155,'Unit_EEDB_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in EEDB',79.09999999999999431,'dollar/m^3','','','Unit_Mat_Concrete_Substr',0); +INSERT INTO lfr_variable VALUES(156,'Unit_EEDB_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in EEDB',54.46999999999999887,'dollar/m^3','','','Unit_Mat_Concrete_Superstr',0); +INSERT INTO lfr_variable VALUES(157,'Unit_EEDB_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in EEDB',48.63000000000000255,'dollar/m^3','','','Unit_Mat_Concrete_Dome',0); +INSERT INTO lfr_variable VALUES(158,'Unit_EEDB_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in EEDB',53.21000000000000085,'dollar/m^3','','','Unit_Mat_Concrete_Interior',0); +INSERT INTO lfr_variable VALUES(159,'Unit_EEDB_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in EEDB',8.900000000000000355,'dollar/m^2','','','Unit_Mat_Constr_joints_Substr',0); +INSERT INTO lfr_variable VALUES(160,'Unit_EEDB_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in EEDB',7.629999999999999894,'dollar/m^2','','','Unit_Mat_Constr_joints_Superstr',0); +INSERT INTO lfr_variable VALUES(161,'Unit_EEDB_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in EEDB',2.910000000000000142,'dollar/m^2','','','Unit_Mat_Constr_joints_Dome',0); +INSERT INTO lfr_variable VALUES(162,'Unit_EEDB_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in EEDB',1.260000000000000008,'dollar/m^2','','','Unit_Mat_Constr_joints_Interior',0); +INSERT INTO lfr_variable VALUES(163,'Unit_EEDB_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in EEDB',1.879999999999999894,'dollar/m^3','','','Unit_Mat_Embedded_steel_Substr',0); +INSERT INTO lfr_variable VALUES(164,'Unit_EEDB_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in EEDB',7.570000000000000284,'dollar/m^3','','','Unit_Mat_Embedded_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(165,'Unit_EEDB_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in EEDB',0.0,'dollar/m^3','','','Unit_Mat_Embedded_steel_Dome',0); +INSERT INTO lfr_variable VALUES(166,'Unit_EEDB_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in EEDB',159.7299999999999898,'dollar/m^3','','','Unit_Mat_Embedded_steel_Interior',0); +INSERT INTO lfr_variable VALUES(167,'Unit_EEDB_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in EEDB',13.22000000000000063,'dollar/m^2','','','Unit_Mat_Formwork_Substr',0); +INSERT INTO lfr_variable VALUES(168,'Unit_EEDB_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in EEDB',13.65000000000000035,'dollar/m^2','','','Unit_Mat_Formwork_Superstr',0); +INSERT INTO lfr_variable VALUES(169,'Unit_EEDB_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in EEDB',7.669999999999999929,'dollar/m^2','','','Unit_Mat_Formwork_Dome',0); +INSERT INTO lfr_variable VALUES(170,'Unit_EEDB_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in EEDB',21.85000000000000143,'dollar/m^2','','','Unit_Mat_Formwork_Interior',0); +INSERT INTO lfr_variable VALUES(171,'Unit_EEDB_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in EEDB',225.3499999999999944,'dollar/m^3','','','Unit_Mat_Maj_supp_embedments_Interior',0); +INSERT INTO lfr_variable VALUES(172,'Unit_EEDB_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in EEDB',364.7300000000000181,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Substr',0); +INSERT INTO lfr_variable VALUES(173,'Unit_EEDB_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in EEDB',258.9499999999999887,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(174,'Unit_EEDB_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in EEDB',238.6500000000000056,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Dome',0); +INSERT INTO lfr_variable VALUES(175,'Unit_EEDB_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in EEDB',205.6599999999999966,'dollar/m^3','','','Unit_Mat_Reinforc_steel_Interior',0); +INSERT INTO lfr_variable VALUES(176,'Unit_EEDB_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in EEDB',0.6800000000000000488,'dollar/m^2','','','Unit_Mat_Rubbing_surfaces_Superstr',0); +INSERT INTO lfr_variable VALUES(177,'Unit_EEDB_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in EEDB',0.4699999999999999734,'dollar/m^2','','','Unit_Mat_Rubbing_surfaces_Dome',0); +INSERT INTO lfr_variable VALUES(178,'Unit_EEDB_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in EEDB',0.8199999999999999512,'dollar/m^2','','','Unit_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO lfr_variable VALUES(179,'Unit_EEDB_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in EEDB',2.430000000000000159,'dollar/m^2','','','Unit_Mat_Waterproofing_Substr',0); +INSERT INTO lfr_variable VALUES(180,'Unit_EEDB_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in EEDB',0.4500000000000000111,'dollar/m^2','','','Unit_Mat_Waterproofing_Superstr',0); +INSERT INTO lfr_variable VALUES(181,'Unit_EEDB_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in EEDB',0.0,'dollar/m^2','','','Unit_Mat_Waterproofing_Dome',0); +INSERT INTO lfr_variable VALUES(182,'Unit_EEDB_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in EEDB',5.19000000000000039,'dollar/m^2','','','Unit_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO lfr_variable VALUES(183,'Unit_EEDB_Mat_Lighting_Power','Unit cost of Material Lighting Power in EEDB',4.959999999999999965,'dollar/m^3','','','Unit_Mat_Lighting_Power',0); +INSERT INTO lfr_variable VALUES(184,'Unit_EEDB_Mat_Plumb_drains','Unit cost of Material Plumb drains in EEDB',1.540000000000000035,'dollar/m^3','','','Unit_Mat_Plumb_drains',0); +INSERT INTO lfr_variable VALUES(185,'Unit_EEDB_Mat_Special_HVAC','Unit cost of Material Special HVAC in EEDB',8.789999999999999147,'dollar/m^3','','','Unit_Mat_Special_HVAC',0); +INSERT INTO lfr_variable VALUES(186,'Unit_EEDB_Mat_other','Unit cost of Material other in EEDB',1.959999999999999965,'dollar/m^3','','','Unit_Mat_other',0); +INSERT INTO lfr_variable VALUES(187,'Unit_EEDB_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in EEDB',16.55999999999999873,'dollar/m^3','','','Unit_Mat_Misc_steel_frames',0); +INSERT INTO lfr_variable VALUES(188,'Unit_EEDB_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in EEDB',607.9600000000000363,'dollar/m^2','','','Unit_Mat_React_cav_liner',0); +INSERT INTO lfr_variable VALUES(189,'Unit_EEDB_Mat_Struct_steel','Unit cost of Material Struct steel in EEDB',27.41000000000000014,'dollar/m^3','','','Unit_Mat_Struct_steel',0); +INSERT INTO lfr_variable VALUES(190,'Unit_EEDB_Mat_cont_liner','Unit cost of Material Containment liner in EEDB',1203.0,'dollar/m^2','','','Unit_Mat_cont_liner',0); +INSERT INTO lfr_variable VALUES(191,'Unit_EEDB_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in EEDB',1.979999999999999983,'dollar/m^3','','','Unit_Mat_fl_grate_handrail_stairs',0); +INSERT INTO lfr_variable VALUES(192,'Unit_EEDB_Mat_painting','Unit cost of Material painting in EEDB',24.67999999999999972,'dollar/m^2','','','Unit_Mat_painting',0); +INSERT INTO lfr_variable VALUES(193,'Unit_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in 2017',245.3100000000000022,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Substr,infl','Total_Labor_Cadweld_Substr',0); +INSERT INTO lfr_variable VALUES(194,'Unit_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in 2017',329.0199999999999819,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Superstr,infl','Total_Labor_Cadweld_Superstr',0); +INSERT INTO lfr_variable VALUES(195,'Unit_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in 2017',663.3400000000000318,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Dome,infl','Total_Labor_Cadweld_Dome',0); +INSERT INTO lfr_variable VALUES(196,'Unit_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in 2017',138.3600000000000137,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Interior,infl','Total_Labor_Cadweld_Interior',0); +INSERT INTO lfr_variable VALUES(197,'Unit_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in 2017',208.1699999999999875,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Substr,infl','Total_Labor_Concrete_Substr',0); +INSERT INTO lfr_variable VALUES(198,'Unit_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in 2017',250.8499999999999944,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Superstr,infl','Total_Labor_Concrete_Superstr',0); +INSERT INTO lfr_variable VALUES(199,'Unit_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in 2017',223.9600000000000079,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Dome,infl','Total_Labor_Concrete_Dome',0); +INSERT INTO lfr_variable VALUES(200,'Unit_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in 2017',280.0699999999999932,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Interior,infl','Total_Labor_Concrete_Interior',0); +INSERT INTO lfr_variable VALUES(201,'Unit_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in 2017',41.64999999999999858,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Substr,infl','Total_Labor_Constr_joints_Substr',0); +INSERT INTO lfr_variable VALUES(202,'Unit_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in 2017',35.71000000000000085,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Superstr,infl','Total_Labor_Constr_joints_Superstr',0); +INSERT INTO lfr_variable VALUES(203,'Unit_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in 2017',13.63000000000000078,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Dome,infl','Total_Labor_Constr_joints_Dome',0); +INSERT INTO lfr_variable VALUES(204,'Unit_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in 2017',5.879999999999999894,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Interior,infl','Total_Labor_Constr_joints_Interior',0); +INSERT INTO lfr_variable VALUES(205,'Unit_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in 2017',11.41999999999999993,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Substr,infl','Total_Labor_Embedded_steel_Substr',0); +INSERT INTO lfr_variable VALUES(206,'Unit_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in 2017',45.86999999999999745,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Superstr,infl','Total_Labor_Embedded_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(207,'Unit_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in 2017',0.0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Dome,infl','Total_Labor_Embedded_steel_Dome',0); +INSERT INTO lfr_variable VALUES(208,'Unit_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in 2017',967.759999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Interior,infl','Total_Labor_Embedded_steel_Interior',0); +INSERT INTO lfr_variable VALUES(209,'Unit_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in 2017',267.2699999999999819,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Substr,infl','Total_Labor_Formwork_Substr',0); +INSERT INTO lfr_variable VALUES(210,'Unit_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in 2017',315.2699999999999819,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Superstr,infl','Total_Labor_Formwork_Superstr',0); +INSERT INTO lfr_variable VALUES(211,'Unit_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in 2017',168.3799999999999955,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Dome,infl','Total_Labor_Formwork_Dome',0); +INSERT INTO lfr_variable VALUES(212,'Unit_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in 2017',664.5800000000000409,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Interior,infl','Total_Labor_Formwork_Interior',0); +INSERT INTO lfr_variable VALUES(213,'Unit_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in 2017',440.7099999999999796,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Maj_supp_embedments_Interior,infl','Total_Labor_Maj_supp_embedments_Interior',0); +INSERT INTO lfr_variable VALUES(214,'Unit_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in 2017',925.879999999999996,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Substr,infl','Total_Labor_Reinforc_steel_Substr',0); +INSERT INTO lfr_variable VALUES(215,'Unit_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in 2017',936.159999999999969,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Superstr,infl','Total_Labor_Reinforc_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(216,'Unit_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in 2017',862.759999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Dome,infl','Total_Labor_Reinforc_steel_Dome',0); +INSERT INTO lfr_variable VALUES(217,'Unit_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in 2017',880.4400000000000546,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Interior,infl','Total_Labor_Reinforc_steel_Interior',0); +INSERT INTO lfr_variable VALUES(218,'Unit_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in 2017',23.87999999999999901,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Superstr,infl','Total_Labor_Rubbing_surfaces_Superstr',0); +INSERT INTO lfr_variable VALUES(219,'Unit_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in 2017',16.48000000000000042,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Dome,infl','Total_Labor_Rubbing_surfaces_Dome',0); +INSERT INTO lfr_variable VALUES(220,'Unit_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in 2017',28.44999999999999929,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Interior,infl','Total_Labor_Rubbing_surfaces_Interior',0); +INSERT INTO lfr_variable VALUES(221,'Unit_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in 2017',13.15000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Substr,infl','Total_Labor_Waterproofing_Substr',0); +INSERT INTO lfr_variable VALUES(222,'Unit_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in 2017',2.410000000000000142,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Superstr,infl','Total_Labor_Waterproofing_Superstr',0); +INSERT INTO lfr_variable VALUES(223,'Unit_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in 2017',0.0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Dome,infl','Total_Labor_Waterproofing_Dome',0); +INSERT INTO lfr_variable VALUES(224,'Unit_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in 2017',28.91000000000000014,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Welded_wire_fabric_Substr,infl','Total_Labor_Welded_wire_fabric_Substr',0); +INSERT INTO lfr_variable VALUES(225,'Unit_Labor_Lighting_Power','Unit cost of Labor Lighting Power in 2017',28.21999999999999887,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Lighting_Power,infl','Total_Labor_Lighting_Power',0); +INSERT INTO lfr_variable VALUES(226,'Unit_Labor_Plumb_drains','Unit cost of Labor Plumb drains in 2017',8.669999999999999929,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Plumb_drains,infl','Total_Labor_Plumb_drains',0); +INSERT INTO lfr_variable VALUES(227,'Unit_Labor_Special_HVAC','Unit cost of Labor Special HVAC in 2017',31.8299999999999983,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Special_HVAC,infl','Total_Labor_Special_HVAC',0); +INSERT INTO lfr_variable VALUES(228,'Unit_Labor_other','Unit cost of Labor other in 2017',1.520000000000000017,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_other,infl','Total_Labor_other',0); +INSERT INTO lfr_variable VALUES(229,'Unit_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in 2017',28.53000000000000113,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Misc_steel_frames,infl','Total_Labor_Misc_steel_frames',0); +INSERT INTO lfr_variable VALUES(230,'Unit_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in 2017',2141.219999999999799,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_React_cav_liner,infl','Total_Labor_React_cav_liner',0); +INSERT INTO lfr_variable VALUES(231,'Unit_Labor_Struct_steel','Unit cost of Labor Struct steel in 2017',40.13000000000000255,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Struct_steel,infl','Total_Labor_Struct_steel',0); +INSERT INTO lfr_variable VALUES(232,'Unit_Labor_cont_liner','Unit cost of Labor Containment liner in 2017',2239.940000000000054,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_cont_liner,infl','Total_Labor_cont_liner',0); +INSERT INTO lfr_variable VALUES(233,'Unit_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',5.019999999999999574,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_fl_grate_handrail_stairs,infl','Total_Labor_fl_grate_handrail_stairs',0); +INSERT INTO lfr_variable VALUES(234,'Unit_Labor_painting','Unit cost of Labor painting in 2017',249.1599999999999966,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_painting,infl','Total_Labor_painting',0); +INSERT INTO lfr_variable VALUES(235,'Unit_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in 2017',127.2199999999999989,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Substr,infl','Total_Mat_Cadweld_Substr',0); +INSERT INTO lfr_variable VALUES(236,'Unit_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in 2017',170.6200000000000045,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Superstr,infl','Total_Mat_Cadweld_Superstr',0); +INSERT INTO lfr_variable VALUES(237,'Unit_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in 2017',344.0299999999999727,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Dome,infl','Total_Mat_Cadweld_Dome',0); +INSERT INTO lfr_variable VALUES(238,'Unit_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in 2017',71.76000000000000511,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Interior,infl','Total_Mat_Cadweld_Interior',0); +INSERT INTO lfr_variable VALUES(239,'Unit_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in 2017',227.0600000000000022,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Substr,infl','Total_Mat_Concrete_Substr',0); +INSERT INTO lfr_variable VALUES(240,'Unit_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in 2017',156.3600000000000137,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Superstr,infl','Total_Mat_Concrete_Superstr',0); +INSERT INTO lfr_variable VALUES(241,'Unit_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in 2017',139.5900000000000034,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Dome,infl','Total_Mat_Concrete_Dome',0); +INSERT INTO lfr_variable VALUES(242,'Unit_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in 2017',152.740000000000009,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Interior,infl','Total_Mat_Concrete_Interior',0); +INSERT INTO lfr_variable VALUES(243,'Unit_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in 2017',25.55000000000000071,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Substr,infl','Total_Mat_Constr_joints_Substr',0); +INSERT INTO lfr_variable VALUES(244,'Unit_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in 2017',21.89999999999999857,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Superstr,infl','Total_Mat_Constr_joints_Superstr',0); +INSERT INTO lfr_variable VALUES(245,'Unit_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in 2017',8.349999999999999645,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Dome,infl','Total_Mat_Constr_joints_Dome',0); +INSERT INTO lfr_variable VALUES(246,'Unit_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in 2017',3.620000000000000106,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Interior,infl','Total_Mat_Constr_joints_Interior',0); +INSERT INTO lfr_variable VALUES(247,'Unit_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in 2017',5.400000000000000355,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Substr,infl','Total_Mat_Embedded_steel_Substr',0); +INSERT INTO lfr_variable VALUES(248,'Unit_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in 2017',21.73000000000000042,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Superstr,infl','Total_Mat_Embedded_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(249,'Unit_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in 2017',0.0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Dome,infl','Total_Mat_Embedded_steel_Dome',0); +INSERT INTO lfr_variable VALUES(250,'Unit_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in 2017',458.509999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Interior,infl','Total_Mat_Embedded_steel_Interior',0); +INSERT INTO lfr_variable VALUES(251,'Unit_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in 2017',37.95000000000000285,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Substr,infl','Total_Mat_Formwork_Substr',0); +INSERT INTO lfr_variable VALUES(252,'Unit_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in 2017',39.17999999999999972,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Superstr,infl','Total_Mat_Formwork_Superstr',0); +INSERT INTO lfr_variable VALUES(253,'Unit_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in 2017',22.01999999999999958,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Dome,infl','Total_Mat_Formwork_Dome',0); +INSERT INTO lfr_variable VALUES(254,'Unit_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in 2017',62.71999999999999887,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Interior,infl','Total_Mat_Formwork_Interior',0); +INSERT INTO lfr_variable VALUES(255,'Unit_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in 2017',646.8700000000000045,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Maj_supp_embedments_Interior,infl','Total_Mat_Maj_supp_embedments_Interior',0); +INSERT INTO lfr_variable VALUES(256,'Unit_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in 2017',1046.960000000000036,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Substr,infl','Total_Mat_Reinforc_steel_Substr',0); +INSERT INTO lfr_variable VALUES(257,'Unit_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in 2017',743.32000000000005,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Superstr,infl','Total_Mat_Reinforc_steel_Superstr',0); +INSERT INTO lfr_variable VALUES(258,'Unit_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in 2017',685.0499999999999546,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Dome,infl','Total_Mat_Reinforc_steel_Dome',0); +INSERT INTO lfr_variable VALUES(259,'Unit_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in 2017',590.3500000000000227,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Interior,infl','Total_Mat_Reinforc_steel_Interior',0); +INSERT INTO lfr_variable VALUES(260,'Unit_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in 2017',1.949999999999999956,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Superstr,infl','Total_Mat_Rubbing_surfaces_Superstr',0); +INSERT INTO lfr_variable VALUES(261,'Unit_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in 2017',1.350000000000000088,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Dome,infl','Total_Mat_Rubbing_surfaces_Dome',0); +INSERT INTO lfr_variable VALUES(262,'Unit_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in 2017',2.350000000000000088,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Interior,infl','Total_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO lfr_variable VALUES(263,'Unit_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in 2017',6.980000000000000426,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Substr,infl','Total_Mat_Waterproofing_Substr',0); +INSERT INTO lfr_variable VALUES(264,'Unit_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in 2017',1.290000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Superstr,infl','Total_Mat_Waterproofing_Superstr',0); +INSERT INTO lfr_variable VALUES(265,'Unit_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in 2017',0.0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Dome,infl','Total_Mat_Waterproofing_Dome',0); +INSERT INTO lfr_variable VALUES(266,'Unit_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in 2017',14.90000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Welded_wire_fabric_Substr,infl','Total_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO lfr_variable VALUES(267,'Unit_Mat_Lighting_Power','Unit cost of Material Lighting Power in 2017',14.24000000000000021,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Lighting_Power,infl','Total_Mat_Lighting_Power',0); +INSERT INTO lfr_variable VALUES(268,'Unit_Mat_Plumb_drains','Unit cost of Material Plumb drains in 2017',4.419999999999999929,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Plumb_drains,infl','Total_Mat_Plumb_drains',0); +INSERT INTO lfr_variable VALUES(269,'Unit_Mat_Special_HVAC','Unit cost of Material Special HVAC in 2017',25.23000000000000042,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Special_HVAC,infl','Total_Mat_Special_HVAC',0); +INSERT INTO lfr_variable VALUES(270,'Unit_Mat_other','Unit cost of Material other in 2017',5.629999999999999894,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_other,infl','Total_Mat_other',0); +INSERT INTO lfr_variable VALUES(271,'Unit_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in 2017',47.53999999999999915,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Misc_steel_frames,infl','Total_Mat_Misc_steel_frames',0); +INSERT INTO lfr_variable VALUES(272,'Unit_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in 2017',1745.15000000000009,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_React_cav_liner,infl','Total_Mat_React_cav_liner',0); +INSERT INTO lfr_variable VALUES(273,'Unit_Mat_Struct_steel','Unit cost of Material Struct steel in 2017',78.68000000000000683,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Struct_steel,infl','Total_Mat_Struct_steel',0); +INSERT INTO lfr_variable VALUES(274,'Unit_Mat_cont_liner','Unit cost of Material Containment liner in 2017',3453.210000000000036,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_cont_liner,infl','Total_Mat_cont_liner',0); +INSERT INTO lfr_variable VALUES(275,'Unit_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',5.679999999999999716,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_fl_grate_handrail_stairs,infl','Total_Mat_fl_grate_handrail_stairs',0); +INSERT INTO lfr_variable VALUES(276,'Unit_Mat_painting','Unit cost of Material painting in 2017',70.84000000000000341,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_painting,infl','Total_Mat_painting',0); +INSERT INTO lfr_variable VALUES(277,'Total_Labor_Cadweld_Substr','Total cost of Labor Cadweld Substructure (base mat) in 2017',545576.1300000000046,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Substr,Basemat_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO lfr_variable VALUES(278,'Total_Labor_Cadweld_Superstr','Total cost of Labor Cadweld Superstructure (shell) in 2017',1459105.659999999917,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Superstr,Walls_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO lfr_variable VALUES(279,'Total_Labor_Cadweld_Dome','Total cost of Labor Cadweld Superstructure (dome) in 2017',962092.180000000051,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Dome,Dome_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO lfr_variable VALUES(280,'Total_Labor_Cadweld_Interior','Total cost of Labor Cadweld Interior structure in 2017',313811.4299999999931,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Interior,Internal_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO lfr_variable VALUES(281,'Total_Labor_Concrete_Substr','Total cost of Labor Concrete Substructure (base mat) in 2017',462967.25,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Substr,Basemat_v_m3','Sum_Labor_Concrete',0); +INSERT INTO lfr_variable VALUES(282,'Total_Labor_Concrete_Superstr','Total cost of Labor Concrete Superstructure (shell) in 2017',1112469.409999999916,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Superstr,Walls_v_m3','Sum_Labor_Concrete',0); +INSERT INTO lfr_variable VALUES(283,'Total_Labor_Concrete_Dome','Total cost of Labor Concrete Superstructure (dome) in 2017',324819.0399999999791,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Dome,Dome_v_m3','Sum_Labor_Concrete',0); +INSERT INTO lfr_variable VALUES(284,'Total_Labor_Concrete_Interior','Total cost of Labor Concrete Interior structure in 2017',635240.2800000000279,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Interior,Internal_v_m3','Sum_Labor_Concrete',0); +INSERT INTO lfr_variable VALUES(285,'Total_Labor_Constr_joints_Substr','Total cost of Labor Construction joints Substructure (base mat) in 2017',30391.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Substr,Basemat_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO lfr_variable VALUES(286,'Total_Labor_Constr_joints_Superstr','Total cost of Labor Construction joints Superstructure (shell) in 2017',230913.4500000000116,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Superstr,Walls_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO lfr_variable VALUES(287,'Total_Labor_Constr_joints_Dome','Total cost of Labor Construction joints Superstructure (dome) in 2017',37107.06999999999971,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Dome,Dome_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO lfr_variable VALUES(288,'Total_Labor_Constr_joints_Interior','Total cost of Labor Construction joints Interior structure in 2017',21894.27999999999884,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Interior,Internal_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO lfr_variable VALUES(289,'Total_Labor_Embedded_steel_Substr','Total cost of Labor Embedded steel Substructure (base mat) in 2017',25408.29999999999928,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Substr,Basemat_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(290,'Total_Labor_Embedded_steel_Superstr','Total cost of Labor Embedded steel Superstructure (shell) in 2017',203424.4299999999931,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Superstr,Walls_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(291,'Total_Labor_Embedded_steel_Dome','Total cost of Labor Embedded steel Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Dome,Dome_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(292,'Total_Labor_Embedded_steel_Interior','Total cost of Labor Embedded steel Interior structure in 2017',2194987.279999999795,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Interior,Internal_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(293,'Total_Labor_Formwork_Substr','Total cost of Labor Formwork Substructure (base mat) in 2017',195017.609999999986,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Substr,Basemat_s_m2','Sum_Labor_Formwork',0); +INSERT INTO lfr_variable VALUES(294,'Total_Labor_Formwork_Superstr','Total cost of Labor Formwork Superstructure (shell) in 2017',2038683.659999999917,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Superstr,Walls_s_m2','Sum_Labor_Formwork',0); +INSERT INTO lfr_variable VALUES(295,'Total_Labor_Formwork_Dome','Total cost of Labor Formwork Superstructure (dome) in 2017',458252.7899999999791,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Dome,Dome_s_m2','Sum_Labor_Formwork',0); +INSERT INTO lfr_variable VALUES(296,'Total_Labor_Formwork_Interior','Total cost of Labor Formwork Interior structure in 2017',2472664.990000000223,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Interior,Internal_s_m2','Sum_Labor_Formwork',0); +INSERT INTO lfr_variable VALUES(297,'Total_Labor_Maj_supp_embedments_Interior','Total cost of Labor Major Support Embedments Interior structure in 2017',999574.050000000046,'dollar','tol_contaiment_ce_cost','Unit_Labor_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Labor_Maj_supp_embedments',0); +INSERT INTO lfr_variable VALUES(298,'Total_Labor_Reinforc_steel_Substr','Total cost of Labor Reinforc steel Substructure (base mat) in 2017',2059157.280000000027,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Substr,Basemat_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(299,'Total_Labor_Reinforc_steel_Superstr','Total cost of Labor Reinforc steel Superstructure (shell) in 2017',4151615.160000000149,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Superstr,Walls_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(300,'Total_Labor_Reinforc_steel_Dome','Total cost of Labor Reinforc steel Superstructure (dome) in 2017',1251315.179999999935,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Dome,Dome_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(301,'Total_Labor_Reinforc_steel_Interior','Total cost of Labor Reinforc steel Interior structure in 2017',1996934.5,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Interior,Internal_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(302,'Total_Labor_Rubbing_surfaces_Superstr','Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017',154437.2900000000081,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO lfr_variable VALUES(303,'Total_Labor_Rubbing_surfaces_Dome','Total cost of Labor Rubbing surfaces Superstructure (dome) in 2017',44840.95999999999913,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO lfr_variable VALUES(304,'Total_Labor_Rubbing_surfaces_Interior','Total cost of Labor Rubbing surfaces Interior structure in 2017',105840.1399999999995,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO lfr_variable VALUES(305,'Total_Labor_Waterproofing_Substr','Total cost of Labor Waterproofing Substructure (base mat) in 2017',9592.75,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Substr,Basemat_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO lfr_variable VALUES(306,'Total_Labor_Waterproofing_Superstr','Total cost of Labor Waterproofing Superstructure (shell) in 2017',15592.22999999999957,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Superstr,Walls_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO lfr_variable VALUES(307,'Total_Labor_Waterproofing_Dome','Total cost of Labor Waterproofing Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Dome,Dome_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO lfr_variable VALUES(308,'Total_Labor_Welded_wire_fabric_Substr','Total cost of Labor Welded wire fabric Substructure (base mat) in 2017',21091.47999999999957,'dollar','tol_contaiment_ce_cost','Unit_Labor_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Labor_Welded_wire_fabric',0); +INSERT INTO lfr_variable VALUES(309,'Total_Labor_Lighting_Power','Total cost of Labor Lighting Power in 2017',771075.9399999999441,'dollar','tol_contaiment_ce_cost','Unit_Labor_Lighting_Power,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO lfr_variable VALUES(310,'Total_Labor_Plumb_drains','Total cost of Labor Plumb drains in 2017',236892.1000000000058,'dollar','tol_contaiment_ce_cost','Unit_Labor_Plumb_drains,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO lfr_variable VALUES(311,'Total_Labor_Special_HVAC','Total cost of Labor Special HVAC in 2017',869911.7099999999628,'dollar','tol_contaiment_ce_cost','Unit_Labor_Special_HVAC,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO lfr_variable VALUES(312,'Total_Labor_other','Total cost of Labor other in 2017',41573.77999999999884,'dollar','tol_contaiment_ce_cost','Unit_Labor_other,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO lfr_variable VALUES(313,'Total_Labor_Misc_steel_frames','Total cost of Labor miscellaneous steel frames in 2017',296090.9600000000209,'dollar','tol_contaiment_ce_cost','Unit_Labor_Misc_steel_frames,Struct_v_m3','Tot_Labor_others',0); +INSERT INTO lfr_variable VALUES(314,'Total_Labor_React_cav_liner','Total cost of Labor Reactor cavity liner plate in 2017',2188185.870000000111,'dollar','tol_contaiment_ce_cost','Unit_Labor_React_cav_liner,React_cav_A_m2','Tot_Labor_others',0); +INSERT INTO lfr_variable VALUES(315,'Total_Labor_Struct_steel','Total cost of Labor Struct steel in 2017',416433.7700000000186,'dollar','tol_contaiment_ce_cost','Unit_Labor_Struct_steel,Struct_v_m3','Tot_Labor_others',0); +INSERT INTO lfr_variable VALUES(316,'Total_Labor_cont_liner','Total cost of Labor Containment liner in 2017',11081657.50999999978,'dollar','tol_contaiment_ce_cost','Unit_Labor_cont_liner,Liner_s_m2','Tot_Labor_others',0); +INSERT INTO lfr_variable VALUES(317,'Total_Labor_fl_grate_handrail_stairs','Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',137271.9100000000034,'dollar','tol_contaiment_ce_cost','Unit_Labor_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Labor_others',0); +INSERT INTO lfr_variable VALUES(318,'Total_Labor_painting','Total cost of Labor painting in 2017',3366865.169999999926,'dollar','tol_contaiment_ce_cost','Unit_Labor_painting,Surf_paint_m2','Tot_Labor_others',0); +INSERT INTO lfr_variable VALUES(319,'Total_Mat_Cadweld_Substr','Total cost of Material Cadweld Substructure (base mat) in 2017',282938.6199999999954,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Substr,Basemat_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO lfr_variable VALUES(320,'Total_Mat_Cadweld_Superstr','Total cost of Material Cadweld Superstructure (shell) in 2017',756667.5999999999768,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Superstr,Walls_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO lfr_variable VALUES(321,'Total_Mat_Cadweld_Dome','Total cost of Material Cadweld Superstructure (dome) in 2017',498969.0100000000093,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Dome,Dome_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO lfr_variable VALUES(322,'Total_Mat_Cadweld_Interior','Total cost of Material Cadweld Interior structure in 2017',162765.2699999999896,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Interior,Internal_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO lfr_variable VALUES(323,'Total_Mat_Concrete_Substr','Total cost of Material Concrete Substructure (base mat) in 2017',504973.9299999999931,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Substr,Basemat_v_m3','Sum_Mat_Concrete',0); +INSERT INTO lfr_variable VALUES(324,'Total_Mat_Concrete_Superstr','Total cost of Material Concrete Superstructure (shell) in 2017',693399.8000000000465,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Superstr,Walls_v_m3','Sum_Mat_Concrete',0); +INSERT INTO lfr_variable VALUES(325,'Total_Mat_Concrete_Dome','Total cost of Material Concrete Superstructure (dome) in 2017',202460.2699999999896,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Dome,Dome_v_m3','Sum_Mat_Concrete',0); +INSERT INTO lfr_variable VALUES(326,'Total_Mat_Concrete_Interior','Total cost of Material Concrete Interior structure in 2017',346429.5900000000257,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Interior,Internal_v_m3','Sum_Mat_Concrete',0); +INSERT INTO lfr_variable VALUES(327,'Total_Mat_Constr_joints_Substr','Total cost of Material Construction joints Substructure (base mat) in 2017',18640.93000000000029,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Substr,Basemat_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO lfr_variable VALUES(328,'Total_Mat_Constr_joints_Superstr','Total cost of Material Construction joints Superstructure (shell) in 2017',141629.390000000014,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Superstr,Walls_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO lfr_variable VALUES(329,'Total_Mat_Constr_joints_Dome','Total cost of Material Construction joints Superstructure (dome) in 2017',22732.95999999999913,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Dome,Dome_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO lfr_variable VALUES(330,'Total_Mat_Constr_joints_Interior','Total cost of Material Construction joints Interior structure in 2017',13456.96999999999935,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Interior,Internal_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO lfr_variable VALUES(331,'Total_Mat_Embedded_steel_Substr','Total cost of Material Embedded steel Substructure (base mat) in 2017',12001.90999999999986,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Substr,Basemat_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(332,'Total_Mat_Embedded_steel_Superstr','Total cost of Material Embedded steel Superstructure (shell) in 2017',96365.6399999999995,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Superstr,Walls_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(333,'Total_Mat_Embedded_steel_Dome','Total cost of Material Embedded steel Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Dome,Dome_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(334,'Total_Mat_Embedded_steel_Interior','Total cost of Material Embedded steel Interior structure in 2017',1039939.839999999968,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Interior,Internal_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO lfr_variable VALUES(335,'Total_Mat_Formwork_Substr','Total cost of Material Formwork Substructure (base mat) in 2017',27689.11000000000058,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Substr,Basemat_s_m2','Sum_Mat_Formwork',0); +INSERT INTO lfr_variable VALUES(336,'Total_Mat_Formwork_Superstr','Total cost of Material Formwork Superstructure (shell) in 2017',253373.6900000000023,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Superstr,Walls_s_m2','Sum_Mat_Formwork',0); +INSERT INTO lfr_variable VALUES(337,'Total_Mat_Formwork_Dome','Total cost of Material Formwork Superstructure (dome) in 2017',59918.15000000000145,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Dome,Dome_s_m2','Sum_Mat_Formwork',0); +INSERT INTO lfr_variable VALUES(338,'Total_Mat_Formwork_Interior','Total cost of Material Formwork Interior structure in 2017',233360.9599999999919,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Interior,Internal_s_m2','Sum_Mat_Formwork',0); +INSERT INTO lfr_variable VALUES(339,'Total_Mat_Maj_supp_embedments_Interior','Total cost of Material Major Support Embedments Interior structure in 2017',1467166.110000000102,'dollar','tol_contaiment_ce_cost','Unit_Mat_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Mat_Maj_supp_embedments',0); +INSERT INTO lfr_variable VALUES(340,'Total_Mat_Reinforc_steel_Substr','Total cost of Material Reinforc steel Substructure (base mat) in 2017',2328434.14000000013,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Substr,Basemat_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(341,'Total_Mat_Reinforc_steel_Superstr','Total cost of Material Reinforc steel Superstructure (shell) in 2017',3296417.819999999833,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Superstr,Walls_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(342,'Total_Mat_Reinforc_steel_Dome','Total cost of Material Reinforc steel Superstructure (dome) in 2017',993566.569999999949,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Dome,Dome_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(343,'Total_Mat_Reinforc_steel_Interior','Total cost of Material Reinforc steel Interior structure in 2017',1338972.189999999945,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Interior,Internal_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO lfr_variable VALUES(344,'Total_Mat_Rubbing_surfaces_Superstr','Total cost of Material Rubbing surfaces Superstructure (shell) in 2017',12622.28000000000065,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO lfr_variable VALUES(345,'Total_Mat_Rubbing_surfaces_Dome','Total cost of Material Rubbing surfaces Superstructure (dome) in 2017',3671.65000000000009,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO lfr_variable VALUES(346,'Total_Mat_Rubbing_surfaces_Interior','Total cost of Material Rubbing surfaces Interior structure in 2017',8757.709999999999126,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO lfr_variable VALUES(347,'Total_Mat_Waterproofing_Substr','Total cost of Material Waterproofing Substructure (base mat) in 2017',5089.600000000000363,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Substr,Basemat_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO lfr_variable VALUES(348,'Total_Mat_Waterproofing_Superstr','Total cost of Material Waterproofing Superstructure (shell) in 2017',8352.979999999999564,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Superstr,Walls_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO lfr_variable VALUES(349,'Total_Mat_Waterproofing_Dome','Total cost of Material Waterproofing Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Dome,Dome_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO lfr_variable VALUES(350,'Total_Mat_Welded_wire_fabric_Substr','Total cost of Material Welded wire fabric Substructure (base mat) in 2017',10870.37999999999919,'dollar','tol_contaiment_ce_cost','Unit_Mat_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Mat_Welded_wire_fabric',0); +INSERT INTO lfr_variable VALUES(351,'Total_Mat_Lighting_Power','Total cost of Material Lighting Power in 2017',389067.8200000000069,'dollar','tol_contaiment_ce_cost','Unit_Mat_Lighting_Power,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO lfr_variable VALUES(352,'Total_Mat_Plumb_drains','Total cost of Material Plumb drains in 2017',120799.2799999999989,'dollar','tol_contaiment_ce_cost','Unit_Mat_Plumb_drains,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO lfr_variable VALUES(353,'Total_Mat_Special_HVAC','Total cost of Material Special HVAC in 2017',689497.1999999999535,'dollar','tol_contaiment_ce_cost','Unit_Mat_Special_HVAC,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO lfr_variable VALUES(354,'Total_Mat_other','Total cost of Material other in 2017',153744.5400000000081,'dollar','tol_contaiment_ce_cost','Unit_Mat_other,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO lfr_variable VALUES(355,'Total_Mat_Misc_steel_frames','Total cost of Material miscellaneous steel frames in 2017',493286.3499999999768,'dollar','tol_contaiment_ce_cost','Unit_Mat_Misc_steel_frames,Struct_v_m3','Tot_Mat_others',0); +INSERT INTO lfr_variable VALUES(356,'Total_Mat_React_cav_liner','Total cost of Material Reactor cavity liner plate in 2017',1783426.929999999935,'dollar','tol_contaiment_ce_cost','Unit_Mat_React_cav_liner,React_cav_A_m2','Tot_Mat_others',0); +INSERT INTO lfr_variable VALUES(357,'Total_Mat_Struct_steel','Total cost of Material Struct steel in 2017',816484.2399999999907,'dollar','tol_contaiment_ce_cost','Unit_Mat_Struct_steel,Struct_v_m3','Tot_Mat_others',0); +INSERT INTO lfr_variable VALUES(358,'Total_Mat_cont_liner','Total cost of Material Containment liner in 2017',17084097.73000000044,'dollar','tol_contaiment_ce_cost','Unit_Mat_cont_liner,Liner_s_m2','Tot_Mat_others',0); +INSERT INTO lfr_variable VALUES(359,'Total_Mat_fl_grate_handrail_stairs','Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',155313.359999999986,'dollar','tol_contaiment_ce_cost','Unit_Mat_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Mat_others',0); +INSERT INTO lfr_variable VALUES(360,'Total_Mat_painting','Total cost of Material painting in 2017',957306.819999999949,'dollar','tol_contaiment_ce_cost','Unit_Mat_painting,Surf_paint_m2','Tot_Mat_others',0); +INSERT INTO lfr_variable VALUES(361,'Sum_Labor_Cadweld','Total cost of Labor Cadweld',3280585.404000000096,'dollar','sum_ce','Total_Labor_Cadweld_Substr,Total_Labor_Cadweld_Superstr,Total_Labor_Cadweld_Dome,Total_Labor_Cadweld_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(362,'Sum_Labor_Concrete','Total cost of Labor Concrete',2535495.978999999818,'dollar','sum_ce','Total_Labor_Concrete_Substr,Total_Labor_Concrete_Superstr,Total_Labor_Concrete_Dome,Total_Labor_Concrete_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(363,'Sum_Labor_Constr_joints','Total cost of Labor Constr joints',320305.7974999999861,'dollar','sum_ce','Total_Labor_Constr_joints_Substr,Total_Labor_Constr_joints_Superstr,Total_Labor_Constr_joints_Dome,Total_Labor_Constr_joints_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(364,'Sum_Labor_Embedded_steel','Total cost of Labor Embedded steel',2423820.007000000216,'dollar','sum_ce','Total_Labor_Embedded_steel_Substr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Embedded_steel_Dome,Total_Labor_Embedded_steel_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(365,'Sum_Labor_Formwork','Total cost of Labor Formwork',5164619.048000000417,'dollar','sum_ce','Total_Labor_Formwork_Substr,Total_Labor_Formwork_Superstr,Total_Labor_Formwork_Dome,Total_Labor_Formwork_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(366,'Sum_Labor_Maj_supp_embedments','Total cost of Labor Maj supp embedments',999574.054800000041,'dollar','sum_ce','Total_Labor_Maj_supp_embedments_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(367,'Sum_Labor_Reinforc_steel','Total cost of Labor Reinforc steel',9459022.11700000055,'dollar','sum_ce','Total_Labor_Reinforc_steel_Substr,Total_Labor_Reinforc_steel_Superstr,Total_Labor_Reinforc_steel_Dome,Total_Labor_Reinforc_steel_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(368,'Sum_Labor_Rubbing_surfaces','Total cost of Labor Rubbing surfaces',305118.4025999999721,'dollar','sum_ce','Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Rubbing_surfaces_Interior','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(369,'Sum_Labor_Waterproofing','Total cost of Labor Waterproofing',25184.97376000000076,'dollar','sum_ce','Total_Labor_Waterproofing_Substr,Total_Labor_Waterproofing_Superstr,Total_Labor_Waterproofing_Dome','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(370,'Sum_Labor_Welded_wire_fabric','Total cost of Labor Welded wire fabric',21091.47636000000056,'dollar','sum_ce','Total_Labor_Welded_wire_fabric_Substr','Tot_Labor_concr',0); +INSERT INTO lfr_variable VALUES(371,'Sum_Mat_Cadweld','Total cost of Material Cadweld',1701340.489999999991,'dollar','sum_ce','Total_Mat_Cadweld_Substr,Total_Mat_Cadweld_Superstr,Total_Mat_Cadweld_Dome,Total_Mat_Cadweld_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(372,'Sum_Mat_Concrete','Total cost of Material Concrete',1747263.58899999992,'dollar','sum_ce','Total_Mat_Concrete_Substr,Total_Mat_Concrete_Superstr,Total_Mat_Concrete_Dome,Total_Mat_Concrete_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(373,'Sum_Mat_Constr_joints','Total cost of Material Constr joints',196460.25,'dollar','sum_ce','Total_Mat_Constr_joints_Substr,Total_Mat_Constr_joints_Superstr,Total_Mat_Constr_joints_Dome,Total_Mat_Constr_joints_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(374,'Sum_Mat_Embedded_steel','Total cost of Material Embedded steel',1148307.391000000061,'dollar','sum_ce','Total_Mat_Embedded_steel_Substr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Embedded_steel_Dome,Total_Mat_Embedded_steel_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(375,'Sum_Mat_Formwork','Total cost of Material Formwork',574341.9096999999601,'dollar','sum_ce','Total_Mat_Formwork_Substr,Total_Mat_Formwork_Superstr,Total_Mat_Formwork_Dome,Total_Mat_Formwork_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(376,'Sum_Mat_Maj_supp_embedments','Total cost of Material Maj supp embedments',1467166.110000000102,'dollar','sum_ce','Total_Mat_Maj_supp_embedments_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(377,'Sum_Mat_Reinforc_steel','Total cost of Material Reinforc steel',7957390.726999999955,'dollar','sum_ce','Total_Mat_Reinforc_steel_Substr,Total_Mat_Reinforc_steel_Superstr,Total_Mat_Reinforc_steel_Dome,Total_Mat_Reinforc_steel_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(378,'Sum_Mat_Rubbing_surfaces','Total cost of Material Rubbing surfaces',25051.63696999999957,'dollar','sum_ce','Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Rubbing_surfaces_Interior','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(379,'Sum_Mat_Waterproofing','Total cost of Material Waterproofing',13442.58020000000033,'dollar','sum_ce','Total_Mat_Waterproofing_Substr,Total_Mat_Waterproofing_Superstr,Total_Mat_Waterproofing_Dome','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(380,'Sum_Mat_Welded_wire_fabric','Total cost of Material Welded wire fabric',10870.37999999999919,'dollar','sum_ce','Total_Mat_Welded_wire_fabric_Substr','Tot_Mat_concr',0); +INSERT INTO lfr_variable VALUES(381,'Tot_Labor_concr','Total cost of labor of containment construction',24534817.26000000163,'dollar','sum_ce','Sum_Labor_Cadweld,Sum_Labor_Concrete,Sum_Labor_Constr_joints,Sum_Labor_Embedded_steel,Sum_Labor_Formwork,Sum_Labor_Maj_supp_embedments,Sum_Labor_Reinforc_steel,Sum_Labor_Rubbing_surfaces,Sum_Labor_Waterproofing,Sum_Labor_Welded_wire_fabric','Tot_Labor_containment',0); +INSERT INTO lfr_variable VALUES(382,'Tot_Labor_equipment','Total cost of labor of containment equipments',1919453.529000000096,'dollar','sum_ce','Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other','Tot_Labor_containment',0); +INSERT INTO lfr_variable VALUES(383,'Tot_Labor_others','Total cost of labor of other non-concrete related items ',17486505.19000000135,'dollar','sum_ce','Total_Labor_Misc_steel_frames,Total_Labor_React_cav_liner,Total_Labor_Struct_steel,Total_Labor_cont_liner,Total_Labor_fl_grate_handrail_stairs,Total_Labor_painting','Tot_Labor_containment',0); +INSERT INTO lfr_variable VALUES(384,'Tot_Mat_concr','Total cost of material of containment construction',14841635.07000000029,'dollar','sum_ce','Sum_Mat_Cadweld,Sum_Mat_Concrete,Sum_Mat_Constr_joints,Sum_Mat_Embedded_steel,Sum_Mat_Formwork,Sum_Mat_Maj_supp_embedments,Sum_Mat_Reinforc_steel,Sum_Mat_Rubbing_surfaces,Sum_Mat_Waterproofing,Sum_Mat_Welded_wire_fabric','Tot_Mat_containment',0); +INSERT INTO lfr_variable VALUES(385,'Tot_Mat_equipment','Total cost of material of containment equipments',1353108.841999999946,'dollar','sum_ce','Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other','Tot_Mat_containment',0); +INSERT INTO lfr_variable VALUES(386,'Tot_Mat_others','Total cost of material of other non-concrete related items ',21289915.44000000135,'dollar','sum_ce','Total_Mat_Misc_steel_frames,Total_Mat_React_cav_liner,Total_Mat_Struct_steel,Total_Mat_cont_liner,Total_Mat_fl_grate_handrail_stairs,Total_Mat_painting','Tot_Mat_containment',0); +INSERT INTO lfr_variable VALUES(387,'Tot_Labor_containment','Total cost of labor of containment',43940775.97999999672,'dollar','sum_ce','Tot_Labor_concr,Tot_Labor_equipment,Tot_Labor_others','',0); +INSERT INTO lfr_variable VALUES(388,'Tot_Mat_containment','Total cost of material of containment',37484659.35000000149,'dollar','sum_ce','Tot_Mat_concr,Tot_Mat_equipment,Tot_Mat_others','',0); +CREATE TABLE `ste_acc` ( + `ind` INTEGER DEFAULT NULL, + `code_of_account` TEXT NOT NULL, + `account_description` text, + `total_cost` REAL DEFAULT NULL, + `level` INTEGER DEFAULT NULL, + `supaccount` text, + `review_status` text, + `prn` REAL DEFAULT NULL, + `alg_name` text, + `fun_unit` text, + `variables` text, + PRIMARY KEY (`code_of_account`) +); +INSERT INTO ste_acc VALUES(1,'2','Plant direct cost',4890764070.0,0,'','Unchanged',1.0,'acc2','million',''); +INSERT INTO ste_acc VALUES(2,'21','Total account 21 cost',994668076.299999953,1,'2','Unchanged',0.2030118009999999918,'acc21','million',''); +INSERT INTO ste_acc VALUES(3,'211','Site improvements, facilities, land',32640000.0,2,'21','Unchanged',0.006218646000000000416,'acc211','million','csi, lsa, cland'); +INSERT INTO ste_acc VALUES(4,'212','Reactor building cost',761856949.1000000239,2,'21','Unchanged',0.1558460050000000096,'acc212','million','ucrb, rbvol, exprb, lsa'); +INSERT INTO ste_acc VALUES(5,'213','Turbine building cost',31920000.0,2,'21','Unchanged',0.006529578000000000291,'acc213','million','ireactor, cturbb, lsa'); +INSERT INTO ste_acc VALUES(6,'214','Reactor maintenance and warm shop buildings cost',86635071.20000000298,2,'21','Unchanged',0.01772213200000000156,'acc214','million',''); +INSERT INTO ste_acc VALUES(7,'2141','Reactor maintenance building cost',50775640.32000000029,3,'214','Unchanged',0.0103867019999999994,'acc2141','million','ucmb, rmbvol, exprb, lsa'); +INSERT INTO ste_acc VALUES(8,'2142','Warm shop cost',35859430.88000000269,3,'214','Unchanged',0.007335430999999999896,'acc2142','million','ucws, wsvol, exprb, lsa'); +INSERT INTO ste_acc VALUES(9,'215','Tritium building cost',12432000.0,2,'21','Unchanged',0.002543099000000000053,'acc215','million','uctr, triv, exprb, lsa'); +INSERT INTO ste_acc VALUES(10,'216','Electrical equipment building cost',18862175.98999999836,2,'21','Unchanged',0.003858460000000000188,'acc216','million','ucel, elevol, exprb, lsa'); +INSERT INTO ste_acc VALUES(11,'217','Other buildings cost',50321880.0,2,'21','Unchanged',0.01029388000000000004,'acc217','million',''); +INSERT INTO ste_acc VALUES(12,'2171','Additional buildings cost',15120000.0,3,'217','Unchanged',0.003092957999999999819,'acc2171','million','ucad, admvol, exprb, lsa'); +INSERT INTO ste_acc VALUES(13,'2172','Control room buildings cost',17640000.0,3,'217','Unchanged',0.003608450999999999933,'acc2172','million','ucco, convol, exprb, lsa'); +INSERT INTO ste_acc VALUES(14,'2173','Shop and warehouses cost',9660000.0,3,'217','Unchanged',0.001976056999999999813,'acc2173','million','ucsh, shovol, exprb, lsa'); +INSERT INTO ste_acc VALUES(15,'2174','Cryogenic building cost',7901880.0,3,'217','Unchanged',0.001616414000000000045,'acc2174','million','uccr, cryvol, exprb, lsa'); +INSERT INTO ste_acc VALUES(16,'22','Total account 22 cost',3513724589.0,1,'2','Unchanged',0.718770028999999977,'acc22','million',''); +INSERT INTO ste_acc VALUES(17,'221','Total account 221 cost',688411764.2000000476,2,'22','Unchanged',0.1408220059999999996,'acc221','million',''); +INSERT INTO ste_acc VALUES(18,'2211','First wall cost',188733898.0,3,'221','Unchanged',0.03860754200000000163,'acc2211','million','ife, ucfwa, ucfws, fwarea, ucfwps, ucblss, fwmatm, uccarb, ucblli2o, ucconc, ifueltyp, fwallcst'); +INSERT INTO ste_acc VALUES(19,'2212','Blanket total cost',390073761.1999999881,3,'221','Unchanged',0.0797937690000000005,'acc2212','million',''); +INSERT INTO ste_acc VALUES(20,'22121','Blanket beryllium cost',219499627.0999999941,4,'2212','Unchanged',0.04490100200000000235,'acc22121','million','ife, wtbllipb, ucbllipb, whtblbe, ucblbe, iblanket, lsa'); +INSERT INTO ste_acc VALUES(21,'22122','Blanket breeder material cost',81966464.01000000536,4,'2212','Unchanged',0.01676711900000000046,'acc22122','million','whtblli, ucblli, whtblbreed, ucblbreed, wtblli2o, ucblli2o, iblanket, lsa, ife'); +INSERT INTO ste_acc VALUES(22,'22123','Blanket stainless steel cost',88607670.04999999701,4,'2212','Unchanged',0.01812564900000000062,'acc22123','million','whtblss, ucblss, lsa'); +INSERT INTO ste_acc VALUES(23,'22124','Blanket vanadium cost',0.0,4,'2212','Unchanged',0.0,'acc22124','million','whtblvd, ucblvd, ife, lsa'); +INSERT INTO ste_acc VALUES(24,'2213','Total shield cost',71254105.04000000656,3,'221','Unchanged',0.01457579099999999941,'acc2213','million',''); +INSERT INTO ste_acc VALUES(25,'22131','Bulk shield cost',35627052.52000000328,4,'2213','Unchanged',0.007287894999999999964,'acc22131','million','ife, whtshld, ucshld, lsa, shmatm, uccarb, ucblli2o, ucconc'); +INSERT INTO ste_acc VALUES(26,'22132','Penetration shielding cost',35627052.52000000328,4,'2213','Unchanged',0.007287894999999999964,'acc22132','million','ife, wpenshld, ucpens, lsa'); +INSERT INTO ste_acc VALUES(27,'2214','Total support structure cost',0.0,3,'221','Unchanged',0.0,'acc2214','million','gsmass, ucgss, lsa'); +INSERT INTO ste_acc VALUES(28,'2215','Divertor cost',38350000.0,3,'221','Unchanged',0.007844903999999999767,'acc2215','million','ife, divsur, ucdiv, ifueltyp, divcst'); +INSERT INTO ste_acc VALUES(29,'222','Total account 222 cost',1371521468.0,2,'22','Unchanged',0.2805594180000000048,'acc222','million',''); +INSERT INTO ste_acc VALUES(30,'2221','TF magnet assemblies cost',798612345.8999999761,3,'222','Unchanged',0.1633647159999999932,'acc2221','million',''); +INSERT INTO ste_acc VALUES(31,'22211','TF coil conductor cost',411634736.6999999881,4,'2221','Unchanged',0.08420429799999999688,'acc22211','million','whtcp, uccpcl1, itart, ifueltyp, cpstcst, whtconsc,tfleng, n_tf_turn, uccu, whtconcu, cconshtf, cconfix, n_tf, lsa, i_tf_sup, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, fkind, i_tf_sc_mat'); +INSERT INTO ste_acc VALUES(32,'22212','TF coil winding cost',175557287.9000000059,4,'2221','Unchanged',0.03591212500000000308,'acc22212','million','whttflgs, uccpclb, lsa, ucwindtf, n_tf, tfleng, n_tf_turn, i_tf_sup'); +INSERT INTO ste_acc VALUES(33,'22213','TF coil case cost',76831625.0,4,'2221','Unchanged',0.01571673200000000061,'acc22213','million','whtcas, uccase, n_tf, lsa, i_tf_sup'); +INSERT INTO ste_acc VALUES(34,'22214','TF intercoil structure cost',112157246.9000000059,4,'2221','Unchanged',0.02294296700000000161,'acc22214','million','aintmass, ucint, lsa, i_tf_sup'); +INSERT INTO ste_acc VALUES(35,'22215','TF coil gravity support structure',22431449.37999999896,4,'2221','Unchanged',0.004588593000000000185,'acc22215','million','clgsmass, ucgss, lsa, i_tf_sup'); +INSERT INTO ste_acc VALUES(36,'2222','PF magnet assemblies cost',0.0,3,'222','Unchanged',0.0,'acc2222','million',''); +INSERT INTO ste_acc VALUES(37,'22221','PF coil conductor cost',0.0,4,'2222','Unchanged',0.0,'acc22221','million','ipfres, cconshpf, iohcl, nohc, ucsc_0, ucsc_1, ucsc_2, ucsc_3, ucsc_4, ucsc_5, ucsc_6, ucsc_7, ucsc_8, isumatpf, fcupfsu, vf, ric_0, ric_1, ric_2, ric_3, ric_4, ric_5, ric_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, rjconpf_0, rjconpf_1, rjconpf_2, rjconpf_3, rjconpf_4, rjconpf_5, rjconpf_6, rjconpf_7, dcond_0, dcond_1, dcond_2, dcond_3, dcond_4, dcond_5, dcond_6, dcond_7, dcond_8, uccu, dcopper, cconfix, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, lsa, isumatoh, awpoh, vfohc, fcuohsu'); +INSERT INTO ste_acc VALUES(38,'22222','PF coil winding cost',0.0,4,'2222','Unchanged',0.0,'acc22222','million','ucwindpf, lsa, twopi, rpf_0, rpf_1, rpf_2, rpf_3, rpf_4, rpf_5, rpf_6, turns_0, turns_1, turns_2, turns_3, turns_4, turns_5, turns_6, nohc'); +INSERT INTO ste_acc VALUES(39,'22223','PF coil case cost',0.0,4,'2222','Unchanged',0.0,'acc22223','million','uccase, whtpfs, lsa'); +INSERT INTO ste_acc VALUES(40,'22224','PF coil support structure cost',0.0,4,'2222','Unchanged',0.0,'acc22224','million','ucfnc, fncmass, lsa'); +INSERT INTO ste_acc VALUES(41,'2223','Vacuum vessel assembly cost',572909121.7999999524,3,'222','Unchanged',0.1171947019999999979,'acc2223','million','vvmass, uccryo, lsa'); +INSERT INTO ste_acc VALUES(42,'223','Total account 223 cost',0.0,2,'22','Unchanged',0.0,'acc223','million',''); +INSERT INTO ste_acc VALUES(43,'2231','ECH system cost',0.0,3,'223','Unchanged',0.0,'acc2231','million','ucech, echpwr, exprf, ifedrv, dcdrv1, dcdrv2, cdriv1, mcdriv, edrive, etadrv, dcdrv0, cdriv0 ,cdriv3, fcdfuel, ife, cdriv2, ifueltyp'); +INSERT INTO ste_acc VALUES(44,'2232','Lower hybrid system cost',0.0,3,'223','Unchanged',0.0,'acc2232','million','iefrf, uclh, plhybd, exprf, ucich, fcdfuel, ifueltyp, ife'); +INSERT INTO ste_acc VALUES(45,'2233','Neutral beam system cost',0.0,3,'223','Unchanged',0.0,'acc2233','million','ucnbi, exprf, fcdfuel, ifueltyp, pnbitot, ife, ifedrv'); +INSERT INTO ste_acc VALUES(46,'224','Total account 224 cost',76872748.95999999344,2,'22','Unchanged',0.01572514499999999941,'acc224','million',''); +INSERT INTO ste_acc VALUES(47,'2241','High vacuum pumps cost',39000000.0,3,'224','Unchanged',0.007977868000000000807,'acc2241','million','vpumpn, uccpmp, uctpmp, ntype'); +INSERT INTO ste_acc VALUES(48,'2242','Backing pumps cost',14625000.0,3,'224','Unchanged',0.002991700999999999823,'acc2242','million','nvduct, ucbpmp'); +INSERT INTO ste_acc VALUES(49,'2243','Vacuum duct cost',5999583.01099999994,3,'224','Unchanged',0.001227278999999999957,'acc2243','million','nvduct, dlscal, ucduct'); +INSERT INTO ste_acc VALUES(50,'2244','Valves cost',15948165.94999999926,3,'224','Unchanged',0.003262367999999999866,'acc2244','million','nvduct, vcdimax, ucvalv'); +INSERT INTO ste_acc VALUES(51,'2245','Duct shielding cost',0.0,3,'224','Unchanged',0.0,'acc2245','million','nvduct, vacdshm, ucvdsh'); +INSERT INTO ste_acc VALUES(52,'2246','Instrumentation cost',1300000.0,3,'224','Unchanged',0.000265928999999999981,'acc2246','million','ucviac'); +INSERT INTO ste_acc VALUES(53,'225','Total account 225 cost',208054137.8000000119,2,'22','Unchanged',0.04255970399999999681,'acc225','million',''); +INSERT INTO ste_acc VALUES(54,'2251','Total, TF coil power costs',208054137.8000000119,3,'225','Unchanged',0.04255970399999999681,'acc2251','million',''); +INSERT INTO ste_acc VALUES(55,'22511','TF coil power supplies cost',5296542.370000000111,4,'2251','Unchanged',0.001083465000000000035,'acc22511','million','uctfps, tfckw, tfcmw, expel'); +INSERT INTO ste_acc VALUES(56,'22512','TF coil breakers cost',71213011.56999999285,4,'2251','Unchanged',0.0145673850000000004,'acc22512','million','uctfbr, n_tf, cpttf, vtfskv, expel, uctfsw, i_tf_sup'); +INSERT INTO ste_acc VALUES(57,'22513','TF coil dump resistors cost',15388500.0,4,'2251','Unchanged',0.003147883000000000191,'acc22513','million','uctfdr, estotftgj, uctfgr, n_tf'); +INSERT INTO ste_acc VALUES(58,'22514','TF coil instrumentation and control',15000000.0,4,'2251','Unchanged',0.003068411000000000055,'acc22514','million','uctfic, n_tf, '); +INSERT INTO ste_acc VALUES(59,'22515','TF coil bussing cost',101156083.7999999971,4,'2251','Unchanged',0.02069256100000000168,'acc22515','million','uctfbus, tfbusmas, ucbus, cpttf, tfbusl, i_tf_sup'); +INSERT INTO ste_acc VALUES(60,'2252','Total, PF coil power costs',0.0,3,'225','Unchanged',0.0,'acc2252','million',''); +INSERT INTO ste_acc VALUES(61,'22521','PF coil power supplies cost',0.0,4,'2252','Unchanged',0.0,'acc22521','million','ucpfps, peakmva'); +INSERT INTO ste_acc VALUES(62,'22522','PF coil instrumentation and control',0.0,4,'2252','Unchanged',0.0,'acc22522','million','ucpfic, pfckts'); +INSERT INTO ste_acc VALUES(63,'22523','PF coil bussing cost',0.0,4,'2252','Unchanged',0.0,'acc22523','million','ucpfb, spfbusl, acptmax'); +INSERT INTO ste_acc VALUES(64,'22524','PF coil burn power supplies cost',0.0,4,'2252','Unchanged',0.0,'acc22524','million','ucpfbs, pfckts, srcktpm'); +INSERT INTO ste_acc VALUES(65,'22525','PF coil breakers cost',0.0,4,'2252','Unchanged',0.0,'acc22525','million','ucpfbk, pfckts, acptmax, vpfskv'); +INSERT INTO ste_acc VALUES(66,'22526','PF coil dump resistors cost',0.0,4,'2252','Unchanged',0.0,'acc22526','million','ucpfdr1, ensxpfm'); +INSERT INTO ste_acc VALUES(67,'22527','PF coil ac breakers cost',0.0,4,'2252','Unchanged',0.0,'acc22527','million','ucpfcb, pfckts'); +INSERT INTO ste_acc VALUES(68,'2253','Total, energy storage cost',0.0,3,'225','Unchanged',0.0,'acc2253','million','lpulse, istore, ucblss, pthermmw, tdown, dtstor, pnetelmw'); +INSERT INTO ste_acc VALUES(69,'226','Total account 226 cost',333665524.5,2,'22','Unchanged',0.06825486000000000053,'acc226','million',''); +INSERT INTO ste_acc VALUES(70,'2261','Total, reactor cooling system cost',136211203.5,3,'226','Unchanged',0.02786346199999999857,'acc2261','million',''); +INSERT INTO ste_acc VALUES(71,'22611','Pumps and piping system cost',60608116.1499999985,4,'2261','Unchanged',0.01239804000000000079,'acc22611','million','uchts, coolwh, pfwdiv, exphts, pnucblkt, pnucshld, lsa'); +INSERT INTO ste_acc VALUES(72,'22612','Primary heat exchanger cost',75603087.32999999821,4,'2261','Unchanged',0.01546542199999999951,'acc22612','million','ucphx, nphx, pthermmw, exphts, lsa'); +INSERT INTO ste_acc VALUES(73,'2262','Pumps, piping cost',16450844.93999999948,3,'226','Unchanged',0.003365196999999999894,'acc2262','million','ucahts, pinjht, exphts, crypmw, vachtmw, trithtmw, fachtmw, ife, tdspmw, tfacmw, lsa'); +INSERT INTO ste_acc VALUES(74,'2263','Total, cryogenic system cost',181003476.0,3,'226','Unchanged',0.03702620100000000163,'acc2263','million','uccry, tmpcry, helpow, lsa, expcry'); +INSERT INTO ste_acc VALUES(75,'227','Total account 227 cost',385198945.6000000238,2,'22','Unchanged',0.07879657299999999475,'acc227','million',''); +INSERT INTO ste_acc VALUES(76,'2271','Fuelling system cost',22300000.0,3,'227','Unchanged',0.00456170399999999976,'acc2271','million','ucf1'); +INSERT INTO ste_acc VALUES(77,'2272','Fuel processing and purification cost',136481564.5,3,'227','Unchanged',0.02791876700000000058,'acc2272','million','ife, rndfuel, afuel, umass, gain, edrive, fburn, reprat, ucfpr'); +INSERT INTO ste_acc VALUES(78,'2273','Atmospheric recovery systems cost',110589017.9000000059,3,'227','Unchanged',0.02262216900000000099,'acc2273','million','ftrit, ucdtc, volrci, wsvol, cfrht'); +INSERT INTO ste_acc VALUES(79,'2274','Nuclear building ventilation cost',115828363.2000000029,3,'227','Unchanged',0.02369393300000000035,'acc2274','million','ucnbv, volrci, wsvol'); +INSERT INTO ste_acc VALUES(80,'228','Instrumentation and control cost',150000000.0,2,'22','Unchanged',0.0306841080000000016,'acc228','million','uciac'); +INSERT INTO ste_acc VALUES(81,'229','Maintenance equipment cost',300000000.0,2,'22','Unchanged',0.0613682160000000032,'acc229','million','ucme'); +INSERT INTO ste_acc VALUES(82,'23','Turbine plant equipment cost',258472349.8000000119,1,'2','Unchanged',0.05287329000000000334,'acc23','million','ireactor, ucturb, coolwh, pgrossmw, exptpe'); +INSERT INTO ste_acc VALUES(83,'24','Total account 24 cost',30514416.07000000029,1,'2','Unchanged',0.006242051000000000196,'acc24','million',''); +INSERT INTO ste_acc VALUES(84,'241','Switchyard equipment cost',14444000.0,2,'24','Unchanged',0.002954674999999999923,'acc241','million','ucswyd, lsa'); +INSERT INTO ste_acc VALUES(85,'242','Transformers cost',4391499.617999999784,2,'24','Unchanged',0.0008983279999999999955,'acc242','million','ucpp, pacpmw, expepe, ucap, fcsht, lsa'); +INSERT INTO ste_acc VALUES(86,'243','Low voltage equipment cost',5163416.446999999694,2,'24','Unchanged',0.001056232000000000047,'acc243','million','uclv, tlvpmw, lsa'); +INSERT INTO ste_acc VALUES(87,'244','Diesel backup equipment cost',5338000.0,2,'24','Unchanged',0.001091944999999999982,'acc244','million','ucdgen, lsa'); +INSERT INTO ste_acc VALUES(88,'245','Auxiliary facilities cost',1177500.0,2,'24','Unchanged',0.0002408699999999999893,'acc245','million','ucaf, lsa'); +INSERT INTO ste_acc VALUES(89,'25','Miscellaneous plant equipment cost',22125000.0,1,'2','Unchanged',0.004525905999999999679,'acc25','million','ucmisc, lsa'); +INSERT INTO ste_acc VALUES(90,'26','Heat rejection system cost',71259639.5300000012,1,'2','Unchanged',0.01457692300000000031,'acc26','million','ireactor, powfmw, pinjwp, tfcmw, pthermmw, pgrossmw, uchrs, lsa'); +CREATE TABLE `ste_var` ( + `ind` INTEGER DEFAULT NULL, + `var_name` TEXT NOT NULL, + `var_description` text, + `var_value` REAL DEFAULT NULL, + `var_unit` text, + `var_alg` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`var_name`) +); +INSERT INTO ste_var VALUES(1,'acptmax','average of currents in PF circuits',0.0,'kA','','','',0); +INSERT INTO ste_var VALUES(2,'admvol','volume of administration buildings',100000.0,'m3','','','',0); +INSERT INTO ste_var VALUES(3,'afuel','average mass of fuel portion of ions',2.5,'amu','','','wtgpd',0); +INSERT INTO ste_var VALUES(4,'aintmass','intercoil structure mass',3792299.129999999889,'kg','stcalaintmass','st_f_b, denstl, intercoil_surface','clgsmass',0); +INSERT INTO ste_var VALUES(5,'anncap','annual cost of plant capital cost',538.1462183999999525,'million','','','',0); +INSERT INTO ste_var VALUES(6,'anncdr','current drive annual cost of replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(7,'anncp','annual cost of centrepost replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(8,'anndecom','annual cost of decomissioning',4.597412066999999602,'million','','','',0); +INSERT INTO ste_var VALUES(9,'anndiv','divertor annual cost of replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(10,'annfuel','annual cost of fuel',2.841346249999999963,'million','','','',0); +INSERT INTO ste_var VALUES(11,'annfwbl','annual cost of first wall and blanket replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(12,'annoam','operational and maintenance annual cost ',62.43684807000000348,'million','','','',0); +INSERT INTO ste_var VALUES(13,'annwst','annual cost of waste',3.575598567000000116,'million','','','',0); +INSERT INTO ste_var VALUES(14,'areaoh','Central solenoid vertical cross-sectional area',9.067197218000000447,'m2','','','awpoh',0); +INSERT INTO ste_var VALUES(15,'awpoh','central solenoid conductor+void area with area of steel subtracted',4.416007688999999736,'dollar','calawpoh','oh_steel_frac, areaoh','',0); +INSERT INTO ste_var VALUES(16,'bktlife','full power blanket lifetime',6.666999999999999816,'years','','','fwbllife',0); +INSERT INTO ste_var VALUES(17,'capcost','total capital cost including interest',8279.172590000000127,'million','','','acccapcost',0); +INSERT INTO ste_var VALUES(18,'cconfix','fixed cost of superconducting cable',80.0,'$/m','','','',0); +INSERT INTO ste_var VALUES(19,'cconshpf','cost of PF coil steel conduit/sheath',0.0,'$/m','','','',0); +INSERT INTO ste_var VALUES(20,'cconshtf','cost of TF coil steel conduit/sheath',75.0,'$/m','','','',0); +INSERT INTO ste_var VALUES(21,'cdcost','current drive system cost',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(22,'cdirt','total plant direct cost',4888.524070000000392,'million','','','',0); +INSERT INTO ste_var VALUES(23,'cdriv0','IFE generic/laser driver cost at edrive=0',154.3000000000000113,'million','','','',0); +INSERT INTO ste_var VALUES(24,'cdriv1','IFE low energy heavy ion beam driver cost extrapolated to `edrive=0`',163.1999999999999887,'million','','','',0); +INSERT INTO ste_var VALUES(25,'cdriv2','IFE high energy heavy ion beam driver cost extrapolated to `edrive=0`',244.9000000000000056,'million','','','',0); +INSERT INTO ste_var VALUES(26,'cdriv3','IFE driver cost (`ifedrv==3`)',1.463000000000000078,'($/J wall plug)','','','',0); +INSERT INTO ste_var VALUES(27,'cdrlife','lifetime of heating/current drive system',6.669999999999999929,'years','','','fefcdr',0); +INSERT INTO ste_var VALUES(28,'cfactr','total plant availability fraction',0.75,'N/A','','','',0); +INSERT INTO ste_var VALUES(29,'cfind_0','indirect cost factor ',0.2439999999999999947,'N/A','','','',0); +INSERT INTO ste_var VALUES(30,'cfind_1','indirect cost factor ',0.2439999999999999947,'N/A','','','',0); +INSERT INTO ste_var VALUES(31,'cfind_2','indirect cost factor ',0.2439999999999999947,'N/A','','','',0); +INSERT INTO ste_var VALUES(32,'cfind_3','indirect cost factor ',0.2899999999999999801,'N/A','','','',0); +INSERT INTO ste_var VALUES(33,'cland','cost of land',19.19999999999999929,'million','','','',0); +INSERT INTO ste_var VALUES(34,'clgsmass','gravity support structure for TF coil, PF coil and intercoil support systems',758459.0,'kg','stcalclgsmass','aintmass','',0); +INSERT INTO ste_var VALUES(35,'cmlsa','index of four constants that change between accounts',2.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(36,'coecdr','cost of electricity due to current drive system replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(37,'coecp','cost of electricity attributed to centrepost replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(38,'coediv','cost of electricity due to divertor replacements',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(39,'coefuel','cost of electricity attributed to fuel',0.5968203460000000015,'million','','','',0); +INSERT INTO ste_var VALUES(40,'coefwbl','cost of electricity due to first wall/ blanket replacement',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(41,'coewst','cost of electricity attributed to waste',0.7510488990000000475,'million','','','',0); +INSERT INTO ste_var VALUES(42,'convol','volume of control, protection and i&c building',60000.0,'m3','','','',0); +INSERT INTO ste_var VALUES(43,'coolwh','Switch for blanket coolant',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(44,'cowner','owner cost factor',0.1499999999999999945,'N/A','','','',0); +INSERT INTO ste_var VALUES(45,'cplife','calculated full power year lifetime of centrepost',0.0,'years','','','fefcp',0); +INSERT INTO ste_var VALUES(46,'cpstcst','ST centrepost direct cost',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(47,'cpttf','TF coil current per turn',44574.91520756290265,'A','','','',0); +INSERT INTO ste_var VALUES(48,'crfcdr','current drive capital recovery factor',0.0,'N/A','crfcdr','discount_rate, cdrlife','',0); +INSERT INTO ste_var VALUES(49,'crfcp','centrepost capital recovery factor',0.0,'N/A','crfcp','itart, ife, fefcp, discount_rate','',0); +INSERT INTO ste_var VALUES(50,'crfdiv','divertor capital recovery factor',0.3453472260000000071,'N/A','crfdiv','fefdiv, discount_rate, ife','',0); +INSERT INTO ste_var VALUES(51,'crffwbl','first wall and blanket capital recovery factor',0.1863937300000000074,'N/A','crffwbl','feffwbl, discount_rate','',0); +INSERT INTO ste_var VALUES(52,'crypmw','cryogenic plant power',68.09999999999999431,'MW','','','',0); +INSERT INTO ste_var VALUES(53,'cryvol','volume of cryoplant building',20450.0,'m3','','','',0); +INSERT INTO ste_var VALUES(54,'csi','allowance for site costs',16.0,'million','','','',0); +INSERT INTO ste_var VALUES(55,'cturbb','cost of turbine building',38.0,'million','','','',0); +INSERT INTO ste_var VALUES(56,'d_0','vacuum duct diameter',0.07689999999999999614,'m','','','dlscal',0); +INSERT INTO ste_var VALUES(57,'d_1','vacuum duct diameter',0.1170000000000000067,'m','','','dlscal',0); +INSERT INTO ste_var VALUES(58,'d_2','vacuum duct diameter',0.4400000000000000022,'m','','','dlscal',0); +INSERT INTO ste_var VALUES(59,'d_3','vacuum duct diameter',9.99999999999999955e-07,'m','','','dlscal',0); +INSERT INTO ste_var VALUES(60,'dcdrv0','IFE generic/laser driver cost gradient',111.4000000000000056,'M$/MJ','','','',0); +INSERT INTO ste_var VALUES(61,'dcdrv1','HIB driver cost gradient at low energy',78.0,'M$/MJ','','','',0); +INSERT INTO ste_var VALUES(62,'dcdrv2','HIB driver cost gradient at high energy',59.89999999999999858,'M$/MJ','','','',0); +INSERT INTO ste_var VALUES(63,'dcond_0','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(64,'dcond_1','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(65,'dcond_2','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(66,'dcond_3','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(67,'dcond_4','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6080.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(68,'dcond_5','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(69,'dcond_6','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',6070.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(70,'dcond_7','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(71,'dcond_8','density of superconductor type given by i_tf_sc_mat/isumatoh/isumatpf',8500.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(72,'dcopper','density of copper',8900.0,'kg/m3','','','',0); +INSERT INTO ste_var VALUES(73,'decomf','proportion of constructed cost required for decommissioning fund',0.1000000000000000055,'N/A','','','',0); +INSERT INTO ste_var VALUES(74,'denstl','density of steel',7800.0,'kg/m3','','','aintmass',0); +INSERT INTO ste_var VALUES(75,'dintrt','diff between borrowing and saving interest rates',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(76,'discount_rate','effective cost of money in constant dollars',0.05999999999999999778,'N/A','','','feffwbl, crffwbl, fefdiv, crfdiv, fefcp, crfcp, fefcdr, crfcdr',0); +INSERT INTO ste_var VALUES(77,'divcst','divertor direct cost',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(78,'divlife','full power lifetime of divertor',3.279999999999999805,'years','','','fefdiv',0); +INSERT INTO ste_var VALUES(79,'divsur','divertor surface area',76.70000000000000284,'m2','','','',0); +INSERT INTO ste_var VALUES(80,'dlscal','vacuum system duct length scaling',2.840039294999999964,'N/A','caldlscal','l1, ltot, imax, d_0, d_1, d_2, d_3','',0); +INSERT INTO ste_var VALUES(81,'drbi','length to allow laydown',170.4791549999999916,'m','','','rbvol, volrci',0); +INSERT INTO ste_var VALUES(82,'dtlife','period prior to the end of the plant life that the decommissioning fund is used',0.0,'years','','','',0); +INSERT INTO ste_var VALUES(83,'dtstor','maximum allowable temperature change in stainless steel thermal storage block',300.0,'K','','','',0); +INSERT INTO ste_var VALUES(84,'ealphadt','alpha birth energy in D-T reaction ',3520.0,'keV','','','rndfuel',0); +INSERT INTO ste_var VALUES(85,'echarge','electron charge',1.599999999999999913e-19,'C','','','rndfuel',0); +INSERT INTO ste_var VALUES(86,'echpwr','ECH power ',5.348945887000000177,'MW','calechpwr','faccd, faccdfix, plascur, effrfss, pheat','',0); +INSERT INTO ste_var VALUES(87,'edrive','IFE driver energy',5000000.0,'J','','','targtm',0); +INSERT INTO ste_var VALUES(88,'effrfss','lower hybrid current drive efficienty',0.04641051599999999889,'A/W','','','echpwr',0); +INSERT INTO ste_var VALUES(89,'elevol','volume of electrical equipment building',59092.0,'m3','calelevol','tfcbv, pfbldgm3, esbldgm3, pibv','',0); +INSERT INTO ste_var VALUES(90,'ensxpfm','maximum stored energy in the PF circuits',0.0,'MJ','','','',0); +INSERT INTO ste_var VALUES(91,'esbldgm3','volume of energy storage equipment building (not used if `lpulse=0`)',0.0,'m3','','','elevol',0); +INSERT INTO ste_var VALUES(92,'estotftgj','total stored energy in the toroidal field',87.20000000000000284,'GJ','','','',0); +INSERT INTO ste_var VALUES(93,'etadrv','IFE driver wall plug to target efficiency',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(94,'expcry','exponential parameter of cryogenic system',0.6700000000000000399,'N/A','','','',0); +INSERT INTO ste_var VALUES(95,'expel','exponential parameter of TF coil power conditioning',0.6999999999999999556,'N/A','','','',0); +INSERT INTO ste_var VALUES(96,'expepe','exponential parameter of electrical plant equipment (Transformers)',0.9000000000000000222,'N/A','','','',0); +INSERT INTO ste_var VALUES(97,'exphts','exponential parameter of the heat transport system',0.6999999999999999556,'N/A','','','',0); +INSERT INTO ste_var VALUES(98,'exprb','exponential parameter of structures and site facilities',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(99,'exprf','exponential parameter of power injection',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(100,'exptpe','exponantial parameter of turbine plant equipment ',0.8299999999999999601,'N/A','','','',0); +INSERT INTO ste_var VALUES(101,'faccd','fraction of plasma current produced by auxiliary current drive',0.01490185400000000083,'N/A','','','echpwr',0); +INSERT INTO ste_var VALUES(102,'faccdfix','fixed auxiliary current',0.0,'A','','','echpwr',0); +INSERT INTO ste_var VALUES(103,'fachtmw','facility heat removal',79.30654285999999331,'MW','','','',0); +INSERT INTO ste_var VALUES(104,'fburn','IFE burn fraction',0.3332999999999999852,'fraction of tritium fused/target','','','targtm',0); +INSERT INTO ste_var VALUES(105,'fcap0','average cost of money for construction of plant assuming design/construction time of six years',1.149999999999999911,'N/A','','','',0); +INSERT INTO ste_var VALUES(106,'fcap0cp','average cost of money for replaceable components assuming lead time for these of two years',1.060000000000000053,'N/A','','','',0); +INSERT INTO ste_var VALUES(107,'fcdfuel','fraction of current drive cost treated as fuel (if `ifueltyp = 1`)',0.1000000000000000055,'N/A','','','',0); +INSERT INTO ste_var VALUES(108,'fcontng','project contingency factor',0.1499999999999999945,'N/A','','','',0); +INSERT INTO ste_var VALUES(109,'fcr0','fixed charge rate during construction',0.06500000000000000222,'N/A','','','',0); +INSERT INTO ste_var VALUES(110,'fcsht','total baseline power required at all times',79.29999999999999716,'MW','','','',0); +INSERT INTO ste_var VALUES(111,'fcuohsu','copper fraction of strand in central solenoid',0.6999999999999999556,'N/A','','','',0); +INSERT INTO ste_var VALUES(112,'fcupfsu','copper fraction of cable conductor (PF coils)',0.7563900000000000067,'N/A','','','',0); +INSERT INTO ste_var VALUES(113,'fefcdr','current drive system compound interest factor',1.47473573400000002,'N/A','fefcdr','discount_rate, cdrlife','crfcdr',0); +INSERT INTO ste_var VALUES(114,'fefcp','centrepost compound interest factor',0.0,'N/A','fefcp','itart, ife, discount_rate, cplife','crfcp',0); +INSERT INTO ste_var VALUES(115,'fefdiv','divertor compound interest factor',1.210270136000000107,'N/A','fefdiv','divlife, discount_rate, ife','crfdiv',0); +INSERT INTO ste_var VALUES(116,'feffwbl','first wall and blanket compound interest factor',1.47470709099999997,'N/A','feffwbl','discount_rate, fwbllife','crffwbl',0); +INSERT INTO ste_var VALUES(117,'fhe3','helium-3 fuel fraction',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(118,'fkind','multiplier for Nth of a kind costs',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(119,'fncmass','PF coil outer support fence mass',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(120,'fndt','foundation thickness',2.0,'m','','','rbvol, rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(121,'ftrit','tritium fuel fraction',0.5,'N/A','','','',0); +INSERT INTO ste_var VALUES(122,'fusionrate','fusion reaction rate',656665000000000000.0,'reactions/m3/sec','','','rndfuel',0); +INSERT INTO ste_var VALUES(123,'fwallcst','first wall cost',0.0,'million','','','',0); +INSERT INTO ste_var VALUES(124,'fwarea','first wall total surface area',2138.453073802229938,'m2','','','',0); +INSERT INTO ste_var VALUES(125,'fwbllife','first wall and blanket operational life',6.666999999999999816,'years','fwbllife','bktlife','',0); +INSERT INTO ste_var VALUES(126,'fwmatm','IFE first wall material masses',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(127,'gain','IFE target gain',0.0,'N/A','','','targtm',0); +INSERT INTO ste_var VALUES(128,'gsmass','reactor core gravity support mass ',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(129,'hccl','clearance around components in hot cell ',5.0,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(130,'hcwt','hot cell wall thickness ',1.5,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(131,'helpow','Heat removal at cryogenic temperature tmpcry',138183.6331239019929,'W','','','',0); +INSERT INTO ste_var VALUES(132,'hrbi','tfh allows TF coil to be lifted right out',59.22479452000000321,'m','','','volrci, rbvol',0); +INSERT INTO ste_var VALUES(133,'i_tf_sc_mat','Switch for superconductor material in TF coils',8.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(134,'i_tf_sup','Switch for TF coil conductor model',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(135,'iblanket','switch for blanket model',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(136,'iefrf','Switch for current drive efficiency model',10.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(137,'ife','switch for the IFE option',0.0,'N/A','','','wtgpd, fefdiv, crfdiv, fefcp, crfcp',0); +INSERT INTO ste_var VALUES(138,'ifedrv','Switch for type of IFE driver',2.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(139,'ifueltyp','switch for fuel type',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(140,'imax','d[imax] = diameter of passage from divertor to pumping ducts',2.0,'N/A','','','dlscal',0); +INSERT INTO ste_var VALUES(141,'intercoil_surface','intercoil surface without the scaling of coil sizes',3765.90000000000009,'m^2','stcalintercoil_surface','stella_config_coilsurface, st_f_r, tftort, stella_config_coillength, st_f_n','aintmass',0); +INSERT INTO ste_var VALUES(142,'iohcl','Switch for existence of central solenoid',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(143,'ipfres','switch for PF & CS coil conductor type',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(144,'ireactor','Switch for net electric power and cost of electricity calculations',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(145,'istore','Switch for thermal storage method',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(146,'isumatoh','switch for superconductor material in central solenoid',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(147,'isumatpf','switch for superconductor material in PF coils',3.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(148,'itart','switch for spherical tokamak (ST) models',0.0,'N/A','','','fefcp, crfcp',0); +INSERT INTO ste_var VALUES(149,'l1','length of passage from divertor to ducts',0.961999999999999967,'m','','','dlscal',0); +INSERT INTO ste_var VALUES(150,'lpulse','Switch for reactor model',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(151,'lsa','Level of safety assurance switch (generally use 3 or 4)',2.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(152,'ltot','total passage length',7.160000000000000142,'m','','','dlscal',0); +INSERT INTO ste_var VALUES(153,'mbvfac','maintenance building volume multiplication factor',2.799999999999999823,'N/A','','','rmbvol',0); +INSERT INTO ste_var VALUES(154,'mcdriv','IFE driver cost multiplier',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(155,'n_day_year','average number of days in a year',365.2425000000000068,'days','','','',0); +INSERT INTO ste_var VALUES(156,'n_tf','Number of TF coils (default = 50 for stellarators). Number of TF coils outer legs for ST',50.0,'N/A','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(157,'n_tf_turn','number of turns per TF coil',251.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(158,'nohc','number of PF coils (excluding the central solenoid) + 1',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(159,'nphx','number of primary heat exchangers',4.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(160,'ntype','switch for vacuum pump type',1.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(161,'nvduct','number of ducts (torus to pumps)',50.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(162,'oh_steel_frac','central solenoid steel fraction ',0.5129688279999999879,'N/A','','','awpoh',0); +INSERT INTO ste_var VALUES(163,'pacpmw','total pulsed power system load',314.0,'MW','','','',0); +INSERT INTO ste_var VALUES(164,'palpnb','alpha power from hot neutral beam ions',0.0,'MW','','','rndfuel',0); +INSERT INTO ste_var VALUES(165,'peakmva','peak MVA requirement',83.78203800999999374,'MW','','','',0); +INSERT INTO ste_var VALUES(166,'pfbldgm3','volume of PF coil power supply building',20000.0,'m3','','','elevol',0); +INSERT INTO ste_var VALUES(167,'pfckts','number of PF coil circuits',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(168,'pgrossmw','gross electric power',1381.175999999999931,'MW','','','',0); +INSERT INTO ste_var VALUES(169,'pheat','heating power not used for current drive ',0.0,'MW','','','echpwr',0); +INSERT INTO ste_var VALUES(170,'pibv','#power injection building volume ',20000.0,'m3','','','elevol',0); +INSERT INTO ste_var VALUES(171,'pinjht','power dissipated in heating and current drive system',0.0,'MW','','','',0); +INSERT INTO ste_var VALUES(172,'pinjwp','injector wall plug power',0.0,'MW','','','',0); +INSERT INTO ste_var VALUES(173,'plascur','plasma current ',16658822.34999999963,'A','','','echpwr',0); +INSERT INTO ste_var VALUES(174,'plhybd','lower hybrid injection power',0.0,'MW','','','',0); +INSERT INTO ste_var VALUES(175,'pnbitot','neutral beam power entering vacuum vessel',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(176,'pnetelmw','net electric power',988.294347700000002,'MW','','','',0); +INSERT INTO ste_var VALUES(177,'pnucblkt','nuclear heating in the blanket',2168.93600000000015,'MW','','','',0); +INSERT INTO ste_var VALUES(178,'pnucshld','nuclear heating in the shield',0.5210000000000000186,'MW','','','',0); +INSERT INTO ste_var VALUES(179,'powfmw','fusion power',2752.454999999999928,'MW','','','',0); +INSERT INTO ste_var VALUES(180,'pthermmw','High-grade heat useful for electric production',3452.938999999999851,'MW','','','',0); +INSERT INTO ste_var VALUES(181,'rbrt','reactor building roof thickness',1.0,'m','','','rbvol',0); +INSERT INTO ste_var VALUES(182,'rbvfac','reactor building volume multiplication factor',1.600000000000000088,'N/A','','','rbvol, volrci',0); +INSERT INTO ste_var VALUES(183,'rbvol','reactor building volume',2267431.0,'m3','calrbvol','wrbi, rbwt, drbi, hrbi, rbrt, fndt, rbvfac','',0); +INSERT INTO ste_var VALUES(184,'rbwt','reactor building wall thickness',2.0,'m','','','rbvol',0); +INSERT INTO ste_var VALUES(185,'reprat','IFE driver repetition rate',0.0,'Hz','','','wtgpd',0); +INSERT INTO ste_var VALUES(186,'ric_0','peak current in coil i ',17.94655535000000057,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(187,'ric_1','peak current in coil i ',20.66898691999999826,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(188,'ric_2','peak current in coil i ',-7.722601120000000207,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(189,'ric_3','peak current in coil i ',-7.722601120000000207,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(190,'ric_4','peak current in coil i ',-5.237676740000000386,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(191,'ric_5','peak current in coil i ',-5.237676740000000386,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(192,'ric_6','peak current in coil i ',-185.6894061000000136,'MA-turns','','','',0); +INSERT INTO ste_var VALUES(193,'rjconpf_0','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(194,'rjconpf_1','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',11000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(195,'rjconpf_10','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(196,'rjconpf_11','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(197,'rjconpf_12','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(198,'rjconpf_13','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(199,'rjconpf_14','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(200,'rjconpf_15','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(201,'rjconpf_16','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(202,'rjconpf_17','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(203,'rjconpf_18','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(204,'rjconpf_19','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(205,'rjconpf_2','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(206,'rjconpf_20','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(207,'rjconpf_21','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(208,'rjconpf_3','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',6000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(209,'rjconpf_4','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(210,'rjconpf_5','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(211,'rjconpf_6','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(212,'rjconpf_7','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',8000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(213,'rjconpf_8','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(214,'rjconpf_9','average winding pack current density of PF coil i at time of peak current in that coil (calculated for `ipfloc=1` coils)',30000000.0,'A/m2','','','',0); +INSERT INTO ste_var VALUES(215,'rmbvol','volume of maintenance and assembly building ',232489.1956000000063,'m3','calrmbvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, mbvfac, fndt','',0); +INSERT INTO ste_var VALUES(216,'rndfuel','fuel burnup rate',9.81e+20,'reactions/sec','calrndfuel','fusionrate, palpnb, ealphadt, echarge, vol','wtgpd',0); +INSERT INTO ste_var VALUES(217,'rpf_0','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(218,'rpf_1','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(219,'rpf_2','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(220,'rpf_3','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(221,'rpf_4','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(222,'rpf_5','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(223,'rpf_6','radius of PF coil in i',0.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(224,'shh','height of attached shield',11.97038227,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(225,'shm','total mass of attached shield',1484460.522000000113,'kg','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(226,'shmatm','IFE shield material masses ',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(227,'shmf','fraction of shield mass per TF coil to be moved in the maximum shield lift',0.5,'N/A','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(228,'shovol','volume of shops and buildings for plan auxiliaries',100000.0,'m3','','','',0); +INSERT INTO ste_var VALUES(229,'shri','inner radius of attached shield',19.80000000000000071,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(230,'shro','outer radius of attached shield ',25.39999999999999858,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(231,'spfbusl','total PF coil circuit bus length',0.0,'m','','','',0); +INSERT INTO ste_var VALUES(232,'srcktpm','sum of resistive PF coil power',0.0,'kW','','','',0); +INSERT INTO ste_var VALUES(233,'st_f_b','B-field scaling factor',0.8469027209999999695,'N/A','','','aintmass',0); +INSERT INTO ste_var VALUES(234,'st_f_n','Coil number factor',1.0,'N/A','','','intercoil_surface',0); +INSERT INTO ste_var VALUES(235,'st_f_r','Factors used to scale the reference point.',1.01633243899999992,'N/A','','','intercoil_surface',0); +INSERT INTO ste_var VALUES(236,'stcl','clearance above crane to roof',3.0,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(237,'stella_config_coillength','Stellarator coil length',1698.734347999999955,'m','','','intercoil_surface',0); +INSERT INTO ste_var VALUES(238,'stella_config_coilsurface','stellarator coil surface area',4740.28625699999975,'m^2','','','intercoil_surface',0); +INSERT INTO ste_var VALUES(239,'targtm','mass of fuel calculation',0.0,'kg','caltargtm','gain, edrive, fburn','wtgpd',0); +INSERT INTO ste_var VALUES(240,'tburn','burn time',7246.138178000000152,'sec','','','',0); +INSERT INTO ste_var VALUES(241,'tcycle','full cycle time',9889.31462500000089,'sec','','','',0); +INSERT INTO ste_var VALUES(242,'tdown','down time',2633.176446999999826,'s','','','',0); +INSERT INTO ste_var VALUES(243,'tdspmw','IFE target delivery system power',0.1000000000000000055,'MW','','','',0); +INSERT INTO ste_var VALUES(244,'tfacmw','IFE target factory power',0.0,'MW','','','',0); +INSERT INTO ste_var VALUES(245,'tfbusl','TF coil bus length',18450.0,'m','','','',0); +INSERT INTO ste_var VALUES(246,'tfbusmas','TF coil bus mass ',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(247,'tfcbv','volume of TF coil power supply building (calculated if TF coils are superconducting)',19092.02999999999884,'m3','','','elevol',0); +INSERT INTO ste_var VALUES(248,'tfckw','available DC power for charging the TF coils',43050.0,'kW','','','',0); +INSERT INTO ste_var VALUES(249,'tfcmw','Peak power per TF power supply',0.0,'MW','','','',0); +INSERT INTO ste_var VALUES(250,'tfleng','TF coil circumference',34.5,'m','','','',0); +INSERT INTO ste_var VALUES(251,'tftort','Thickness of inboard leg in toroidal direction',0.6547979120000000374,'m','','','intercoil_surface',0); +INSERT INTO ste_var VALUES(252,'tlife','full power year plant lifetime',40.0,'years','','','',0); +INSERT INTO ste_var VALUES(253,'tlvpmw','estimate of total low voltage power',328.8800284999999804,'MW','','','',0); +INSERT INTO ste_var VALUES(254,'tmpcry','coil temperature for cryogenic plant power calculation',4.5,'K','','','',0); +INSERT INTO ste_var VALUES(255,'trcl','transportation clearance between components ',1.0,'m','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(256,'trithtmw','power required for tritium processing',15.0,'MW','','','',0); +INSERT INTO ste_var VALUES(257,'triv','volume of tritium fuel handling and health physics buildings',40000.0,'m3','','','',0); +INSERT INTO ste_var VALUES(258,'turns_0','number of turns in PF coil i',448.660000000000025,'N/A','','','',0); +INSERT INTO ste_var VALUES(259,'turns_1','number of turns in PF coil i',516.7200000000000272,'N/A','','','',0); +INSERT INTO ste_var VALUES(260,'turns_2','number of turns in PF coil i',193.0600000000000022,'N/A','','','',0); +INSERT INTO ste_var VALUES(261,'turns_3','number of turns in PF coil i',193.0600000000000022,'N/A','','','',0); +INSERT INTO ste_var VALUES(262,'turns_4','number of turns in PF coil i',130.9399999999999978,'N/A','','','',0); +INSERT INTO ste_var VALUES(263,'turns_5','number of turns in PF coil i',130.9399999999999978,'N/A','','','',0); +INSERT INTO ste_var VALUES(264,'turns_6','number of turns in PF coil i',4642.229999999999564,'N/A','','','',0); +INSERT INTO ste_var VALUES(265,'twopi','2 pi',6.283185307000000109,'N/A','','','',0); +INSERT INTO ste_var VALUES(266,'ucad','unit cost for administration buildings',180.0,'M$/m3','','','',0); +INSERT INTO ste_var VALUES(267,'ucaf','unit cost for aux facility power equipment',1500000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(268,'ucahts','unit cost for aux heat transport equipment',31.0,'$/W','','','',0); +INSERT INTO ste_var VALUES(269,'ucap','unit cost of auxiliary transformer',17.0,'$/kVA','','','',0); +INSERT INTO ste_var VALUES(270,'ucblbe','unit cost for blanket beryllium',260.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(271,'ucblbreed','unit cost for breeder material',875.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(272,'ucblli','unit cost for blanket lithium',875.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(273,'ucblli2o','unit cost for blanket Li_2O',600.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(274,'ucbllipb','unit cost for blanket Li-Pb (30% Li6)',10.30000000000000072,'$/kg','','','',0); +INSERT INTO ste_var VALUES(275,'ucblss','unit cost for blanket stainless steel ',90.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(276,'ucblvd','unit cost for blanket vanadium ',280.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(277,'ucbpmp','vacuum system backing pump cost',292500.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(278,'ucbus','cost of aluminium bus for TF coil',0.1229999999999999983,'$/A-m','','','',0); +INSERT INTO ste_var VALUES(279,'uccarb','cost of carbon cloth',50.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(280,'uccase','cost of superconductor case',50.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(281,'ucco','unit cost for control buildings',350.0,'M$/m3','','','',0); +INSERT INTO ste_var VALUES(282,'ucconc','cost of concrete',0.1000000000000000055,'$/kg','','','',0); +INSERT INTO ste_var VALUES(283,'uccpcl1','cost of high strength tapered copper',250.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(284,'uccpclb','cost of TF outboard leg plate coils',150.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(285,'uccpmp','vacuum system cryopump cost ',390000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(286,'uccr','unit cost for cryogenic building',460.0,'M$/vol','','','',0); +INSERT INTO ste_var VALUES(287,'uccry','heat transport system cryoplant costs',93000.0,'$/W','','','',0); +INSERT INTO ste_var VALUES(288,'uccryo','unit cost for vacuum vessel',32.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(289,'uccu','unit cost for copper in superconducting cable',75.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(290,'ucdgen','cost per 8 MW diesel generator',1700000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(291,'ucdiv','cost of divertor blade',500000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(292,'ucdtc','detritiation, air cleanup cost',13.0,'$/10000m3/hr','','','',0); +INSERT INTO ste_var VALUES(293,'ucduct','vacuum system duct cost',42250.0,'$/m','','','',0); +INSERT INTO ste_var VALUES(294,'ucech','ECH system cost',0.0,'$/w','','','',0); +INSERT INTO ste_var VALUES(295,'ucel','unit cost for electrical equipment building',380.0,'M$/m3','','','',0); +INSERT INTO ste_var VALUES(296,'ucf1','cost of fuelling system',22300000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(297,'ucfnc','outer PF coil fence support cost',35.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(298,'ucfpr','cost of 60g/day tritium processing unit ',44000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(299,'ucfuel','unit cost of D-T fuel',3.450000000000000177,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(300,'ucfwa','first wall armour cost',60000.0,'$/m2','','','',0); +INSERT INTO ste_var VALUES(301,'ucfwps','first wall passive stabiliser cost',10000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(302,'ucfws','first wall structure cost',53000.0,'$/m2','','','',0); +INSERT INTO ste_var VALUES(303,'ucgss','cost of reactor structure',35.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(304,'uche3','cost of helium',1000000.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(305,'uchrs','cost pf heat rejection system ',87900000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(306,'uchts_0','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',15.30000000000000071,'($/W)','','','',0); +INSERT INTO ste_var VALUES(307,'uchts_1','cost of heat transport system equipment per loop; dependent on coolant type (coolwh)',19.10000000000000143,'($/W)','','','',0); +INSERT INTO ste_var VALUES(308,'uciac','cost of instrumentation, control & diagnostics ',150000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(309,'ucich','ICH system cost',3.0,'$/W','','','',0); +INSERT INTO ste_var VALUES(310,'ucint','superconductor intercoil structure cost',35.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(311,'uclh','lower hybrid system cost ',3.299999999999999823,'$/W','','','',0); +INSERT INTO ste_var VALUES(312,'uclv','low voltage system cost',16.0,'$/kVA','','','',0); +INSERT INTO ste_var VALUES(313,'ucmb','unit cost for reactor maintenance building',260.0,'M$/m3','','','',0); +INSERT INTO ste_var VALUES(314,'ucme','cost of maintenance equipment',300000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(315,'ucmisc','miscellaneous plant allowance',25000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(316,'ucnbi','NBI system cost',3.299999999999999823,'$/W','','','',0); +INSERT INTO ste_var VALUES(317,'ucnbv','cost of nuclear building ventilation',1000.0,'$/m3','','','',0); +INSERT INTO ste_var VALUES(318,'ucoam_0','annual cost of operation and maintenance ',68.79999999999999716,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(319,'ucoam_1','annual cost of operation and maintenance ',68.79999999999999716,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(320,'ucoam_2','annual cost of operation and maintenance ',68.79999999999999716,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(321,'ucoam_3','annual cost of operation and maintenance ',74.40000000000000569,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(322,'ucpens','penetration shield cost',32.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(323,'ucpfb','cost of PF coil buses',210.0,'$/kA-m','','','',0); +INSERT INTO ste_var VALUES(324,'ucpfbk','cost of PF coil DC breakers',0.0,'$/MVA','','','',0); +INSERT INTO ste_var VALUES(325,'ucpfbs','cost of PF burn power supplies',0.0,'$/kW','','','',0); +INSERT INTO ste_var VALUES(326,'ucpfcb','cost of PF coil AC breakers',75000.0,'$/circuit','','','',0); +INSERT INTO ste_var VALUES(327,'ucpfdr1','cost factor for dump resistors',150.0,'$/MJ','','','',0); +INSERT INTO ste_var VALUES(328,'ucpfic','cost of PF instrumentation and control',0.0,'$/channel','','','',0); +INSERT INTO ste_var VALUES(329,'ucpfps','cost of PF coil pulsed power supplies',0.0,'$/MVA','','','',0); +INSERT INTO ste_var VALUES(330,'ucphx','primary heat transport cost',15.0,'$/W','','','',0); +INSERT INTO ste_var VALUES(331,'ucpp','cost of primary power transformers',48.0,'$/kVA','','','',0); +INSERT INTO ste_var VALUES(332,'ucrb','cost of reactor building',400.0,'M$/m3','','','',0); +INSERT INTO ste_var VALUES(333,'ucsc_0','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(334,'ucsc_1','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(335,'ucsc_2','cost of superconductor',300.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(336,'ucsc_3','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(337,'ucsc_4','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(338,'ucsc_5','cost of superconductor',600.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(339,'ucsc_6','cost of superconductor',300.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(340,'ucsc_7','cost of superconductor',1200.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(341,'ucsc_8','cost of superconductor',1200.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(342,'ucsh','cost of shops and warehouses',115.0,'M$/m3','','','',0); +INSERT INTO ste_var VALUES(343,'ucshld','cost of shield structural steel',32.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(344,'ucswyd','switchyard equipment costs',18400000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(345,'uctarg','cost of IFE target',0.2999999999999999889,'$/target','','','',0); +INSERT INTO ste_var VALUES(346,'uctfbr','cost of TF coil breakers',1.219999999999999974,'$/W','','','',0); +INSERT INTO ste_var VALUES(347,'uctfbus','cost of TF coil bus',100.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(348,'uctfdr','cost of TF coil dump resistors',0.0001749999999999999983,'$/J','','','',0); +INSERT INTO ste_var VALUES(349,'uctfgr','additional cost of TF coil dump resistors',5000.0,'$/coil','','','',0); +INSERT INTO ste_var VALUES(350,'uctfic','cost of TF coil instrumentation and control',10000.0,'$/coil','','','',0); +INSERT INTO ste_var VALUES(351,'uctfps','cost of TF coil power supplies',24.0,'$/W','','','',0); +INSERT INTO ste_var VALUES(352,'uctfsw','cost of TF coil slow dump switches',1.0,'$/A','','','',0); +INSERT INTO ste_var VALUES(353,'uctpmp','cost of turbomolecular pump',110500.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(354,'uctr','cost of tritium building',370.0,'$/m3','','','',0); +INSERT INTO ste_var VALUES(355,'ucturb_0','cost of turbine plant equipment (dependent on coolant type coolwh)',230000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(356,'ucturb_1','cost of turbine plant equipment (dependent on coolant type coolwh)',245000000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(357,'ucvalv','vacuum system valve cost',390000.0,'dollar','','','',0); +INSERT INTO ste_var VALUES(358,'ucvdsh','vacuum duct shield cost',26.0,'$/kg','','','',0); +INSERT INTO ste_var VALUES(359,'ucviac','vacuum system instrumentation and control cost ',1300000.0,'$','','','',0); +INSERT INTO ste_var VALUES(360,'ucwindpf','cost of PF coil superconductor windings',465.0,'$/m','','','',0); +INSERT INTO ste_var VALUES(361,'ucwindtf','cost of TF coil superconductor windings',480.0,'$/m3','','','',0); +INSERT INTO ste_var VALUES(362,'ucws','cost of active assembly shop',460.0,'$/m3','','','',0); +INSERT INTO ste_var VALUES(363,'ucwst_0','cost of waste disposal',0.0,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(364,'ucwst_1','cost of waste disposal',3.939999999999999947,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(365,'ucwst_2','cost of waste disposal',5.910000000000000142,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(366,'ucwst_3','cost of waste disposal',7.879999999999999894,'M$/year/1200MW','','','',0); +INSERT INTO ste_var VALUES(367,'umass','unified atomic mass unit',1.659999999999999892e-27,'kg','','','wtgpd',0); +INSERT INTO ste_var VALUES(368,'vacdshm','mass of vacuum duct shield ',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(369,'vachtmw','vacuum pump power',0.5,'MW','','','',0); +INSERT INTO ste_var VALUES(370,'vcdimax','diameter of duct passage',0.439970075000000016,'m','','','',0); +INSERT INTO ste_var VALUES(371,'vf','winding pack void fraction of PF coil i for coolant',0.2999999999999999889,'N/A','','','',0); +INSERT INTO ste_var VALUES(372,'vfohc','void fraction of central solenoid conductor for coolant',0.2999999999999999889,'N/A','','','',0); +INSERT INTO ste_var VALUES(373,'vol','plasma volume',1493.470000000000027,'m3','','','rndfuel',0); +INSERT INTO ste_var VALUES(374,'volrci','internal volume of reactor building',2044019.580000000074,'m3','calvolcri','rbvfac, wrbi, drbi, hrbi','',0); +INSERT INTO ste_var VALUES(375,'vpfskv','PF coil voltage',0.0,'kV','','','',0); +INSERT INTO ste_var VALUES(376,'vpumpn','number of high vacuum pumps',100.0,'N/A','','','',0); +INSERT INTO ste_var VALUES(377,'vtfskv','voltage across a TF coil during quench',10.40000000000000035,'kV','','','',0); +INSERT INTO ste_var VALUES(378,'vvmass','vacuum vessel mass',21187467.51999999956,'kg','','','',0); +INSERT INTO ste_var VALUES(379,'wgt2','hot cell crane capacity (calculated if 0 is input)',100000.0,'kg','','','rmbvol, wsvol',0); +INSERT INTO ste_var VALUES(380,'whtblbe','mass of blanket - beryllium part',1125639.112999999895,'kg','','','',0); +INSERT INTO ste_var VALUES(381,'whtblbreed','mass of blanket - breeder part',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(382,'whtblli','mass of blanket - lithium part ',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(383,'whtblss','mass of blanket - steel part',1312706.222999999999,'kg','','','',0); +INSERT INTO ste_var VALUES(384,'whtblvd','mass of blanket - vanadium part',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(385,'whtcas','mass per coil of external case',36370.0,'kg','','','',0); +INSERT INTO ste_var VALUES(386,'whtconcu','copper mass in TF coil conductor',19630.0,'kg/coil','','','',0); +INSERT INTO ste_var VALUES(387,'whtconsc','superconductor mass in TF coil cable',5774.0,'kg/coil','','','',0); +INSERT INTO ste_var VALUES(388,'whtcp','mass of TF coil inboard legs',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(389,'whtpfs','total mass of the PF coil structure',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(390,'whtshld','mass of shield',1484460.522000000113,'kg','','','',0); +INSERT INTO ste_var VALUES(391,'whttflgs','mass of the TF coil legs',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(392,'wpenshld','mass of the penetration shield',1484460.522000000113,'kg','','','',0); +INSERT INTO ste_var VALUES(393,'wrbi','distance from centre of machine to building wall ',63.29999999999999716,'m','','','rbvol, volrci',0); +INSERT INTO ste_var VALUES(394,'wsvfac','warm shop building volume multiplication factor',1.899999999999999912,'N/A','','','wsvol',0); +INSERT INTO ste_var VALUES(395,'wsvol','volume of warm shop building',92803.9100000000034,'m3','calwsvol','shro, shri, trcl, hcwt, hccl, wgt2, shmf, shm, n_tf, shh, stcl, fndt, wsvfac','',0); +INSERT INTO ste_var VALUES(396,'wtblli2o','mass of blanket - Li_2O part',182147.6977999999945,'kg','','','',0); +INSERT INTO ste_var VALUES(397,'wtbllipb','mass of blanket - Li-Pb part',0.0,'kg','','','',0); +INSERT INTO ste_var VALUES(398,'wtgpd','mass of fuel used per day',703.517563799999948,'kg','calwtgpd','targtm, reprat, rndfuel, afuel, umass, ife','',0); +CREATE TABLE `variable` ( + `ind` INTEGER NOT NULL , + `var_name` text, + `var_description` text, + `var_value` REAL DEFAULT NULL, + `var_unit` text, + `var_alg` text, + `var_need` text, + `v_linked` text, + `user_input` INTEGER DEFAULT NULL, + PRIMARY KEY (`ind`) +); +INSERT INTO variable VALUES(1,'c_turbine','Turbine equipment cost',362.6200000000000045,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(2,'n_231','Scaling exponent law',1.03499999999999992,'1','tur_exp_n','p_in',NULL,0); +INSERT INTO variable VALUES(3,'p_in','Inlet turbine pressure',67.0,'bar',NULL,NULL,'n_231',0); +INSERT INTO variable VALUES(4,'scale_tur_231_fac','factory scale of cost from turbine',1.016999999999999904,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(5,'c_231_fac','Turbine factory cost',356.0310000000000059,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(6,'prn_fac_231_lab','labor portion of cost from factory of 231',0.06099999999999999867,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(7,'prn_fac_231_mat','material portion of cost from factory of 231',0.01119999999999999989,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(8,'c_262_fac','Heat Rejection System factory cost',86.81393497999999909,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(9,'c_262_lab','Heat Rejection System labor cost',35.89660736999999813,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(10,'c_262_mat','Heat Rejection System material cost',4.510480682999999936,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(11,'mwth','user_input mwth',NULL,'MW',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(12,'scale_0.8','thermal scale 0.8',0.8000000000000000444,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(13,'c_233_fac','Condensing Systems factory cost',56.33944199999999825,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(14,'c_233_lab','Condensing Systems labor cost',22.96428500000000028,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(15,'c_233_mat','Condensing Systems material cost',3.277746500000000118,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(16,'escalate_1987','escalator 1987 to 2017',2.849406999999999802,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(17,'ref_252_fac','Air, water and steam service systems factory cost ',8.727980000000000516,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(18,'ref_252_lab','Air, water and steam service systems labor cost ',15.57228100000000026,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(19,'ref_252_mat','Air, water and steam service systems material cost ',4.425392999999999688,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(20,'c_221.12_cs_weight','weight of the carbon steel parts of the vessel',536.0,'ton',NULL,NULL,'c_221.12_tol_weight',0); +INSERT INTO variable VALUES(21,'c_221.12_ss_weight','weight of the stainless steel cladding of the vessel',18.30000000000000071,'ton',NULL,NULL,'c_221.12_tol_weight',0); +INSERT INTO variable VALUES(22,'c_221.12_tol_weight','weight of the reactor primary vessel',554.2999999999999546,'ton','rpv_mass','c_221.12_cs_weight, c_221.12_ss_weight','',0); +INSERT INTO variable VALUES(23,'c_rpv_lab','per-unit mass cost of labor of RPV',0.01280000000000000061,'million/ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(24,'c_rpv_mat','per-unit mass cost of material of RPV',0.001280000000000000104,'million/ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(25,'ref_211_fac','yardwork factory cost',0.284275,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(26,'ref_211_lab','yardwork labor cost',14.50435899999999912,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(27,'ref_211_mat','yardwork material cost',10.20388499999999965,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(28,'ref_222.13_fac','steam generator equipment factory cost',0.02637099999999999861,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(29,'no_of_sg','total number of SG',4.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(30,'c_SG_per_unit_lab','unit site labor cost of SG',0.5265705000000000525,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(31,'c_SG_per_unit_mat','unit site material cost of SG',0.05265704999999999692,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(32,'c_234_fac','feedwater heating system factory cost',44.87430168000000207,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(33,'c_234_lab','feedwater heating system labor cost',20.31736061999999877,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(34,'c_234_mat','feedwater heating system material cost',2.022431917000000023,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(35,'c_213_fac','Turbine building structure factory cost',1.770664299999999969,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(36,'c_213_lab','Turbine building structure labor cost',31.8351620000000004,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(37,'c_213_mat','Turbine building structure material cost',32.36458499999999817,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(38,'c_231_lab','Turbine labor cost',21.74613520999999849,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(39,'c_231_mat','Turbine material cost',3.998108627000000137,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(40,'prn_235_of_231_fac','factory portion of cost from factory of 231',0.08945484200000000663,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(41,'prn_235_of_231_lab','labor portion of cost from labor of 231',1.302615598000000041,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(42,'prn_235_of_231_mat','material portion of cost from labor of 231',0.8584733789999999809,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(43,'mwe','user_input MWE',NULL,'MW',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(44,'scale_0.4','electric scale 0.4',0.4000000000000000222,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(45,'c_241_fac','Switchgear factory cost',32.06748044999999792,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(46,'c_241_lab','Switchgear labor cost',1.720620352999999936,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(47,'c_241_mat','Switchgear material cost',0.2517225510000000165,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(48,'c_242_fac','Station service equipment factory cost',52.15781338000000033,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(49,'c_242_lab','Station service equipment labor cost',4.446166005000000254,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(50,'c_242_mat','Station service equipment material cost',0.8497192869999999898,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(51,'c_245_fac','Electric structure and wiring contnr. factory cost',0.0,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(52,'c_245_lab','Electric structure and wiring contnr. labor cost',51.23668914000000285,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(53,'c_245_mat','Electric structure and wiring contnr. material cost',12.30988226999999924,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(54,'c_246_fac','Power and control wiring factory cost',4.5109104689999997,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(55,'c_246_lab','Power and control wiring labor cost',33.4345167000000032,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(56,'c_246_mat','Power and control wiring material cost',20.75545101000000159,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(57,'ref_227_fac','Reactor instrumentation and control factory cost',13.17409199999999992,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(58,'ref_227_lab','Reactor instrumentation and control labor cost',7.707179000000000002,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(59,'ref_227_mat','Reactor instrumentation and control material cost',0.6739990000000000147,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(60,'ref_224_fac','Radwaste processing factory cost',16.16052583000000097,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(61,'ref_224_lab','Radwaste processing labor cost',4.012887082999999855,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(62,'ref_224_mat','Radwaste processing material cost',0.7689941670000000062,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(63,'scale_1.0','thermal scale 1.0',1.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(64,'c_226.7_fac','Aux Cool Sys factory cost',28.17932449999999989,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(65,'c_226.7_lab','Aux Cool Sys labor cost',24.62559157999999826,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(66,'c_226.7_mat','Aux Cool Sys material cost',2.393292923000000183,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(67,'no_of_rcpump','total number of reactor coolant pumps',4.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(68,'c_pump_per_unit_fac','Reactor coolant pumps Factory Equipment Cost',31.30999999999999873,'million','pump','c_pump_ap1000,CH_12be,CH_AP1000,scale_0.52',NULL,0); +INSERT INTO variable VALUES(69,'c_pump_ap1000','AP1000 factory cost of main coolant pumps',31.25,'million',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO variable VALUES(70,'CH_12be','CH factor of PWR-12 BE',28853000.0,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO variable VALUES(71,'CH_AP1000','CH factor of AP1000',28743750.0,'gpm*feet',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO variable VALUES(72,'scale_0.52','SH scale 0,52',0.5200000000000000177,'1',NULL,NULL,'c_pump_per_unit_fac',0); +INSERT INTO variable VALUES(73,'c_226.4_fac','Coolant Treatment & Recycle factory cost',19.4432705900000009,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(74,'c_226.4_lab','Coolant Treatment & Recycle labor cost',18.62163221000000136,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(75,'c_226.4_mat','Coolant Treatment & Recycle material cost',2.705782639999999795,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(76,'c_222.11_fac','Fluid Circulation Drive System (Field Cost 222) factory cost',3.78083778199999987,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(77,'c_222.11_lab','Fluid Circulation Drive System (Field Cost 222) labor cost',4.374124686000000039,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(78,'c_222.11_mat','Fluid Circulation Drive System (Field Cost 222) material cost',0.437412469000000026,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(79,'c_222.12_fac','Reactor Coolant Piping System (Field Cost 222) factory cost',4.394349539000000248,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(80,'c_222.12_lab','Reactor Coolant Piping System (Field Cost 222) labor cost',11.38158583999999963,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(81,'c_222.12_mat','Reactor Coolant Piping System (Field Cost 222) material cost',1.119106973999999921,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(82,'c_222.13_fac','Steam Generator Equipment (Field Cost 222) factory cost',0.07514123699999999962,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(83,'c_222.13_lab','Steam Generator Equipment (Field Cost 222) labor cost',2.106281654000000003,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(84,'c_222.13_mat','Steam Generator Equipment (Field Cost 222) material cost',0.210628165000000006,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(85,'c_222.14_fac','Pressurizing System (Field Cost 222) factory cost',0.01502824699999999979,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(86,'c_222.14_lab','Pressurizing System (Field Cost 222) labor cost',0.2819345759999999924,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(87,'c_222.14_mat','Pressurizing System (Field Cost 222) material cost',0.02819250800000000153,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(88,'c_222_fac','Main heat transfer transport system factory cost',8.265356804999999695,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(89,'c_222_lab','Main heat transfer transport system labor cost',18.14392674999999854,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(90,'c_222_mat','Main heat transfer transport system material cost',1.795340115999999986,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(91,'c_zero','place holder for weight',0.0,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(92,'c_220A.222_ss_weight','weight of the stainless steel reactor coolant piping',36.74098200000000247,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(93,'c_220A.2121_ss_weight','weight of the stainless steel lower internals',102.5,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(94,'c_220A.2122_ss_weight','weight of the stainless steel upper internals',102.5,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(95,'no_of_cr','Total control rods',53.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(96,'no_of_crd','Total control rod drives',57.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(97,'c_cr_per_unit_fac','unit cost of rod',0.05999999999999999778,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(98,'c_crd_per_unit_fac','unit cost of rod drive',0.6115199999999999526,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(99,'c_220A.224_cs_weight_plate','weight of the carbon steel pressurizer',97.2999999999999972,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(100,'c_220A.224_ss_weight','weight of the stainless steel pressurizer',3.299999999999999823,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(101,'c_237_lab','Turbine plant miscellaneous items labor cost',13.13086528999999914,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(102,'c_237_mat','Turbine plant miscellaneous items material cost',9.79517849099999971,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(103,'ref_228_lab','Reactor plant miscellaneous items labor cost',4.273080000000000211,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(104,'ref_228_mat','Reactor plant miscellaneous items material cost',3.179194999999999994,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(105,'ref_236_fac','Reactor instrumentation and control factory cost',1.868039999999999923,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(106,'ref_236_lab','Reactor instrumentation and control labor cost',4.591574999999999739,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(107,'ref_236_mat','Reactor instrumentation and control material cost',0.3945970830000000151,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(108,'ref_253_fac','Communications equipment factory cost',1.948800000000000087,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(109,'ref_253_lab','Communications equipment labor cost',3.873139000000000109,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(110,'ref_253_mat','Communications equipment material cost',0.5931070000000000508,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(111,'ref_221.14_mat','Transport To Site (Field Cost 221) material cost',5.538499999999999979,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(112,'ref_220A.254_fac','Fuel Storage Racks (NSSS) factory cost',4.483500000000000263,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(113,'c_220A.225_ss_weight','weight of the stainless steel pressurizer relief tank (NSSS)',5.969999999999999752,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(114,'c_220A.2324_ss_weight','weight of the stainless steel boron injection surge tank (NSSS)',0.1474199999999999955,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(115,'c_220A.2322_tot_weight','total weight of accumulator tank (NSSS)',36.28739999999999811,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(116,'prn_220A.2322cs','portion of weight made by carbon steel accumulator tank (NSSS)',0.8699999999999999956,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(117,'prn_220A.2322ss','portion of weight made by stainless steel accumulator tank (NSSS)',0.1300000000000000044,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(118,'no_of_acu','number of accumulator tank',4.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(119,'c_220A.2323_tot_weight','total weight of Boron injection tank (NSSS)',9.071849999999999526,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(120,'prn_220A.2323cs','portion of weight made by carbon steel Boron injection tank (NSSS)',0.9000000000000000222,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(121,'prn_220A.2323ss','portion of weight made by stainless steel Boron injection tank (NSSS)',0.1000000000000000055,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(122,'no_of_bit','number of Boron injection tank',1.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(123,'c_220A.251_cs_weight','weight of the carbon steel parts of the fuel handling tools (NSSS)',0.0,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(124,'c_220A.251_ss_weight','weight of the stainless steel cladding of the fuel handling tools (NSSS)',0.1499999999999999945,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(125,'factor_220A.251','factor to calculate fuel handling tool',8.599999999999999645,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(126,'c_220A.2312_cs_weight','weight of the carbon steel parts of the residual heat removal heat exchanger (NSSS)',5.261680000000000134,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(127,'c_220A.2312_ss_weight','weight of the stainless steel cladding of the residual heat removal heat exchanger (NSSS)',7.892520000000000202,'ton',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(128,'factor_220A.2312','facility number of residual heat removal heat exchanger (NSSS)',2.0,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(129,'vol_223.4','volume of Containment Spray System (Field Cost 223)',86488.0,'m^3',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(130,'c_223.4_unit_vol_fac','unit volume cost of containment spray system (Field Cost 223) for factory cost',100.8568056999999954,'dollar/m^3',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(131,'c_223.4_unit_vol_lab','unit volume cost of containment spray system (Field Cost 223) for labor cost',68.21002196000000595,'dollar/m^3',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(132,'c_223.4_unit_vol_mat','unit volume cost of containment spray system (Field Cost 223) for material cost',6.850324225999999684,'dollar/m^3',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(133,'escalate_1978','escalator 1978 to 2017',6.719999999999999752,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(134,'ref_220A.254_1978','Fuel Storage Racks (NSSS) cost from Combustion Engineering (1978)',0.3739999999999999992,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(135,'c_226.4111_fac','factory cost of pump 226.4111',0.01236899999999999979,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(136,'c_226.4112_fac','factory cost of pump 226.4112',0.00996900000000000043,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(137,'c_226.41131_fac','factory cost of pump 226.41131',0.00931500000000000036,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(138,'c_226.41132_fac','factory cost of pump 226.41132',1.550824999999999899,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(139,'c_226.4114_fac','factory cost of pump 226.4114',0.6214450000000000251,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(140,'c_226.41151_fac','factory cost of pump 226.41151',0.00996900000000000043,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(141,'c_226.41152_fac','factory cost of pump 226.41152',0.00931500000000000036,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(142,'c_226.4121_fac','factory cost of pump 226.4121',0.3655950000000000033,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(143,'c_226.4122_fac','factory cost of pump 226.4122',0.2645350000000000201,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(144,'c_226.4123_fac','factory cost of pump 226.4123',0.3262459999999999805,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(145,'c_226.4124_fac','factory cost of pump 226.4124',0.4457450000000000023,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(146,'c_226.4125_fac','factory cost of pump 226.4125',0.4898790000000000088,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(147,'c_226.4126_fac','factory cost of pump 226.4126',0.1763570000000000138,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(148,'c_226.4127_fac','factory cost of pump 226.4127',0.3233199999999999963,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(149,'c_226.4128_fac','factory cost of pump 226.4128',0.05905799999999999939,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(150,'c_226.4133_fac','factory cost of pump 226.4133',0.6679140000000000076,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(151,'c_226.4134_fac','factory cost of pump 226.4134',0.04422500000000000042,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(152,'c_226.4135_fac','factory cost of pump 226.4135',0.4218410000000000215,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(153,'c_226.4131_fac','factory cost of pump 226.4131',0.01124900000000000031,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(154,'c_226.4141_fac','factory cost of pump 226.4141',0.4401200000000000112,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(155,'c_226.4142_fac','factory cost of pump 226.4142',0.2200600000000000056,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(156,'c_226.4143_fac','factory cost of pump 226.4143',0.01700000000000000122,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(157,'c_226.4144_fac','factory cost of pump 226.4144',0.01700000000000000122,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(158,'c_226.4145_fac','factory cost of pump 226.4145',1.757668999999999926,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(159,'c_251.12_fac','factory cost of Cont. build',7.299999999999999823,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(160,'c_251.111_fac','factory cost of Turbine room',3.649999999999999912,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(161,'c_251.112_fac','factory cost of Heater bay',1.459999999999999965,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(162,'c_251.16_fac','factory cost of Various',0.8800000000000000044,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(163,'c_251.17_fac','factory cost of Diesel building',1.229999999999999983,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(164,'c_251.12_lab','labor cost of Cont. build',1.189999999999999947,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(165,'c_251.111_lab','labor cost of Turbine room',0.4199999999999999845,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(166,'c_251.112_lab','labor cost of Heater bay',0.1700000000000000122,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(167,'c_251.16_lab','labor cost of Various',0.5600000000000000533,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(168,'c_251.17_lab','labor cost of Diesel building',0.1000000000000000055,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(169,'c_251.12_mat','material cost of Cont. build',0.1199999999999999956,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(170,'c_251.111_mat','material cost of Turbine room',0.04000000000000000083,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(171,'c_251.112_mat','material cost of Heater bay',0.02000000000000000041,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(172,'c_251.16_mat','material cost of Various',0.05999999999999999778,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(173,'c_251.17_mat','material cost of Diesel building',0.0100000000000000002,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(174,'fac_223.1','factor to calculate RHR System',0.8499999999999999778,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(175,'prn_223.1_fac','factory cost prtion of RHR',0.4360948559999999752,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(176,'prn_223.1_lab','labor cost prtion of RHR',0.5150272500000000475,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(177,'prn_223.1_mat','material cost prtion of RHR',0.04887789299999999865,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(178,'c_220A.2311_fac','factory cost of residual heat removal Pumps & Drives (NSSS)',1.940001660000000072,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(179,'c_220A.2312_fac','factory cost of residual heat removal Heat Exchanger (NSSS)',6.260001858999999946,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(180,'fac_223.3','factor to calculate safety injection system',0.5799999999999999601,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(181,'prn_223.3_fac','factory cost prtion of safety injection system',0.3604891029999999775,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(182,'prn_223.3_lab','labor cost prtion of safety injection system',0.5477672829999999938,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(183,'prn_223.3_mat','material cost prtion of safety injection system',0.09174361300000000163,'1',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(184,'c_220A.2321_fac','factory cost of Safety Injection Pumps And Drives (NSSS)',1.720001794000000083,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(185,'c_220A.2322_fac','factory cost of Accumulator Tank (NSSS)',15.3000048599999996,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(186,'c_220A.2323_fac','factory cost of Boron Injection Tank (NSSS)',0.8999994479999999797,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(187,'c_220A.2324_fac','factory cost of Boron Injection Surge Tank (NSSS)',0.05000139399999999762,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(188,'c_220A.2325_fac','factory cost of Boron Injection Recirc. Pump & Drives (NSSS)',0.03999997500000000011,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(189,'c_218B_fac','Placeholder',2.337579893000000019,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(190,'c_218J_fac','Placeholder',0.0946288059999999959,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(191,'c_218T_fac','Placeholder',0.1217242929999999974,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(192,'c_220A.2311_fac','Placeholder',1.940001660000000072,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(193,'c_220A.2321_fac','Placeholder',1.720001794000000083,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(194,'c_220A.2325_fac','Placeholder',0.03999997500000000011,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(195,'c_218B_lab','Placeholder',9.6639466770000002,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(196,'c_218J_lab','Placeholder',15.05977372999999986,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(197,'c_218T_lab','Placeholder',8.910343824999999995,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(198,'c_218B_mat','Placeholder',6.936622520000000235,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(199,'c_218J_mat','Placeholder',7.262348919999999986,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(200,'c_218T_mat','Placeholder',4.065434178000000288,'million',NULL,NULL,NULL,0); +INSERT INTO variable VALUES(201,'CPI','The Consumer Price Index',2.200000000000000178,'1',NULL,NULL,'infl',0); +INSERT INTO variable VALUES(202,'Void_fraction','Void fraction of the inside of the containment ',0.9170000000000000373,'1',NULL,NULL,'Internal_v_m3',0); +INSERT INTO variable VALUES(203,'liner_fraction','liner fraction of containment',1.0,'1',NULL,NULL,'Liner_s_m2',0); +INSERT INTO variable VALUES(204,'Cont_H_tot_m','Containment total height ',66.75119999999999721,'m',NULL,NULL,'Cont_H_wall_m',0); +INSERT INTO variable VALUES(205,'Cont_rad_out_m','Containment outside radius ',23.01239999999999953,'m',NULL,NULL,'Cont_H_wall_m,Cont_rad_in_m,Basemat_s_m2,Walls_s_m2,Walls_v_m3,Dome_rad_in_m,Dome_s_m2,Dome_v_m3,Surf_paint_m2',0); +INSERT INTO variable VALUES(206,'Cont_shell_t_m','Shell wall thickness ',1.371599999999999931,'m',NULL,NULL,'Cont_rad_in_m',0); +INSERT INTO variable VALUES(207,'Cont_H_wall_m','Containment wall height ',43.73879999999999769,'m','wall_height','Cont_H_tot_m,Cont_rad_out_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s,Surf_paint_m2',0); +INSERT INTO variable VALUES(208,'Basemat_t_m','Basemat thickness ',3.048000000000000042,'m',NULL,NULL,'Basemat_v_m3',0); +INSERT INTO variable VALUES(209,'Dome_t_m','Dome thickness ',1.066799999999999971,'m',NULL,NULL,'Dome_rad_in_m',0); +INSERT INTO variable VALUES(210,'Intern_wall_t','Internal wall average thickness ',1.219200000000000061,'m',NULL,NULL,'Internal_s_m2',0); +INSERT INTO variable VALUES(211,'React_cav_A_m2','Reactor cavity area ',1021.933440000000018,'m^2',NULL,NULL,'Total_Labor_React_cav_liner,Total_Mat_React_cav_liner',0); +INSERT INTO variable VALUES(212,'Cont_rad_in_m','Containment inside radius ',21.6407999999999987,'m','inside_rad','Cont_rad_out_m,Cont_shell_t_m','Walls_s_m2,Walls_v_m3,Intern_tot_v_m3,Inside_liner_s',0); +INSERT INTO variable VALUES(213,'Basemat_s_m2','Basemat surface',1663.694960999999922,'m^2','round_surface','Cont_rad_out_m','Basemat_v_m3,Total_Labor_Constr_joints_Substr,Total_Labor_Formwork_Substr,Total_Labor_Waterproofing_Substr,Total_Labor_Welded_wire_fabric_Substr,Total_Mat_Constr_joints_Substr,Total_Mat_Formwork_Substr,Total_Mat_Waterproofing_Substr,Total_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO variable VALUES(214,'Basemat_v_m3','Basemat volume',5070.942242000000078,'m^3','basemat_volume','Basemat_s_m2,Basemat_t_m','Struct_v_m3,Total_Labor_Cadweld_Substr,Total_Labor_Concrete_Substr,Total_Labor_Embedded_steel_Substr,Total_Labor_Reinforc_steel_Substr,Total_Mat_Cadweld_Substr,Total_Mat_Concrete_Substr,Total_Mat_Embedded_steel_Substr,Total_Mat_Reinforc_steel_Substr',0); +INSERT INTO variable VALUES(215,'Walls_s_m2','Walls surface',12271.54711999999927,'m^2','walls_surface','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Total_Labor_Constr_joints_Superstr,Total_Labor_Formwork_Superstr,Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Waterproofing_Superstr,Total_Mat_Constr_joints_Superstr,Total_Mat_Formwork_Superstr,Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Waterproofing_Superstr',0); +INSERT INTO variable VALUES(216,'Walls_v_m3','Walls volume',8415.827017999999953,'m^3','wall_volume','Cont_H_wall_m,Cont_rad_out_m,Cont_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Superstr,Total_Labor_Concrete_Superstr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Reinforc_steel_Superstr,Total_Mat_Cadweld_Superstr,Total_Mat_Concrete_Superstr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Reinforc_steel_Superstr',0); +INSERT INTO variable VALUES(217,'Dome_rad_in_m','Dome inside radius ',21.94559999999999889,'m','inside_rad','Cont_rad_out_m,Dome_t_m','Dome_s_m2,Dome_v_m3,Intern_tot_v_m3,Inside_liner_s',0); +INSERT INTO variable VALUES(218,'Dome_s_m2','Roof surface',6353.430773000000045,'m^2','roof_surface','Cont_rad_out_m,Dome_rad_in_m','Total_Labor_Constr_joints_Dome,Total_Labor_Formwork_Dome,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Waterproofing_Dome,Total_Mat_Constr_joints_Dome,Total_Mat_Formwork_Dome,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Waterproofing_Dome',0); +INSERT INTO variable VALUES(219,'Dome_v_m3','Roof volume',3387.648588000000017,'m^3','roof_volume','Cont_rad_out_m,Dome_rad_in_m','Struct_v_m3,Total_Labor_Cadweld_Dome,Total_Labor_Concrete_Dome,Total_Labor_Embedded_steel_Dome,Total_Labor_Reinforc_steel_Dome,Total_Mat_Cadweld_Dome,Total_Mat_Concrete_Dome,Total_Mat_Embedded_steel_Dome,Total_Mat_Reinforc_steel_Dome',0); +INSERT INTO variable VALUES(220,'Intern_tot_v_m3','Tot intenal Volume',86488.28818000000319,'m^3','tot_internal_volume','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Internal_v_m3,Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other,Total_Labor_fl_grate_handrail_stairs,Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other,Total_Mat_fl_grate_handrail_stairs',0); +INSERT INTO variable VALUES(221,'Internal_v_m3','Building internal volume',7178.527919000000111,'m^3','building_internal_volume','Intern_tot_v_m3,Void_fraction','Internal_s_m2,Struct_v_m3,Total_Labor_Cadweld_Interior,Total_Labor_Concrete_Interior,Total_Labor_Embedded_steel_Interior,Total_Labor_Maj_supp_embedments_Interior,Total_Labor_Reinforc_steel_Interior,Total_Mat_Cadweld_Interior,Total_Mat_Concrete_Interior,Total_Mat_Embedded_steel_Interior,Total_Mat_Maj_supp_embedments_Interior,Total_Mat_Reinforc_steel_Interior',0); +INSERT INTO variable VALUES(222,'Internal_s_m2','Building internal surface',11775.80039000000033,'m^2','building_internal _surface','Internal_v_m3,Intern_wall_t','Surf_paint_m2,Total_Labor_Constr_joints_Interior,Total_Labor_Formwork_Interior,Total_Labor_Rubbing_surfaces_Interior,Total_Mat_Constr_joints_Interior,Total_Mat_Formwork_Interior,Total_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO variable VALUES(223,'Struct_v_m3','volume of the structures ',24052.94576999999845,'m^3','volume_of_the_structures ','Basemat_v_m3,Walls_v_m3,Dome_v_m3,Internal_v_m3','Total_Labor_Misc_steel_frames,Total_Labor_Struct_steel,Total_Mat_Misc_steel_frames,Total_Mat_Struct_steel',0); +INSERT INTO variable VALUES(224,'Inside_liner_s','Inside liner surface',10444.6275000000005,'m^2','Inside_liner_surface','Cont_rad_in_m,Cont_H_wall_m,Dome_rad_in_m','Liner_s_m2,Surf_paint_m2,',0); +INSERT INTO variable VALUES(225,'Liner_s_m2','Liner Surface',10444.6275000000005,'m^2','liner_Surface','Inside_liner_s,liner_fraction','Total_Labor_cont_liner,Total_Mat_cont_liner',0); +INSERT INTO variable VALUES(226,'Surf_paint_m2','painted surface',31872.06222999999955,'m^2','painted_surface','Inside_liner_s,Cont_H_wall_m,Cont_rad_out_m,Internal_s_m2','Total_Labor_painting,Total_Mat_painting',0); +INSERT INTO variable VALUES(227,'infl','Inflation rate',2.870501003999999857,'1','Inflation_rate','CPI','Unit_Labor_Cadweld_Substr,Unit_Labor_Cadweld_Superstr,Unit_Labor_Cadweld_Dome,Unit_Labor_Cadweld_Interior,Unit_Labor_Concrete_Substr,Unit_Labor_Concrete_Superstr,Unit_Labor_Concrete_Dome,Unit_Labor_Concrete_Interior,Unit_Labor_Constr_joints_Substr,Unit_Labor_Constr_joints_Superstr,Unit_Labor_Constr_joints_Dome,Unit_Labor_Constr_joints_Interior,Unit_Labor_Embedded_steel_Substr,Unit_Labor_Embedded_steel_Superstr,Unit_Labor_Embedded_steel_Dome,Unit_Labor_Embedded_steel_Interior,Unit_Labor_Formwork_Substr,Unit_Labor_Formwork_Superstr,Unit_Labor_Formwork_Dome,Unit_Labor_Formwork_Interior,Unit_Labor_Maj_supp_embedments_Interior,Unit_Labor_Reinforc_steel_Substr,Unit_Labor_Reinforc_steel_Superstr,Unit_Labor_Reinforc_steel_Dome,Unit_Labor_Reinforc_steel_Interior,Unit_Labor_Rubbing_surfaces_Superstr,Unit_Labor_Rubbing_surfaces_Dome,Unit_Labor_Rubbing_surfaces_Interior,Unit_Labor_Waterproofing_Substr,Unit_Labor_Waterproofing_Superstr,Unit_Labor_Waterproofing_Dome,Unit_Labor_Welded_wire_fabric_Substr,Unit_Labor_Lighting_Power,Unit_Labor_Plumb_drains,Unit_Labor_Special_HVAC,Unit_Labor_other,Unit_Labor_Misc_steel_frames,Unit_Labor_React_cav_liner,Unit_Labor_Struct_steel,Unit_Labor_cont_liner,Unit_Labor_fl_grate_handrail_stairs,Unit_Labor_painting,Unit_Mat_Cadweld_Substr,Unit_Mat_Cadweld_Superstr,Unit_Mat_Cadweld_Dome,Unit_Mat_Cadweld_Interior,Unit_Mat_Concrete_Substr,Unit_Mat_Concrete_Superstr,Unit_Mat_Concrete_Dome,Unit_Mat_Concrete_Interior,Unit_Mat_Constr_joints_Substr,Unit_Mat_Constr_joints_Superstr,Unit_Mat_Constr_joints_Dome,Unit_Mat_Constr_joints_Interior,Unit_Mat_Embedded_steel_Substr,Unit_Mat_Embedded_steel_Superstr,Unit_Mat_Embedded_steel_Dome,Unit_Mat_Embedded_steel_Interior,Unit_Mat_Formwork_Substr,Unit_Mat_Formwork_Superstr,Unit_Mat_Formwork_Dome,Unit_Mat_Formwork_Interior,Unit_Mat_Maj_supp_embedments_Interior,Unit_Mat_Reinforc_steel_Substr,Unit_Mat_Reinforc_steel_Superstr,Unit_Mat_Reinforc_steel_Dome,Unit_Mat_Reinforc_steel_Interior,Unit_Mat_Rubbing_surfaces_Superstr,Unit_Mat_Rubbing_surfaces_Dome,Unit_Mat_Rubbing_surfaces_Interior,Unit_Mat_Waterproofing_Substr,Unit_Mat_Waterproofing_Superstr,Unit_Mat_Waterproofing_Dome,Unit_Mat_Welded_wire_fabric_Substr,Unit_Mat_Lighting_Power,Unit_Mat_Plumb_drains,Unit_Mat_Special_HVAC,Unit_Mat_other,Unit_Mat_Misc_steel_frames,Unit_Mat_React_cav_liner,Unit_Mat_Struct_steel,Unit_Mat_cont_liner,Unit_Mat_fl_grate_handrail_stairs,Unit_Mat_painting',0); +INSERT INTO variable VALUES(228,'Unit_EEDB_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in EEDB',85.45999999999999374,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Substr',0); +INSERT INTO variable VALUES(229,'Unit_EEDB_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in EEDB',114.6200000000000045,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Superstr',0); +INSERT INTO variable VALUES(230,'Unit_EEDB_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in EEDB',231.0900000000000034,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Dome',0); +INSERT INTO variable VALUES(231,'Unit_EEDB_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in EEDB',48.20000000000000284,'dollar/m^3',NULL,NULL,'Unit_Labor_Cadweld_Interior',0); +INSERT INTO variable VALUES(232,'Unit_EEDB_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in EEDB',72.51999999999999603,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Substr',0); +INSERT INTO variable VALUES(233,'Unit_EEDB_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in EEDB',87.39000000000000056,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Superstr',0); +INSERT INTO variable VALUES(234,'Unit_EEDB_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in EEDB',78.01999999999999603,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Dome',0); +INSERT INTO variable VALUES(235,'Unit_EEDB_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in EEDB',97.5699999999999931,'dollar/m^3',NULL,NULL,'Unit_Labor_Concrete_Interior',0); +INSERT INTO variable VALUES(236,'Unit_EEDB_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in EEDB',14.50999999999999979,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Substr',0); +INSERT INTO variable VALUES(237,'Unit_EEDB_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in EEDB',12.43999999999999951,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Superstr',0); +INSERT INTO variable VALUES(238,'Unit_EEDB_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in EEDB',4.75,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Dome',0); +INSERT INTO variable VALUES(239,'Unit_EEDB_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in EEDB',2.049999999999999822,'dollar/m^2',NULL,NULL,'Unit_Labor_Constr_joints_Interior',0); +INSERT INTO variable VALUES(240,'Unit_EEDB_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in EEDB',3.979999999999999983,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Substr',0); +INSERT INTO variable VALUES(241,'Unit_EEDB_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in EEDB',15.98000000000000042,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Superstr',0); +INSERT INTO variable VALUES(242,'Unit_EEDB_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in EEDB',0.0,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Dome',0); +INSERT INTO variable VALUES(243,'Unit_EEDB_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in EEDB',337.1399999999999864,'dollar/m^3',NULL,NULL,'Unit_Labor_Embedded_steel_Interior',0); +INSERT INTO variable VALUES(244,'Unit_EEDB_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in EEDB',93.1099999999999995,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Substr',0); +INSERT INTO variable VALUES(245,'Unit_EEDB_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in EEDB',109.8299999999999983,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Superstr',0); +INSERT INTO variable VALUES(246,'Unit_EEDB_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in EEDB',58.65999999999999659,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Dome',0); +INSERT INTO variable VALUES(247,'Unit_EEDB_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in EEDB',231.5200000000000102,'dollar/m^2',NULL,NULL,'Unit_Labor_Formwork_Interior',0); +INSERT INTO variable VALUES(248,'Unit_EEDB_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in EEDB',153.5300000000000011,'dollar/m^3',NULL,NULL,'Unit_Labor_Maj_supp_embedments_Interior',0); +INSERT INTO variable VALUES(249,'Unit_EEDB_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in EEDB',322.5500000000000113,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Substr',0); +INSERT INTO variable VALUES(250,'Unit_EEDB_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in EEDB',326.1299999999999955,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Superstr',0); +INSERT INTO variable VALUES(251,'Unit_EEDB_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in EEDB',300.5600000000000022,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Dome',0); +INSERT INTO variable VALUES(252,'Unit_EEDB_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in EEDB',306.7200000000000273,'dollar/m^3',NULL,NULL,'Unit_Labor_Reinforc_steel_Interior',0); +INSERT INTO variable VALUES(253,'Unit_EEDB_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in EEDB',8.320000000000000284,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Superstr',0); +INSERT INTO variable VALUES(254,'Unit_EEDB_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in EEDB',5.740000000000000213,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Dome',0); +INSERT INTO variable VALUES(255,'Unit_EEDB_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in EEDB',9.91000000000000014,'dollar/m^2',NULL,NULL,'Unit_Labor_Rubbing_surfaces_Interior',0); +INSERT INTO variable VALUES(256,'Unit_EEDB_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in EEDB',4.580000000000000071,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Substr',0); +INSERT INTO variable VALUES(257,'Unit_EEDB_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in EEDB',0.839999999999999969,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Superstr',0); +INSERT INTO variable VALUES(258,'Unit_EEDB_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in EEDB',0.0,'dollar/m^2',NULL,NULL,'Unit_Labor_Waterproofing_Dome',0); +INSERT INTO variable VALUES(259,'Unit_EEDB_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in EEDB',10.07000000000000028,'dollar/m^2',NULL,NULL,'Unit_Labor_Welded_wire_fabric_Substr',0); +INSERT INTO variable VALUES(260,'Unit_EEDB_Labor_Lighting_Power','Unit cost of Labor Lighting Power in EEDB',9.83000000000000007,'dollar/m^3',NULL,NULL,'Unit_Labor_Lighting_Power',0); +INSERT INTO variable VALUES(261,'Unit_EEDB_Labor_Plumb_drains','Unit cost of Labor Plumb drains in EEDB',3.020000000000000017,'dollar/m^3',NULL,NULL,'Unit_Labor_Plumb_drains',0); +INSERT INTO variable VALUES(262,'Unit_EEDB_Labor_Special_HVAC','Unit cost of Labor Special HVAC in EEDB',11.08999999999999986,'dollar/m^3',NULL,NULL,'Unit_Labor_Special_HVAC',0); +INSERT INTO variable VALUES(263,'Unit_EEDB_Labor_other','Unit cost of Labor other in EEDB',0.5300000000000000266,'dollar/m^3',NULL,NULL,'Unit_Labor_other',0); +INSERT INTO variable VALUES(264,'Unit_EEDB_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in EEDB',9.93999999999999951,'dollar/m^3',NULL,NULL,'Unit_Labor_Misc_steel_frames',0); +INSERT INTO variable VALUES(265,'Unit_EEDB_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in EEDB',745.9400000000000546,'dollar/m^2',NULL,NULL,'Unit_Labor_React_cav_liner',0); +INSERT INTO variable VALUES(266,'Unit_EEDB_Labor_Struct_steel','Unit cost of Labor Struct steel in EEDB',13.98000000000000042,'dollar/m^3',NULL,NULL,'Unit_Labor_Struct_steel',0); +INSERT INTO variable VALUES(267,'Unit_EEDB_Labor_cont_liner','Unit cost of Labor Containment liner in EEDB',780.3300000000000409,'dollar/m^2',NULL,NULL,'Unit_Labor_cont_liner',0); +INSERT INTO variable VALUES(268,'Unit_EEDB_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in EEDB',1.75,'dollar/m^3',NULL,NULL,'Unit_Labor_fl_grate_handrail_stairs',0); +INSERT INTO variable VALUES(269,'Unit_EEDB_Labor_painting','Unit cost of Labor painting in EEDB',86.79999999999999716,'dollar/m^2',NULL,NULL,'Unit_Labor_painting',0); +INSERT INTO variable VALUES(270,'Unit_EEDB_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in EEDB',44.32000000000000028,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Substr',0); +INSERT INTO variable VALUES(271,'Unit_EEDB_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in EEDB',59.43999999999999773,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Superstr',0); +INSERT INTO variable VALUES(272,'Unit_EEDB_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in EEDB',119.8499999999999944,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Dome',0); +INSERT INTO variable VALUES(273,'Unit_EEDB_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in EEDB',25.0,'dollar/m^3',NULL,NULL,'Unit_Mat_Cadweld_Interior',0); +INSERT INTO variable VALUES(274,'Unit_EEDB_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in EEDB',79.09999999999999431,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Substr',0); +INSERT INTO variable VALUES(275,'Unit_EEDB_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in EEDB',54.46999999999999887,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Superstr',0); +INSERT INTO variable VALUES(276,'Unit_EEDB_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in EEDB',48.63000000000000255,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Dome',0); +INSERT INTO variable VALUES(277,'Unit_EEDB_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in EEDB',53.21000000000000085,'dollar/m^3',NULL,NULL,'Unit_Mat_Concrete_Interior',0); +INSERT INTO variable VALUES(278,'Unit_EEDB_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in EEDB',8.900000000000000355,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Substr',0); +INSERT INTO variable VALUES(279,'Unit_EEDB_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in EEDB',7.629999999999999894,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Superstr',0); +INSERT INTO variable VALUES(280,'Unit_EEDB_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in EEDB',2.910000000000000142,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Dome',0); +INSERT INTO variable VALUES(281,'Unit_EEDB_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in EEDB',1.260000000000000008,'dollar/m^2',NULL,NULL,'Unit_Mat_Constr_joints_Interior',0); +INSERT INTO variable VALUES(282,'Unit_EEDB_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in EEDB',1.879999999999999894,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Substr',0); +INSERT INTO variable VALUES(283,'Unit_EEDB_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in EEDB',7.570000000000000284,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Superstr',0); +INSERT INTO variable VALUES(284,'Unit_EEDB_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in EEDB',0.0,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Dome',0); +INSERT INTO variable VALUES(285,'Unit_EEDB_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in EEDB',159.7299999999999898,'dollar/m^3',NULL,NULL,'Unit_Mat_Embedded_steel_Interior',0); +INSERT INTO variable VALUES(286,'Unit_EEDB_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in EEDB',13.22000000000000063,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Substr',0); +INSERT INTO variable VALUES(287,'Unit_EEDB_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in EEDB',13.65000000000000035,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Superstr',0); +INSERT INTO variable VALUES(288,'Unit_EEDB_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in EEDB',7.669999999999999929,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Dome',0); +INSERT INTO variable VALUES(289,'Unit_EEDB_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in EEDB',21.85000000000000143,'dollar/m^2',NULL,NULL,'Unit_Mat_Formwork_Interior',0); +INSERT INTO variable VALUES(290,'Unit_EEDB_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in EEDB',225.3499999999999944,'dollar/m^3',NULL,NULL,'Unit_Mat_Maj_supp_embedments_Interior',0); +INSERT INTO variable VALUES(291,'Unit_EEDB_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in EEDB',364.7300000000000181,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Substr',0); +INSERT INTO variable VALUES(292,'Unit_EEDB_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in EEDB',258.9499999999999887,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Superstr',0); +INSERT INTO variable VALUES(293,'Unit_EEDB_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in EEDB',238.6500000000000056,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Dome',0); +INSERT INTO variable VALUES(294,'Unit_EEDB_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in EEDB',205.6599999999999966,'dollar/m^3',NULL,NULL,'Unit_Mat_Reinforc_steel_Interior',0); +INSERT INTO variable VALUES(295,'Unit_EEDB_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in EEDB',0.6800000000000000488,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Superstr',0); +INSERT INTO variable VALUES(296,'Unit_EEDB_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in EEDB',0.4699999999999999734,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Dome',0); +INSERT INTO variable VALUES(297,'Unit_EEDB_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in EEDB',0.8199999999999999512,'dollar/m^2',NULL,NULL,'Unit_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO variable VALUES(298,'Unit_EEDB_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in EEDB',2.430000000000000159,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Substr',0); +INSERT INTO variable VALUES(299,'Unit_EEDB_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in EEDB',0.4500000000000000111,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Superstr',0); +INSERT INTO variable VALUES(300,'Unit_EEDB_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in EEDB',0.0,'dollar/m^2',NULL,NULL,'Unit_Mat_Waterproofing_Dome',0); +INSERT INTO variable VALUES(301,'Unit_EEDB_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in EEDB',5.19000000000000039,'dollar/m^2',NULL,NULL,'Unit_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO variable VALUES(302,'Unit_EEDB_Mat_Lighting_Power','Unit cost of Material Lighting Power in EEDB',4.959999999999999965,'dollar/m^3',NULL,NULL,'Unit_Mat_Lighting_Power',0); +INSERT INTO variable VALUES(303,'Unit_EEDB_Mat_Plumb_drains','Unit cost of Material Plumb drains in EEDB',1.540000000000000035,'dollar/m^3',NULL,NULL,'Unit_Mat_Plumb_drains',0); +INSERT INTO variable VALUES(304,'Unit_EEDB_Mat_Special_HVAC','Unit cost of Material Special HVAC in EEDB',8.789999999999999147,'dollar/m^3',NULL,NULL,'Unit_Mat_Special_HVAC',0); +INSERT INTO variable VALUES(305,'Unit_EEDB_Mat_other','Unit cost of Material other in EEDB',1.959999999999999965,'dollar/m^3',NULL,NULL,'Unit_Mat_other',0); +INSERT INTO variable VALUES(306,'Unit_EEDB_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in EEDB',16.55999999999999873,'dollar/m^3',NULL,NULL,'Unit_Mat_Misc_steel_frames',0); +INSERT INTO variable VALUES(307,'Unit_EEDB_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in EEDB',607.9600000000000363,'dollar/m^2',NULL,NULL,'Unit_Mat_React_cav_liner',0); +INSERT INTO variable VALUES(308,'Unit_EEDB_Mat_Struct_steel','Unit cost of Material Struct steel in EEDB',27.41000000000000014,'dollar/m^3',NULL,NULL,'Unit_Mat_Struct_steel',0); +INSERT INTO variable VALUES(309,'Unit_EEDB_Mat_cont_liner','Unit cost of Material Containment liner in EEDB',1203.0,'dollar/m^2',NULL,NULL,'Unit_Mat_cont_liner',0); +INSERT INTO variable VALUES(310,'Unit_EEDB_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in EEDB',1.979999999999999983,'dollar/m^3',NULL,NULL,'Unit_Mat_fl_grate_handrail_stairs',0); +INSERT INTO variable VALUES(311,'Unit_EEDB_Mat_painting','Unit cost of Material painting in EEDB',24.67999999999999972,'dollar/m^2',NULL,NULL,'Unit_Mat_painting',0); +INSERT INTO variable VALUES(312,'Unit_Labor_Cadweld_Substr','Unit cost of Labor Cadweld Substructure (base mat) in 2017',245.3100000000000022,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Substr,infl','Total_Labor_Cadweld_Substr',0); +INSERT INTO variable VALUES(313,'Unit_Labor_Cadweld_Superstr','Unit cost of Labor Cadweld Superstructure (shell) in 2017',329.0199999999999819,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Superstr,infl','Total_Labor_Cadweld_Superstr',0); +INSERT INTO variable VALUES(314,'Unit_Labor_Cadweld_Dome','Unit cost of Labor Cadweld Superstructure (dome) in 2017',663.3400000000000318,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Dome,infl','Total_Labor_Cadweld_Dome',0); +INSERT INTO variable VALUES(315,'Unit_Labor_Cadweld_Interior','Unit cost of Labor Cadweld Interior structure in 2017',138.3600000000000137,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Cadweld_Interior,infl','Total_Labor_Cadweld_Interior',0); +INSERT INTO variable VALUES(316,'Unit_Labor_Concrete_Substr','Unit cost of Labor Concrete Substructure (base mat) in 2017',208.1699999999999875,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Substr,infl','Total_Labor_Concrete_Substr',0); +INSERT INTO variable VALUES(317,'Unit_Labor_Concrete_Superstr','Unit cost of Labor Concrete Superstructure (shell) in 2017',250.8499999999999944,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Superstr,infl','Total_Labor_Concrete_Superstr',0); +INSERT INTO variable VALUES(318,'Unit_Labor_Concrete_Dome','Unit cost of Labor Concrete Superstructure (dome) in 2017',223.9600000000000079,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Dome,infl','Total_Labor_Concrete_Dome',0); +INSERT INTO variable VALUES(319,'Unit_Labor_Concrete_Interior','Unit cost of Labor Concrete Interior structure in 2017',280.0699999999999932,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Concrete_Interior,infl','Total_Labor_Concrete_Interior',0); +INSERT INTO variable VALUES(320,'Unit_Labor_Constr_joints_Substr','Unit cost of Labor Construction joints Substructure (base mat) in 2017',41.64999999999999858,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Substr,infl','Total_Labor_Constr_joints_Substr',0); +INSERT INTO variable VALUES(321,'Unit_Labor_Constr_joints_Superstr','Unit cost of Labor Construction joints Superstructure (shell) in 2017',35.71000000000000085,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Superstr,infl','Total_Labor_Constr_joints_Superstr',0); +INSERT INTO variable VALUES(322,'Unit_Labor_Constr_joints_Dome','Unit cost of Labor Construction joints Superstructure (dome) in 2017',13.63000000000000078,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Dome,infl','Total_Labor_Constr_joints_Dome',0); +INSERT INTO variable VALUES(323,'Unit_Labor_Constr_joints_Interior','Unit cost of Labor Construction joints Interior structure in 2017',5.879999999999999894,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Constr_joints_Interior,infl','Total_Labor_Constr_joints_Interior',0); +INSERT INTO variable VALUES(324,'Unit_Labor_Embedded_steel_Substr','Unit cost of Labor Embedded steel Substructure (base mat) in 2017',11.41999999999999993,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Substr,infl','Total_Labor_Embedded_steel_Substr',0); +INSERT INTO variable VALUES(325,'Unit_Labor_Embedded_steel_Superstr','Unit cost of Labor Embedded steel Superstructure (shell) in 2017',45.86999999999999745,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Superstr,infl','Total_Labor_Embedded_steel_Superstr',0); +INSERT INTO variable VALUES(326,'Unit_Labor_Embedded_steel_Dome','Unit cost of Labor Embedded steel Superstructure (dome) in 2017',0.0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Dome,infl','Total_Labor_Embedded_steel_Dome',0); +INSERT INTO variable VALUES(327,'Unit_Labor_Embedded_steel_Interior','Unit cost of Labor Embedded steel Interior structure in 2017',967.759999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Embedded_steel_Interior,infl','Total_Labor_Embedded_steel_Interior',0); +INSERT INTO variable VALUES(328,'Unit_Labor_Formwork_Substr','Unit cost of Labor Formwork Substructure (base mat) in 2017',267.2699999999999819,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Substr,infl','Total_Labor_Formwork_Substr',0); +INSERT INTO variable VALUES(329,'Unit_Labor_Formwork_Superstr','Unit cost of Labor Formwork Superstructure (shell) in 2017',315.2699999999999819,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Superstr,infl','Total_Labor_Formwork_Superstr',0); +INSERT INTO variable VALUES(330,'Unit_Labor_Formwork_Dome','Unit cost of Labor Formwork Superstructure (dome) in 2017',168.3799999999999955,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Dome,infl','Total_Labor_Formwork_Dome',0); +INSERT INTO variable VALUES(331,'Unit_Labor_Formwork_Interior','Unit cost of Labor Formwork Interior structure in 2017',664.5800000000000409,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Formwork_Interior,infl','Total_Labor_Formwork_Interior',0); +INSERT INTO variable VALUES(332,'Unit_Labor_Maj_supp_embedments_Interior','Unit cost of Labor Major Support Embedments Interior structure in 2017',440.7099999999999796,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Maj_supp_embedments_Interior,infl','Total_Labor_Maj_supp_embedments_Interior',0); +INSERT INTO variable VALUES(333,'Unit_Labor_Reinforc_steel_Substr','Unit cost of Labor Reinforc steel Substructure (base mat) in 2017',925.879999999999996,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Substr,infl','Total_Labor_Reinforc_steel_Substr',0); +INSERT INTO variable VALUES(334,'Unit_Labor_Reinforc_steel_Superstr','Unit cost of Labor Reinforc steel Superstructure (shell) in 2017',936.159999999999969,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Superstr,infl','Total_Labor_Reinforc_steel_Superstr',0); +INSERT INTO variable VALUES(335,'Unit_Labor_Reinforc_steel_Dome','Unit cost of Labor Reinforc steel Superstructure (dome) in 2017',862.759999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Dome,infl','Total_Labor_Reinforc_steel_Dome',0); +INSERT INTO variable VALUES(336,'Unit_Labor_Reinforc_steel_Interior','Unit cost of Labor Reinforc steel Interior structure in 2017',880.4400000000000546,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Reinforc_steel_Interior,infl','Total_Labor_Reinforc_steel_Interior',0); +INSERT INTO variable VALUES(337,'Unit_Labor_Rubbing_surfaces_Superstr','Unit cost of Labor Rubbing surfaces Superstructure (shell) in 2017',23.87999999999999901,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Superstr,infl','Total_Labor_Rubbing_surfaces_Superstr',0); +INSERT INTO variable VALUES(338,'Unit_Labor_Rubbing_surfaces_Dome','Unit cost of Labor Rubbing surfaces Superstructure (dome) in 2017',16.48000000000000042,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Dome,infl','Total_Labor_Rubbing_surfaces_Dome',0); +INSERT INTO variable VALUES(339,'Unit_Labor_Rubbing_surfaces_Interior','Unit cost of Labor Rubbing surfaces Interior structure in 2017',28.44999999999999929,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Rubbing_surfaces_Interior,infl','Total_Labor_Rubbing_surfaces_Interior',0); +INSERT INTO variable VALUES(340,'Unit_Labor_Waterproofing_Substr','Unit cost of Labor Waterproofing Substructure (base mat) in 2017',13.15000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Substr,infl','Total_Labor_Waterproofing_Substr',0); +INSERT INTO variable VALUES(341,'Unit_Labor_Waterproofing_Superstr','Unit cost of Labor Waterproofing Superstructure (shell) in 2017',2.410000000000000142,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Superstr,infl','Total_Labor_Waterproofing_Superstr',0); +INSERT INTO variable VALUES(342,'Unit_Labor_Waterproofing_Dome','Unit cost of Labor Waterproofing Superstructure (dome) in 2017',0.0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Waterproofing_Dome,infl','Total_Labor_Waterproofing_Dome',0); +INSERT INTO variable VALUES(343,'Unit_Labor_Welded_wire_fabric_Substr','Unit cost of Labor Welded wire fabric Substructure (base mat) in 2017',28.91000000000000014,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_Welded_wire_fabric_Substr,infl','Total_Labor_Welded_wire_fabric_Substr',0); +INSERT INTO variable VALUES(344,'Unit_Labor_Lighting_Power','Unit cost of Labor Lighting Power in 2017',28.21999999999999887,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Lighting_Power,infl','Total_Labor_Lighting_Power',0); +INSERT INTO variable VALUES(345,'Unit_Labor_Plumb_drains','Unit cost of Labor Plumb drains in 2017',8.669999999999999929,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Plumb_drains,infl','Total_Labor_Plumb_drains',0); +INSERT INTO variable VALUES(346,'Unit_Labor_Special_HVAC','Unit cost of Labor Special HVAC in 2017',31.8299999999999983,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Special_HVAC,infl','Total_Labor_Special_HVAC',0); +INSERT INTO variable VALUES(347,'Unit_Labor_other','Unit cost of Labor other in 2017',1.520000000000000017,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_other,infl','Total_Labor_other',0); +INSERT INTO variable VALUES(348,'Unit_Labor_Misc_steel_frames','Unit cost of Labor miscellaneous steel frames in 2017',28.53000000000000113,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Misc_steel_frames,infl','Total_Labor_Misc_steel_frames',0); +INSERT INTO variable VALUES(349,'Unit_Labor_React_cav_liner','Unit cost of Labor Reactor cavity liner plate in 2017',2141.219999999999799,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_React_cav_liner,infl','Total_Labor_React_cav_liner',0); +INSERT INTO variable VALUES(350,'Unit_Labor_Struct_steel','Unit cost of Labor Struct steel in 2017',40.13000000000000255,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_Struct_steel,infl','Total_Labor_Struct_steel',0); +INSERT INTO variable VALUES(351,'Unit_Labor_cont_liner','Unit cost of Labor Containment liner in 2017',2239.940000000000054,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_cont_liner,infl','Total_Labor_cont_liner',0); +INSERT INTO variable VALUES(352,'Unit_Labor_fl_grate_handrail_stairs','Unit cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',5.019999999999999574,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Labor_fl_grate_handrail_stairs,infl','Total_Labor_fl_grate_handrail_stairs',0); +INSERT INTO variable VALUES(353,'Unit_Labor_painting','Unit cost of Labor painting in 2017',249.1599999999999966,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Labor_painting,infl','Total_Labor_painting',0); +INSERT INTO variable VALUES(354,'Unit_Mat_Cadweld_Substr','Unit cost of Material Cadweld Substructure (base mat) in 2017',127.2199999999999989,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Substr,infl','Total_Mat_Cadweld_Substr',0); +INSERT INTO variable VALUES(355,'Unit_Mat_Cadweld_Superstr','Unit cost of Material Cadweld Superstructure (shell) in 2017',170.6200000000000045,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Superstr,infl','Total_Mat_Cadweld_Superstr',0); +INSERT INTO variable VALUES(356,'Unit_Mat_Cadweld_Dome','Unit cost of Material Cadweld Superstructure (dome) in 2017',344.0299999999999727,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Dome,infl','Total_Mat_Cadweld_Dome',0); +INSERT INTO variable VALUES(357,'Unit_Mat_Cadweld_Interior','Unit cost of Material Cadweld Interior structure in 2017',71.76000000000000511,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Cadweld_Interior,infl','Total_Mat_Cadweld_Interior',0); +INSERT INTO variable VALUES(358,'Unit_Mat_Concrete_Substr','Unit cost of Material Concrete Substructure (base mat) in 2017',227.0600000000000022,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Substr,infl','Total_Mat_Concrete_Substr',0); +INSERT INTO variable VALUES(359,'Unit_Mat_Concrete_Superstr','Unit cost of Material Concrete Superstructure (shell) in 2017',156.3600000000000137,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Superstr,infl','Total_Mat_Concrete_Superstr',0); +INSERT INTO variable VALUES(360,'Unit_Mat_Concrete_Dome','Unit cost of Material Concrete Superstructure (dome) in 2017',139.5900000000000034,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Dome,infl','Total_Mat_Concrete_Dome',0); +INSERT INTO variable VALUES(361,'Unit_Mat_Concrete_Interior','Unit cost of Material Concrete Interior structure in 2017',152.740000000000009,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Concrete_Interior,infl','Total_Mat_Concrete_Interior',0); +INSERT INTO variable VALUES(362,'Unit_Mat_Constr_joints_Substr','Unit cost of Material Construction joints Substructure (base mat) in 2017',25.55000000000000071,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Substr,infl','Total_Mat_Constr_joints_Substr',0); +INSERT INTO variable VALUES(363,'Unit_Mat_Constr_joints_Superstr','Unit cost of Material Construction joints Superstructure (shell) in 2017',21.89999999999999857,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Superstr,infl','Total_Mat_Constr_joints_Superstr',0); +INSERT INTO variable VALUES(364,'Unit_Mat_Constr_joints_Dome','Unit cost of Material Construction joints Superstructure (dome) in 2017',8.349999999999999645,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Dome,infl','Total_Mat_Constr_joints_Dome',0); +INSERT INTO variable VALUES(365,'Unit_Mat_Constr_joints_Interior','Unit cost of Material Construction joints Interior structure in 2017',3.620000000000000106,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Constr_joints_Interior,infl','Total_Mat_Constr_joints_Interior',0); +INSERT INTO variable VALUES(366,'Unit_Mat_Embedded_steel_Substr','Unit cost of Material Embedded steel Substructure (base mat) in 2017',5.400000000000000355,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Substr,infl','Total_Mat_Embedded_steel_Substr',0); +INSERT INTO variable VALUES(367,'Unit_Mat_Embedded_steel_Superstr','Unit cost of Material Embedded steel Superstructure (shell) in 2017',21.73000000000000042,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Superstr,infl','Total_Mat_Embedded_steel_Superstr',0); +INSERT INTO variable VALUES(368,'Unit_Mat_Embedded_steel_Dome','Unit cost of Material Embedded steel Superstructure (dome) in 2017',0.0,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Dome,infl','Total_Mat_Embedded_steel_Dome',0); +INSERT INTO variable VALUES(369,'Unit_Mat_Embedded_steel_Interior','Unit cost of Material Embedded steel Interior structure in 2017',458.509999999999991,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Embedded_steel_Interior,infl','Total_Mat_Embedded_steel_Interior',0); +INSERT INTO variable VALUES(370,'Unit_Mat_Formwork_Substr','Unit cost of Material Formwork Substructure (base mat) in 2017',37.95000000000000285,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Substr,infl','Total_Mat_Formwork_Substr',0); +INSERT INTO variable VALUES(371,'Unit_Mat_Formwork_Superstr','Unit cost of Material Formwork Superstructure (shell) in 2017',39.17999999999999972,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Superstr,infl','Total_Mat_Formwork_Superstr',0); +INSERT INTO variable VALUES(372,'Unit_Mat_Formwork_Dome','Unit cost of Material Formwork Superstructure (dome) in 2017',22.01999999999999958,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Dome,infl','Total_Mat_Formwork_Dome',0); +INSERT INTO variable VALUES(373,'Unit_Mat_Formwork_Interior','Unit cost of Material Formwork Interior structure in 2017',62.71999999999999887,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Formwork_Interior,infl','Total_Mat_Formwork_Interior',0); +INSERT INTO variable VALUES(374,'Unit_Mat_Maj_supp_embedments_Interior','Unit cost of Material Major Support Embedments Interior structure in 2017',646.8700000000000045,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Maj_supp_embedments_Interior,infl','Total_Mat_Maj_supp_embedments_Interior',0); +INSERT INTO variable VALUES(375,'Unit_Mat_Reinforc_steel_Substr','Unit cost of Material Reinforc steel Substructure (base mat) in 2017',1046.960000000000036,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Substr,infl','Total_Mat_Reinforc_steel_Substr',0); +INSERT INTO variable VALUES(376,'Unit_Mat_Reinforc_steel_Superstr','Unit cost of Material Reinforc steel Superstructure (shell) in 2017',743.32000000000005,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Superstr,infl','Total_Mat_Reinforc_steel_Superstr',0); +INSERT INTO variable VALUES(377,'Unit_Mat_Reinforc_steel_Dome','Unit cost of Material Reinforc steel Superstructure (dome) in 2017',685.0499999999999546,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Dome,infl','Total_Mat_Reinforc_steel_Dome',0); +INSERT INTO variable VALUES(378,'Unit_Mat_Reinforc_steel_Interior','Unit cost of Material Reinforc steel Interior structure in 2017',590.3500000000000227,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Reinforc_steel_Interior,infl','Total_Mat_Reinforc_steel_Interior',0); +INSERT INTO variable VALUES(379,'Unit_Mat_Rubbing_surfaces_Superstr','Unit cost of Material Rubbing surfaces Superstructure (shell) in 2017',1.949999999999999956,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Superstr,infl','Total_Mat_Rubbing_surfaces_Superstr',0); +INSERT INTO variable VALUES(380,'Unit_Mat_Rubbing_surfaces_Dome','Unit cost of Material Rubbing surfaces Superstructure (dome) in 2017',1.350000000000000088,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Dome,infl','Total_Mat_Rubbing_surfaces_Dome',0); +INSERT INTO variable VALUES(381,'Unit_Mat_Rubbing_surfaces_Interior','Unit cost of Material Rubbing surfaces Interior structure in 2017',2.350000000000000088,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Rubbing_surfaces_Interior,infl','Total_Mat_Rubbing_surfaces_Interior',0); +INSERT INTO variable VALUES(382,'Unit_Mat_Waterproofing_Substr','Unit cost of Material Waterproofing Substructure (base mat) in 2017',6.980000000000000426,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Substr,infl','Total_Mat_Waterproofing_Substr',0); +INSERT INTO variable VALUES(383,'Unit_Mat_Waterproofing_Superstr','Unit cost of Material Waterproofing Superstructure (shell) in 2017',1.290000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Superstr,infl','Total_Mat_Waterproofing_Superstr',0); +INSERT INTO variable VALUES(384,'Unit_Mat_Waterproofing_Dome','Unit cost of Material Waterproofing Superstructure (dome) in 2017',0.0,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Waterproofing_Dome,infl','Total_Mat_Waterproofing_Dome',0); +INSERT INTO variable VALUES(385,'Unit_Mat_Welded_wire_fabric_Substr','Unit cost of Material Welded wire fabric Substructure (base mat) in 2017',14.90000000000000035,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_Welded_wire_fabric_Substr,infl','Total_Mat_Welded_wire_fabric_Substr',0); +INSERT INTO variable VALUES(386,'Unit_Mat_Lighting_Power','Unit cost of Material Lighting Power in 2017',14.24000000000000021,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Lighting_Power,infl','Total_Mat_Lighting_Power',0); +INSERT INTO variable VALUES(387,'Unit_Mat_Plumb_drains','Unit cost of Material Plumb drains in 2017',4.419999999999999929,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Plumb_drains,infl','Total_Mat_Plumb_drains',0); +INSERT INTO variable VALUES(388,'Unit_Mat_Special_HVAC','Unit cost of Material Special HVAC in 2017',25.23000000000000042,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Special_HVAC,infl','Total_Mat_Special_HVAC',0); +INSERT INTO variable VALUES(389,'Unit_Mat_other','Unit cost of Material other in 2017',5.629999999999999894,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_other,infl','Total_Mat_other',0); +INSERT INTO variable VALUES(390,'Unit_Mat_Misc_steel_frames','Unit cost of Material miscellaneous steel frames in 2017',47.53999999999999915,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Misc_steel_frames,infl','Total_Mat_Misc_steel_frames',0); +INSERT INTO variable VALUES(391,'Unit_Mat_React_cav_liner','Unit cost of Material Reactor cavity liner plate in 2017',1745.15000000000009,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_React_cav_liner,infl','Total_Mat_React_cav_liner',0); +INSERT INTO variable VALUES(392,'Unit_Mat_Struct_steel','Unit cost of Material Struct steel in 2017',78.68000000000000683,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_Struct_steel,infl','Total_Mat_Struct_steel',0); +INSERT INTO variable VALUES(393,'Unit_Mat_cont_liner','Unit cost of Material Containment liner in 2017',3453.210000000000036,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_cont_liner,infl','Total_Mat_cont_liner',0); +INSERT INTO variable VALUES(394,'Unit_Mat_fl_grate_handrail_stairs','Unit cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',5.679999999999999716,'dollar/m^3','unitcost_v_eedb_to_accert','Unit_EEDB_Mat_fl_grate_handrail_stairs,infl','Total_Mat_fl_grate_handrail_stairs',0); +INSERT INTO variable VALUES(395,'Unit_Mat_painting','Unit cost of Material painting in 2017',70.84000000000000341,'dollar/m^2','unitcost_s_eedb_to_accert','Unit_EEDB_Mat_painting,infl','Total_Mat_painting',0); +INSERT INTO variable VALUES(396,'Total_Labor_Cadweld_Substr','Total cost of Labor Cadweld Substructure (base mat) in 2017',1243968.134000000078,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Substr,Basemat_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO variable VALUES(397,'Total_Labor_Cadweld_Superstr','Total cost of Labor Cadweld Superstructure (shell) in 2017',2768948.686000000219,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Superstr,Walls_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO variable VALUES(398,'Total_Labor_Cadweld_Dome','Total cost of Labor Cadweld Superstructure (dome) in 2017',2247176.626000000164,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Dome,Dome_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO variable VALUES(399,'Total_Labor_Cadweld_Interior','Total cost of Labor Cadweld Interior structure in 2017',993207.831200000015,'dollar','tol_contaiment_ce_cost','Unit_Labor_Cadweld_Interior,Internal_v_m3','Sum_Labor_Cadweld',0); +INSERT INTO variable VALUES(400,'Total_Labor_Concrete_Substr','Total cost of Labor Concrete Substructure (base mat) in 2017',1055611.621000000042,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Substr,Basemat_v_m3','Sum_Labor_Concrete',0); +INSERT INTO variable VALUES(401,'Total_Labor_Concrete_Superstr','Total cost of Labor Concrete Superstructure (shell) in 2017',2111136.15100000007,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Superstr,Walls_v_m3','Sum_Labor_Concrete',0); +INSERT INTO variable VALUES(402,'Total_Labor_Concrete_Dome','Total cost of Labor Concrete Superstructure (dome) in 2017',758685.8815000000177,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Dome,Dome_v_m3','Sum_Labor_Concrete',0); +INSERT INTO variable VALUES(403,'Total_Labor_Concrete_Interior','Total cost of Labor Concrete Interior structure in 2017',2010524.648999999976,'dollar','tol_contaiment_ce_cost','Unit_Labor_Concrete_Interior,Internal_v_m3','Sum_Labor_Concrete',0); +INSERT INTO variable VALUES(404,'Total_Labor_Constr_joints_Substr','Total cost of Labor Construction joints Substructure (base mat) in 2017',69294.50820999999996,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Substr,Basemat_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO variable VALUES(405,'Total_Labor_Constr_joints_Superstr','Total cost of Labor Construction joints Superstructure (shell) in 2017',438205.0750000000116,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Superstr,Walls_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO variable VALUES(406,'Total_Labor_Constr_joints_Dome','Total cost of Labor Construction joints Superstructure (dome) in 2017',86628.2647200000065,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Dome,Dome_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO variable VALUES(407,'Total_Labor_Constr_joints_Interior','Total cost of Labor Construction joints Interior structure in 2017',69295.01605000000563,'dollar','tol_contaiment_ce_cost','Unit_Labor_Constr_joints_Interior,Internal_s_m2','Sum_Labor_Constr_joints',0); +INSERT INTO variable VALUES(408,'Total_Labor_Embedded_steel_Substr','Total cost of Labor Embedded steel Substructure (base mat) in 2017',57933.45629999999801,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Substr,Basemat_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO variable VALUES(409,'Total_Labor_Embedded_steel_Superstr','Total cost of Labor Embedded steel Superstructure (shell) in 2017',386039.085699999996,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Superstr,Walls_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO variable VALUES(410,'Total_Labor_Embedded_steel_Dome','Total cost of Labor Embedded steel Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Dome,Dome_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO variable VALUES(411,'Total_Labor_Embedded_steel_Interior','Total cost of Labor Embedded steel Interior structure in 2017',6947097.265999999829,'dollar','tol_contaiment_ce_cost','Unit_Labor_Embedded_steel_Interior,Internal_v_m3','Sum_Labor_Embedded_steel',0); +INSERT INTO variable VALUES(412,'Total_Labor_Formwork_Substr','Total cost of Labor Formwork Substructure (base mat) in 2017',444659.6595000000088,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Substr,Basemat_s_m2','Sum_Labor_Formwork',0); +INSERT INTO variable VALUES(413,'Total_Labor_Formwork_Superstr','Total cost of Labor Formwork Superstructure (shell) in 2017',3868815.384999999777,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Superstr,Walls_s_m2','Sum_Labor_Formwork',0); +INSERT INTO variable VALUES(414,'Total_Labor_Formwork_Dome','Total cost of Labor Formwork Superstructure (dome) in 2017',1069813.476000000024,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Dome,Dome_s_m2','Sum_Labor_Formwork',0); +INSERT INTO variable VALUES(415,'Total_Labor_Formwork_Interior','Total cost of Labor Formwork Interior structure in 2017',7825942.496000000275,'dollar','tol_contaiment_ce_cost','Unit_Labor_Formwork_Interior,Internal_s_m2','Sum_Labor_Formwork',0); +INSERT INTO variable VALUES(416,'Total_Labor_Maj_supp_embedments_Interior','Total cost of Labor Major Support Embedments Interior structure in 2017',3163634.819999999833,'dollar','tol_contaiment_ce_cost','Unit_Labor_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Labor_Maj_supp_embedments',0); +INSERT INTO variable VALUES(417,'Total_Labor_Reinforc_steel_Substr','Total cost of Labor Reinforc steel Substructure (base mat) in 2017',4695084.504999999888,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Substr,Basemat_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO variable VALUES(418,'Total_Labor_Reinforc_steel_Superstr','Total cost of Labor Reinforc steel Superstructure (shell) in 2017',7878531.10300000012,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Superstr,Walls_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO variable VALUES(419,'Total_Labor_Reinforc_steel_Dome','Total cost of Labor Reinforc steel Superstructure (dome) in 2017',2922720.180999999866,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Dome,Dome_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO variable VALUES(420,'Total_Labor_Reinforc_steel_Interior','Total cost of Labor Reinforc steel Interior structure in 2017',6320263.610000000335,'dollar','tol_contaiment_ce_cost','Unit_Labor_Reinforc_steel_Interior,Internal_v_m3','Sum_Labor_Reinforc_steel',0); +INSERT INTO variable VALUES(421,'Total_Labor_Rubbing_surfaces_Superstr','Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017',293076.0630000000237,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO variable VALUES(422,'Total_Labor_Rubbing_surfaces_Dome','Total cost of Labor Rubbing surfaces Superstructure (dome) in 2017',104683.4187999999995,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO variable VALUES(423,'Total_Labor_Rubbing_surfaces_Interior','Total cost of Labor Rubbing surfaces Interior structure in 2017',334982.2482999999775,'dollar','tol_contaiment_ce_cost','Unit_Labor_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Labor_Rubbing_surfaces',0); +INSERT INTO variable VALUES(424,'Total_Labor_Waterproofing_Substr','Total cost of Labor Waterproofing Substructure (base mat) in 2017',21872.42229999999835,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Substr,Basemat_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO variable VALUES(425,'Total_Labor_Waterproofing_Superstr','Total cost of Labor Waterproofing Superstructure (shell) in 2017',29589.41020999999819,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Superstr,Walls_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO variable VALUES(426,'Total_Labor_Waterproofing_Dome','Total cost of Labor Waterproofing Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Labor_Waterproofing_Dome,Dome_s_m2','Sum_Labor_Waterproofing',0); +INSERT INTO variable VALUES(427,'Total_Labor_Welded_wire_fabric_Substr','Total cost of Labor Welded wire fabric Substructure (base mat) in 2017',48090.67523999999685,'dollar','tol_contaiment_ce_cost','Unit_Labor_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Labor_Welded_wire_fabric',0); +INSERT INTO variable VALUES(428,'Total_Labor_Lighting_Power','Total cost of Labor Lighting Power in 2017',2440442.179000000003,'dollar','tol_contaiment_ce_cost','Unit_Labor_Lighting_Power,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO variable VALUES(429,'Total_Labor_Plumb_drains','Total cost of Labor Plumb drains in 2017',749759.4486999999498,'dollar','tol_contaiment_ce_cost','Unit_Labor_Plumb_drains,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO variable VALUES(430,'Total_Labor_Special_HVAC','Total cost of Labor Special HVAC in 2017',2753255.72399999993,'dollar','tol_contaiment_ce_cost','Unit_Labor_Special_HVAC,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO variable VALUES(431,'Total_Labor_other','Total cost of Labor other in 2017',131580.3005999999878,'dollar','tol_contaiment_ce_cost','Unit_Labor_other,Intern_tot_v_m3','Tot_Labor_equipment',0); +INSERT INTO variable VALUES(432,'Total_Labor_Misc_steel_frames','Total cost of Labor miscellaneous steel frames in 2017',686297.4094999999506,'dollar','tol_contaiment_ce_cost','Unit_Labor_Misc_steel_frames,Struct_v_m3','Tot_Labor_others',0); +INSERT INTO variable VALUES(433,'Total_Labor_React_cav_liner','Total cost of Labor Reactor cavity liner plate in 2017',2188185.873000000138,'dollar','tol_contaiment_ce_cost','Unit_Labor_React_cav_liner,React_cav_A_m2','Tot_Labor_others',0); +INSERT INTO variable VALUES(434,'Total_Labor_Struct_steel','Total cost of Labor Struct steel in 2017',965235.189600000041,'dollar','tol_contaiment_ce_cost','Unit_Labor_Struct_steel,Struct_v_m3','Tot_Labor_others',0); +INSERT INTO variable VALUES(435,'Total_Labor_cont_liner','Total cost of Labor Containment liner in 2017',23395318.53000000119,'dollar','tol_contaiment_ce_cost','Unit_Labor_cont_liner,Liner_s_m2','Tot_Labor_others',0); +INSERT INTO variable VALUES(436,'Total_Labor_fl_grate_handrail_stairs','Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017',434463.2567000000272,'dollar','tol_contaiment_ce_cost','Unit_Labor_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Labor_others',0); +INSERT INTO variable VALUES(437,'Total_Labor_painting','Total cost of Labor painting in 2017',7941226.680999999865,'dollar','tol_contaiment_ce_cost','Unit_Labor_painting,Surf_paint_m2','Tot_Labor_others',0); +INSERT INTO variable VALUES(438,'Total_Mat_Cadweld_Substr','Total cost of Material Cadweld Substructure (base mat) in 2017',645128.3375000000233,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Substr,Basemat_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO variable VALUES(439,'Total_Mat_Cadweld_Superstr','Total cost of Material Cadweld Superstructure (shell) in 2017',1435930.115999999922,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Superstr,Walls_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO variable VALUES(440,'Total_Mat_Cadweld_Dome','Total cost of Material Cadweld Superstructure (dome) in 2017',1165451.203999999911,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Dome,Dome_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO variable VALUES(441,'Total_Mat_Cadweld_Interior','Total cost of Material Cadweld Interior structure in 2017',515149.2900999999837,'dollar','tol_contaiment_ce_cost','Unit_Mat_Cadweld_Interior,Internal_v_m3','Sum_Mat_Cadweld',0); +INSERT INTO variable VALUES(442,'Total_Mat_Concrete_Substr','Total cost of Material Concrete Substructure (base mat) in 2017',1151391.054000000003,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Substr,Basemat_v_m3','Sum_Mat_Concrete',0); +INSERT INTO variable VALUES(443,'Total_Mat_Concrete_Superstr','Total cost of Material Concrete Superstructure (shell) in 2017',1315866.64599999995,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Superstr,Walls_v_m3','Sum_Mat_Concrete',0); +INSERT INTO variable VALUES(444,'Total_Mat_Concrete_Dome','Total cost of Material Concrete Superstructure (dome) in 2017',472890.2129999999889,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Dome,Dome_v_m3','Sum_Mat_Concrete',0); +INSERT INTO variable VALUES(445,'Total_Mat_Concrete_Interior','Total cost of Material Concrete Interior structure in 2017',1096443.749000000069,'dollar','tol_contaiment_ce_cost','Unit_Mat_Concrete_Interior,Internal_v_m3','Sum_Mat_Concrete',0); +INSERT INTO variable VALUES(446,'Total_Mat_Constr_joints_Substr','Total cost of Material Construction joints Substructure (base mat) in 2017',42503.17871000000013,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Substr,Basemat_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO variable VALUES(447,'Total_Mat_Constr_joints_Superstr','Total cost of Material Construction joints Superstructure (shell) in 2017',268770.476100000029,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Superstr,Walls_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO variable VALUES(448,'Total_Mat_Constr_joints_Dome','Total cost of Material Construction joints Superstructure (dome) in 2017',53071.21059999999853,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Dome,Dome_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO variable VALUES(449,'Total_Mat_Constr_joints_Interior','Total cost of Material Construction joints Interior structure in 2017',42591.08303999999771,'dollar','tol_contaiment_ce_cost','Unit_Mat_Constr_joints_Interior,Internal_s_m2','Sum_Mat_Constr_joints',0); +INSERT INTO variable VALUES(450,'Total_Mat_Embedded_steel_Substr','Total cost of Material Embedded steel Substructure (base mat) in 2017',27365.55222000000139,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Substr,Basemat_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO variable VALUES(451,'Total_Mat_Embedded_steel_Superstr','Total cost of Material Embedded steel Superstructure (shell) in 2017',182873.3341000000073,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Superstr,Walls_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO variable VALUES(452,'Total_Mat_Embedded_steel_Dome','Total cost of Material Embedded steel Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Dome,Dome_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO variable VALUES(453,'Total_Mat_Embedded_steel_Interior','Total cost of Material Embedded steel Interior structure in 2017',3291391.84400000004,'dollar','tol_contaiment_ce_cost','Unit_Mat_Embedded_steel_Interior,Internal_v_m3','Sum_Mat_Embedded_steel',0); +INSERT INTO variable VALUES(454,'Total_Mat_Formwork_Substr','Total cost of Material Formwork Substructure (base mat) in 2017',63133.93512000000191,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Substr,Basemat_s_m2','Sum_Mat_Formwork',0); +INSERT INTO variable VALUES(455,'Total_Mat_Formwork_Superstr','Total cost of Material Formwork Superstructure (shell) in 2017',480827.9159000000218,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Superstr,Walls_s_m2','Sum_Mat_Formwork',0); +INSERT INTO variable VALUES(456,'Total_Mat_Formwork_Dome','Total cost of Material Formwork Superstructure (dome) in 2017',139881.8506000000052,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Dome,Dome_s_m2','Sum_Mat_Formwork',0); +INSERT INTO variable VALUES(457,'Total_Mat_Formwork_Interior','Total cost of Material Formwork Interior structure in 2017',738583.4638000000268,'dollar','tol_contaiment_ce_cost','Unit_Mat_Formwork_Interior,Internal_s_m2','Sum_Mat_Formwork',0); +INSERT INTO variable VALUES(458,'Total_Mat_Maj_supp_embedments_Interior','Total cost of Material Major Support Embedments Interior structure in 2017',4643555.701000000351,'dollar','tol_contaiment_ce_cost','Unit_Mat_Maj_supp_embedments_Interior,Internal_v_m3','Sum_Mat_Maj_supp_embedments',0); +INSERT INTO variable VALUES(459,'Total_Mat_Reinforc_steel_Substr','Total cost of Material Reinforc steel Substructure (base mat) in 2017',5309062.691999999807,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Substr,Basemat_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO variable VALUES(460,'Total_Mat_Reinforc_steel_Superstr','Total cost of Material Reinforc steel Superstructure (shell) in 2017',6255620.854000000283,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Superstr,Walls_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO variable VALUES(461,'Total_Mat_Reinforc_steel_Dome','Total cost of Material Reinforc steel Superstructure (dome) in 2017',2320691.945999999997,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Dome,Dome_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO variable VALUES(462,'Total_Mat_Reinforc_steel_Interior','Total cost of Material Reinforc steel Interior structure in 2017',4237824.120000000111,'dollar','tol_contaiment_ce_cost','Unit_Mat_Reinforc_steel_Interior,Internal_v_m3','Sum_Mat_Reinforc_steel',0); +INSERT INTO variable VALUES(463,'Total_Mat_Rubbing_surfaces_Superstr','Total cost of Material Rubbing surfaces Superstructure (shell) in 2017',23953.33207000000038,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Superstr,Walls_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO variable VALUES(464,'Total_Mat_Rubbing_surfaces_Dome','Total cost of Material Rubbing surfaces Superstructure (dome) in 2017',8571.638824999999997,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Dome,Dome_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO variable VALUES(465,'Total_Mat_Rubbing_surfaces_Interior','Total cost of Material Rubbing surfaces Interior structure in 2017',27718.00642000000152,'dollar','tol_contaiment_ce_cost','Unit_Mat_Rubbing_surfaces_Interior,Internal_s_m2','Sum_Mat_Rubbing_surfaces',0); +INSERT INTO variable VALUES(466,'Total_Mat_Waterproofing_Substr','Total cost of Material Waterproofing Substructure (base mat) in 2017',11604.80047999999988,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Substr,Basemat_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO variable VALUES(467,'Total_Mat_Waterproofing_Superstr','Total cost of Material Waterproofing Superstructure (shell) in 2017',15851.46975999999996,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Superstr,Walls_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO variable VALUES(468,'Total_Mat_Waterproofing_Dome','Total cost of Material Waterproofing Superstructure (dome) in 2017',0.0,'dollar','tol_contaiment_ce_cost','Unit_Mat_Waterproofing_Dome,Dome_s_m2','Sum_Mat_Waterproofing',0); +INSERT INTO variable VALUES(469,'Total_Mat_Welded_wire_fabric_Substr','Total cost of Material Welded wire fabric Substructure (base mat) in 2017',24785.5615199999993,'dollar','tol_contaiment_ce_cost','Unit_Mat_Welded_wire_fabric_Substr,Basemat_s_m2','Sum_Mat_Welded_wire_fabric',0); +INSERT INTO variable VALUES(470,'Total_Mat_Lighting_Power','Total cost of Material Lighting Power in 2017',1231393.002000000094,'dollar','tol_contaiment_ce_cost','Unit_Mat_Lighting_Power,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO variable VALUES(471,'Total_Mat_Plumb_drains','Total cost of Material Plumb drains in 2017',382327.6659000000217,'dollar','tol_contaiment_ce_cost','Unit_Mat_Plumb_drains,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO variable VALUES(472,'Total_Mat_Special_HVAC','Total cost of Material Special HVAC in 2017',2182246.871999999974,'dollar','tol_contaiment_ce_cost','Unit_Mat_Special_HVAC,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO variable VALUES(473,'Total_Mat_other','Total cost of Material other in 2017',486598.8474999999743,'dollar','tol_contaiment_ce_cost','Unit_Mat_other,Intern_tot_v_m3','Tot_Mat_equipment',0); +INSERT INTO variable VALUES(474,'Total_Mat_Misc_steel_frames','Total cost of Material miscellaneous steel frames in 2017',1143368.722000000068,'dollar','tol_contaiment_ce_cost','Unit_Mat_Misc_steel_frames,Struct_v_m3','Tot_Mat_others',0); +INSERT INTO variable VALUES(475,'Total_Mat_React_cav_liner','Total cost of Material Reactor cavity liner plate in 2017',1783426.929000000003,'dollar','tol_contaiment_ce_cost','Unit_Mat_React_cav_liner,React_cav_A_m2','Tot_Mat_others',0); +INSERT INTO variable VALUES(476,'Total_Mat_Struct_steel','Total cost of Material Struct steel in 2017',1892496.176999999909,'dollar','tol_contaiment_ce_cost','Unit_Mat_Struct_steel,Struct_v_m3','Tot_Mat_others',0); +INSERT INTO variable VALUES(477,'Total_Mat_cont_liner','Total cost of Material Containment liner in 2017',36067520.39999999851,'dollar','tol_contaiment_ce_cost','Unit_Mat_cont_liner,Liner_s_m2','Tot_Mat_others',0); +INSERT INTO variable VALUES(478,'Total_Mat_fl_grate_handrail_stairs','Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017',491564.1417999999831,'dollar','tol_contaiment_ce_cost','Unit_Mat_fl_grate_handrail_stairs,Intern_tot_v_m3','Tot_Mat_others',0); +INSERT INTO variable VALUES(479,'Total_Mat_painting','Total cost of Material painting in 2017',2257943.254999999889,'dollar','tol_contaiment_ce_cost','Unit_Mat_painting,Surf_paint_m2','Tot_Mat_others',0); +INSERT INTO variable VALUES(480,'Sum_Labor_Cadweld','Total cost of Labor Cadweld',7253301.277999999933,'dollar','sum_ce','Total_Labor_Cadweld_Substr,Total_Labor_Cadweld_Superstr,Total_Labor_Cadweld_Dome,Total_Labor_Cadweld_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(481,'Sum_Labor_Concrete','Total cost of Labor Concrete',5935958.303000000306,'dollar','sum_ce','Total_Labor_Concrete_Substr,Total_Labor_Concrete_Superstr,Total_Labor_Concrete_Dome,Total_Labor_Concrete_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(482,'Sum_Labor_Constr_joints','Total cost of Labor Constr joints',663422.8639999999431,'dollar','sum_ce','Total_Labor_Constr_joints_Substr,Total_Labor_Constr_joints_Superstr,Total_Labor_Constr_joints_Dome,Total_Labor_Constr_joints_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(483,'Sum_Labor_Embedded_steel','Total cost of Labor Embedded steel',7391069.808000000193,'dollar','sum_ce','Total_Labor_Embedded_steel_Substr,Total_Labor_Embedded_steel_Superstr,Total_Labor_Embedded_steel_Dome,Total_Labor_Embedded_steel_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(484,'Sum_Labor_Formwork','Total cost of Labor Formwork',13209231.01999999956,'dollar','sum_ce','Total_Labor_Formwork_Substr,Total_Labor_Formwork_Superstr,Total_Labor_Formwork_Dome,Total_Labor_Formwork_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(485,'Sum_Labor_Maj_supp_embedments','Total cost of Labor Maj supp embedments',3163634.819999999833,'dollar','sum_ce','Total_Labor_Maj_supp_embedments_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(486,'Sum_Labor_Reinforc_steel','Total cost of Labor Reinforc steel',21816599.3999999985,'dollar','sum_ce','Total_Labor_Reinforc_steel_Substr,Total_Labor_Reinforc_steel_Superstr,Total_Labor_Reinforc_steel_Dome,Total_Labor_Reinforc_steel_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(487,'Sum_Labor_Rubbing_surfaces','Total cost of Labor Rubbing surfaces',732741.7301999999909,'dollar','sum_ce','Total_Labor_Rubbing_surfaces_Superstr,Total_Labor_Rubbing_surfaces_Dome,Total_Labor_Rubbing_surfaces_Interior','Tot_Labor_concr',0); +INSERT INTO variable VALUES(488,'Sum_Labor_Waterproofing','Total cost of Labor Waterproofing',51461.83251000000019,'dollar','sum_ce','Total_Labor_Waterproofing_Substr,Total_Labor_Waterproofing_Superstr,Total_Labor_Waterproofing_Dome','Tot_Labor_concr',0); +INSERT INTO variable VALUES(489,'Sum_Labor_Welded_wire_fabric','Total cost of Labor Welded wire fabric',48090.67523999999685,'dollar','sum_ce','Total_Labor_Welded_wire_fabric_Substr','Tot_Labor_concr',0); +INSERT INTO variable VALUES(490,'Sum_Mat_Cadweld','Total cost of Material Cadweld',3761658.94700000016,'dollar','sum_ce','Total_Mat_Cadweld_Substr,Total_Mat_Cadweld_Superstr,Total_Mat_Cadweld_Dome,Total_Mat_Cadweld_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(491,'Sum_Mat_Concrete','Total cost of Material Concrete',4036591.660999999848,'dollar','sum_ce','Total_Mat_Concrete_Substr,Total_Mat_Concrete_Superstr,Total_Mat_Concrete_Dome,Total_Mat_Concrete_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(492,'Sum_Mat_Constr_joints','Total cost of Material Constr joints',406935.9483999999939,'dollar','sum_ce','Total_Mat_Constr_joints_Substr,Total_Mat_Constr_joints_Superstr,Total_Mat_Constr_joints_Dome,Total_Mat_Constr_joints_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(493,'Sum_Mat_Embedded_steel','Total cost of Material Embedded steel',3501630.729999999982,'dollar','sum_ce','Total_Mat_Embedded_steel_Substr,Total_Mat_Embedded_steel_Superstr,Total_Mat_Embedded_steel_Dome,Total_Mat_Embedded_steel_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(494,'Sum_Mat_Formwork','Total cost of Material Formwork',1422427.165000000037,'dollar','sum_ce','Total_Mat_Formwork_Substr,Total_Mat_Formwork_Superstr,Total_Mat_Formwork_Dome,Total_Mat_Formwork_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(495,'Sum_Mat_Maj_supp_embedments','Total cost of Material Maj supp embedments',1467166.110000000102,'dollar','sum_ce','Total_Mat_Maj_supp_embedments_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(496,'Sum_Mat_Reinforc_steel','Total cost of Material Reinforc steel',18123199.60999999941,'dollar','sum_ce','Total_Mat_Reinforc_steel_Substr,Total_Mat_Reinforc_steel_Superstr,Total_Mat_Reinforc_steel_Dome,Total_Mat_Reinforc_steel_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(497,'Sum_Mat_Rubbing_surfaces','Total cost of Material Rubbing surfaces',60242.97731999999815,'dollar','sum_ce','Total_Mat_Rubbing_surfaces_Superstr,Total_Mat_Rubbing_surfaces_Dome,Total_Mat_Rubbing_surfaces_Interior','Tot_Mat_concr',0); +INSERT INTO variable VALUES(498,'Sum_Mat_Waterproofing','Total cost of Material Waterproofing',27456.27022999999827,'dollar','sum_ce','Total_Mat_Waterproofing_Substr,Total_Mat_Waterproofing_Superstr,Total_Mat_Waterproofing_Dome','Tot_Mat_concr',0); +INSERT INTO variable VALUES(499,'Sum_Mat_Welded_wire_fabric','Total cost of Material Welded wire fabric',24785.5615199999993,'dollar','sum_ce','Total_Mat_Welded_wire_fabric_Substr','Tot_Mat_concr',0); +INSERT INTO variable VALUES(500,'Tot_Labor_concr','Total cost of labor of containment construction',60265511.72999999672,'dollar','sum_ce','Sum_Labor_Cadweld,Sum_Labor_Concrete,Sum_Labor_Constr_joints,Sum_Labor_Embedded_steel,Sum_Labor_Formwork,Sum_Labor_Maj_supp_embedments,Sum_Labor_Reinforc_steel,Sum_Labor_Rubbing_surfaces,Sum_Labor_Waterproofing,Sum_Labor_Welded_wire_fabric','Tot_Labor_containment',0); +INSERT INTO variable VALUES(501,'Tot_Labor_equipment','Total cost of labor of containment equipments',6075037.65199999977,'dollar','sum_ce','Total_Labor_Lighting_Power,Total_Labor_Plumb_drains,Total_Labor_Special_HVAC,Total_Labor_other','Tot_Labor_containment',0); +INSERT INTO variable VALUES(502,'Tot_Labor_others','Total cost of labor of other non-concrete related items ',35610726.93999999762,'dollar','sum_ce','Total_Labor_Misc_steel_frames,Total_Labor_React_cav_liner,Total_Labor_Struct_steel,Total_Labor_cont_liner,Total_Labor_fl_grate_handrail_stairs,Total_Labor_painting','Tot_Labor_containment',0); +INSERT INTO variable VALUES(503,'Tot_Mat_concr','Total cost of material of containment construction',32832094.98000000044,'dollar','sum_ce','Sum_Mat_Cadweld,Sum_Mat_Concrete,Sum_Mat_Constr_joints,Sum_Mat_Embedded_steel,Sum_Mat_Formwork,Sum_Mat_Maj_supp_embedments,Sum_Mat_Reinforc_steel,Sum_Mat_Rubbing_surfaces,Sum_Mat_Waterproofing,Sum_Mat_Welded_wire_fabric','Tot_Mat_containment',0); +INSERT INTO variable VALUES(504,'Tot_Mat_equipment','Total cost of material of containment equipments',4282566.387000000104,'dollar','sum_ce','Total_Mat_Lighting_Power,Total_Mat_Plumb_drains,Total_Mat_Special_HVAC,Total_Mat_other','Tot_Mat_containment',0); +INSERT INTO variable VALUES(505,'Tot_Mat_others','Total cost of material of other non-concrete related items ',43636319.63000000269,'dollar','sum_ce','Total_Mat_Misc_steel_frames,Total_Mat_React_cav_liner,Total_Mat_Struct_steel,Total_Mat_cont_liner,Total_Mat_fl_grate_handrail_stairs,Total_Mat_painting','Tot_Mat_containment',0); +INSERT INTO variable VALUES(506,'Tot_Labor_containment','Total cost of labor of containment',101951276.2999999971,'dollar','sum_ce','Tot_Labor_concr,Tot_Labor_equipment,Tot_Labor_others',NULL,0); +INSERT INTO variable VALUES(507,'Tot_Mat_containment','Total cost of material of containment',80750981.0,'dollar','sum_ce','Tot_Mat_concr,Tot_Mat_equipment,Tot_Mat_others',NULL,0); +CREATE TABLE algorithm ( + ind INTEGER, + alg_name TEXT, + alg_for TEXT, + alg_description TEXT, + alg_python TEXT, + alg_formulation TEXT, + alg_units TEXT, + variables TEXT, + constants TEXT +); +INSERT INTO algorithm VALUES(1,'sum_multi_accounts','c','sum of multiple accounts','PWRABRFunc','sum(account_1,account_2...account_n)','million','account1, account2.accountn',NULL); +INSERT INTO algorithm VALUES(4,'ptn_account','c','portion of account cost','PWRABRFunc','account_cost*portion','million','c_ref,prn_fac',NULL); +INSERT INTO algorithm VALUES(5,'unit_weights','c','unit cost of weight','PWRABRFunc','weight_of_carbon_steel*0.14+weight_of_stainless_steel*0.31','million','Csweight, Ssweight','0.140000, 0.310000'); +INSERT INTO algorithm VALUES(6,'pump','v','cost per pump based on ref','PWRABRFunc','ref_cost_of_pump*(CH_of_pump/CH_of_ref)^scale_of_power','million','c_pump_ref,CH,CH_ref,scale',NULL); +INSERT INTO algorithm VALUES(7,'containment','c','containment calculation','PWRABRFunc','containment structure + equipment + others','million','NOT YET',NULL); +INSERT INTO algorithm VALUES(8,'MWth_scale','c','thermal power scale from pwr12be','PWRABRFunc','cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale','million','c_ref,mwth,scale','3431'); +INSERT INTO algorithm VALUES(9,'unit_volume','c','cost by unit volume','PWRABRFunc','dollar_cost_per_unit_vol*vol/1000000','million','V1_unit_vol, V2_vol',NULL); +INSERT INTO algorithm VALUES(10,'dev_factor_ref','c','factor of the reference','PWRABRFunc','cost_of_ref*scale/factor','million','c_ref,scale,n',NULL); +INSERT INTO algorithm VALUES(11,'tur_exp_n','v','scaling exponent law ','PWRABRFunc','(-0.0032) *v_1+ 1.2497','1','p_in',NULL); +INSERT INTO algorithm VALUES(12,'esc_1987','c','escalate from 1987','PWRABRFunc','escalator*cost_in_1987','million','escalate_1987,refCost',NULL); +INSERT INTO algorithm VALUES(13,'cost_by_weight','c','per-unit mass costs','PWRABRFunc','tol_weight*coat_per_unit','million','tolweight, unitcost',NULL); +INSERT INTO algorithm VALUES(14,'default_0','c','default as 0','PWRABRFunc','set the total cost to 0','million',NULL,'0'); +INSERT INTO algorithm VALUES(15,'rpv_mass','v','mass of RPV','PWRABRFunc','weight_of_carbon_steel+weight_of_stainless_steel','ton','c_221.12_cs_weight,c_221.12_ss_weight',NULL); +INSERT INTO algorithm VALUES(16,'unit_facility','c','per-unit facility costs','PWRABRFunc','no_of_facility*cost_per_facility','million','no_of_unit, unitcost',NULL); +INSERT INTO algorithm VALUES(17,'MWe_scale','c','electric power scale from pwr12be','PWRABRFunc','cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale','million','c_ref,mwe,scale','1144'); +INSERT INTO algorithm VALUES(18,'unit_weights_plate','c','unit cost of weight with plate installation','PWRABRFunc','weight_of_carbon_steel_plate_install*0.075+weight_of_stainless_steel*0.31','million','Csweight_plate, Ssweight','0.075000, 0.310000'); +INSERT INTO algorithm VALUES(19,'esc_1978','c','escalate from 1978','PWRABRFunc','escalator*cost_in_1978','million','escalate_1978,refCost',NULL); +INSERT INTO algorithm VALUES(20,'total_weight_prn','c','unit cost of total weight by portion','PWRABRFunc','tol_weight*(portion_of_carbon_steel*0.075+portion_of_stainless_steel*0.31)*no_of_facility','million','V1_totweight, V2_csprn,V3_ssprn,V4_no_of_facility','0.075000, 0.310000'); +INSERT INTO algorithm VALUES(21,'unit_weights_factor','c','unit cost of weight with factor','PWRABRFunc','(weight_of_carbon_steel_plate_install*0.075+weight_of_stainless_steel*0.31)*factor','million','Csweight, Ssweight,factor','0.075000, 0.310000'); +INSERT INTO algorithm VALUES(22,'factor_sum','c','sum of multiple accounts with factor','PWRABRFunc','factor*prn*sum(account_2..account_n)','million','factor1, portion,account2.accountn',NULL); +INSERT INTO algorithm VALUES(23,'complex','c','complex algorithm','PWRABRFunc','simple cost','million','cost',NULL); +INSERT INTO algorithm VALUES(24,'MWth_lmfbrscale','c','thermal power scale from lmfbr','PWRABRFunc','cost_of_ref*(thermal_power/thermal_power_of_LMFBR)^thermal_power_scale','million','c_ref,mwth,scale','2287'); +INSERT INTO algorithm VALUES(25,'MWreth_scale','c','rejected thermal power scale from pwr12be','PWRABRFunc','cost_of_ref*(rejected_hermal_power/rejected_thermal_power_of_LMFBR)^thermal_power_scale','million','c_ref,mwreth,scale','3800'); +INSERT INTO algorithm VALUES(26,'Sgsum','c','sum the SG cost','PWRABRFunc','weight*unitcost*unit','million','sg_weight, c_unit, no_unit ',NULL); +INSERT INTO algorithm VALUES(28,'inside_rad','v','calculate inside radius','PWRABRFunc','radius_out-thickness','m','r_out, t',NULL); +INSERT INTO algorithm VALUES(29,'round_surface','v','calculate surface base on radius','PWRABRFunc','radius','m^2','r','PI'); +INSERT INTO algorithm VALUES(30,'basemat_volume','v','calculate basemat volume base on surface','PWRABRFunc','basemat_surface*thickness','m^3','S,t',NULL); +INSERT INTO algorithm VALUES(31,'wall_height','v','calculate wall height base on total height','PWRABRFunc','total_height-roof_rad','m',NULL,NULL); +INSERT INTO algorithm VALUES(32,'walls_surface','v','calculate Walls surface','PWRABRFunc','Cont_H_wall_m*2*PI()*(Cont_rad_out_m+Cont_rad_in_m)','m^2',NULL,NULL); +INSERT INTO algorithm VALUES(33,'wall_volume','v','calculate Walls volume','PWRABRFunc','Cont_H_wall_m*PI()*(Cont_rad_out_m^2-Cont_rad_in_m^2)','m^3',NULL,NULL); +INSERT INTO algorithm VALUES(35,'roof_surface','v','calculate Roof surface','PWRABRFunc','0.5*4*PI()*(Cont_rad_out_m^2+Dome_rad_in_m^2)','m^2',NULL,NULL); +INSERT INTO algorithm VALUES(36,'roof_volume','v','calculate Roof volume','PWRABRFunc','0.5*4/3*PI()*(Cont_rad_out_m^3-Dome_rad_in_m^3)','m^3',NULL,NULL); +INSERT INTO algorithm VALUES(37,'tot_internal_volume','v','calculate Tot internal Volume','PWRABRFunc','(PI()*Cont_rad_in_m^2*Cont_H_wall_m)+(0.5*(4/3)*PI()*Dome_rad_in_m^3)','m^3',NULL,NULL); +INSERT INTO algorithm VALUES(38,'building_internal_volume','v','calculate Building internal volume','PWRABRFunc','Intern_tot_v_m3*(1-Void_fraction)','m^3',NULL,NULL); +INSERT INTO algorithm VALUES(39,'building_internal _surface','v','calculate Building internal surface','PWRABRFunc','2*Internal_v_m3/B11','m^2',NULL,NULL); +INSERT INTO algorithm VALUES(40,'volume_of_the_structures ','v','calculate volume of the structures ','PWRABRFunc','Basemat_v_m3+Walls_v_m3+Dome_v_m3+Internal_v_m3','m^3',NULL,NULL); +INSERT INTO algorithm VALUES(41,'Inside_liner_surface','v','calculate Inside liner surface','PWRABRFunc','(Cont_rad_in_m^2*PI())+(Cont_H_wall_m*2*PI()*Cont_rad_in_m)+(0.5*4*PI()*Dome_rad_in_m^2)','m^2',NULL,NULL); +INSERT INTO algorithm VALUES(42,'liner_Surface','v','calculate Liner Surface','PWRABRFunc','Inside_liner_s*liner_fraction','m^2',NULL,NULL); +INSERT INTO algorithm VALUES(43,'painted_surface','v','calculate painted surface','PWRABRFunc','Inside_liner_s+(Cont_H_wall_m*2*PI()*Cont_rad_out_m)+(0.5*4*PI()*Cont_rad_out_m^2)+Internal_s_m2','m^2',NULL,NULL); +INSERT INTO algorithm VALUES(44,'Inflation_rate','v','calculate Inflation rate','PWRABRFunc','1.03^(1996-1987)*CPI','1',NULL,NULL); +INSERT INTO algorithm VALUES(45,'unitcost_v_eedb_to_accert','v','unit cost volume from EEDB with inflation','PWRABRFunc','unitcost_EEDB_v*infl','dollar/m^3',NULL,NULL); +INSERT INTO algorithm VALUES(46,'unitcost_s_eedb_to_accert','v','unit cost surface from EEDB with inflation','PWRABRFunc','unitcost_EEDB_s*infl','dollar/m^2',NULL,NULL); +INSERT INTO algorithm VALUES(47,'tol_contaiment_ce_cost','v','total cost for each part of cotiament','PWRABRFunc','unitcost*number_of stucture_unit','dollar',NULL,NULL); +INSERT INTO algorithm VALUES(48,'sum_ce','v','sum of multiple costelement','PWRABRFunc','sum(cost_element_1,cost_element2,cost_element_n)','dollar',NULL,NULL); +INSERT INTO algorithm VALUES(49,'Yardwork_cost','c','the cost of the land 2017','PWRABRFunc','81.5*land_surface_area','dollar','land_surface_area','81.5'); +INSERT INTO algorithm VALUES(50,'Reactor_containment_mat_cost','c','Reactor_containment_mat_cost','PWRABRFunc','130.8*containment_subVolume','dollar','containment_subVolume','130.8'); +INSERT INTO algorithm VALUES(51,'Reactor_containment_lab_cost','c','Reactor_containment_lab_cost','PWRABRFunc','915.6*Containment_hole_volume','dollar','Containment_hole_volume','915.6'); +INSERT INTO algorithm VALUES(52,'Building_and_utilities_mat_cost','c','Building_and_utilities_mat_cost','PWRABRFunc','6458.3*Turbine_building_surface_area','dollar','Turbine_building_surface_area','6458.3'); +INSERT INTO algorithm VALUES(53,'Building_and_utilities_lab_cost','c','Building_and_utilities_lab_cost','PWRABRFunc','9843*Distance_to_utilities+10000*Number_of_shipping_containers','dollar','Distance_to_utilities, Number_of_shipping_containers','9843, 10000'); +INSERT INTO algorithm VALUES(54,'Reactor_startup_facility_cost','c','Reactor_startup_facility_cost','PWRABRFunc','7600*Battery_capacity_required+1100','dollar','Battery_capacity_required','7600, 1100'); +INSERT INTO algorithm VALUES(55,'Outer_vessel_mat_cost','c','Outer_vessel_mat_cost','PWRABRFunc','310000*primary_outer_vessel_SS_mass','dollar','primary_outer_vessel_SS_mass','310000'); +INSERT INTO algorithm VALUES(56,'Outer_vessel_lab_cost','c','Outer_vessel_lab_cost','PWRABRFunc','14080*primary_outer_vessel_SS_mass','dollar','primary_outer_vessel_SS_mass','14080'); +INSERT INTO algorithm VALUES(57,'Inner_vessel_cost','c','Inner_vessel_cost','PWRABRFunc','310000*primary_inner_vessel_SS_mass','dollar','primary_inner_vessel_SS_mass','310000'); +INSERT INTO algorithm VALUES(58,'Reactivity_control_system_cost','c','Reactivity_control_system_cost','PWRABRFunc','950*B4C_total_neutron_poison_mass_Kg+610000*(Number_of_control_rod_drums+number_of_emergency_control_rods)','dollar','B4C_total_neutron_poison_mass_Kg, Number_of_control_rod_drums, number_of_emergency_control_rods','950, 610000'); +INSERT INTO algorithm VALUES(59,'Reflector_cost','c','Reflector_cost','PWRABRFunc','310000*stainless_steel_316_reflector_mass+120000*Al2O3_reflector_mass+1000000*BeO_reflector_mass','dollar','stainless_steel_316_reflector_mass, Al2O3_reflector_mass, BeO_reflector_mass','310000, 120000, 1000000'); +INSERT INTO algorithm VALUES(60,'Shield_cost','c','Shield_cost','PWRABRFunc','949.9*shield_B4C_mass','dollar','shield_B4C_mass','949.9'); +INSERT INTO algorithm VALUES(61,'Moderator_cost','c','Moderator_cost','PWRABRFunc','310000*moderator_ZrH_mass','dollar','moderator_ZrH_mass','310000'); +INSERT INTO algorithm VALUES(62,'cooling_heat_pipes_cost','c','cooling_heat_pipes_cost','PWRABRFunc','10000*number_of_core_cooling_heat_pipes*(1-mass_production_cost_reduction_factor)','dollar','number_of_core_cooling_heat_pipes, mass_production_cost_reduction_factor','10000'); +INSERT INTO algorithm VALUES(63,'heat_exchangers_mat_cost','c','heat_exchangers_mat_cost','PWRABRFunc','50000*number_of_heat_exchangers','dollar','number_of_heat_exchangers','50000'); +INSERT INTO algorithm VALUES(64,'heat_exchangers_lab_cost','c','heat_exchangers_lab_cost','PWRABRFunc','530000*number_of_heat_exchangers','dollar','number_of_heat_exchangers','530000'); +INSERT INTO algorithm VALUES(65,'heat_exchangers_fac_cost','c','heat_exchangers_fac_cost','PWRABRFunc','120000*number_of_heat_exchangers*heat_exchangers_mass','dollar','number_of_heat_exchangers, heat_exchangers_mass','120000'); +INSERT INTO algorithm VALUES(66,'instrumentation_contorl_cost','c','instrumentation_contorl_cost','PWRABRFunc','2000*number_of_IO_sensors+6500000','dollar','number_of_IO_sensors','2000'); +INSERT INTO algorithm VALUES(67,'turb_and_elec_sys_cost','c','turb_and_elec_sys_cost','PWRABRFunc','282553*mwth+ 213800000*(pow(mwe/1144, 0.4) + pow(mwth/3431, 0.8))','dollar','mwth, mwe','282553, 1144, 0.4, 3431, 0.8'); +CREATE TABLE lpsr_account (ind INTEGER, code_of_account TEXT NOT NULL, account_description TEXT, total_cost REAL, level INTEGER, supaccount TEXT, review_status TEXT, prn REAL, gncoa TEXT, gn_level INTEGER, gn_supaccount TEXT, gn_ind INTEGER, PRIMARY KEY (code_of_account)); +INSERT INTO lpsr_account VALUES(1,'2','Total Direct Cost',2338310525.947884082,0,NULL,'Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(2,'21','Structures and Improvements',656326485.7153728009,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(3,'211','Yardwork',59137292.01230079681,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(4,'211.1','General Yardwork',7319997.973758064211,3,'211','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(5,'211.4','Railroads',8682056.613028086722,3,'211','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(6,'211.7','Structure Associated Yardwork',43135237.42551465333,3,'211','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(7,'211.71','Cut & Fill',43135237.42551465333,4,'211.7','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(8,'212','Reactor Containment Building',431107369.2089585662,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(9,'212.1','Building Structure',400468596.713418901,3,'212','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(10,'212.13','Substructure Concrete',19194314.95291441679,4,'212.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(11,'212.14','Superstructure',107239817.0660425574,4,'212.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(12,'212.15','Containment Liner',274034464.6944618225,4,'212.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(13,'212.2','Building Services',12772772.49553962051,3,'212','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(14,'212.21','Plumbing & Drains',1411250.267510116566,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(15,'212.22','Heating, Ventilation, & Air Conditioning',314810.1543358764611,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(16,'212.23','Safety HVAC',5894400.965104540809,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(17,'212.24','Lighting & Service Power',4832660.44545608759,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(18,'212.25','Elevator',319650.6631330000237,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(19,'212.3','Passive cooling pool',17866000.0,3,'212','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(20,'213','Turbine Room & Heater Bay',71641140.84831540286,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(21,'213.1','Building Structure',61826277.82330220193,3,'213','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(22,'213.13','Substructure Concrete',14383131.45556001365,4,'213.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(23,'213.14','Superstructure',47443146.36774220318,4,'213.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(24,'213.2','Building Services',9814863.02501318977,3,'213','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(25,'213.21','Plumbing & Drains',4426429.434418011457,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(26,'213.22','Heating, Ventilation, & Air Conditioning',3195247.23608139297,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(27,'213.24','Lighting & Service Power',1857490.248890784801,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(28,'213.25','Elevator',335696.1056229999522,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(29,'214','Security Building',4533007.147299999371,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(30,'215','Primary Auxiliary Building & Tunnels',29120431.91273315995,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(31,'215.1','Building Structure',17411915.89992414415,3,'215','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(32,'215.13','Substructure Concrete',1384838.682879320345,4,'215.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(33,'215.14','Superstructure',16027077.21704482474,4,'215.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(34,'215.2','Building Services',11708516.01280901394,3,'215','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(35,'215.21','Plumbing & Drains',697738.8282390331151,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(36,'215.22','Heating, Ventilation, & Air Conditioning',8561593.973174434155,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(37,'215.23','Special HVAC (Safety Related)',1297927.838745216839,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(38,'215.24','Lighting & Service Power',660602.7939103306272,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(39,'215.25','Elevator',490652.5787400000264,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(40,'216','Waste Process Building',21255175.08268838748,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(41,'216.1','Building Structure',15489219.8465987537,3,'216','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(42,'216.13','Substructure Concrete',3986246.163089348935,4,'216.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(43,'216.14','Superstructure',11502973.6835094057,4,'216.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(44,'216.2','Building Services',5765955.236089630983,3,'216','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(45,'216.21','Plumbing & Drains',482566.9497370476019,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(46,'216.22','Heating, Ventilation, & Air Conditioning',4343215.661372592672,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(47,'216.24','Lighting & Service Power',392363.1258099909755,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(48,'216.25','Elevator',547809.4991699999664,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(49,'217','Fuel Storage Building',19341291.34172128141,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(50,'217.1','Building Structure',6306222.219694664702,3,'217','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(51,'217.13','Substructure Concrete',723488.1838184779044,4,'217.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(52,'217.3','Storage Pool Liner - S.S.',8575680.269124321639,3,'217','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(53,'217.14','Superstructure',5582734.035876188427,4,'217.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(54,'217.2','Building Services',4459388.852902288548,3,'217','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(55,'217.21','Plumbing & Drains',334929.7644414093812,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(56,'217.22','Heating, Ventilation, & Air Conditioning',1703201.705459441756,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(57,'217.23','Special HVAC (Safety Related)',2157020.680967062247,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(58,'217.24','Lighting & Service Power',264236.7020343750483,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(59,'218','Other Structures',20190778.16135530919,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(60,'218A','Control Room/D-G Building',6251652.542589633725,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(61,'218A.1','Building Structure',2646387.578502590303,4,'218A','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(62,'218A.2','Building Services',3605264.964087043889,4,'218A','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(63,'218B','Administrative & Service Building',5619905.778878240846,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(64,'218B.1','Building Structure',0.0,4,'218B','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(65,'218B.2','Building Services',5619905.778878240846,4,'218B','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(66,'218D','Fire Pump House, Including Foundations',1225821.409740000031,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(67,'218E','Emergency Feed Pump Building',163049.4512885384319,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(68,'218F','Manway Tunnels (RCA Tunnels)',2621600.919067908545,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(69,'218G','Electrical Tunnels',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(70,'218H','Non-essential SWGR Building',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(71,'218J','Main Steam & Feedwater Pipe Enclosure',605234.7564155480358,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(72,'218K','Pipe Tunnels',902233.7059445915511,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(73,'218L','Technical Support Center',2283037.789900000208,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(74,'218P','Containment EQ Hatch Missile Shield',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(75,'218S','Waste Water Treatment',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(76,'218T','Ultimate Heat Sink Structure',278083.8675008452846,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(77,'218V','Control Room Emergency Air Intake Structure',240157.9400299999979,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(78,'22','Reactor Plant Equipment',693240693.6507596969,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(79,'221','Reactor Equipment',152990558.9308751225,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(80,'221.1','Reactor Vessel + Accessory',68200667.75613586604,3,'221','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(81,'221.3','Vessel Internals',47561513.53942345082,3,'221','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(82,'221.2','Reactor Control Devices',37228377.63531579077,3,'221','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(83,'222','Main Heat Transfer Transport System ',281538009.9207475186,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(84,'222.1','Reactor Core Coolant System',281538009.9207475186,3,'222','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(85,'222.11','Fluid Circulation Drive System',99128436.3941732348,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(86,'222.12','Reactor Coolant Piping System',18098571.47154999896,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(87,'222.13','Steam Generator Equipment',154924053.1462448239,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(88,'222.14','Pressurizing System',9386948.90877948888,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(89,'223','Safeguards System',51447202.16323838382,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(90,'223.1','Residual Heat Removal System',12335306.10528268479,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(91,'223.3','Safety Injection System',22862341.80648297816,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(92,'223.4','Containment Spray System',14017541.3745396752,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(93,'223.5','Combustible Gas Control System',2232012.876933048944,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(94,'224','Radwaste Processing',47464937.19702515006,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(95,'224.1','Liquid Waste System',28819285.92737036943,3,'224','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(96,'224.2','Rad Gas Waste Processing',2903466.426157930401,3,'224','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(97,'224.3','Solid Waste System',15742184.84349685534,3,'224','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(98,'225','Fuel Handling & Storage',5271328.042463562452,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(99,'225.1','Fuel Handling Tools & Equipment',2322204.776308845728,3,'225','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(100,'225.11','Cranes & Hoists',1337242.958924885606,4,'225.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(101,'225.12','Fuel Handling Tools',184811.7207466400286,4,'225.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(102,'225.13','Transfer Systems',800150.0966373198898,4,'225.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(103,'225.3','Service Platforms',198191.0269820000103,3,'225','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(104,'225.4','Fuel Storage, Cleaning, & Inspection Equipment',2750932.239172716159,3,'225','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(105,'226','Other Reactor Plant Equipment',76043578.90417052805,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(106,'226.1','Inert Gas System',2270075.035600000061,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(107,'226.3','Reactor Makeup Water System',2822620.161216800102,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(108,'226.4','Coolant Treatment & Recycle',28122702.2281357944,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(109,'226.6','Fluid Leak Detection System',239335.2077700000082,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(110,'226.7','Auxiliary Cooling System',36274394.23793544621,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(111,'226.71','Nuclear Service Water System',22632457.81955525651,4,'226.7','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(112,'226.72','Primary Component Cooling Water',13641936.41838019154,4,'226.7','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(113,'226.8','Maintenance Equipment',5115519.892904999666,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(114,'226.9','Sampling Equipment',1198932.140607499984,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(115,'227','Reactor Instrumentation & Control',58121987.53983937204,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(116,'227.1','Benchboard, Panels, & Racks',8898387.801554789766,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(117,'227.11','NSS Control Board',3351758.12442999985,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(118,'227.15','HVAC Panels',355599.1270290000248,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(119,'227.16','Radwaste Panels & Racks',1445228.694769999943,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(120,'227.17','Local Panels & Cabinets',1408990.850769999902,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(121,'227.18','Instrument Ranks',1476339.54270999995,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(122,'227.19','Alarm System',860471.461845789454,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(123,'227.2','Process Computer',7579213.930689999834,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(124,'227.3','Monitoring Systems',9532951.42786299997,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(125,'227.4','Plant Control Systems',9165186.129773683845,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(126,'227.5','Reactor Plant I&C Tubing & Fitting',12388807.80262105353,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(127,'227.9','TMI Instrumentation',10557440.44733683952,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(128,'228','Reactor Plant Miscellaneous Items',20363090.95240000262,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(129,'229','NuScale Equipment',0.0,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(130,'23','Turbine Plant Equipment',582071127.8542141914,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(131,'24','Electric Plant Equipment',145323497.9652462899,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(132,'241','Switchgear',14219466.11068539136,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(133,'242','Station Service Equipment',11822004.87731827981,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(134,'243','Switchboards',3838837.482073199936,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(135,'244','Protective Equipment',11024782.82696411013,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(136,'245','Electrical Structure & Wiring Container',59454331.82829604297,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(137,'246','Power & Control Wiring',44964074.83990929276,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(138,'25','Miscellaneous Plant Equipment',130191318.1361031532,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(139,'251','Transportation & Lift Equipment',13836789.42292367108,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(140,'251.1','Cranes & Hoists',13836789.42292367108,3,'251','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(141,'251.11','Turbine Building Crane',4572276.835791533812,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(142,'251.12','Reactor Containment Building Crane',6913860.239980925806,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(143,'251.16','Miscellaneous Cranes, Hoists, & Monorails',1303643.682259999915,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(144,'251.17','Diesel Building Cranes',1047008.664891210618,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(145,'252','Air, Water, & Steam Service System',91393183.8425899446,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(146,'252.1','Air Systems',19732019.79568183422,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(147,'252.2','Water Systems',58451713.0587502867,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(148,'252.3','Auxiliary Steam System',12454242.34732782469,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(149,'252.4','Plant Fuel Oil System',755208.6408300000475,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(150,'253','Communications Equipment',13065286.0646051485,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(151,'254','Furnishings & Fixtures',5220797.307084402069,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(152,'255','Waste Water Treatment Equipment',6675261.498900000005,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(153,'26','Main Condenser Heat Reject System',131157402.626187399,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(154,'261','Structures',13486482.6921052672,2,'26','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(155,'262','Mechanical Equipment',117670919.9340821207,2,'26','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(156,'262.1','Heat Rejection System',117670919.9340821207,3,'262','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(157,'262.11','Water Intake Equipment',1153118.521665029227,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(158,'262.12','Circulating Water System',37384462.35599999875,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(159,'262.13','Cooling Towers',75501373.51504835487,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(160,'262.14','Cooling Tower Basins',248424.4997658444335,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(161,'262.15','Main Cooling Tower Makeup & Blowdown System',3383541.041602896526,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO lpsr_account VALUES(162,'219','Reactor Shield Building',0.0,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +CREATE TABLE lpsr_cost_element (ind INTEGER NOT NULL, cost_element TEXT, cost_2018 REAL, sup_cost_ele TEXT, alg_name TEXT, fun_unit TEXT, variables TEXT, account TEXT, algno TEXT, updated INTEGER, source_row_type TEXT, PRIMARY KEY (ind)); +INSERT INTO lpsr_cost_element VALUES(1,'2_fac',1144477414.301748992,NULL,NULL,'$',NULL,'2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(2,'2_mat',278289575.6553897262,NULL,NULL,'$',NULL,'2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(3,'2_lab',915543535.9907448291,NULL,NULL,'$',NULL,'2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(4,'21_fac',110031553.3631159216,'2_fac',NULL,'$',NULL,'21','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(5,'21_mat',172626251.2377203703,'2_mat',NULL,'$',NULL,'21','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(6,'21_lab',373668681.1145364046,'2_lab',NULL,'$',NULL,'21','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(7,'211_fac',430945.8031674639788,'21_fac',NULL,'$',NULL,'211','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(8,'211_mat',21996672.30850306526,'21_mat',NULL,'$',NULL,'211','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(9,'211_lab',36709673.90063027292,'21_lab',NULL,'$',NULL,'211','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(10,'211.1_fac',232653.0870967742521,'211_fac','category_scale','$','ref_211_1_fac, scale_S','211.1','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(11,'211.1_mat',3048807.557790322694,'211_mat','category_scale','$','ref_211_1_mat, scale_S','211.1','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(12,'211.1_lab',4038537.328870967961,'211_lab','category_scale','$','ref_211_1_lab, scale_S','211.1','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(13,'211.4_fac',0.0,'211_fac',NULL,'$',NULL,'211.4','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(14,'211.4_mat',3706432.266015383881,'211_mat','category_scale','$','ref_211_4_mat, scale_P','211.4','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(15,'211.4_lab',4975624.347012703306,'211_lab','category_scale','$','ref_211_4_lab, scale_P','211.4','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(16,'211.7_fac',198292.7160706897558,'211_fac',NULL,'$',NULL,'211.7','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(17,'211.7_mat',15241432.48469736054,'211_mat',NULL,'$',NULL,'211.7','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(18,'211.7_lab',27695512.22474659979,'211_lab',NULL,'$',NULL,'211.7','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(19,'211.71_fac',198292.7160706897558,'211.7_fac','sum_all','$','ce_211_711_fac, ce_211_712_fac','211.71','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(20,'211.71_mat',15241432.48469736054,'211.7_mat','sum_all','$','ce_211_711_mat, ce_211_712_mat','211.71','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(21,'211.71_lab',27695512.22474659979,'211.7_lab','sum_all','$','ce_211_711_lab, ce_211_712_lab','211.71','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(22,'212_fac',92973647.7693364472,'21_fac',NULL,'$',NULL,'212','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(23,'212_mat',92928754.3701915144,'21_mat',NULL,'$',NULL,'212','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(24,'212_lab',245204967.0694305002,'21_lab',NULL,'$',NULL,'212','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(25,'212.1_fac',91329747.05645115673,'212_fac',NULL,'$',NULL,'212.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(26,'212.1_mat',78240322.48660171031,'212_mat',NULL,'$',NULL,'212.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(27,'212.1_lab',230898527.1703659893,'212_lab',NULL,'$',NULL,'212.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(28,'212.13_fac',0.0,'212.1_fac',NULL,'$',NULL,'212.13','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(29,'212.13_mat',8064116.039825644345,'212.1_mat','category_scale','$','ref_212_13_mat, scale_sub_str_V','212.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(30,'212.13_lab',11130198.91308877244,'212.1_lab','category_scale','$','ref_212_13_lab, scale_sub_str_V','212.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(31,'212.14_fac',3384358.55023979023,'212.1_fac','sum_all','$','ce_212_141_fac, ce_212_140_fac, ce_212_142_fac, ce_212_149_fac','212.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(32,'212.14_mat',33647293.27072945983,'212.1_mat','sum_all','$','ce_212_141_mat, ce_212_140_mat, ce_212_142_mat, ce_212_149_mat','212.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(33,'212.14_lab',70208165.24507333339,'212.1_lab','sum_all','$','ce_212_141_lab, ce_212_140_lab, ce_212_142_lab, ce_212_149_lab','212.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(34,'212.15_fac',87945388.50621137022,'212.1_fac','category_scale','$','ref_212_15_fac, scale_sup_str_S, f_ss_cont_fac','212.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(35,'212.15_mat',36528913.17604660242,'212.1_mat','category_scale','$','ref_212_15_mat, scale_sup_str_S, f_ss_cont_mat','212.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(36,'212.15_lab',149560163.0122038723,'212.1_lab','category_scale','$','ref_212_15_lab, scale_sup_str_S, f_ss_cont_lab','212.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(37,'212.2_fac',1643900.712885272224,'212_fac',NULL,'$',NULL,'212.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(38,'212.2_mat',2469485.147717824205,'212_mat',NULL,'$',NULL,'212.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(39,'212.2_lab',8659386.634936524556,'212_lab',NULL,'$',NULL,'212.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(40,'212.21_fac',151291.491027645854,'212.2_fac','category_scale','$','ref_212_21_fac, scale_sup_const','212.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(41,'212.21_mat',206114.9871481931478,'212.2_mat','category_scale','$','ref_212_21_mat, scale_sup_const','212.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(42,'212.21_lab',1053843.789334277623,'212.2_lab','category_scale','$','ref_212_21_lab, scale_sup_const','212.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(43,'212.22_fac',240144.8684569628095,'212.2_fac','category_scale','$','ref_212_22_fac, scale_P','212.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(44,'212.22_mat',7208.552067777856791,'212.2_mat','category_scale','$','ref_212_22_mat, scale_P','212.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(45,'212.22_lab',67456.73381113581127,'212.2_lab','category_scale','$','ref_212_22_lab, scale_P','212.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(46,'212.23_fac',1054079.713500663406,'212.2_fac','category_scale','$','ref_212_23_fac, scale_P','212.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(47,'212.23_mat',895102.710558590712,'212.2_mat','category_scale','$','ref_212_23_mat, scale_P','212.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(48,'212.23_lab',3945218.541045286228,'212.2_lab','category_scale','$','ref_212_23_lab, scale_P','212.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(49,'212.24_fac',0.0,'212.2_fac',NULL,'$',NULL,'212.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(50,'212.24_mat',1351908.017810262507,'212.2_mat','category_scale','$','ref_212_24_mat, scale_sup_const','212.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(51,'212.24_lab',3480752.42764582485,'212.2_lab','category_scale','$','ref_212_24_lab, scale_sup_const','212.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(52,'212.25_fac',198384.6399000000092,'212.2_fac','category_scale','$','ref_212_25_fac','212.25','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(53,'212.25_mat',9150.880133000000569,'212.2_mat','category_scale','$','ref_212_25_mat','212.25','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(54,'212.25_lab',112115.1431000000011,'212.2_lab','category_scale','$','ref_212_25_lab','212.25','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(55,'212.3_fac',0.0,'212_fac',NULL,'$',NULL,'212.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(56,'212.3_mat',12218946.73587200045,'212_mat','category_scale','$','ref_212_3_mat, scale_frm_S','212.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(57,'212.3_lab',5647053.264128000475,'212_lab','category_scale','$','ref_212_3_lab, scale_frm_S','212.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(58,'213_fac',1449086.902761681238,'21_fac',NULL,'$',NULL,'213','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(59,'213_mat',32880295.11386501045,'21_mat',NULL,'$',NULL,'213','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(60,'213_lab',37311758.83168870211,'21_lab',NULL,'$',NULL,'213','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(61,'213.1_fac',0.0,'213_fac',NULL,'$',NULL,'213.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(62,'213.1_mat',31187978.69386344776,'213_mat',NULL,'$',NULL,'213.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(63,'213.1_lab',30638299.12943875045,'213_lab',NULL,'$',NULL,'213.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(64,'213.13_fac',0.0,'213.1_fac',NULL,'$',NULL,'213.13','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(65,'213.13_mat',4273022.200259120203,'213.1_mat','category_scale','$','ref_213_13_mat, scale_turb_gen_bldg_sub_vol','213.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(66,'213.13_lab',10110109.25530089066,'213.1_lab','category_scale','$','ref_213_13_lab, scale_turb_gen_bldg_sub_vol','213.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(67,'213.14_fac',0.0,'213.1_fac','sum_all','$','ce_213_141_fac, ce_213_142_fac, ce_213_143_fac, ce_213_144_fac, ce_213_145_fac, ce_213_146_fac, ce_213_147_fac, ce_213_149_fac','213.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(68,'213.14_mat',26914956.49360432848,'213.1_mat','sum_all','$','ce_213_141_mat, ce_213_142_mat, ce_213_143_mat, ce_213_144_mat, ce_213_145_mat, ce_213_146_mat, ce_213_147_mat, ce_213_149_mat','213.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(69,'213.14_lab',20528189.87413786352,'213.1_lab','sum_all','$','ce_213_141_lab, ce_213_142_lab, ce_213_143_lab, ce_213_144_lab, ce_213_145_lab, ce_213_146_lab, ce_213_147_lab, ce_213_149_lab','213.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(70,'213.2_fac',1449086.902761681238,'213_fac',NULL,'$',NULL,'213.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(71,'213.2_mat',1692316.4200015557,'213_mat',NULL,'$',NULL,'213.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(72,'213.2_lab',6673459.702249953523,'213_lab',NULL,'$',NULL,'213.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(73,'213.21_fac',24709.32158828452884,'213.2_fac','category_scale','$','ref_213_21_fac, scale_bldg_V','213.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(74,'213.21_mat',867043.7474063353147,'213.2_mat','category_scale','$','ref_213_21_mat, scale_bldg_V','213.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(75,'213.21_lab',3534676.365423392039,'213.2_lab','category_scale','$','ref_213_21_lab, scale_bldg_V','213.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(76,'213.22_fac',1196390.066073396709,'213.2_fac','category_scale','$','ref_213_22_fac, scale_P','213.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(77,'213.22_mat',284087.1889724544016,'213.2_mat','category_scale','$','ref_213_22_mat, scale_P','213.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(78,'213.22_lab',1714769.981035542907,'213.2_lab','category_scale','$','ref_213_22_lab, scale_P','213.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(79,'213.24_fac',0.0,'213.2_fac',NULL,'$',NULL,'213.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(80,'213.24_mat',531808.4102497659624,'213.2_mat','category_scale','$','ref_213_24_mat, scale_bldg_V','213.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(81,'213.24_lab',1325681.83864101884,'213.2_lab','category_scale','$','ref_213_24_lab, scale_bldg_V','213.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(82,'213.25_fac',227987.5150999999897,'213.2_fac','category_scale','$','ref_213_25_fac','213.25','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(83,'213.25_mat',9377.07337299999926,'213.2_mat','category_scale','$','ref_213_25_mat','213.25','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(84,'213.25_lab',98331.5171499999997,'213.2_lab','category_scale','$','ref_213_25_lab','213.25','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(85,'214_fac',171454.8000999999932,'21_fac','category_scale','$','ref_214_fac','214','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(86,'214_mat',1107592.116500000003,'21_mat','category_scale','$','ref_214_mat','214','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(87,'214_lab',3253960.23070000019,'21_lab','category_scale','$','ref_214_lab','214','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(88,'215_fac',6578892.214239629917,'21_fac',NULL,'$',NULL,'215','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(89,'215_mat',5965672.231961897575,'21_mat',NULL,'$',NULL,'215','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(90,'215_lab',16575867.4665316306,'21_lab',NULL,'$',NULL,'215','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(91,'215.1_fac',0.0,'215_fac',NULL,'$',NULL,'215.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(92,'215.1_mat',5132369.742021473125,'215_mat',NULL,'$',NULL,'215.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(93,'215.1_lab',12279546.15790267289,'215_lab',NULL,'$',NULL,'215.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(94,'215.13_fac',0.0,'215.1_fac',NULL,'$',NULL,'215.13','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(95,'215.13_mat',577623.8206042887177,'215.1_mat','category_scale','$','ref_215_13_mat, scale_pri_aux_bldg_sub_vol','215.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(96,'215.13_lab',807214.8622750315117,'215.1_lab','category_scale','$','ref_215_13_lab, scale_pri_aux_bldg_sub_vol','215.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(97,'215.14_fac',0.0,'215.1_fac','sum_all','$','ce_215_141_fac, ce_215_142_fac, ce_215_145_fac, ce_215_146_fac, ce_215_147_fac, ce_215_149_fac','215.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(98,'215.14_mat',4554745.921417184175,'215.1_mat','sum_all','$','ce_215_141_mat, ce_215_142_mat, ce_215_145_mat, ce_215_146_mat, ce_215_147_mat, ce_215_149_mat','215.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(99,'215.14_lab',11472331.29562763683,'215.1_lab','sum_all','$','ce_215_141_lab, ce_215_142_lab, ce_215_145_lab, ce_215_146_lab, ce_215_147_lab, ce_215_149_lab','215.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(100,'215.2_fac',6578892.214239629917,'215_fac',NULL,'$',NULL,'215.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(101,'215.2_mat',833302.4899404239841,'215_mat',NULL,'$',NULL,'215.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(102,'215.2_lab',4296321.308628961443,'215_lab',NULL,'$',NULL,'215.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(103,'215.21_fac',2879.396054480210751,'215.2_fac','category_scale','$','ref_215_21_fac, scale_pri_aux_bldg_bldg_vol','215.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(104,'215.21_mat',132380.8488404440868,'215.2_mat','category_scale','$','ref_215_21_mat, scale_pri_aux_bldg_bldg_vol','215.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(105,'215.21_lab',562478.5833441087743,'215.2_lab','category_scale','$','ref_215_21_lab, scale_pri_aux_bldg_bldg_vol','215.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(106,'215.22_fac',5375380.983437111601,'215.2_fac','sum_all','$','ce_215_221_fac, ce_215_222_fac, ce_215_223_fac, ce_215_224_fac, ce_215_225_fac, ce_215_226_fac, ce_215_227_fac, ce_215_228_fac','215.22','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(107,'215.22_mat',482360.7278475696804,'215.2_mat','sum_all','$','ce_215_221_mat, ce_215_222_mat, ce_215_223_mat, ce_215_224_mat, ce_215_225_mat, ce_215_226_mat, ce_215_227_mat, ce_215_228_mat','215.22','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(108,'215.22_lab',2703852.261889752932,'215.2_lab','sum_all','$','ce_215_221_lab, ce_215_222_lab, ce_215_223_lab, ce_215_224_lab, ce_215_225_lab, ce_215_226_lab, ce_215_227_lab, ce_215_228_lab','215.22','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(109,'215.23_fac',880698.6840480379761,'215.2_fac','category_scale','$','ref_215_23_fac, scale_P','215.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(110,'215.23_mat',32931.74687662137149,'215.2_mat','category_scale','$','ref_215_23_mat, scale_P','215.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(111,'215.23_lab',384297.4078205575933,'215.2_lab','category_scale','$','ref_215_23_lab, scale_P','215.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(112,'215.24_fac',0.0,'215.2_fac',NULL,'$',NULL,'215.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(113,'215.24_mat',171501.4337357888289,'215.2_mat','category_scale','$','ref_215_24_mat, scale_pri_aux_bldg_bldg_vol','215.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(114,'215.24_lab',489101.3601745418272,'215.2_lab','category_scale','$','ref_215_24_lab, scale_pri_aux_bldg_bldg_vol','215.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(115,'215.25_fac',319933.1506999999984,'215.2_fac','category_scale','$','ref_215_25_fac','215.25','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(116,'215.25_mat',14127.73264000000017,'215.2_mat','category_scale','$','ref_215_25_mat','215.25','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(117,'215.25_lab',156591.6953999999969,'215.2_lab','category_scale','$','ref_215_25_lab','215.25','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(118,'216_fac',1486377.205370720476,'21_fac',NULL,'$',NULL,'216','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(119,'216_mat',6031169.352730088867,'21_mat',NULL,'$',NULL,'216','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(120,'216_lab',13737628.52458757535,'21_lab',NULL,'$',NULL,'216','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(121,'216.1_fac',0.0,'216_fac',NULL,'$',NULL,'216.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(122,'216.1_mat',5154906.815235155635,'216_mat',NULL,'$',NULL,'216.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(123,'216.1_lab',10334313.03136360086,'216_lab',NULL,'$',NULL,'216.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(124,'216.13_fac',0.0,'216.1_fac',NULL,'$',NULL,'216.13','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(125,'216.13_mat',1575739.811835439177,'216.1_mat','category_scale','$','ref_216_13_mat, scale_waste_bldg_sub_vol','216.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(126,'216.13_lab',2410506.351253909058,'216.1_lab','category_scale','$','ref_216_13_lab, scale_waste_bldg_sub_vol','216.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(127,'216.14_fac',0.0,'216.1_fac','sum_all','$','ce_216_141_fac, ce_216_142_fac, ce_216_143_fac, ce_216_144_fac, ce_216_145_fac, ce_216_146_fac, ce_216_147_fac, ce_216_148_fac, ce_216_149_fac','216.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(128,'216.14_mat',3579167.003399716225,'216.1_mat','sum_all','$','ce_216_141_mat, ce_216_142_mat, ce_216_143_mat, ce_216_144_mat, ce_216_145_mat, ce_216_146_mat, ce_216_147_mat, ce_216_148_mat, ce_216_149_mat','216.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(129,'216.14_lab',7923806.680109690875,'216.1_lab','sum_all','$','ce_216_141_lab, ce_216_142_lab, ce_216_143_lab, ce_216_144_lab, ce_216_145_lab, ce_216_146_lab, ce_216_147_lab, ce_216_148_lab, ce_216_149_lab','216.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(130,'216.2_fac',1486377.205370720476,'216_fac',NULL,'$',NULL,'216.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(131,'216.2_mat',876262.5374949342805,'216_mat',NULL,'$',NULL,'216.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(132,'216.2_lab',3403315.49322397681,'216_lab',NULL,'$',NULL,'216.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(133,'216.21_fac',0.0,'216.2_fac',NULL,'$',NULL,'216.21','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(134,'216.21_mat',79727.10495302428898,'216.2_mat','category_scale','$','ref_216_21_mat, scale_waste_bldg_bldg_vol','216.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(135,'216.21_lab',402839.8447840232984,'216.2_lab','category_scale','$','ref_216_21_lab, scale_waste_bldg_bldg_vol','216.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(136,'216.22_fac',1129907.822670720284,'216.2_fac','category_scale','$','ref_216_22_fac, scale_P','216.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(137,'216.22_mat',671914.0609659693436,'216.2_mat','category_scale','$','ref_216_22_mat, scale_P','216.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(138,'216.22_lab',2541393.777735902927,'216.2_lab','category_scale','$','ref_216_22_lab, scale_P','216.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(139,'216.24_fac',0.0,'216.2_fac',NULL,'$',NULL,'216.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(140,'216.24_mat',107845.6758059405838,'216.2_mat','category_scale','$','ref_216_24_mat, scale_waste_bldg_bldg_vol','216.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(141,'216.24_lab',284517.4500040503917,'216.2_lab','category_scale','$','ref_216_24_lab, scale_waste_bldg_bldg_vol','216.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(142,'216.25_fac',356469.3827000000164,'216.2_fac','category_scale','$','ref_216_25_fac','216.25','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(143,'216.25_mat',16775.69576999999844,'216.2_mat','category_scale','$','ref_216_25_mat','216.25','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(144,'216.25_lab',174564.4206999999879,'216.2_lab','category_scale','$','ref_216_25_lab','216.25','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(145,'217_fac',2204617.67483472079,'21_fac',NULL,'$',NULL,'217','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(146,'217_mat',8137960.033684710041,'21_mat',NULL,'$',NULL,'217','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(147,'217_lab',8998713.633201843128,'21_lab',NULL,'$',NULL,'217','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(148,'217.1_fac',0.0,'217_fac',NULL,'$',NULL,'217.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(149,'217.1_mat',1815252.885519341566,'217_mat',NULL,'$',NULL,'217.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(150,'217.1_lab',4490969.334175324068,'217_lab',NULL,'$',NULL,'217.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(151,'217.13_fac',0.0,'217.1_fac',NULL,'$',NULL,'217.13','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(152,'217.13_mat',244051.8114544222481,'217.1_mat','category_scale','$','ref_217_13_mat, scale_fuel_stor_bldg_sub_vol','217.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(153,'217.13_lab',479436.37236405554,'217.1_lab','category_scale','$','ref_217_13_lab, scale_fuel_stor_bldg_sub_vol','217.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(154,'217.3_fac',0.0,'217_fac',NULL,'$',NULL,'217.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(155,'217.3_mat',5865094.614844391123,'217_mat','category_scale','$','ref_217_3_mat, scale_frm_S_9_71886e_06','217.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(156,'217.3_lab',2710585.654279929585,'217_lab','category_scale','$','ref_217_3_lab, scale_frm_S_9_71886e_06','217.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(157,'217.14_fac',0.0,'217.1_fac','sum_all','$','ce_217_141_fac, ce_217_142_fac, ce_217_145_fac, ce_217_147_fac, ce_217_149_fac','217.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(158,'217.14_mat',1571201.074064919493,'217.1_mat','sum_all','$','ce_217_141_mat, ce_217_142_mat, ce_217_145_mat, ce_217_147_mat, ce_217_149_mat','217.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(159,'217.14_lab',4011532.961811267305,'217.1_lab','sum_all','$','ce_217_141_lab, ce_217_142_lab, ce_217_145_lab, ce_217_147_lab, ce_217_149_lab','217.14','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(160,'217.2_fac',2204617.67483472079,'217_fac',NULL,'$',NULL,'217.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(161,'217.2_mat',457612.5333209780511,'217_mat',NULL,'$',NULL,'217.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(162,'217.2_lab',1797158.644746589707,'217_lab',NULL,'$',NULL,'217.2','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(163,'217.21_fac',4929.679136156250025,'217.2_fac','category_scale','$','ref_217_21_fac, scale_fuel_stor_bldg_bldg_vol','217.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(164,'217.21_mat',98636.7388834406447,'217.2_mat','category_scale','$','ref_217_21_mat, scale_fuel_stor_bldg_bldg_vol','217.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(165,'217.21_lab',231363.3464218124863,'217.2_lab','category_scale','$','ref_217_21_lab, scale_fuel_stor_bldg_bldg_vol','217.21','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(166,'217.22_fac',193137.19639836828,'217.2_fac','category_scale','$','ref_217_22_fac, scale_P','217.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(167,'217.22_mat',276068.0385227409424,'217.2_mat','category_scale','$','ref_217_22_mat, scale_P','217.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(168,'217.22_lab',1233996.470538332593,'217.2_lab','category_scale','$','ref_217_22_lab, scale_P','217.22','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(169,'217.23_fac',2006550.799300196348,'217.2_fac','category_scale','$','ref_217_23_fac, scale_P','217.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(170,'217.23_mat',10569.18322729642569,'217.2_mat','category_scale','$','ref_217_23_mat, scale_P','217.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(171,'217.23_lab',139900.6984395698236,'217.2_lab','category_scale','$','ref_217_23_lab, scale_P','217.23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(172,'217.24_fac',0.0,'217.2_fac',NULL,'$',NULL,'217.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(173,'217.24_mat',72338.57268750001095,'217.2_mat','category_scale','$','ref_217_24_mat, scale_fuel_stor_bldg_bldg_vol','217.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(174,'217.24_lab',191898.1293468750081,'217.2_lab','category_scale','$','ref_217_24_lab, scale_fuel_stor_bldg_bldg_vol','217.24','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(175,'218_fac',4736530.993305281735,'21_fac',NULL,'$',NULL,'218','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(176,'218_mat',3578135.710284122731,'21_mat',NULL,'$',NULL,'218','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(177,'218_lab',11876111.45776590333,'21_lab',NULL,'$',NULL,'218','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(178,'218A_fac',2319565.487541882322,'218_fac',NULL,'$',NULL,'218A','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(179,'218A_mat',1021548.251083378797,'218_mat',NULL,'$',NULL,'218A','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(180,'218A_lab',2910538.803964372259,'218_lab',NULL,'$',NULL,'218A','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(181,'218A.1_fac',0.0,'218A_fac','sum_all','$','ce_218A_13_fac, ce_218A_14_fac','218A.1','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(182,'218A.1_mat',849971.7765882437815,'218A_mat','sum_all','$','ce_218A_13_mat, ce_218A_14_mat','218A.1','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(183,'218A.1_lab',1796415.801914346172,'218A_lab','sum_all','$','ce_218A_13_lab, ce_218A_14_lab','218A.1','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(184,'218A.2_fac',2319565.487541882787,'218A_fac','sum_all','$','ce_218A_21_fac, ce_218A_23_fac, ce_218A_24_fac','218A.2','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(185,'218A.2_mat',171576.4744951348694,'218A_mat','sum_all','$','ce_218A_21_mat, ce_218A_23_mat, ce_218A_24_mat','218A.2','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(186,'218A.2_lab',1114123.002050026552,'218A_lab','sum_all','$','ce_218A_21_lab, ce_218A_23_lab, ce_218A_24_lab','218A.2','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(187,'218B_fac',1971055.821421291912,'218_fac',NULL,'$',NULL,'218B','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(188,'218B_mat',460781.8125427329797,'218_mat',NULL,'$',NULL,'218B','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(189,'218B_lab',3188068.144914217294,'218_lab',NULL,'$',NULL,'218B','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(190,'218B.1_fac',0.0,'218B_fac',NULL,'$',NULL,'218B.1','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(191,'218B.1_mat',0.0,'218B_mat',NULL,'$',NULL,'218B.1','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(192,'218B.1_lab',0.0,'218B_lab',NULL,'$',NULL,'218B.1','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(193,'218B.2_fac',1971055.821421291912,'218B_fac','sum_all','$','ce_218B_21_fac, ce_218B_22_fac, ce_218B_23_fac, ce_218B_24_fac, ce_218B_25_fac','218B.2','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(194,'218B.2_mat',460781.8125427329797,'218B_mat','sum_all','$','ce_218B_21_mat, ce_218B_22_mat, ce_218B_23_mat, ce_218B_24_mat, ce_218B_25_mat','218B.2','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(195,'218B.2_lab',3188068.144914217294,'218B_lab','sum_all','$','ce_218B_21_lab, ce_218B_22_lab, ce_218B_23_lab, ce_218B_24_lab, ce_218B_25_lab','218B.2','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(196,'218D_fac',87852.60004000000481,'218_fac','category_scale','$','ref_218D_fac','218D','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(197,'218D_mat',353929.4000000000232,'218_mat','category_scale','$','ref_218D_mat','218D','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(198,'218D_lab',784039.4096999999601,'218_lab','category_scale','$','ref_218D_lab','218D','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(199,'218E_fac',49315.1859320237636,'218_fac','category_scale','$','ref_218E_fac, scale_P','218E','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(200,'218E_mat',18191.99760211821559,'218_mat','category_scale','$','ref_218E_mat, scale_P','218E','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(201,'218E_lab',95542.2677543964819,'218_lab','category_scale','$','ref_218E_lab, scale_P','218E','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(202,'218F_fac',0.0,'218_fac',NULL,'$',NULL,'218F','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(203,'218F_mat',641027.3700175889534,'218_mat','category_scale','$','ref_218F_mat, scale_P','218F','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(204,'218F_lab',1980573.549050319939,'218_lab','category_scale','$','ref_218F_lab, scale_P','218F','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(205,'218G_fac',0.0,'218_fac','category_scale','$','ref_218G_fac, scale_elec_tunnel_bldg_vol','218G','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(206,'218G_mat',0.0,'218_mat','category_scale','$','ref_218G_mat, scale_elec_tunnel_bldg_vol','218G','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(207,'218G_lab',0.0,'218_lab','category_scale','$','ref_218G_lab, scale_elec_tunnel_bldg_vol','218G','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(208,'218H_fac',0.0,'218_fac','category_scale','$','ref_218H_fac, scale_non_ess_swgr_bldg_bldg_vol','218H','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(209,'218H_mat',0.0,'218_mat','category_scale','$','ref_218H_mat, scale_non_ess_swgr_bldg_bldg_vol','218H','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(210,'218H_lab',0.0,'218_lab','category_scale','$','ref_218H_lab, scale_non_ess_swgr_bldg_bldg_vol','218H','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(211,'218J_fac',77499.82531922421185,'218_fac','category_scale','$','ref_218J_fac, scale_P','218J','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(212,'218J_mat',52137.00304983044771,'218_mat','category_scale','$','ref_218J_mat, scale_P','218J','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(213,'218J_lab',475597.9280464933253,'218_lab','category_scale','$','ref_218J_lab, scale_P','218J','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(214,'218K_fac',0.0,'218_fac',NULL,'$',NULL,'218K','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(215,'218K_mat',260974.4232149504824,'218_mat','category_scale','$','ref_218K_mat, scale_P','218K','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(216,'218K_lab',641259.2827296410687,'218_lab','category_scale','$','ref_218K_lab, scale_P','218K','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(217,'218L_fac',137163.3999999999942,'218_fac','category_scale','$','ref_218L_fac','218L','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(218,'218L_mat',667730.7998999999836,'218_mat','category_scale','$','ref_218L_mat','218L','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(219,'218L_lab',1478143.590000000083,'218_lab','category_scale','$','ref_218L_lab','218L','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(220,'218P_fac',0.0,'218_fac',NULL,'$',NULL,'218P','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(221,'218P_mat',0.0,'218_mat','category_scale','$','ref_218P_mat, scale_cont_hatch_ms_bldg_vol','218P','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(222,'218P_lab',0.0,'218_lab','category_scale','$','ref_218P_lab, scale_cont_hatch_ms_bldg_vol','218P','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(223,'218S_fac',0.0,'218_fac','category_scale','$','ref_218S_fac, scale_wwt_bldg_bldg_vol','218S','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(224,'218S_mat',0.0,'218_mat','category_scale','$','ref_218S_mat, scale_wwt_bldg_bldg_vol','218S','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(225,'218S_lab',0.0,'218_lab','category_scale','$','ref_218S_lab, scale_wwt_bldg_bldg_vol','218S','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(226,'218T_fac',94078.6730508595355,'218_fac','category_scale','$','ref_218T_fac, scale_P','218T','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(227,'218T_mat',34246.05284352289164,'218_mat','category_scale','$','ref_218T_mat, scale_P','218T','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(228,'218T_lab',149759.1416064628866,'218_lab','category_scale','$','ref_218T_lab, scale_P','218T','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(229,'218V_fac',0.0,'218_fac',NULL,'$',NULL,'218V','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(230,'218V_mat',67568.60003000000143,'218_mat','category_scale','$','ref_218V_mat','218V','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(231,'218V_lab',172589.3399999999966,'218_lab','category_scale','$','ref_218V_lab','218V','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(232,'22_fac',505493292.6388651729,'2_fac',NULL,'$',NULL,'22','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(233,'22_mat',33422135.09841504694,'2_mat',NULL,'$',NULL,'22','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(234,'22_lab',154325265.9134794176,'2_lab',NULL,'$',NULL,'22','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(235,'221_fac',131877857.7248311192,'22_fac',NULL,'$',NULL,'221','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(236,'221_mat',12170243.63075808063,'22_mat',NULL,'$',NULL,'221','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(237,'221_lab',8942457.575285902247,'22_lab',NULL,'$',NULL,'221','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(238,'221.1_fac',49949276.94635335356,'221_fac','category_scale','$','ref_221_1_fac, scale_frm_vsl_M','221.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(239,'221.1_mat',11924684.78896101936,'221_mat','category_scale','$','ref_221_1_mat, scale_frm_vsl_M','221.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(240,'221.1_lab',6326706.020821495912,'221_lab','category_scale','$','ref_221_1_lab, scale_frm_vsl_M','221.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(241,'221.3_fac',46195485.18005672097,'221_fac','category_scale','$','ref_221_3_fac, scale_rx_D','221.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(242,'221.3_mat',116351.7684286389558,'221_mat','category_scale','$','ref_221_3_mat, scale_rx_D','221.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(243,'221.3_lab',1249676.590938091045,'221_lab','category_scale','$','ref_221_3_lab, scale_rx_D','221.3','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(244,'221.2_fac',35733095.5984210521,'221_fac','category_scale','$','ref_221_2_fac, scale_n_crs','221.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(245,'221.2_mat',129207.0733684210573,'221_mat','category_scale','$','ref_221_2_mat, scale_n_crs','221.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(246,'221.2_lab',1366074.963526315755,'221_lab','category_scale','$','ref_221_2_lab, scale_n_crs','221.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(247,'222_fac',256194224.6851032674,'22_fac',NULL,'$',NULL,'222','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(248,'222_mat',2373987.285485063213,'22_mat',NULL,'$',NULL,'222','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(249,'222_lab',22969797.95015921817,'22_lab',NULL,'$',NULL,'222','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(250,'222.1_fac',256194224.6851032674,'222_fac',NULL,'$',NULL,'222.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(251,'222.1_mat',2373987.285485063213,'222_mat',NULL,'$',NULL,'222.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(252,'222.1_lab',22969797.95015921817,'222_lab',NULL,'$',NULL,'222.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(253,'222.11_fac',91711426.41363835334,'222.1_fac','sum_all','$','ce_222_111_fac, ce_222_119_fac','222.11','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(254,'222.11_mat',722716.4583391444758,'222.1_mat','sum_all','$','ce_222_111_mat, ce_222_119_mat','222.11','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(255,'222.11_lab',6694293.522195743397,'222.1_lab','sum_all','$','ce_222_111_lab, ce_222_119_lab','222.11','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(256,'222.12_fac',6090848.391099999658,'222.1_fac','category_scale','$','ref_222_12_fac, scale_mc_piping_M','222.12','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(257,'222.12_mat',1077287.312200000043,'222.1_mat','category_scale','$','ref_222_12_mat, scale_mc_piping_M','222.12','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(258,'222.12_lab',10930435.76824999973,'222.1_lab','category_scale','$','ref_222_12_lab, scale_mc_piping_M','222.12','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(259,'222.13_fac',149684047.6584431828,'222.1_fac','sum_all','$','ce_222_132_fac, ce_222_139_fac','222.13','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(260,'222.13_mat',513003.7938474370166,'222.1_mat','sum_all','$','ce_222_132_mat, ce_222_139_mat','222.13','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(261,'222.13_lab',4727001.693954207934,'222.1_lab','sum_all','$','ce_222_132_lab, ce_222_139_lab','222.13','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(262,'222.14_fac',8707902.221921741962,'222.1_fac','category_scale','$','ref_222_14_fac, scale_frm_prz_M','222.14','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(263,'222.14_mat',60979.72109848156834,'222.1_mat','category_scale','$','ref_222_14_mat, scale_frm_prz_M','222.14','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(264,'222.14_lab',618066.9657592647708,'222.1_lab','category_scale','$','ref_222_14_lab, scale_frm_prz_M','222.14','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(265,'223_fac',25278929.81229611859,'22_fac',NULL,'$',NULL,'223','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(266,'223_mat',2588813.325028457678,'22_mat',NULL,'$',NULL,'223','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(267,'223_lab',23579459.02591380477,'22_lab',NULL,'$',NULL,'223','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(268,'223.1_fac',6453318.673643260262,'223_fac','category_scale','$','ref_223_1_fac, scale_P, f_simp_sfgd','223.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(269,'223.1_mat',455278.5937317083008,'223_mat','category_scale','$','ref_223_1_mat, scale_P, f_simp_sfgd','223.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(270,'223.1_lab',5426708.837907712907,'223_lab','category_scale','$','ref_223_1_lab, scale_P, f_simp_sfgd','223.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(271,'223.3_fac',12725941.18781688064,'223_fac','category_scale','$','ref_223_3_fac, scale_P, f_simp_sfgd','223.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(272,'223.3_mat',1307957.28048441559,'223_mat','category_scale','$','ref_223_3_mat, scale_P, f_simp_sfgd','223.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(273,'223.3_lab',8828443.338181678205,'223_lab','category_scale','$','ref_223_3_lab, scale_P, f_simp_sfgd','223.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(274,'223.4_fac',4759707.480389864184,'223_fac','category_scale','$','ref_223_4_fac, scale_cont_V, f_simp_sfgd','223.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(275,'223.4_mat',754158.8425336033106,'223_mat','category_scale','$','ref_223_4_mat, scale_cont_V, f_simp_sfgd','223.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(276,'223.4_lab',8503675.051616208628,'223_lab','category_scale','$','ref_223_4_lab, scale_cont_V, f_simp_sfgd','223.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(277,'223.5_fac',1339962.470446114894,'223_fac','category_scale','$','ref_223_5_fac, scale_cont_V, f_simp_sfgd','223.5','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(278,'223.5_mat',71418.60827873047674,'223_mat','category_scale','$','ref_223_5_mat, scale_cont_V, f_simp_sfgd','223.5','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(279,'223.5_lab',820631.7982082038653,'223_lab','category_scale','$','ref_223_5_lab, scale_cont_V, f_simp_sfgd','223.5','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(280,'224_fac',26794891.28158856184,'22_fac',NULL,'$',NULL,'224','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(281,'224_mat',1887697.981988333631,'22_mat',NULL,'$',NULL,'224','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(282,'224_lab',18782347.93344825133,'22_lab',NULL,'$',NULL,'224','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(283,'224.1_fac',11646081.26860357263,'224_fac','category_scale','$','ref_224_1_fac, scale_pri_flow, f_simp_radw','224.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(284,'224.1_mat',1600556.152789187617,'224_mat','category_scale','$','ref_224_1_mat, scale_pri_flow, f_simp_radw','224.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(285,'224.1_lab',15572648.50597760454,'224_lab','category_scale','$','ref_224_1_lab, scale_pri_flow, f_simp_radw','224.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(286,'224.2_fac',2047524.596963725286,'224_fac','category_scale','$','ref_224_2_fac, scale_pri_flow, f_simp_radw','224.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(287,'224.2_mat',50200.49247127166746,'224_mat','category_scale','$','ref_224_2_mat, scale_pri_flow, f_simp_radw','224.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(288,'224.2_lab',805741.3367229334544,'224_lab','category_scale','$','ref_224_2_lab, scale_pri_flow, f_simp_radw','224.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(289,'224.3_fac',13101285.41602126323,'224_fac','category_scale','$','ref_224_3_fac, scale_P, f_simp_radw','224.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(290,'224.3_mat',236941.3367278746446,'224_mat','category_scale','$','ref_224_3_mat, scale_P, f_simp_radw','224.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(291,'224.3_lab',2403958.090747717767,'224_lab','category_scale','$','ref_224_3_lab, scale_P, f_simp_radw','224.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(292,'225_fac',3270902.21253068652,'22_fac',NULL,'$',NULL,'225','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(293,'225_mat',168642.4032994599256,'22_mat',NULL,'$',NULL,'225','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(294,'225_lab',1831783.426633415976,'22_lab',NULL,'$',NULL,'225','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(295,'225.1_fac',1321017.19496262609,'225_fac',NULL,'$',NULL,'225.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(296,'225.1_mat',71832.50828855019063,'225_mat',NULL,'$',NULL,'225.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(297,'225.1_lab',929355.073057669564,'225_lab',NULL,'$',NULL,'225.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(298,'225.11_fac',932414.082667825628,'225.1_fac','sum_all','$','ce_225_111_fac, ce_225_112_fac, ce_225_113_fac, ce_225_114_fac','225.11','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(299,'225.11_mat',29860.46171859020251,'225.1_mat','sum_all','$','ce_225_111_mat, ce_225_112_mat, ce_225_113_mat, ce_225_114_mat','225.11','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(300,'225.11_lab',374968.4145384695731,'225.1_lab','sum_all','$','ce_225_111_lab, ce_225_112_lab, ce_225_113_lab, ce_225_114_lab','225.11','LPSR_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO lpsr_cost_element VALUES(301,'225.12_fac',162195.2443800000183,'225.1_fac','category_scale','$','ref_225_12_fac, f_simp_fuel_hndl','225.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(302,'225.12_mat',1671.092759440000008,'225.1_mat','category_scale','$','ref_225_12_mat, f_simp_fuel_hndl','225.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(303,'225.12_lab',20945.38360720000127,'225.1_lab','category_scale','$','ref_225_12_lab, f_simp_fuel_hndl','225.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(304,'225.13_fac',226407.8679148000082,'225.1_fac','category_scale','$','ref_225_13_fac, f_simp_fuel_hndl','225.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(305,'225.13_mat',40300.95381051999721,'225.1_mat','category_scale','$','ref_225_13_mat, f_simp_fuel_hndl','225.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(306,'225.13_lab',533441.2749119999352,'225.1_lab','category_scale','$','ref_225_13_lab, f_simp_fuel_hndl','225.13','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(307,'225.3_fac',118054.6107000000047,'225_fac','category_scale','$','ref_225_3_fac, f_simp_fuel_hndl','225.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(308,'225.3_mat',5599.922718000000714,'225_mat','category_scale','$','ref_225_3_mat, f_simp_fuel_hndl','225.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(309,'225.3_lab',74536.49356400000397,'225_lab','category_scale','$','ref_225_3_lab, f_simp_fuel_hndl','225.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(310,'225.4_fac',1831830.406868060353,'225_fac','category_scale','$','ref_225_4_fac, scale_sfp_V, f_simp_fuel_hndl','225.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(311,'225.4_mat',91209.97229290976248,'225_mat','category_scale','$','ref_225_4_mat, scale_sfp_V, f_simp_fuel_hndl','225.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(312,'225.4_lab',827891.8600117460592,'225_lab','category_scale','$','ref_225_4_lab, scale_sfp_V, f_simp_fuel_hndl','225.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(313,'226_fac',29393532.91593123972,'22_fac',NULL,'$',NULL,'226','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(314,'226_mat',4996191.196851018816,'22_mat',NULL,'$',NULL,'226','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(315,'226_lab',41653854.79138828069,'22_lab',NULL,'$',NULL,'226','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(316,'226.1_fac',884281.7219999999507,'226_fac','category_scale','$','ref_226_1_fac, f_simp_other_rx_equip','226.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(317,'226.1_mat',100030.5005999999994,'226_mat','category_scale','$','ref_226_1_mat, f_simp_other_rx_equip','226.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(318,'226.1_lab',1285762.813000000081,'226_lab','category_scale','$','ref_226_1_lab, f_simp_other_rx_equip','226.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(319,'226.3_fac',1008062.444720000028,'226_fac','category_scale','$','ref_226_3_fac, f_simp_other_rx_equip','226.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(320,'226.3_mat',314458.9487117999815,'226_mat','category_scale','$','ref_226_3_mat, f_simp_other_rx_equip','226.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(321,'226.3_lab',1500098.767784999917,'226_lab','category_scale','$','ref_226_3_lab, f_simp_other_rx_equip','226.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(322,'226.4_fac',10779212.80125398561,'226_fac','category_scale','$','ref_226_4_fac, scale_pri_flow, f_simp_other_rx_equip','226.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(323,'226.4_mat',1786320.55994404736,'226_mat','category_scale','$','ref_226_4_mat, scale_pri_flow, f_simp_other_rx_equip','226.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(324,'226.4_lab',15557168.86693776398,'226_lab','category_scale','$','ref_226_4_lab, scale_pri_flow, f_simp_other_rx_equip','226.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(325,'226.6_fac',190878.9004000000132,'226_fac','category_scale','$','ref_226_6_fac, f_simp_other_rx_equip','226.6','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(326,'226.6_mat',1829.364669999999933,'226_mat','category_scale','$','ref_226_6_mat, f_simp_other_rx_equip','226.6','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(327,'226.6_lab',46626.94269999999961,'226_lab','category_scale','$','ref_226_6_lab, f_simp_other_rx_equip','226.6','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(328,'226.7_fac',12149388.47494474985,'226_fac',NULL,'$',NULL,'226.7','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(329,'226.7_mat',1731078.207455172203,'226_mat',NULL,'$',NULL,'226.7','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(330,'226.7_lab',22393927.55553552135,'226_lab',NULL,'$',NULL,'226.7','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(331,'226.71_fac',6721644.787227787078,'226.7_fac','category_scale','$','ref_226_71_fac, scale_P, f_simp_other_rx_equip','226.71','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(332,'226.71_mat',1138155.5143131339,'226.7_mat','category_scale','$','ref_226_71_mat, scale_P, f_simp_other_rx_equip','226.71','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(333,'226.71_lab',14772657.51801433042,'226.7_lab','category_scale','$','ref_226_71_lab, scale_P, f_simp_other_rx_equip','226.71','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(334,'226.72_fac',5427743.687716964632,'226.7_fac','category_scale','$','ref_226_72_fac, scale_pri_flow, f_simp_other_rx_equip','226.72','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(335,'226.72_mat',592922.693142038188,'226.7_mat','category_scale','$','ref_226_72_mat, scale_pri_flow, f_simp_other_rx_equip','226.72','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(336,'226.72_lab',7621270.037521190941,'226.7_lab','category_scale','$','ref_226_72_lab, scale_pri_flow, f_simp_other_rx_equip','226.72','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(337,'226.8_fac',3933935.745000000111,'226_fac','category_scale','$','ref_226_8_fac, f_simp_other_rx_equip','226.8','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(338,'226.8_mat',1004082.496825000039,'226_mat','category_scale','$','ref_226_8_mat, f_simp_other_rx_equip','226.8','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(339,'226.8_lab',177501.6510800000105,'226_lab','category_scale','$','ref_226_8_lab, f_simp_other_rx_equip','226.8','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(340,'226.9_fac',447772.8276124999975,'226_fac','category_scale','$','ref_226_9_fac, f_simp_other_rx_equip','226.9','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(341,'226.9_mat',58391.11864500000228,'226_mat','category_scale','$','ref_226_9_mat, f_simp_other_rx_equip','226.9','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(342,'226.9_lab',692768.1943500000053,'226_lab','category_scale','$','ref_226_9_lab, f_simp_other_rx_equip','226.9','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(343,'227_fac',32682954.00658420845,'22_fac',NULL,'$',NULL,'227','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(344,'227_mat',2043124.67360463203,'22_mat',NULL,'$',NULL,'227','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(345,'227_lab',23395908.85965052992,'22_lab',NULL,'$',NULL,'227','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(346,'227.1_fac',5862176.921089473181,'227_fac',NULL,'$',NULL,'227.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(347,'227.1_mat',145741.1085284736765,'227_mat',NULL,'$',NULL,'227.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(348,'227.1_lab',2890469.771936841309,'227_lab',NULL,'$',NULL,'227.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(349,'227.11_fac',2348124.117999999784,'227.1_fac','category_scale','$','ref_227_11_fac','227.11','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(350,'227.11_mat',47080.64022999999724,'227.1_mat','category_scale','$','ref_227_11_mat','227.11','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(351,'227.11_lab',956553.366200000047,'227.1_lab','category_scale','$','ref_227_11_lab','227.11','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(352,'227.15_fac',201316.7981999999902,'227.1_fac','category_scale','$','ref_227_15_fac','227.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(353,'227.15_mat',7611.624429000000419,'227.1_mat','category_scale','$','ref_227_15_mat','227.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(354,'227.15_lab',146670.7043999999878,'227.1_lab','category_scale','$','ref_227_15_lab','227.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(355,'227.16_fac',841507.4497999999439,'227.1_fac','category_scale','$','ref_227_16_fac','227.16','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(356,'227.16_mat',29789.75466999999845,'227.1_mat','category_scale','$','ref_227_16_mat','227.16','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(357,'227.16_lab',573931.4902999999468,'227.1_lab','category_scale','$','ref_227_16_lab','227.16','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(358,'227.17_fac',805269.6058000000193,'227.1_fac','category_scale','$','ref_227_17_fac','227.17','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(359,'227.17_mat',29789.75466999999845,'227.1_mat','category_scale','$','ref_227_17_mat','227.17','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(360,'227.17_lab',573931.4902999999468,'227.1_lab','category_scale','$','ref_227_17_lab','227.17','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(361,'227.18_fac',1007976.135000000009,'227.1_fac','category_scale','$','ref_227_18_fac','227.18','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(362,'227.18_mat',21971.6603099999993,'227.1_mat','category_scale','$','ref_227_18_mat','227.18','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(363,'227.18_lab',446391.747399999993,'227.1_lab','category_scale','$','ref_227_18_lab','227.18','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(364,'227.19_fac',657982.8142894736957,'227.1_fac','category_scale','$','ref_227_19_fac, scale_n_crs','227.19','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(365,'227.19_mat',9497.67421947368347,'227.1_mat','category_scale','$','ref_227_19_mat, scale_n_crs','227.19','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(366,'227.19_lab',192990.9733368420858,'227.1_lab','category_scale','$','ref_227_19_lab, scale_n_crs','227.19','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(367,'227.2_fac',6575350.648000000044,'227_fac','category_scale','$','ref_227_2_fac','227.2','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(368,'227.2_mat',89960.81599000000279,'227_mat','category_scale','$','ref_227_2_mat','227.2','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(369,'227.2_lab',913902.4666999999899,'227_lab','category_scale','$','ref_227_2_lab','227.2','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(370,'227.3_fac',6821452.508899999782,'227_fac','category_scale','$','ref_227_3_fac','227.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(371,'227.3_mat',141557.2161230000201,'227_mat','category_scale','$','ref_227_3_mat','227.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(372,'227.3_lab',2569941.702840000392,'227_lab','category_scale','$','ref_227_3_lab','227.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(373,'227.4_fac',6578958.462052632124,'227_fac','category_scale','$','ref_227_4_fac, scale_n_crs','227.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(374,'227.4_mat',231764.0694947367884,'227_mat','category_scale','$','ref_227_4_mat, scale_n_crs','227.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(375,'227.4_lab',2354463.598226315807,'227_lab','category_scale','$','ref_227_4_lab, scale_n_crs','227.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(376,'227.5_fac',527288.0859105263372,'227_fac','category_scale','$','ref_227_5_fac, scale_n_crs','227.5','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(377,'227.5_mat',1054159.797131578903,'227_mat','category_scale','$','ref_227_5_mat, scale_n_crs','227.5','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(378,'227.5_lab',10807359.91957894712,'227_lab','category_scale','$','ref_227_5_lab, scale_n_crs','227.5','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(379,'227.9_fac',6317727.380631579086,'227_fac','category_scale','$','ref_227_9_fac, scale_n_crs','227.9','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(380,'227.9_mat',379941.6663368420558,'227_mat','category_scale','$','ref_227_9_mat, scale_n_crs','227.9','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(381,'227.9_lab',3859771.400368420872,'227_lab','category_scale','$','ref_227_9_lab, scale_n_crs','227.9','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(382,'228_fac',0.0,'22_fac',NULL,'$',NULL,'228','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(383,'228_mat',7193434.601400000974,'22_mat','category_scale','$','ref_228_mat','228','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(384,'228_lab',13169656.3509999998,'22_lab','category_scale','$','ref_228_lab','228','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(385,'229_fac',0.0,'22_fac',NULL,'$',NULL,'229','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(386,'229_mat',0.0,'22_mat',NULL,'$',NULL,'229','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(387,'229_lab',0.0,'22_lab',NULL,'$',NULL,'229','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(388,'23_fac',390994355.4347472787,'2_fac','category_scale','$','ref_23_fac, scale_elec_P','23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(389,'23_mat',25120067.25584303961,'2_mat','category_scale','$','ref_23_mat, scale_elec_P','23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(390,'23_lab',165956705.1636239886,'2_lab','category_scale','$','ref_23_lab, scale_elec_P','23','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(391,'24_fac',29436588.9639872685,'2_fac',NULL,'$',NULL,'24','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(392,'24_mat',26808881.84739581869,'2_mat',NULL,'$',NULL,'24','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(393,'24_lab',89078027.1538632214,'2_lab',NULL,'$',NULL,'24','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(394,'241_fac',13383265.04150061123,'24_fac','category_scale','$','ref_241_fac, scale_tur_plant_equip_elec_P, f_elec_swgr','241','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(395,'241_mat',105054.7468166693433,'24_mat','category_scale','$','ref_241_mat, scale_tur_plant_equip_elec_P, f_elec_swgr','241','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(396,'241_lab',731146.3223681121598,'24_lab','category_scale','$','ref_241_lab, scale_tur_plant_equip_elec_P, f_elec_swgr','241','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(397,'242_fac',10635016.71589574404,'24_fac','category_scale','$','ref_242_fac, scale_tur_plant_equip_elec_P, f_elec_st_serv','242','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(398,'242_mat',189558.1954428846075,'24_mat','category_scale','$','ref_242_mat, scale_tur_plant_equip_elec_P, f_elec_st_serv','242','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(399,'242_lab',997429.965979651432,'24_lab','category_scale','$','ref_242_lab, scale_tur_plant_equip_elec_P, f_elec_st_serv','242','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(400,'243_fac',3088404.796542286872,'24_fac','category_scale','$','ref_243_fac, scale_tur_plant_equip_elec_P, f_elec_switchboards','243','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(401,'243_mat',62329.08170593351679,'24_mat','category_scale','$','ref_243_mat, scale_tur_plant_equip_elec_P, f_elec_switchboards','243','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(402,'243_lab',688103.6038249798585,'24_lab','category_scale','$','ref_243_lab, scale_tur_plant_equip_elec_P, f_elec_switchboards','243','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(403,'244_fac',0.0,'24_fac',NULL,'$',NULL,'244','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(404,'244_mat',3873950.332422213629,'24_mat','category_scale','$','ref_244_mat, scale_tur_plant_equip_elec_P, f_elec_prot','244','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(405,'244_lab',7150832.494541896508,'24_lab','category_scale','$','ref_244_lab, scale_tur_plant_equip_elec_P, f_elec_prot','244','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(406,'245_fac',0.0,'24_fac',NULL,'$',NULL,'245','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(407,'245_mat',8515139.456262374297,'24_mat','category_scale','$','ref_245_mat, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont','245','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(408,'245_lab',50939192.37203365565,'24_lab','category_scale','$','ref_245_lab, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont','245','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(409,'246_fac',2329902.410048628225,'24_fac','category_scale','$','ref_246_fac, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir','246','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(410,'246_mat',14062850.03474574349,'24_mat','category_scale','$','ref_246_mat, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir','246','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(411,'246_lab',28571322.39511492103,'24_lab','category_scale','$','ref_246_lab, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir','246','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(412,'25_fac',38416698.32520888746,'2_fac',NULL,'$',NULL,'25','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(413,'25_mat',11747093.46818410233,'2_mat',NULL,'$',NULL,'25','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(414,'25_lab',80027526.34271016717,'2_lab',NULL,'$',NULL,'25','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(415,'251_fac',11089163.65837889164,'25_fac',NULL,'$',NULL,'251','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(416,'251_mat',259432.6734074994457,'25_mat',NULL,'$',NULL,'251','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(417,'251_lab',2488193.091137277894,'25_lab',NULL,'$',NULL,'251','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(418,'251.1_fac',11089163.65837889164,'251_fac',NULL,'$',NULL,'251.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(419,'251.1_mat',259432.6734074994457,'251_mat',NULL,'$',NULL,'251.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(420,'251.1_lab',2488193.091137277894,'251_lab',NULL,'$',NULL,'251.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(421,'251.11_fac',3903693.019735130948,'251.1_fac','category_scale','$','ref_251_11_fac, scale_P','251.11','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(422,'251.11_mat',63127.37940532020003,'251.1_mat','category_scale','$','ref_251_11_mat, scale_P','251.11','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(423,'251.11_lab',605456.436651082011,'251.1_lab','category_scale','$','ref_251_11_lab, scale_P','251.11','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(424,'251.12_fac',5576704.313907329925,'251.1_fac','category_scale','$','ref_251_12_fac, scale_P','251.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(425,'251.12_mat',126254.7587707996864,'251.1_mat','category_scale','$','ref_251_12_mat, scale_P','251.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(426,'251.12_lab',1210901.167302796151,'251.1_lab','category_scale','$','ref_251_12_lab, scale_P','251.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(427,'251.16_fac',671880.0,'251.1_fac','category_scale','$','ref_251_16_fac','251.16','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(428,'251.16_mat',59651.3613600000026,'251.1_mat','category_scale','$','ref_251_16_mat','251.16','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(429,'251.16_lab',572112.3209000000498,'251.1_lab','category_scale','$','ref_251_16_lab','251.16','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(430,'251.17_fac',936886.324736431358,'251.1_fac','category_scale','$','ref_251_17_fac, scale_P','251.17','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(431,'251.17_mat',10399.17387137955666,'251.1_mat','category_scale','$','ref_251_17_mat, scale_P','251.17','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(432,'251.17_lab',99723.1662833997544,'251.1_lab','category_scale','$','ref_251_17_lab, scale_P','251.17','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(433,'252_fac',18234671.28257055954,'25_fac',NULL,'$',NULL,'252','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(434,'252_mat',9738804.69707383402,'25_mat',NULL,'$',NULL,'252','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(435,'252_lab',63419707.86294555664,'25_lab',NULL,'$',NULL,'252','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(436,'252.1_fac',3221068.45230989065,'252_fac','category_scale','$','ref_252_1_fac, scale_V_of_212_213_215_216_217','252.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(437,'252.1_mat',673761.8570905332454,'252_mat','category_scale','$','ref_252_1_mat, scale_V_of_212_213_215_216_217','252.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(438,'252.1_lab',15837189.48628140986,'252_lab','category_scale','$','ref_252_1_lab, scale_V_of_212_213_215_216_217','252.1','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(439,'252.2_fac',10315415.35304497182,'252_fac','category_scale','$','ref_252_2_fac, scale_V_of_212_213_215_216_217','252.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(440,'252.2_mat',8361373.834305692465,'252_mat','category_scale','$','ref_252_2_mat, scale_V_of_212_213_215_216_217','252.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(441,'252.2_lab',39774923.87139962613,'252_lab','category_scale','$','ref_252_2_lab, scale_V_of_212_213_215_216_217','252.2','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(442,'252.3_fac',4698187.477215702646,'252_fac','category_scale','$','ref_252_3_fac, scale_V_of_212_213_215_216_217','252.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(443,'252.3_mat',432800.9817476077587,'252_mat','category_scale','$','ref_252_3_mat, scale_V_of_212_213_215_216_217','252.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(444,'252.3_lab',7323253.888364514335,'252_lab','category_scale','$','ref_252_3_lab, scale_V_of_212_213_215_216_217','252.3','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(445,'252.4_fac',0.0,'252_fac',NULL,'$',NULL,'252.4','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(446,'252.4_mat',270868.0239300000249,'252_mat','category_scale','$','ref_252_4_mat','252.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(447,'252.4_lab',484340.6169000000228,'252_lab','category_scale','$','ref_252_4_lab','252.4','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(448,'253_fac',3460827.434043690096,'25_fac','category_scale','$','ref_253_fac, scale_V_of_212_213_215_216_217','253','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(449,'253_mat',1165404.514045412186,'25_mat','category_scale','$','ref_253_mat, scale_V_of_212_213_215_216_217','253','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(450,'253_lab',8439054.116516044364,'25_lab','category_scale','$','ref_253_lab, scale_V_of_212_213_215_216_217','253','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(451,'254_fac',3963181.95021575177,'25_fac','category_scale','$','ref_254_fac, scale_V_of_212_213_215_216_217','254','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(452,'254_mat',130196.5837573531171,'25_mat','category_scale','$','ref_254_mat, scale_V_of_212_213_215_216_217','254','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(453,'254_lab',1127418.773111295886,'25_lab','category_scale','$','ref_254_lab, scale_V_of_212_213_215_216_217','254','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(454,'255_fac',1668854.0,'25_fac','category_scale','$','ref_255_fac','255','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(455,'255_mat',453254.9998999999953,'25_mat','category_scale','$','ref_255_mat','255','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(456,'255_lab',4553152.498999999837,'25_lab','category_scale','$','ref_255_lab','255','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(457,'26_fac',70104925.57582445443,'2_fac',NULL,'$',NULL,'26','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(458,'26_mat',8565146.747831290588,'2_mat',NULL,'$',NULL,'26','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(459,'26_lab',52487330.3025316596,'2_lab',NULL,'$',NULL,'26','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(460,'261_fac',393999.2808784443187,'26_fac','category_scale','$','ref_261_fac, scale_rej_th_P','261','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(461,'261_mat',3935091.326965608634,'26_mat','category_scale','$','ref_261_mat, scale_rej_th_P','261','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(462,'261_lab',9157392.08426121436,'26_lab','category_scale','$','ref_261_lab, scale_rej_th_P','261','LPSR_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO lpsr_cost_element VALUES(463,'262_fac',69710926.29494599997,'26_fac',NULL,'$',NULL,'262','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(464,'262_mat',4630055.420865681954,'26_mat',NULL,'$',NULL,'262','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(465,'262_lab',43329938.21827044338,'26_lab',NULL,'$',NULL,'262','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(466,'262.1_fac',69710926.29494599997,'262_fac',NULL,'$',NULL,'262.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(467,'262.1_mat',4630055.420865681954,'262_mat',NULL,'$',NULL,'262.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(468,'262.1_lab',43329938.21827044338,'262_lab',NULL,'$',NULL,'262.1','LPSR_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO lpsr_cost_element VALUES(469,'262.11_fac',821716.7943638151046,'262.1_fac','category_scale','$','ref_262_11_fac, scale_rej_th_P','262.11','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(470,'262.11_mat',31498.70383762696657,'262.1_mat','category_scale','$','ref_262_11_mat, scale_rej_th_P','262.11','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(471,'262.11_lab',299903.0234635871021,'262.1_lab','category_scale','$','ref_262_11_lab, scale_rej_th_P','262.11','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(472,'262.12_fac',19786129.23999999836,'262.1_fac','category_scale','$','ref_262_12_fac','262.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(473,'262.12_mat',2229912.27600000007,'262.1_mat','category_scale','$','ref_262_12_mat','262.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(474,'262.12_lab',15368420.83999999986,'262.1_lab','category_scale','$','ref_262_12_lab','262.12','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(475,'262.13_fac',46373708.01161780209,'262.1_fac','category_scale','$','ref_262_13_fac, scale_rej_th_P','262.13','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(476,'262.13_mat',2145876.22767419368,'262.1_mat','category_scale','$','ref_262_13_mat, scale_rej_th_P','262.13','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(477,'262.13_lab',26981789.27575635911,'262.1_lab','category_scale','$','ref_262_13_lab, scale_rej_th_P','262.13','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(478,'262.14_fac',0.0,'262.1_fac',NULL,'$',NULL,'262.14','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(479,'262.14_mat',117794.9077644843637,'262.1_mat','category_scale','$','ref_262_14_mat, scale_rej_th_P','262.14','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(480,'262.14_lab',130629.5920013600843,'262.1_lab','category_scale','$','ref_262_14_lab, scale_rej_th_P','262.14','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(481,'262.15_fac',2729372.248964384199,'262.1_fac','category_scale','$','ref_262_15_fac, scale_rej_th_P','262.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(482,'262.15_mat',104973.3055893766431,'262.1_mat','category_scale','$','ref_262_15_mat, scale_rej_th_P','262.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(483,'262.15_lab',549195.4870491357287,'262.1_lab','category_scale','$','ref_262_15_lab, scale_rej_th_P','262.15','LPSR_DIRECT',0,'category_scaled'); +INSERT INTO lpsr_cost_element VALUES(484,'219_fac',0.0,'21_fac',NULL,'$',NULL,'219','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(485,'219_mat',0.0,'21_mat',NULL,'$',NULL,'219','LPSR_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO lpsr_cost_element VALUES(486,'219_lab',0.0,'21_lab',NULL,'$',NULL,'219','LPSR_DIRECT',0,'collapsed_rollup_zero'); +CREATE TABLE lpsr_variable (ind INTEGER NOT NULL, var_name TEXT, var_description TEXT, var_value REAL, var_unit TEXT, var_alg TEXT, var_need TEXT, v_linked TEXT, user_input INTEGER, PRIMARY KEY (ind)); +INSERT INTO lpsr_variable VALUES(1,'adm_bldg_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_adm_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(2,'S','General Yardwork Area for 211.1',23.0,'m^2',NULL,NULL,'scale_S',0); +INSERT INTO lpsr_variable VALUES(3,'bldg_V','Structural & Miscellaneous Steel Building volume for 213.142',194392.0,'m^3',NULL,NULL,'scale_bldg_V',0); +INSERT INTO lpsr_variable VALUES(4,'cont_D_D','LPSR A.212.15 containment cylinder/dome diameter D',44.20000000000000285,'m',NULL,NULL,'sup_str_S',0); +INSERT INTO lpsr_variable VALUES(5,'cont_hatch_ms_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_cont_hatch_ms_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(6,'cont_H_H','LPSR A.212.15 containment cylinder height H',45.70000000000000285,'m',NULL,NULL,'sup_str_S',0); +INSERT INTO lpsr_variable VALUES(7,'cont_V','Containment Spray System Containment volume for 223.4',86163.93811123160412,'m^3',NULL,NULL,'scale_cont_V',0); +INSERT INTO lpsr_variable VALUES(8,'cr_dg_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 218142',2660.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(9,'cr_dg_bldg_sub_S','Roofing & Flashing Substructure S for 218145',380.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(10,'cr_dg_bldg_sub_vol','Substructure Concrete Substructure volume for 21813',228.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(11,'cr_dg_bldg_sup_S','Painting Superstructure S for 218149',546.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(12,'cr_dg_bldg_sup_vol','Concrete Work Superstructure volume for 218141',163.7999999999999829,'m^3',NULL,NULL,'scale_cr_dg_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(13,'elec_P','Input unit value for Electric power scale, source account 231.; also used for new_base_turbine_plant_equipment_elec_P',1117.0,'MWe',NULL,NULL,'rej_th_P, scale_elec_P, scale_tur_plant_equip_elec_P',0); +INSERT INTO lpsr_variable VALUES(14,'elec_tunnel_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_elec_tunnel_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(15,'frm_flow','Fluid Circulation Drive System Flow rate for 222.11',5000.0,'kg/s',NULL,NULL,'scale_frm_flow',0); +INSERT INTO lpsr_variable VALUES(16,'frm_fuel_cask_cap','Spent Fuel Cask Crane Fuel cask capacity for 225.114',113.0,'tonne',NULL,NULL,'scale_frm_fuel_cask_cap',0); +INSERT INTO lpsr_variable VALUES(17,'frm_fuel_crane_cap','New & Spent Fuel Crane Fuel crane capacity for 225.111',2.0,'tonne',NULL,NULL,'scale_frm_fuel_crane_cap',0); +INSERT INTO lpsr_variable VALUES(18,'frm_ht_S','Steam Generator Equipment HT surface S for 222.13',11477.0,'m^2',NULL,NULL,'scale_frm_ht_S',0); +INSERT INTO lpsr_variable VALUES(19,'frm_prz_M','Pressurizing System Pressurizer mass for 222.14',106000.0,'kg',NULL,NULL,'scale_frm_prz_M',0); +INSERT INTO lpsr_variable VALUES(20,'frm_S','Passive cooling pool Surface S for 212.3',1000.0,'m^2',NULL,NULL,'scale_frm_S',0); +INSERT INTO lpsr_variable VALUES(21,'frm_S_9_71886e_06','Storage Pool Liner - S.S. Surface S for 217.3',480.0,'m^2',NULL,NULL,'scale_frm_S_9_71886e_06',0); +INSERT INTO lpsr_variable VALUES(22,'frm_vsl_M','Reactor Vessel + Accessory Vessel mass for 221.1',352000.0,'kg',NULL,NULL,'scale_frm_vsl_M',0); +INSERT INTO lpsr_variable VALUES(23,'fuel_stor_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 217.142',18900.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(24,'fuel_stor_bldg_sub_S','Roofing & Flashing Substructure S for 217.145',700.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(25,'fuel_stor_bldg_sub_vol','Substructure Concrete Substructure volume for 217.13',420.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(26,'fuel_stor_bldg_sup_S','Painting Superstructure S for 217.149',2862.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(27,'fuel_stor_bldg_sup_vol','Concrete Work Superstructure volume for 217.141',858.6000000000000227,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(28,'mc_piping_M','Reactor Coolant Piping System MC piping mass for 222.12',77000.0,'kg',NULL,NULL,'scale_mc_piping_M',0); +INSERT INTO lpsr_variable VALUES(29,'non_ess_swgr_bldg_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_non_ess_swgr_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(30,'n_crs','Reactor Control Devices Number of CRs for 221.2',69.0,NULL,NULL,NULL,'scale_n_crs',0); +INSERT INTO lpsr_variable VALUES(31,'pri_aux_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 215.142',13357.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(32,'pri_aux_bldg_sub_S','Roofing & Flashing Substructure S for 215.145',703.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(33,'pri_aux_bldg_sub_vol','Substructure Concrete Substructure volume for 215.13',843.6000000000000227,'m^3',NULL,NULL,'scale_pri_aux_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(34,'pri_aux_bldg_sup_S','Painting Superstructure S for 215.149',2128.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(35,'pri_aux_bldg_sup_vol','Concrete Work Superstructure volume for 215.141',1276.799999999999955,'m^3',NULL,NULL,'scale_pri_aux_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(36,'pri_flow','Liquid Waste System Primary flowrate for 224.1',19880.0,'kg/s',NULL,NULL,'scale_pri_flow',0); +INSERT INTO lpsr_variable VALUES(37,'rx_D','Vessel Internals Reactor diameter (m) for 221.3',4.5,'m',NULL,NULL,'scale_rx_D',0); +INSERT INTO lpsr_variable VALUES(38,'rej_th_P','Rejected thermal power for 261.1',2283.0,'MWt','calc_rej_th_P','rx_P, elec_P','scale_rej_th_P',0); +INSERT INTO lpsr_variable VALUES(39,'rx_P','Input unit value for Plant power scale, source account 212.22; also used for new_base_rx_P; also used for new_base_yardwork_rx_P',3400.0,'MWt',NULL,NULL,'rej_th_P, scale_P',0); +INSERT INTO lpsr_variable VALUES(40,'sfp_V','Fuel Storage, Cleaning, & Inspection Equipment SFP volume for 225.4',750.0,'m^3',NULL,NULL,'scale_sfp_V',0); +INSERT INTO lpsr_variable VALUES(41,'sub_str_S','Roof Deck Substructure S for 213.144',4136.0,'m^2',NULL,NULL,'scale_sub_str_S',0); +INSERT INTO lpsr_variable VALUES(42,'sub_str_V','Substructure Concrete Substructure volume for 212.13',4603.155803819373432,'m^3',NULL,NULL,'scale_sub_str_V',0); +INSERT INTO lpsr_variable VALUES(43,'sup_const','Interior Concrete Building volume for 212.140',92728.0163591613819,'m^3',NULL,NULL,'scale_sup_const',0); +INSERT INTO lpsr_variable VALUES(44,'sup_str_S','Calculated containment superstructure S for cylinder with dome: pi*D^2/2 + pi*D*H',9414.59920057175077,'m^2','cal_sup_str_S','cont_D_D, cont_H_H','scale_sup_str_S, scale_sup_str_V',0); +INSERT INTO lpsr_variable VALUES(45,'turb_gen_bldg_sub_vol','Substructure Concrete Substructure volume for 213.13',1240.799999999999955,'m^3',NULL,NULL,'scale_turb_gen_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(46,'turb_gen_bldg_sup_S','Exterior Walls Superstructure S for 213.143',12690.0,'m^2',NULL,NULL,'scale_turb_gen_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(47,'turb_gen_bldg_sup_vol','Concrete Work Superstructure volume for 213.141',3807.0,'m^3',NULL,NULL,'scale_turb_gen_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(48,'uc_frm_flow','Unit-cost coefficient for Flow rate scale, source account 222.11',9054.0,'kg/s',NULL,NULL,'scale_frm_flow',0); +INSERT INTO lpsr_variable VALUES(49,'uc_frm_fuel_cap','Unit cost coefficient for fuel cask and crane capacity direct formula scale',411796.0,'$/tonne',NULL,NULL,'scale_frm_fuel_cask_cap, scale_frm_fuel_crane_cap',0); +INSERT INTO lpsr_variable VALUES(50,'uc_frm_ht_S','Unit-cost coefficient for HT surface S scale, source account 222.13',31688.0,'m^2',NULL,NULL,'scale_frm_ht_S',0); +INSERT INTO lpsr_variable VALUES(51,'uc_frm_prz_M','Unit-cost coefficient for Pressurizer mass scale, source account 222.14',13128.0,'kg',NULL,NULL,'scale_frm_prz_M',0); +INSERT INTO lpsr_variable VALUES(52,'uc_frm_S','Unit-cost coefficient for Surface S scale, source account 212.3',17866.0,'m^2',NULL,NULL,'scale_frm_S',0); +INSERT INTO lpsr_variable VALUES(53,'uc_frm_S_9_71886e_06','Unit-cost coefficient for Surface S scale, source account 217.3',17866.0,'m^2',NULL,NULL,'scale_frm_S_9_71886e_06',0); +INSERT INTO lpsr_variable VALUES(54,'uc_frm_vsl_M','Unit-cost coefficient for Vessel mass scale, source account 221.1',13128.0,'kg',NULL,NULL,'scale_frm_vsl_M',0); +INSERT INTO lpsr_variable VALUES(55,'V_of_212_213_215_216_217','Fill & Backfill (Place/Comp) Volume of 212, 213, 215, 216, 217 for 211.712',336225.0163591612945,'m^3',NULL,NULL,'scale_V_of_212_213_215_216_217',0); +INSERT INTO lpsr_variable VALUES(56,'waste_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 216.142',16848.0,'m^3',NULL,NULL,'scale_waste_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(57,'waste_bldg_sub_S','Roof Deck Substructure S for 216.144',1296.0,'m^2',NULL,NULL,'scale_waste_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(58,'waste_bldg_sub_vol','Substructure Concrete Substructure volume for 216.13',1555.200000000000045,'m^3',NULL,NULL,'scale_waste_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(59,'waste_bldg_sup_S','Exterior Walls Superstructure S for 216.143',2028.0,'m^2',NULL,NULL,'scale_waste_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(60,'waste_bldg_sup_vol','Concrete Work Superstructure volume for 216.141',1216.799999999999955,'m^3',NULL,NULL,'scale_waste_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(61,'wwt_bldg_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_wwt_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(62,'adj_212_14112_lab','Adjustment factor for 212.14112_lab',0.1686319183939024025,'1',NULL,NULL,'ce_212_14112_lab',0); +INSERT INTO lpsr_variable VALUES(63,'adj_212_14122_lab','Adjustment factor for 212.14122_lab',0.4545732208217064807,'1',NULL,NULL,'ce_212_14122_lab',0); +INSERT INTO lpsr_variable VALUES(64,'adj_cont_mat_1_48','Adjustment factor for 212.14112_mat, 212.14122_mat',1.479999999999999983,'1',NULL,NULL,'ce_212_14112_mat, ce_212_14122_mat',0); +INSERT INTO lpsr_variable VALUES(65,'adj_half','Adjustment factor for 222.132_fac, 222.132_lab, 222.132_mat, 222.139_fac, 222.139_lab, 222.139_mat',0.5,'1',NULL,NULL,'ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab',0); +INSERT INTO lpsr_variable VALUES(66,'adj_none','Adjustment factor for 212.14111_lab, 212.14111_mat, 212.14117_lab, 212.14117_mat, 212.14121_lab, 212.14121_mat, 212.14127_lab, 212.14127_mat',0.0,'1',NULL,NULL,'ce_212_14111_mat, ce_212_14111_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14127_mat, ce_212_14127_lab',0); +INSERT INTO lpsr_variable VALUES(67,'adj_rx_aux_0_25','Adjustment factor for 222.111_fac, 222.111_lab, 222.111_mat, 222.119_fac, 222.119_lab, 222.119_mat',0.249999999999999889,'1',NULL,NULL,'ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab',0); +INSERT INTO lpsr_variable VALUES(68,'count_222_11','Count per plant for 222.11',4.0,'1',NULL,NULL,'ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab',0); +INSERT INTO lpsr_variable VALUES(69,'count_222_13','Count per plant for 222.13',2.0,'1',NULL,NULL,'ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab',0); +INSERT INTO lpsr_variable VALUES(70,'exp_lin','Linear scaling exponent used by unit-cost/geometry scale laws where exponent = 1',1.0,'1',NULL,NULL,'scale_adm_bldg_bldg_vol, scale_S, scale_bldg_V, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_cr_dg_bldg_bldg_vol, scale_cr_dg_bldg_sub_S, scale_cr_dg_bldg_sub_vol, scale_cr_dg_bldg_sup_S, scale_cr_dg_bldg_sup_vol, scale_elec_tunnel_bldg_vol, scale_fuel_stor_bldg_bldg_vol, scale_fuel_stor_bldg_sub_S, scale_fuel_stor_bldg_sub_vol, scale_fuel_stor_bldg_sup_S, scale_fuel_stor_bldg_sup_vol, scale_mc_piping_M, scale_non_ess_swgr_bldg_bldg_vol, scale_n_crs, scale_pri_aux_bldg_bldg_vol, scale_pri_aux_bldg_sub_S, scale_pri_aux_bldg_sub_vol, scale_pri_aux_bldg_sup_S, scale_pri_aux_bldg_sup_vol, scale_sub_str_S, scale_sub_str_V, scale_sup_const, scale_sup_str_S, scale_sup_str_V, scale_turb_gen_bldg_sub_vol, scale_turb_gen_bldg_sup_S, scale_turb_gen_bldg_sup_vol, scale_V_of_212_213_215_216_217, scale_waste_bldg_bldg_vol, scale_waste_bldg_sub_S, scale_waste_bldg_sub_vol, scale_waste_bldg_sup_S, scale_waste_bldg_sup_vol, scale_wwt_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(71,'exp_elec_P','Exponent for Electric power scale, source account 231.',0.8000000000000000444,'1',NULL,NULL,'scale_elec_P',0); +INSERT INTO lpsr_variable VALUES(72,'exp_P','Exponent for Plant power scale, source account 212.22; also used for exp_rej_th_P; also used for exp_rx_P; also used for exp_yardwork_rx_P',0.8000000000000000444,'1',NULL,NULL,'scale_P, scale_rej_th_P',0); +INSERT INTO lpsr_variable VALUES(73,'exp_pri_flow','Exponent for Primary flowrate scale, source account 224.1',0.75,'1',NULL,NULL,'scale_pri_flow',0); +INSERT INTO lpsr_variable VALUES(74,'exp_rx_D','Exponent for Reactor diameter (m) scale, source account 221.3',2.0,'1',NULL,NULL,'scale_rx_D',0); +INSERT INTO lpsr_variable VALUES(75,'exp_sfp_V','Exponent for SFP volume scale, source account 225.4',0.75,'1',NULL,NULL,'scale_sfp_V',0); +INSERT INTO lpsr_variable VALUES(76,'exp_tur_plant_equip_elec_P','Exponent for Electric power scale, source account 241.',0.5999999999999999778,'1',NULL,NULL,'scale_tur_plant_equip_elec_P',0); +INSERT INTO lpsr_variable VALUES(77,'f_elec_P_ctrl_wir','Passive safety factor: [Electrical] A.246 Power & Control Wiring',0.6050901652907003659,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(78,'f_elec_prot','Passive safety factor: [Electrical] A.244 Protective Equipment',1.009930695461569661,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(79,'f_elec_st_serv','Passive safety factor: [Electrical] A.242 Station Service Equipment',0.2678830011089926023,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(80,'f_elec_str_wir_cont','Passive safety factor: [Electrical] A.245 Electrical Structures & Wiring Container',0.5783708145703972958,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(81,'f_elec_switchboards','Passive safety factor: [Electrical] A.243 Switchboards',0.9062342772269471603,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(82,'f_elec_swgr','Passive safety factor: [Electrical] A.241 Switchgear',0.5483394388542619514,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(83,'f_simp_fuel_hndl','Design simplifications factor: [Simple] A.225 Fuel Handling & Storage',0.5200000000000000177,'1',NULL,NULL,'ce_225_111_fac, ce_225_111_mat, ce_225_111_lab, ce_225_112_fac, ce_225_112_mat, ce_225_112_lab, ce_225_113_fac, ce_225_113_mat, ce_225_113_lab, ce_225_114_fac, ce_225_114_mat, ce_225_114_lab',0); +INSERT INTO lpsr_variable VALUES(84,'f_simp_other_rx_equip','Design simplifications factor: [Simple] A.226 Other Reactor Equipment',0.5,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(85,'f_simp_radw','Design simplifications factor: [Simple] A.224 Radwaste Processing',0.7600000000000000088,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(86,'f_simp_sfgd','Design simplifications factor: [Simple] A.223 Safeguards system',0.7099999999999999645,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(87,'f_ss_cont_fac','Standalone steel containment factor: 212.15 Factory cost mult',3.25,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(88,'f_ss_cont_lab','Standalone steel containment factor: 212.15 Labor cost mult',4.559999999999999609,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(89,'f_ss_cont_mat','Standalone steel containment factor: 212.15 Material cost mult',28.98000000000000042,'1',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(90,'lrn_222_11_fac','Factory learning factor for 222.11 grouped accounts',0.996280999999999973,'1',NULL,NULL,'ce_222_111_fac, ce_222_119_fac',0); +INSERT INTO lpsr_variable VALUES(91,'lrn_222_11_lab','Labor learning factor for 222.11 grouped accounts',0.8561590000000000033,'1',NULL,NULL,'ce_222_111_lab, ce_222_119_lab',0); +INSERT INTO lpsr_variable VALUES(92,'lrn_222_11_mat','Material learning factor for 222.11 grouped accounts',0.9204670000000000351,'1',NULL,NULL,'ce_222_111_mat, ce_222_119_mat',0); +INSERT INTO lpsr_variable VALUES(93,'lrn_222_13_fac','Factory learning factor for 222.13 grouped accounts',0.998750000000000026,'1',NULL,NULL,'ce_222_132_fac, ce_222_139_fac',0); +INSERT INTO lpsr_variable VALUES(94,'lrn_222_13_lab','Labor learning factor for 222.13 grouped accounts',0.934499999999999998,'1',NULL,NULL,'ce_222_132_lab, ce_222_139_lab',0); +INSERT INTO lpsr_variable VALUES(95,'lrn_222_13_mat','Material learning factor for 222.13 grouped accounts',0.964500000000000023,'1',NULL,NULL,'ce_222_132_mat, ce_222_139_mat',0); +INSERT INTO lpsr_variable VALUES(96,'ref_211_1_fac','Reference factory equipment cost for 211.1',627151.8000000000465,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(97,'ref_211_1_lab','Reference site labor cost for 211.1',10886491.92999999971,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(98,'ref_211_1_mat','Reference site material cost for 211.1',8218524.720999999903,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(99,'ref_211_4_lab','Reference site labor cost for 211.4',4995516.912999999709,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(100,'ref_211_4_mat','Reference site material cost for 211.4',3721250.597000000067,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(101,'ref_211_711_lab','Aggregated reference lab cost for 211.711',15125864.0,'$',NULL,NULL,'ce_211_711_lab',0); +INSERT INTO lpsr_variable VALUES(102,'ref_211_711_mat','Aggregated reference mat cost for 211.711',4440332.0,'$',NULL,NULL,'ce_211_711_mat',0); +INSERT INTO lpsr_variable VALUES(103,'ref_211_712_fac','Reference factory equipment cost for 211.712',245650.0,'$',NULL,NULL,'ce_211_712_fac',0); +INSERT INTO lpsr_variable VALUES(104,'ref_211_712_lab','Reference site labor cost for 211.712',15646213.58999999986,'$',NULL,NULL,'ce_211_712_lab',0); +INSERT INTO lpsr_variable VALUES(105,'ref_211_712_mat','Reference site material cost for 211.712',13402579.34999999963,'$',NULL,NULL,'ce_211_712_mat',0); +INSERT INTO lpsr_variable VALUES(106,'ref_212_13_lab','Aggregated reference lab cost for 212.13',11129822.18730000033,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(107,'ref_212_13_mat','Aggregated reference mat cost for 212.13',8063843.092280000449,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(108,'ref_212_140_fac','Aggregated reference fac cost for 212.140',3367569.01500000013,'$',NULL,NULL,'ce_212_140_fac',0); +INSERT INTO lpsr_variable VALUES(109,'ref_212_140_lab','Aggregated reference lab cost for 212.140',45289162.73619999737,'$',NULL,NULL,'ce_212_140_lab',0); +INSERT INTO lpsr_variable VALUES(110,'ref_212_140_mat','Aggregated reference mat cost for 212.140',13223212.03752999939,'$',NULL,NULL,'ce_212_140_mat',0); +INSERT INTO lpsr_variable VALUES(111,'ref_212_14111_lab','Reference site labor cost for 212.14111',6302007.271999999881,'$',NULL,NULL,'ce_212_14111_lab',0); +INSERT INTO lpsr_variable VALUES(112,'ref_212_14111_mat','Reference site material cost for 212.14111',524742.3560999999754,'$',NULL,NULL,'ce_212_14111_mat',0); +INSERT INTO lpsr_variable VALUES(113,'ref_212_14112_lab','Reference site labor cost for 212.14112',11084965.35999999941,'$',NULL,NULL,'ce_212_14112_lab',0); +INSERT INTO lpsr_variable VALUES(114,'ref_212_14112_mat','Reference site material cost for 212.14112',6765223.382000000216,'$',NULL,NULL,'ce_212_14112_mat',0); +INSERT INTO lpsr_variable VALUES(115,'ref_212_14113_lab','Reference site labor cost for 212.14113',3211170.73499999987,'$',NULL,NULL,'ce_212_14113_lab',0); +INSERT INTO lpsr_variable VALUES(116,'ref_212_14113_mat','Reference site material cost for 212.14113',1638426.483000000007,'$',NULL,NULL,'ce_212_14113_mat',0); +INSERT INTO lpsr_variable VALUES(117,'ref_212_14114_lab','Reference site labor cost for 212.14114',543039.3003999999492,'$',NULL,NULL,'ce_212_14114_lab',0); +INSERT INTO lpsr_variable VALUES(118,'ref_212_14114_mat','Reference site material cost for 212.14114',197744.5645000000076,'$',NULL,NULL,'ce_212_14114_mat',0); +INSERT INTO lpsr_variable VALUES(119,'ref_212_14115_lab','Reference site labor cost for 212.14115',445996.784400000004,'$',NULL,NULL,'ce_212_14115_lab',0); +INSERT INTO lpsr_variable VALUES(120,'ref_212_14115_mat','Reference site material cost for 212.14115',26315.43755999999849,'$',NULL,NULL,'ce_212_14115_mat',0); +INSERT INTO lpsr_variable VALUES(121,'ref_212_14116_lab','Reference site labor cost for 212.14116',45146.76643000000332,'$',NULL,NULL,'ce_212_14116_lab',0); +INSERT INTO lpsr_variable VALUES(122,'ref_212_14116_mat','Reference site material cost for 212.14116',17199.01812000000063,'$',NULL,NULL,'ce_212_14116_mat',0); +INSERT INTO lpsr_variable VALUES(123,'ref_212_14117_lab','Reference site labor cost for 212.14117',3895733.578000000212,'$',NULL,NULL,'ce_212_14117_lab',0); +INSERT INTO lpsr_variable VALUES(124,'ref_212_14117_mat','Reference site material cost for 212.14117',1567178.290000000037,'$',NULL,NULL,'ce_212_14117_mat',0); +INSERT INTO lpsr_variable VALUES(125,'ref_212_14118_lab','Reference site labor cost for 212.14118',713911.3336000000126,'$',NULL,NULL,'ce_212_14118_lab',0); +INSERT INTO lpsr_variable VALUES(126,'ref_212_14118_mat','Reference site material cost for 212.14118',293260.4893000000156,'$',NULL,NULL,'ce_212_14118_mat',0); +INSERT INTO lpsr_variable VALUES(127,'ref_212_14121_lab','Reference site labor cost for 212.14121',1742460.389999999898,'$',NULL,NULL,'ce_212_14121_lab',0); +INSERT INTO lpsr_variable VALUES(128,'ref_212_14121_mat','Reference site material cost for 212.14121',152723.5216000000073,'$',NULL,NULL,'ce_212_14121_mat',0); +INSERT INTO lpsr_variable VALUES(129,'ref_212_14122_lab','Reference site labor cost for 212.14122',4112162.547999999952,'$',NULL,NULL,'ce_212_14122_lab',0); +INSERT INTO lpsr_variable VALUES(130,'ref_212_14122_mat','Reference site material cost for 212.14122',2509679.641999999993,'$',NULL,NULL,'ce_212_14122_mat',0); +INSERT INTO lpsr_variable VALUES(131,'ref_212_14123_lab','Reference site labor cost for 212.14123',1154019.462999999989,'$',NULL,NULL,'ce_212_14123_lab',0); +INSERT INTO lpsr_variable VALUES(132,'ref_212_14123_mat','Reference site material cost for 212.14123',588811.3044999999692,'$',NULL,NULL,'ce_212_14123_mat',0); +INSERT INTO lpsr_variable VALUES(133,'ref_212_14125_lab','Reference site labor cost for 212.14125',159284.2539999999862,'$',NULL,NULL,'ce_212_14125_lab',0); +INSERT INTO lpsr_variable VALUES(134,'ref_212_14125_mat','Reference site material cost for 212.14125',9398.37055700000018,'$',NULL,NULL,'ce_212_14125_mat',0); +INSERT INTO lpsr_variable VALUES(135,'ref_212_14127_lab','Reference site labor cost for 212.14127',3161753.910000000149,'$',NULL,NULL,'ce_212_14127_lab',0); +INSERT INTO lpsr_variable VALUES(136,'ref_212_14127_mat','Reference site material cost for 212.14127',1271912.814999999945,'$',NULL,NULL,'ce_212_14127_mat',0); +INSERT INTO lpsr_variable VALUES(137,'ref_212_14128_lab','Reference site labor cost for 212.14128',141092.5413000000116,'$',NULL,NULL,'ce_212_14128_lab',0); +INSERT INTO lpsr_variable VALUES(138,'ref_212_14128_mat','Reference site material cost for 212.14128',57956.61843999999838,'$',NULL,NULL,'ce_212_14128_mat',0); +INSERT INTO lpsr_variable VALUES(139,'ref_212_1419_lab','Reference site labor cost for 212.1419',796421.2700000000186,'$',NULL,NULL,'ce_212_1419_lab',0); +INSERT INTO lpsr_variable VALUES(140,'ref_212_1419_mat','Reference site material cost for 212.1419',232647.2648000000044,'$',NULL,NULL,'ce_212_1419_mat',0); +INSERT INTO lpsr_variable VALUES(141,'ref_212_142_lab','Aggregated reference lab cost for 212.142',2909128.752929999958,'$',NULL,NULL,'ce_212_142_lab',0); +INSERT INTO lpsr_variable VALUES(142,'ref_212_142_mat','Aggregated reference mat cost for 212.142',3818022.677449999843,'$',NULL,NULL,'ce_212_142_mat',0); +INSERT INTO lpsr_variable VALUES(143,'ref_212_149_lab','Reference site labor cost for 212.149',12549840.5,'$',NULL,NULL,'ce_212_149_lab',0); +INSERT INTO lpsr_variable VALUES(144,'ref_212_149_mat','Reference site material cost for 212.149',2458081.163000000175,'$',NULL,NULL,'ce_212_149_mat',0); +INSERT INTO lpsr_variable VALUES(145,'ref_212_15_fac','Reference factory equipment cost for 212.15',26940552.12000000104,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(146,'ref_212_15_lab','Reference site labor cost for 212.15',32653359.39000000059,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(147,'ref_212_15_mat','Reference site material cost for 212.15',1254917.429000000003,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(148,'ref_212_21_fac','Aggregated reference fac cost for 212.21',150540.9458999999916,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(149,'ref_212_21_lab','Aggregated reference lab cost for 212.21',1048615.753599999939,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(150,'ref_212_21_mat','Aggregated reference mat cost for 212.21',205092.4669899999862,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(151,'ref_212_22_fac','Aggregated reference fac cost for 212.22',241104.9685990000143,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(152,'ref_212_22_lab','Aggregated reference lab cost for 212.22',67726.42610199999762,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(153,'ref_212_22_mat','Aggregated reference mat cost for 212.22',7237.371887700000115,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(154,'ref_212_23_fac','Aggregated reference fac cost for 212.23',1058293.928400000092,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(155,'ref_212_23_lab','Aggregated reference lab cost for 212.23',3960991.540510000195,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(156,'ref_212_23_mat','Aggregated reference mat cost for 212.23',898681.3347659999271,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(157,'ref_212_24_lab','Reference site labor cost for 212.24',3463484.689999999945,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(158,'ref_212_24_mat','Reference site material cost for 212.24',1345201.308999999892,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(159,'ref_212_25_fac','Reference factory equipment cost for 212.25',198384.6399000000092,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(160,'ref_212_25_lab','Reference site labor cost for 212.25',112115.1431000000011,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(161,'ref_212_25_mat','Reference site material cost for 212.25',9150.880133000000569,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(162,'ref_212_3_lab','Reference site labor cost for 212.3',0.3160782080000000272,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(163,'ref_212_3_mat','Reference site material cost for 212.3',0.6839217920000000283,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(164,'ref_213_13_lab','Aggregated reference lab cost for 213.13',14910944.50128999912,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(165,'ref_213_13_mat','Aggregated reference mat cost for 213.13',6302087.867886999621,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(166,'ref_213_141_lab','Aggregated reference lab cost for 213.141',1639765.280400000046,'$',NULL,NULL,'ce_213_141_lab',0); +INSERT INTO lpsr_variable VALUES(167,'ref_213_141_mat','Aggregated reference mat cost for 213.141',635828.117867999943,'$',NULL,NULL,'ce_213_141_mat',0); +INSERT INTO lpsr_variable VALUES(168,'ref_213_142_lab','Aggregated reference lab cost for 213.142',15453101.32427000068,'$',NULL,NULL,'ce_213_142_lab',0); +INSERT INTO lpsr_variable VALUES(169,'ref_213_142_mat','Aggregated reference mat cost for 213.142',24471194.74130000175,'$',NULL,NULL,'ce_213_142_mat',0); +INSERT INTO lpsr_variable VALUES(170,'ref_213_143_lab','Aggregated reference lab cost for 213.143',2115226.042299999855,'$',NULL,NULL,'ce_213_143_lab',0); +INSERT INTO lpsr_variable VALUES(171,'ref_213_143_mat','Aggregated reference mat cost for 213.143',2442554.065400000195,'$',NULL,NULL,'ce_213_143_mat',0); +INSERT INTO lpsr_variable VALUES(172,'ref_213_144_lab','Aggregated reference lab cost for 213.144',892268.450899999938,'$',NULL,NULL,'ce_213_144_lab',0); +INSERT INTO lpsr_variable VALUES(173,'ref_213_144_mat','Aggregated reference mat cost for 213.144',925648.438229999971,'$',NULL,NULL,'ce_213_144_mat',0); +INSERT INTO lpsr_variable VALUES(174,'ref_213_145_lab','Aggregated reference lab cost for 213.145',472841.2125000000233,'$',NULL,NULL,'ce_213_145_lab',0); +INSERT INTO lpsr_variable VALUES(175,'ref_213_145_mat','Aggregated reference mat cost for 213.145',438974.2566000000224,'$',NULL,NULL,'ce_213_145_mat',0); +INSERT INTO lpsr_variable VALUES(176,'ref_213_146_lab','Aggregated reference lab cost for 213.146',444065.4916000000084,'$',NULL,NULL,'ce_213_146_lab',0); +INSERT INTO lpsr_variable VALUES(177,'ref_213_146_mat','Aggregated reference mat cost for 213.146',284016.3439800000051,'$',NULL,NULL,'ce_213_146_mat',0); +INSERT INTO lpsr_variable VALUES(178,'ref_213_147_lab','Aggregated reference lab cost for 213.147',643802.5841100000543,'$',NULL,NULL,'ce_213_147_lab',0); +INSERT INTO lpsr_variable VALUES(179,'ref_213_147_mat','Aggregated reference mat cost for 213.147',985426.294789999957,'$',NULL,NULL,'ce_213_147_mat',0); +INSERT INTO lpsr_variable VALUES(180,'ref_213_149_lab','Reference site labor cost for 213.149',2200909.112999999896,'$',NULL,NULL,'ce_213_149_lab',0); +INSERT INTO lpsr_variable VALUES(181,'ref_213_149_mat','Reference site material cost for 213.149',126843.2997999999935,'$',NULL,NULL,'ce_213_149_mat',0); +INSERT INTO lpsr_variable VALUES(182,'ref_213_21_fac','Aggregated reference fac cost for 213.21',26947.48846000000048,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(183,'ref_213_21_lab','Aggregated reference lab cost for 213.21',3854846.853110000026,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(184,'ref_213_21_mat','Aggregated reference mat cost for 213.21',945580.448012999957,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(185,'ref_213_22_fac','Aggregated reference fac cost for 213.22',1201173.238330000081,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(186,'ref_213_22_lab','Aggregated reference lab cost for 213.22',1721625.638260000153,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(187,'ref_213_22_mat','Aggregated reference mat cost for 213.22',285222.9706872000242,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(188,'ref_213_24_lab','Reference site labor cost for 213.24',1445761.912999999943,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(189,'ref_213_24_mat','Reference site material cost for 213.24',579979.5411999999779,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(190,'ref_213_25_fac','Aggregated reference fac cost for 213.25',227987.5150999999897,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(191,'ref_213_25_lab','Aggregated reference lab cost for 213.25',98331.5171499999997,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(192,'ref_213_25_mat','Aggregated reference mat cost for 213.25',9377.07337299999926,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(193,'ref_214_fac','Aggregated reference fac cost for 214',171454.8000999999932,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(194,'ref_214_lab','Aggregated reference lab cost for 214',3253960.23070000019,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(195,'ref_214_mat','Aggregated reference mat cost for 214',1107592.116500000003,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(196,'ref_215_13_lab','Aggregated reference lab cost for 215.13',1486017.877090000082,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(197,'ref_215_13_mat','Aggregated reference mat cost for 215.13',1063359.167139000027,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(198,'ref_215_141_lab','Aggregated reference lab cost for 215.141',27007537.62762999907,'$',NULL,NULL,'ce_215_141_lab',0); +INSERT INTO lpsr_variable VALUES(199,'ref_215_141_mat','Aggregated reference mat cost for 215.141',8497619.987043999135,'$',NULL,NULL,'ce_215_141_mat',0); +INSERT INTO lpsr_variable VALUES(200,'ref_215_142_lab','Aggregated reference lab cost for 215.142',1853103.954900000011,'$',NULL,NULL,'ce_215_142_lab',0); +INSERT INTO lpsr_variable VALUES(201,'ref_215_142_mat','Aggregated reference mat cost for 215.142',2944695.171409999951,'$',NULL,NULL,'ce_215_142_mat',0); +INSERT INTO lpsr_variable VALUES(202,'ref_215_145_lab','Aggregated reference lab cost for 215.145',76768.47521999999298,'$',NULL,NULL,'ce_215_145_lab',0); +INSERT INTO lpsr_variable VALUES(203,'ref_215_145_mat','Aggregated reference mat cost for 215.145',71195.8480899999995,'$',NULL,NULL,'ce_215_145_mat',0); +INSERT INTO lpsr_variable VALUES(204,'ref_215_146_lab','Aggregated reference lab cost for 215.146',239093.8906999999891,'$',NULL,NULL,'ce_215_146_lab',0); +INSERT INTO lpsr_variable VALUES(205,'ref_215_146_mat','Aggregated reference mat cost for 215.146',218695.0725000000093,'$',NULL,NULL,'ce_215_146_mat',0); +INSERT INTO lpsr_variable VALUES(206,'ref_215_147_lab','Aggregated reference lab cost for 215.147',81713.87408400001005,'$',NULL,NULL,'ce_215_147_lab',0); +INSERT INTO lpsr_variable VALUES(207,'ref_215_147_mat','Aggregated reference mat cost for 215.147',88183.79654499999014,'$',NULL,NULL,'ce_215_147_mat',0); +INSERT INTO lpsr_variable VALUES(208,'ref_215_149_lab','Reference site labor cost for 215.149',681097.8721000000369,'$',NULL,NULL,'ce_215_149_lab',0); +INSERT INTO lpsr_variable VALUES(209,'ref_215_149_mat','Reference site material cost for 215.149',143973.4821999999986,'$',NULL,NULL,'ce_215_149_mat',0); +INSERT INTO lpsr_variable VALUES(210,'ref_215_21_fac','Aggregated reference fac cost for 215.21',7810.607011000000057,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(211,'ref_215_21_lab','Aggregated reference lab cost for 215.21',1525771.058750000084,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(212,'ref_215_21_mat','Aggregated reference mat cost for 215.21',359094.3262100000283,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(213,'ref_215_221_fac','Reference factory equipment cost for 215.221',2531710.024999999907,'$',NULL,NULL,'ce_215_221_fac',0); +INSERT INTO lpsr_variable VALUES(214,'ref_215_221_lab','Reference site labor cost for 215.221',336370.6056000000098,'$',NULL,NULL,'ce_215_221_lab',0); +INSERT INTO lpsr_variable VALUES(215,'ref_215_221_mat','Reference site material cost for 215.221',28979.80564999999843,'$',NULL,NULL,'ce_215_221_mat',0); +INSERT INTO lpsr_variable VALUES(216,'ref_215_222_fac','Reference factory equipment cost for 215.222',1936413.245000000111,'$',NULL,NULL,'ce_215_222_fac',0); +INSERT INTO lpsr_variable VALUES(217,'ref_215_222_lab','Reference site labor cost for 215.222',330613.616399999999,'$',NULL,NULL,'ce_215_222_lab',0); +INSERT INTO lpsr_variable VALUES(218,'ref_215_222_mat','Reference site material cost for 215.222',28475.24377000000094,'$',NULL,NULL,'ce_215_222_mat',0); +INSERT INTO lpsr_variable VALUES(219,'ref_215_223_fac','Reference factory equipment cost for 215.223',39410.05189000000245,'$',NULL,NULL,'ce_215_223_fac',0); +INSERT INTO lpsr_variable VALUES(220,'ref_215_223_lab','Reference site labor cost for 215.223',30190.24938000000111,'$',NULL,NULL,'ce_215_223_lab',0); +INSERT INTO lpsr_variable VALUES(221,'ref_215_223_mat','Reference site material cost for 215.223',2535.191287000000102,'$',NULL,NULL,'ce_215_223_mat',0); +INSERT INTO lpsr_variable VALUES(222,'ref_215_224_fac','Reference factory equipment cost for 215.224',469880.2212999999755,'$',NULL,NULL,'ce_215_224_fac',0); +INSERT INTO lpsr_variable VALUES(223,'ref_215_224_lab','Reference site labor cost for 215.224',91838.71282000000064,'$',NULL,NULL,'ce_215_224_lab',0); +INSERT INTO lpsr_variable VALUES(224,'ref_215_224_mat','Reference site material cost for 215.224',7912.025553000000401,'$',NULL,NULL,'ce_215_224_mat',0); +INSERT INTO lpsr_variable VALUES(225,'ref_215_225_fac','Reference factory equipment cost for 215.225',563080.5444000000134,'$',NULL,NULL,'ce_215_225_fac',0); +INSERT INTO lpsr_variable VALUES(226,'ref_215_225_lab','Reference site labor cost for 215.225',5046207.64400000032,'$',NULL,NULL,'ce_215_225_lab',0); +INSERT INTO lpsr_variable VALUES(227,'ref_215_225_mat','Reference site material cost for 215.225',1111705.044999999925,'$',NULL,NULL,'ce_215_225_mat',0); +INSERT INTO lpsr_variable VALUES(228,'ref_215_226_fac','Reference factory equipment cost for 215.226',278882.4965000000083,'$',NULL,NULL,'ce_215_226_fac',0); +INSERT INTO lpsr_variable VALUES(229,'ref_215_226_lab','Reference site labor cost for 215.226',109065.207500000004,'$',NULL,NULL,'ce_215_226_lab',0); +INSERT INTO lpsr_variable VALUES(230,'ref_215_226_mat','Reference site material cost for 215.226',9251.18287299999975,'$',NULL,NULL,'ce_215_226_mat',0); +INSERT INTO lpsr_variable VALUES(231,'ref_215_227_fac','Reference factory equipment cost for 215.227',216644.9347000000125,'$',NULL,NULL,'ce_215_227_fac',0); +INSERT INTO lpsr_variable VALUES(232,'ref_215_228_fac','Reference factory equipment cost for 215.228',27640.01301999999851,'$',NULL,NULL,'ce_215_228_fac',0); +INSERT INTO lpsr_variable VALUES(233,'ref_215_228_lab','Reference site labor cost for 215.228',17549.1242600000005,'$',NULL,NULL,'ce_215_228_lab',0); +INSERT INTO lpsr_variable VALUES(234,'ref_215_228_mat','Reference site material cost for 215.228',1492.017338000000108,'$',NULL,NULL,'ce_215_228_mat',0); +INSERT INTO lpsr_variable VALUES(235,'ref_215_23_fac','Aggregated reference fac cost for 215.23',884219.7208999999566,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(236,'ref_215_23_lab','Aggregated reference lab cost for 215.23',385833.8303900000174,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(237,'ref_215_23_mat','Aggregated reference mat cost for 215.23',33063.40813199999684,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(238,'ref_215_24_lab','Reference site labor cost for 215.24',1326729.091999999946,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(239,'ref_215_24_mat','Reference site material cost for 215.24',465212.2443000000204,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(240,'ref_215_25_fac','Reference factory equipment cost for 215.25',319933.1506999999984,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(241,'ref_215_25_lab','Reference site labor cost for 215.25',156591.6953999999969,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(242,'ref_215_25_mat','Reference site material cost for 215.25',14127.73264000000017,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(243,'ref_216_13_lab','Aggregated reference lab cost for 216.13',3214628.454540000297,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(244,'ref_216_13_mat','Aggregated reference mat cost for 216.13',2101391.698654000181,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(245,'ref_216_141_lab','Aggregated reference lab cost for 216.141',24018213.09312000125,'$',NULL,NULL,'ce_216_141_lab',0); +INSERT INTO lpsr_variable VALUES(246,'ref_216_141_mat','Aggregated reference mat cost for 216.141',7145811.159575999714,'$',NULL,NULL,'ce_216_141_mat',0); +INSERT INTO lpsr_variable VALUES(247,'ref_216_142_lab','Aggregated reference lab cost for 216.142',2119078.08443999989,'$',NULL,NULL,'ce_216_142_lab',0); +INSERT INTO lpsr_variable VALUES(248,'ref_216_142_mat','Aggregated reference mat cost for 216.142',3438706.409150000195,'$',NULL,NULL,'ce_216_142_mat',0); +INSERT INTO lpsr_variable VALUES(249,'ref_216_143_lab','Aggregated reference lab cost for 216.143',486639.2798000000184,'$',NULL,NULL,'ce_216_143_lab',0); +INSERT INTO lpsr_variable VALUES(250,'ref_216_143_mat','Aggregated reference mat cost for 216.143',585894.1639999999898,'$',NULL,NULL,'ce_216_143_mat',0); +INSERT INTO lpsr_variable VALUES(251,'ref_216_144_lab','Aggregated reference lab cost for 216.144',307576.9200500000152,'$',NULL,NULL,'ce_216_144_lab',0); +INSERT INTO lpsr_variable VALUES(252,'ref_216_144_mat','Aggregated reference mat cost for 216.144',294801.0717500000028,'$',NULL,NULL,'ce_216_144_mat',0); +INSERT INTO lpsr_variable VALUES(253,'ref_216_145_lab','Aggregated reference lab cost for 216.145',147358.837910000002,'$',NULL,NULL,'ce_216_145_lab',0); +INSERT INTO lpsr_variable VALUES(254,'ref_216_145_mat','Aggregated reference mat cost for 216.145',128467.4313799999946,'$',NULL,NULL,'ce_216_145_mat',0); +INSERT INTO lpsr_variable VALUES(255,'ref_216_146_lab','Aggregated reference lab cost for 216.146',4599.644948000000113,'$',NULL,NULL,'ce_216_146_lab',0); +INSERT INTO lpsr_variable VALUES(256,'ref_216_146_mat','Aggregated reference mat cost for 216.146',4245.149030999999923,'$',NULL,NULL,'ce_216_146_mat',0); +INSERT INTO lpsr_variable VALUES(257,'ref_216_147_lab','Aggregated reference lab cost for 216.147',66380.32183699999587,'$',NULL,NULL,'ce_216_147_lab',0); +INSERT INTO lpsr_variable VALUES(258,'ref_216_147_mat','Aggregated reference mat cost for 216.147',75023.07197000000452,'$',NULL,NULL,'ce_216_147_mat',0); +INSERT INTO lpsr_variable VALUES(259,'ref_216_148_lab','Aggregated reference lab cost for 216.148',10525.09202000000004,'$',NULL,NULL,'ce_216_148_lab',0); +INSERT INTO lpsr_variable VALUES(260,'ref_216_148_mat','Aggregated reference mat cost for 216.148',585.099192300000027,'$',NULL,NULL,'ce_216_148_mat',0); +INSERT INTO lpsr_variable VALUES(261,'ref_216_149_lab','Reference site labor cost for 216.149',558657.9279000000097,'$',NULL,NULL,'ce_216_149_lab',0); +INSERT INTO lpsr_variable VALUES(262,'ref_216_149_mat','Reference site material cost for 216.149',92591.9471800000028,'$',NULL,NULL,'ce_216_149_mat',0); +INSERT INTO lpsr_variable VALUES(263,'ref_216_21_lab','Aggregated reference lab cost for 216.21',1275085.662550000009,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(264,'ref_216_21_mat','Aggregated reference mat cost for 216.21',252355.5943099999858,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(265,'ref_216_22_fac','Aggregated reference fac cost for 216.22',1134425.198652999941,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(266,'ref_216_22_lab','Aggregated reference lab cost for 216.22',2551554.280197000132,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(267,'ref_216_22_mat','Aggregated reference mat cost for 216.22',674600.3760620000539,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(268,'ref_216_24_lab','Reference site labor cost for 216.24',900566.6295000000392,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(269,'ref_216_24_mat','Reference site material cost for 216.24',341357.680400000012,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(270,'ref_216_25_fac','Aggregated reference fac cost for 216.25',356469.3827000000164,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(271,'ref_216_25_lab','Aggregated reference lab cost for 216.25',174564.4206999999879,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(272,'ref_216_25_mat','Aggregated reference mat cost for 216.25',16775.69576999999844,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(273,'ref_217_13_lab','Aggregated reference lab cost for 217.13',1232836.386079000076,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(274,'ref_217_13_mat','Aggregated reference mat cost for 217.13',627561.8008828000166,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(275,'ref_217_141_lab','Aggregated reference lab cost for 217.141',9200530.165079999715,'$',NULL,NULL,'ce_217_141_lab',0); +INSERT INTO lpsr_variable VALUES(276,'ref_217_141_mat','Aggregated reference mat cost for 217.141',2452036.602684000042,'$',NULL,NULL,'ce_217_141_mat',0); +INSERT INTO lpsr_variable VALUES(277,'ref_217_142_lab','Aggregated reference lab cost for 217.142',633635.0059299999848,'$',NULL,NULL,'ce_217_142_lab',0); +INSERT INTO lpsr_variable VALUES(278,'ref_217_142_mat','Aggregated reference mat cost for 217.142',893582.7199399999808,'$',NULL,NULL,'ce_217_142_mat',0); +INSERT INTO lpsr_variable VALUES(279,'ref_217_145_lab','Aggregated reference lab cost for 217.145',57111.30589000000328,'$',NULL,NULL,'ce_217_145_lab',0); +INSERT INTO lpsr_variable VALUES(280,'ref_217_145_mat','Aggregated reference mat cost for 217.145',46465.14192999999795,'$',NULL,NULL,'ce_217_145_mat',0); +INSERT INTO lpsr_variable VALUES(281,'ref_217_147_lab','Aggregated reference lab cost for 217.147',24768.32395600000018,'$',NULL,NULL,'ce_217_147_lab',0); +INSERT INTO lpsr_variable VALUES(282,'ref_217_147_mat','Aggregated reference mat cost for 217.147',32682.19458300000043,'$',NULL,NULL,'ce_217_147_mat',0); +INSERT INTO lpsr_variable VALUES(283,'ref_217_149_lab','Reference site labor cost for 217.149',142759.9868000000134,'$',NULL,NULL,'ce_217_149_lab',0); +INSERT INTO lpsr_variable VALUES(284,'ref_217_149_mat','Reference site material cost for 217.149',18023.85423000000082,'$',NULL,NULL,'ce_217_149_mat',0); +INSERT INTO lpsr_variable VALUES(285,'ref_217_21_fac','Aggregated reference fac cost for 217.21',7511.892017000000124,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(286,'ref_217_21_lab','Aggregated reference lab cost for 217.21',352553.6707380000153,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(287,'ref_217_21_mat','Aggregated reference mat cost for 217.21',150303.6021080999927,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(288,'ref_217_22_fac','Aggregated reference fac cost for 217.22',193909.3596799999942,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(289,'ref_217_22_lab','Aggregated reference lab cost for 217.22',1238929.993349999887,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(290,'ref_217_22_mat','Aggregated reference mat cost for 217.22',277171.7596420000191,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(291,'ref_217_23_fac','Aggregated reference fac cost for 217.23',2014572.997399999993,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(292,'ref_217_23_lab','Aggregated reference lab cost for 217.23',140460.0219900000083,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(293,'ref_217_23_mat','Aggregated reference mat cost for 217.23',10611.43886399999974,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(294,'ref_217_24_lab','Reference site labor cost for 217.24',292416.1970999999904,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(295,'ref_217_24_mat','Reference site material cost for 217.24',110230.2060000000055,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(296,'ref_217_3_lab','Reference site labor cost for 217.3',3071920.899999999907,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(297,'ref_217_3_mat','Reference site material cost for 217.3',6646942.405000000261,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(298,'ref_218A_13_lab','Aggregated reference lab cost for 218A.13',1340415.619440000038,'$',NULL,NULL,'ce_218A_13_lab',0); +INSERT INTO lpsr_variable VALUES(299,'ref_218A_13_mat','Aggregated reference mat cost for 218A.13',770875.0729229999707,'$',NULL,NULL,'ce_218A_13_mat',0); +INSERT INTO lpsr_variable VALUES(300,'ref_218A_141_lab','Aggregated reference lab cost for 218A.141',28840436.40199000016,'$',NULL,NULL,'ce_218A_141_lab',0); +INSERT INTO lpsr_variable VALUES(301,'ref_218A_141_mat','Aggregated reference mat cost for 218A.141',8429857.722798999399,'$',NULL,NULL,'ce_218A_141_mat',0); +INSERT INTO lpsr_variable VALUES(302,'ref_218A_142_lab','Aggregated reference lab cost for 218A.142',3003877.75743000023,'$',NULL,NULL,'ce_218A_142_lab',0); +INSERT INTO lpsr_variable VALUES(303,'ref_218A_142_mat','Aggregated reference mat cost for 218A.142',4757094.749689999968,'$',NULL,NULL,'ce_218A_142_mat',0); +INSERT INTO lpsr_variable VALUES(304,'ref_218A_145_lab','Aggregated reference lab cost for 218A.145',152808.8950999999943,'$',NULL,NULL,'ce_218A_145_lab',0); +INSERT INTO lpsr_variable VALUES(305,'ref_218A_145_mat','Aggregated reference mat cost for 218A.145',136116.6424000000115,'$',NULL,NULL,'ce_218A_145_mat',0); +INSERT INTO lpsr_variable VALUES(306,'ref_218A_146_lab','Aggregated reference lab cost for 218A.146',2477305.333980000113,'$',NULL,NULL,'ce_218A_146_lab',0); +INSERT INTO lpsr_variable VALUES(307,'ref_218A_146_mat','Aggregated reference mat cost for 218A.146',1820301.470123999985,'$',NULL,NULL,'ce_218A_146_mat',0); +INSERT INTO lpsr_variable VALUES(308,'ref_218A_147_lab','Aggregated reference lab cost for 218A.147',95330.9780800000007,'$',NULL,NULL,'ce_218A_147_lab',0); +INSERT INTO lpsr_variable VALUES(309,'ref_218A_147_mat','Aggregated reference mat cost for 218A.147',96193.6311629999982,'$',NULL,NULL,'ce_218A_147_mat',0); +INSERT INTO lpsr_variable VALUES(310,'ref_218A_148_lab','Aggregated reference lab cost for 218A.148',252960.6482959999994,'$',NULL,NULL,'ce_218A_148_lab',0); +INSERT INTO lpsr_variable VALUES(311,'ref_218A_148_mat','Aggregated reference mat cost for 218A.148',121610.011215999999,'$',NULL,NULL,'ce_218A_148_mat',0); +INSERT INTO lpsr_variable VALUES(312,'ref_218A_149_lab','Reference site labor cost for 218A.149',628859.464799999958,'$',NULL,NULL,'ce_218A_149_lab',0); +INSERT INTO lpsr_variable VALUES(313,'ref_218A_149_mat','Reference site material cost for 218A.149',76797.00963000000048,'$',NULL,NULL,'ce_218A_149_mat',0); +INSERT INTO lpsr_variable VALUES(314,'ref_218A_21_lab','Aggregated reference lab cost for 218A.21',2360426.582600000315,'$',NULL,NULL,'ce_218A_21_lab',0); +INSERT INTO lpsr_variable VALUES(315,'ref_218A_21_mat','Aggregated reference mat cost for 218A.21',658362.3247200000332,'$',NULL,NULL,'ce_218A_21_mat',0); +INSERT INTO lpsr_variable VALUES(316,'ref_218A_231_fac','Reference factory equipment cost for 218A.231',926649.825199999963,'$',NULL,NULL,'ce_218A_231_fac',0); +INSERT INTO lpsr_variable VALUES(317,'ref_218A_231_lab','Reference site labor cost for 218A.231',114723.9584000000031,'$',NULL,NULL,'ce_218A_231_lab',0); +INSERT INTO lpsr_variable VALUES(318,'ref_218A_231_mat','Reference site material cost for 218A.231',9480.52414099999988,'$',NULL,NULL,'ce_218A_231_mat',0); +INSERT INTO lpsr_variable VALUES(319,'ref_218A_232_fac','Reference factory equipment cost for 218A.232',801211.4131999999518,'$',NULL,NULL,'ce_218A_232_fac',0); +INSERT INTO lpsr_variable VALUES(320,'ref_218A_232_lab','Reference site labor cost for 218A.232',193144.9921000000031,'$',NULL,NULL,'ce_218A_232_lab',0); +INSERT INTO lpsr_variable VALUES(321,'ref_218A_232_mat','Reference site material cost for 218A.232',15969.88507000000026,'$',NULL,NULL,'ce_218A_232_mat',0); +INSERT INTO lpsr_variable VALUES(322,'ref_218A_233_fac','Reference factory equipment cost for 218A.233',3070.170928000000003,'$',NULL,NULL,'ce_218A_233_fac',0); +INSERT INTO lpsr_variable VALUES(323,'ref_218A_233_lab','Reference site labor cost for 218A.233',8103.008536000000276,'$',NULL,NULL,'ce_218A_233_lab',0); +INSERT INTO lpsr_variable VALUES(324,'ref_218A_233_mat','Reference site material cost for 218A.233',653.3598833999999442,'$',NULL,NULL,'ce_218A_233_mat',0); +INSERT INTO lpsr_variable VALUES(325,'ref_218A_234_fac','Reference factory equipment cost for 218A.234',193498.1676999999909,'$',NULL,NULL,'ce_218A_234_fac',0); +INSERT INTO lpsr_variable VALUES(326,'ref_218A_234_lab','Reference site labor cost for 218A.234',75100.20088000000396,'$',NULL,NULL,'ce_218A_234_lab',0); +INSERT INTO lpsr_variable VALUES(327,'ref_218A_234_mat','Reference site material cost for 218A.234',6213.724723999999697,'$',NULL,NULL,'ce_218A_234_mat',0); +INSERT INTO lpsr_variable VALUES(328,'ref_218A_235_fac','Reference factory equipment cost for 218A.235',1240903.304000000003,'$',NULL,NULL,'ce_218A_235_fac',0); +INSERT INTO lpsr_variable VALUES(329,'ref_218A_235_lab','Reference site labor cost for 218A.235',7537476.269000000321,'$',NULL,NULL,'ce_218A_235_lab',0); +INSERT INTO lpsr_variable VALUES(330,'ref_218A_235_mat','Reference site material cost for 218A.235',1213347.277000000001,'$',NULL,NULL,'ce_218A_235_mat',0); +INSERT INTO lpsr_variable VALUES(331,'ref_218A_236_fac','Reference factory equipment cost for 218A.236',267144.7431000000215,'$',NULL,NULL,'ce_218A_236_fac',0); +INSERT INTO lpsr_variable VALUES(332,'ref_218A_236_lab','Reference site labor cost for 218A.236',168717.3580000000074,'$',NULL,NULL,'ce_218A_236_lab',0); +INSERT INTO lpsr_variable VALUES(333,'ref_218A_236_mat','Reference site material cost for 218A.236',13831.86383999999999,'$',NULL,NULL,'ce_218A_236_mat',0); +INSERT INTO lpsr_variable VALUES(334,'ref_218A_237_fac','Reference factory equipment cost for 218A.237',34666.42809999999735,'$',NULL,NULL,'ce_218A_237_fac',0); +INSERT INTO lpsr_variable VALUES(335,'ref_218A_238_fac','Reference factory equipment cost for 218A.238',319916.9706000000005,'$',NULL,NULL,'ce_218A_238_fac',0); +INSERT INTO lpsr_variable VALUES(336,'ref_218A_238_lab','Reference site labor cost for 218A.238',65280.56113000000187,'$',NULL,NULL,'ce_218A_238_lab',0); +INSERT INTO lpsr_variable VALUES(337,'ref_218A_238_mat','Reference site material cost for 218A.238',2664.483275000000048,'$',NULL,NULL,'ce_218A_238_mat',0); +INSERT INTO lpsr_variable VALUES(338,'ref_218A_24_lab','Reference site labor cost for 218A.24',2024660.406999999891,'$',NULL,NULL,'ce_218A_24_lab',0); +INSERT INTO lpsr_variable VALUES(339,'ref_218A_24_mat','Reference site material cost for 218A.24',621004.9575000000187,'$',NULL,NULL,'ce_218A_24_mat',0); +INSERT INTO lpsr_variable VALUES(340,'ref_218B_22_fac','Aggregated reference fac cost for 218B.22',1866506.932347999886,'$',NULL,NULL,'ce_218B_22_fac',0); +INSERT INTO lpsr_variable VALUES(341,'ref_218B_22_lab','Aggregated reference lab cost for 218B.22',3131658.995190000161,'$',NULL,NULL,'ce_218B_22_lab',0); +INSERT INTO lpsr_variable VALUES(342,'ref_218B_22_mat','Aggregated reference mat cost for 218B.22',457290.8982602999894,'$',NULL,NULL,'ce_218B_22_mat',0); +INSERT INTO lpsr_variable VALUES(343,'ref_218B_23_fac','Aggregated reference fac cost for 218B.23',23772.31812150000042,'$',NULL,NULL,'ce_218B_23_fac',0); +INSERT INTO lpsr_variable VALUES(344,'ref_218B_23_lab','Aggregated reference lab cost for 218B.23',23161.10668200000145,'$',NULL,NULL,'ce_218B_23_lab',0); +INSERT INTO lpsr_variable VALUES(345,'ref_218B_23_mat','Aggregated reference mat cost for 218B.23',1732.656652800000074,'$',NULL,NULL,'ce_218B_23_mat',0); +INSERT INTO lpsr_variable VALUES(346,'ref_218B_24_lab','Reference site labor cost for 218B.24',970307.795700000016,'$',NULL,NULL,'ce_218B_24_lab',0); +INSERT INTO lpsr_variable VALUES(347,'ref_218B_24_mat','Reference site material cost for 218B.24',379587.3549999999814,'$',NULL,NULL,'ce_218B_24_mat',0); +INSERT INTO lpsr_variable VALUES(348,'ref_218B_25_fac','Reference factory equipment cost for 218B.25',88303.82095999999729,'$',NULL,NULL,'ce_218B_25_fac',0); +INSERT INTO lpsr_variable VALUES(349,'ref_218B_25_lab','Reference site labor cost for 218B.25',45810.80043999999908,'$',NULL,NULL,'ce_218B_25_lab',0); +INSERT INTO lpsr_variable VALUES(350,'ref_218B_25_mat','Reference site material cost for 218B.25',3586.12780100000009,'$',NULL,NULL,'ce_218B_25_mat',0); +INSERT INTO lpsr_variable VALUES(351,'ref_218D_fac','Reference factory equipment cost for 218D',87852.60004000000481,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(352,'ref_218D_lab','Reference site labor cost for 218D',784039.4096999999601,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(353,'ref_218D_mat','Reference site material cost for 218D',353929.4000000000232,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(354,'ref_218E_fac','Aggregated reference fac cost for 218E',49512.34824210000078,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(355,'ref_218E_lab','Aggregated reference lab cost for 218E',95924.2461219999969,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(356,'ref_218E_mat','Aggregated reference mat cost for 218E',18264.72928110000067,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(357,'ref_218F_lab','Reference site labor cost for 218F',1988491.889999999898,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(358,'ref_218F_mat','Reference site material cost for 218F',643590.1999999999535,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(359,'ref_218G_fac','Reference factory equipment cost for 218G',24217.59999999999855,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(360,'ref_218G_lab','Reference site labor cost for 218G',121782.0800000000017,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(361,'ref_218G_mat','Reference site material cost for 218G',45674.19999000000098,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(362,'ref_218H_fac','Reference factory equipment cost for 218H',43003.39998000000196,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(363,'ref_218H_lab','Reference site labor cost for 218H',951888.630200000014,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(364,'ref_218H_mat','Reference site material cost for 218H',633998.1999999999535,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(365,'ref_218J_fac','Aggregated reference fac cost for 218J',77809.66993000000367,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(366,'ref_218J_lab','Aggregated reference lab cost for 218J',477499.3704600000056,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(367,'ref_218J_mat','Aggregated reference mat cost for 218J',52345.44699599999877,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(368,'ref_218K_lab','Reference site labor cost for 218K',643823.0398999999742,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(369,'ref_218K_mat','Reference site material cost for 218K',262017.7999999999884,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(370,'ref_218L_fac','Reference factory equipment cost for 218L',137163.3999999999942,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(371,'ref_218L_lab','Reference site labor cost for 218L',1478143.590000000083,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(372,'ref_218L_mat','Reference site material cost for 218L',667730.7998999999836,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(373,'ref_218P_lab','Reference site labor cost for 218P',439306.5601000000024,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(374,'ref_218P_mat','Reference site material cost for 218P',127124.8000000000029,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(375,'ref_218S_fac','Reference factory equipment cost for 218S',18293.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(376,'ref_218S_lab','Reference site labor cost for 218S',1325719.330000000074,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(377,'ref_218S_mat','Reference site material cost for 218S',668122.4000000000232,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(378,'ref_218T_fac','Aggregated reference fac cost for 218T',94454.799960999997,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(379,'ref_218T_lab','Aggregated reference lab cost for 218T',150357.8792520000134,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(380,'ref_218T_mat','Aggregated reference mat cost for 218T',34382.96869940000034,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(381,'ref_218V_lab','Reference site labor cost for 218V',172589.3399999999966,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(382,'ref_218V_mat','Reference site material cost for 218V',67568.60003000000143,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(383,'ref_221_1_fac','Aggregated reference fac cost for 221.1',54943623.46000000089,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(384,'ref_221_1_lab','Aggregated reference lab cost for 221.1',6959303.009000000543,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(385,'ref_221_1_mat','Aggregated reference mat cost for 221.1',13117014.51909999921,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(386,'ref_221_2_fac','Aggregated reference fac cost for 221.2',29518644.19000000134,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(387,'ref_221_2_lab','Aggregated reference lab cost for 221.2',1128496.709000000031,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(388,'ref_221_2_mat','Aggregated reference mat cost for 221.2',106736.2780000000057,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(389,'ref_221_3_fac','Reference factory equipment cost for 221.3',48271430.43999999762,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(390,'ref_221_3_lab','Reference site labor cost for 221.3',1305834.897000000113,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(391,'ref_221_3_mat','Reference site material cost for 221.3',121580.4158000000024,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(392,'ref_222_111_fac','Reference factory equipment cost for 222.111',96235783.5100000053,'$',NULL,NULL,'ce_222_111_fac',0); +INSERT INTO lpsr_variable VALUES(393,'ref_222_111_lab','Reference site labor cost for 222.111',3849475.091000000014,'$',NULL,NULL,'ce_222_111_lab',0); +INSERT INTO lpsr_variable VALUES(394,'ref_222_111_mat','Reference site material cost for 222.111',389420.0621999999858,'$',NULL,NULL,'ce_222_111_mat',0); +INSERT INTO lpsr_variable VALUES(395,'ref_222_119_fac','Reference factory equipment cost for 222.119',2899631.743999999948,'$',NULL,NULL,'ce_222_119_fac',0); +INSERT INTO lpsr_variable VALUES(396,'ref_222_119_lab','Reference site labor cost for 222.119',4571014.441999999807,'$',NULL,NULL,'ce_222_119_lab',0); +INSERT INTO lpsr_variable VALUES(397,'ref_222_119_mat','Reference site material cost for 222.119',456144.5742999999784,'$',NULL,NULL,'ce_222_119_mat',0); +INSERT INTO lpsr_variable VALUES(398,'ref_222_12_fac','Aggregated reference fac cost for 222.12',12181696.78219999932,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(399,'ref_222_12_lab','Aggregated reference lab cost for 222.12',21860871.53649999946,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(400,'ref_222_12_mat','Aggregated reference mat cost for 222.12',2154574.624400000087,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(401,'ref_222_132_fac','Reference factory equipment cost for 222.132',115107954.9000000059,'$',NULL,NULL,'ce_222_132_fac',0); +INSERT INTO lpsr_variable VALUES(402,'ref_222_132_lab','Reference site labor cost for 222.132',3379073.239000000059,'$',NULL,NULL,'ce_222_132_lab',0); +INSERT INTO lpsr_variable VALUES(403,'ref_222_132_mat','Reference site material cost for 222.132',358033.9675999999745,'$',NULL,NULL,'ce_222_132_mat',0); +INSERT INTO lpsr_variable VALUES(404,'ref_222_139_fac','Reference factory equipment cost for 222.139',57628.3032000000021,'$',NULL,NULL,'ce_222_139_fac',0); +INSERT INTO lpsr_variable VALUES(405,'ref_222_139_lab','Reference site labor cost for 222.139',507890.4934999999823,'$',NULL,NULL,'ce_222_139_lab',0); +INSERT INTO lpsr_variable VALUES(406,'ref_222_139_mat','Reference site material cost for 222.139',50682.73047999999836,'$',NULL,NULL,'ce_222_139_mat',0); +INSERT INTO lpsr_variable VALUES(407,'ref_222_14_fac','Aggregated reference fac cost for 222.14',7810895.185580000281,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(408,'ref_222_14_lab','Aggregated reference lab cost for 222.14',554399.4597300000023,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(409,'ref_222_14_mat','Aggregated reference mat cost for 222.14',54698.15781199999765,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(410,'ref_223_1_fac','Aggregated reference fac cost for 223.1',9125519.813300000504,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(411,'ref_223_1_lab','Aggregated reference lab cost for 223.1',7673809.635900000111,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(412,'ref_223_1_mat','Aggregated reference mat cost for 223.1',643801.1258669999661,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(413,'ref_223_3_fac','Aggregated reference fac cost for 223.3',17995520.49500000104,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(414,'ref_223_3_lab','Aggregated reference lab cost for 223.3',12484140.12656999938,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(415,'ref_223_3_mat','Aggregated reference mat cost for 223.3',1849558.449167999905,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(416,'ref_223_4_fac','Aggregated reference fac cost for 223.4',7178727.713500000536,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(417,'ref_223_4_lab','Aggregated reference lab cost for 223.4',12825487.28281000071,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(418,'ref_223_4_mat','Aggregated reference mat cost for 223.4',1137444.056296000024,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(419,'ref_223_5_fac','Aggregated reference fac cost for 223.5',2020969.935920000076,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(420,'ref_223_5_lab','Aggregated reference lab cost for 223.5',1237700.479839999928,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(421,'ref_223_5_mat','Aggregated reference mat cost for 223.5',107715.5990409999941,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(422,'ref_224_1_fac','Aggregated reference fac cost for 224.1',17578043.84462000058,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(423,'ref_224_1_lab','Aggregated reference lab cost for 224.1',23504618.58384000137,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(424,'ref_224_1_mat','Aggregated reference mat cost for 224.1',2415803.700885400176,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(425,'ref_224_2_fac','Aggregated reference fac cost for 224.2',3090436.714999999851,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(426,'ref_224_2_lab','Aggregated reference lab cost for 224.2',1216147.837000000057,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(427,'ref_224_2_mat','Aggregated reference mat cost for 224.2',75770.24728999999933,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(428,'ref_224_3_fac','Aggregated reference fac cost for 224.3',17307453.16760000214,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(429,'ref_224_3_lab','Aggregated reference lab cost for 224.3',3175748.848400000017,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(430,'ref_224_3_mat','Aggregated reference mat cost for 224.3',313011.3541279999773,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(431,'ref_225_111_fac','Reference factory equipment cost for 225.111',237225.8381999999984,'$',NULL,NULL,'ce_225_111_fac',0); +INSERT INTO lpsr_variable VALUES(432,'ref_225_111_lab','Reference site labor cost for 225.111',142693.1866999999912,'$',NULL,NULL,'ce_225_111_lab',0); +INSERT INTO lpsr_variable VALUES(433,'ref_225_111_mat','Reference site material cost for 225.111',11385.05953000000044,'$',NULL,NULL,'ce_225_111_mat',0); +INSERT INTO lpsr_variable VALUES(434,'ref_225_112_fac','Reference factory equipment cost for 225.112',31779.31039999999849,'$',NULL,NULL,'ce_225_112_fac',0); +INSERT INTO lpsr_variable VALUES(435,'ref_225_112_lab','Reference site labor cost for 225.112',28538.63734000000113,'$',NULL,NULL,'ce_225_112_lab',0); +INSERT INTO lpsr_variable VALUES(436,'ref_225_112_mat','Reference site material cost for 225.112',2275.585206000000199,'$',NULL,NULL,'ce_225_112_mat',0); +INSERT INTO lpsr_variable VALUES(437,'ref_225_113_fac','Reference factory equipment cost for 225.113',78282.49206999999297,'$',NULL,NULL,'ce_225_113_fac',0); +INSERT INTO lpsr_variable VALUES(438,'ref_225_113_lab','Reference site labor cost for 225.113',142693.1866999999912,'$',NULL,NULL,'ce_225_113_lab',0); +INSERT INTO lpsr_variable VALUES(439,'ref_225_113_mat','Reference site material cost for 225.113',11281.5589799999998,'$',NULL,NULL,'ce_225_113_mat',0); +INSERT INTO lpsr_variable VALUES(440,'ref_225_114_fac','Reference factory equipment cost for 225.114',1423355.029000000096,'$',NULL,NULL,'ce_225_114_fac',0); +INSERT INTO lpsr_variable VALUES(441,'ref_225_114_lab','Reference site labor cost for 225.114',395150.3632000000216,'$',NULL,NULL,'ce_225_114_lab',0); +INSERT INTO lpsr_variable VALUES(442,'ref_225_114_mat','Reference site material cost for 225.114',31522.91857000000163,'$',NULL,NULL,'ce_225_114_mat',0); +INSERT INTO lpsr_variable VALUES(443,'ref_225_12_fac','Reference factory equipment cost for 225.12',311913.931500000006,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(444,'ref_225_12_lab','Reference site labor cost for 225.12',40279.58385999999883,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(445,'ref_225_12_mat','Reference site material cost for 225.12',3213.639921999999843,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(446,'ref_225_13_fac','Aggregated reference fac cost for 225.13',435399.745990000025,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(447,'ref_225_13_lab','Aggregated reference lab cost for 225.13',1025848.605600000009,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(448,'ref_225_13_mat','Aggregated reference mat cost for 225.13',77501.83425099999294,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(449,'ref_225_3_fac','Aggregated reference fac cost for 225.3',227028.0975000000034,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(450,'ref_225_3_lab','Aggregated reference lab cost for 225.3',143339.4107000000076,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(451,'ref_225_3_mat','Aggregated reference mat cost for 225.3',10769.08215000000018,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(452,'ref_225_4_fac','Aggregated reference fac cost for 225.4',4553380.162469999864,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(453,'ref_225_4_lab','Aggregated reference lab cost for 225.4',2057890.489160000113,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(454,'ref_225_4_mat','Aggregated reference mat cost for 225.4',226720.5942759999889,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(455,'ref_226_1_fac','Aggregated reference fac cost for 226.1',1768563.443999999902,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(456,'ref_226_1_lab','Aggregated reference lab cost for 226.1',2571525.626000000163,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(457,'ref_226_1_mat','Aggregated reference mat cost for 226.1',200061.0011999999988,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(458,'ref_226_3_fac','Aggregated reference fac cost for 226.3',2016124.889440000057,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(459,'ref_226_3_lab','Aggregated reference lab cost for 226.3',3000197.535569999833,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(460,'ref_226_3_mat','Aggregated reference mat cost for 226.3',628917.897423599963,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(461,'ref_226_4_fac','Aggregated reference fac cost for 226.4',24729843.08700000123,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(462,'ref_226_4_lab','Aggregated reference lab cost for 226.4',35691506.61100000144,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(463,'ref_226_4_mat','Aggregated reference mat cost for 226.4',4098205.311000000219,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(464,'ref_226_6_fac','Aggregated reference fac cost for 226.6',381757.8008000000264,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(465,'ref_226_6_lab','Aggregated reference lab cost for 226.6',93253.8853999999993,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(466,'ref_226_6_mat','Aggregated reference mat cost for 226.6',3658.729339999999866,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(467,'ref_226_71_fac','Aggregated reference fac cost for 226.71',13497035.89980000071,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(468,'ref_226_71_lab','Aggregated reference lab cost for 226.71',29663437.32339999824,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(469,'ref_226_71_mat','Aggregated reference mat cost for 226.71',2285411.729199000168,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(470,'ref_226_72_fac','Aggregated reference fac cost for 226.72',12452416.71990000085,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(471,'ref_226_72_lab','Aggregated reference lab cost for 226.72',17484840.09236999973,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(472,'ref_226_72_mat','Aggregated reference mat cost for 226.72',1360292.762976000085,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(473,'ref_226_8_fac','Aggregated reference fac cost for 226.8',7867871.490000000223,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(474,'ref_226_8_lab','Aggregated reference lab cost for 226.8',355003.3021600000211,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(475,'ref_226_8_mat','Aggregated reference mat cost for 226.8',2008164.993650000077,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(476,'ref_226_9_fac','Aggregated reference fac cost for 226.9',895545.655224999995,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(477,'ref_226_9_lab','Aggregated reference lab cost for 226.9',1385536.38870000001,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(478,'ref_226_9_mat','Aggregated reference mat cost for 226.9',116782.2372900000045,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(479,'ref_227_11_fac','Reference factory equipment cost for 227.11',2348124.117999999784,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(480,'ref_227_11_lab','Reference site labor cost for 227.11',956553.366200000047,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(481,'ref_227_11_mat','Reference site material cost for 227.11',47080.64022999999724,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(482,'ref_227_15_fac','Reference factory equipment cost for 227.15',201316.7981999999902,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(483,'ref_227_15_lab','Reference site labor cost for 227.15',146670.7043999999878,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(484,'ref_227_15_mat','Reference site material cost for 227.15',7611.624429000000419,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(485,'ref_227_16_fac','Reference factory equipment cost for 227.16',841507.4497999999439,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(486,'ref_227_16_lab','Reference site labor cost for 227.16',573931.4902999999468,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(487,'ref_227_16_mat','Reference site material cost for 227.16',29789.75466999999845,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(488,'ref_227_17_fac','Reference factory equipment cost for 227.17',805269.6058000000193,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(489,'ref_227_17_lab','Reference site labor cost for 227.17',573931.4902999999468,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(490,'ref_227_17_mat','Reference site material cost for 227.17',29789.75466999999845,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(491,'ref_227_18_fac','Reference factory equipment cost for 227.18',1007976.135000000009,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(492,'ref_227_18_lab','Reference site labor cost for 227.18',446391.747399999993,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(493,'ref_227_18_mat','Reference site material cost for 227.18',21971.6603099999993,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(494,'ref_227_19_fac','Reference factory equipment cost for 227.19',543551.0204999999841,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(495,'ref_227_19_lab','Reference site labor cost for 227.19',159427.3257999999915,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(496,'ref_227_19_mat','Reference site material cost for 227.19',7845.904789999999594,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(497,'ref_227_2_fac','Reference factory equipment cost for 227.2',6575350.648000000044,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(498,'ref_227_2_lab','Reference site labor cost for 227.2',913902.4666999999899,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(499,'ref_227_2_mat','Reference site material cost for 227.2',89960.81599000000279,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(500,'ref_227_3_fac','Aggregated reference fac cost for 227.3',6821452.508899999782,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(501,'ref_227_3_lab','Aggregated reference lab cost for 227.3',2569941.702839999926,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(502,'ref_227_3_mat','Aggregated reference mat cost for 227.3',141557.216122999991,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(503,'ref_227_4_fac','Aggregated reference fac cost for 227.4',5434791.773000000045,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(504,'ref_227_4_lab','Aggregated reference lab cost for 227.4',1944991.668099999894,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(505,'ref_227_4_mat','Aggregated reference mat cost for 227.4',191457.2748000000138,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(506,'ref_227_5_fac','Reference factory equipment cost for 227.5',435585.8101000000024,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(507,'ref_227_5_lab','Reference site labor cost for 227.5',8927819.063999999314,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(508,'ref_227_5_mat','Reference site material cost for 227.5',870827.6585000000196,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(509,'ref_227_9_fac','Reference factory equipment cost for 227.9',5218992.184000000357,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(510,'ref_227_9_lab','Reference site labor cost for 227.9',3188506.808999999892,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(511,'ref_227_9_mat','Reference site material cost for 227.9',313864.8547999999718,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(512,'ref_228_lab','Aggregated reference lab cost for 228',13169656.3509999998,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(513,'ref_228_mat','Aggregated reference mat cost for 228',7193434.601400000044,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(514,'ref_23_fac','Aggregated reference fac cost for 23',398537111.5299999714,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(515,'ref_23_lab','Aggregated reference lab cost for 23',169158211.6099999845,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(516,'ref_23_mat','Aggregated reference mat cost for 23',25604663.86899999901,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(517,'ref_241_fac','Aggregated reference fac cost for 241',24759182.80200000107,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(518,'ref_241_lab','Aggregated reference lab cost for 241',1352628.479999999982,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(519,'ref_241_mat','Aggregated reference mat cost for 241',194352.3999999999942,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(520,'ref_242_fac','Aggregated reference fac cost for 242',40273254.99899999797,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(521,'ref_242_lab','Aggregated reference lab cost for 242',3777121.600899999961,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(522,'ref_242_mat','Aggregated reference mat cost for 242',717829.2001000000164,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(523,'ref_243_fac','Aggregated reference fac cost for 243',3457143.79879999999,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(524,'ref_243_lab','Aggregated reference lab cost for 243',770259.4910999999847,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(525,'ref_243_mat','Aggregated reference mat cost for 243',69770.84044999998877,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(526,'ref_244_lab','Aggregated reference lab cost for 244',7182716.802999999375,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(527,'ref_244_mat','Aggregated reference mat cost for 244',3891223.597800000105,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(528,'ref_245_lab','Aggregated reference lab cost for 245',89344823.68999999761,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(529,'ref_245_mat','Aggregated reference mat cost for 245',14935133.40100000053,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(530,'ref_246_fac','Aggregated reference fac cost for 246',3906081.919000000227,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(531,'ref_246_lab','Aggregated reference lab cost for 246',47899828.47699999809,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(532,'ref_246_mat','Aggregated reference mat cost for 246',23576371.2734999992,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(533,'ref_251_11_fac','Aggregated reference fac cost for 251.11',3919300.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(534,'ref_251_11_lab','Aggregated reference lab cost for 251.11',607877.0538999999408,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(535,'ref_251_11_mat','Aggregated reference mat cost for 251.11',63379.76292000000103,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(536,'ref_251_12_fac','Reference factory equipment cost for 251.12',5599000.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(537,'ref_251_12_lab','Reference site labor cost for 251.12',1215742.354999999982,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(538,'ref_251_12_mat','Reference site material cost for 251.12',126759.525800000003,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(539,'ref_251_16_fac','Reference factory equipment cost for 251.16',671880.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(540,'ref_251_16_lab','Reference site labor cost for 251.16',572112.3209000000498,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(541,'ref_251_16_mat','Reference site material cost for 251.16',59651.3613600000026,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(542,'ref_251_17_fac','Reference factory equipment cost for 251.17',940632.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(543,'ref_251_17_lab','Reference site labor cost for 251.17',100121.8598999999959,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(544,'ref_251_17_mat','Reference site material cost for 251.17',10440.74980999999934,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(545,'ref_252_1_fac','Aggregated reference fac cost for 252.1',3990340.547999999952,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(546,'ref_252_1_lab','Aggregated reference lab cost for 252.1',19619508.34299999848,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(547,'ref_252_1_mat','Aggregated reference mat cost for 252.1',834673.1210000000428,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(548,'ref_252_2_fac','Aggregated reference fac cost for 252.2',12778995.77800000086,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(549,'ref_252_2_lab','Aggregated reference lab cost for 252.2',49274175.28300000727,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(550,'ref_252_2_mat','Aggregated reference mat cost for 252.2',10358280.03720000013,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(551,'ref_252_3_fac','Aggregated reference fac cost for 252.3',5820232.717810000292,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(552,'ref_252_3_lab','Aggregated reference lab cost for 252.3',9072230.958979999647,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(553,'ref_252_3_mat','Aggregated reference mat cost for 252.3',536164.7329919999465,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(554,'ref_252_4_lab','Aggregated reference lab cost for 252.4',484340.6169000000228,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(555,'ref_252_4_mat','Aggregated reference mat cost for 252.4',270868.0239300000249,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(556,'ref_253_fac','Aggregated reference fac cost for 253',4287360.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(557,'ref_253_lab','Aggregated reference lab cost for 253',10454512.32300000079,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(558,'ref_253_mat','Aggregated reference mat cost for 253',1443732.399999999907,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(559,'ref_254_fac','Aggregated reference fac cost for 254',4909689.399400000461,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(560,'ref_254_lab','Aggregated reference lab cost for 254',1396674.709503999912,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(561,'ref_254_mat','Aggregated reference mat cost for 254',161290.7999534999835,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(562,'ref_255_fac','Reference factory equipment cost for 255',1668854.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(563,'ref_255_lab','Reference site labor cost for 255',4553152.498999999837,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(564,'ref_255_mat','Reference site material cost for 255',453254.9998999999953,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(565,'ref_261_fac','Aggregated reference fac cost for 261',392618.0380800000276,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(566,'ref_261_lab','Aggregated reference lab cost for 261',9125289.026000000537,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(567,'ref_261_mat','Aggregated reference mat cost for 261',3921296.082100000233,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(568,'ref_262_11_fac','Reference factory equipment cost for 262.11',818836.1027999999933,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(569,'ref_262_11_lab','Reference site labor cost for 262.11',298851.6537999999709,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(570,'ref_262_11_mat','Reference site material cost for 262.11',31388.27886999999828,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(571,'ref_262_12_fac','Reference factory equipment cost for 262.12',19786129.23999999836,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(572,'ref_262_12_lab','Reference site labor cost for 262.12',15368420.83999999986,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(573,'ref_262_12_mat','Reference site material cost for 262.12',2229912.27600000007,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(574,'ref_262_13_fac','Reference factory equipment cost for 262.13',46211135.75999999792,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(575,'ref_262_13_lab','Reference site labor cost for 262.13',26887199.25,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(576,'ref_262_13_mat','Reference site material cost for 262.13',2138353.432000000029,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(577,'ref_262_14_lab','Reference site labor cost for 262.14',130171.6440000000002,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(578,'ref_262_14_mat','Reference site material cost for 262.14',117381.9542999999977,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(579,'ref_262_15_fac','Reference factory equipment cost for 262.15',2719803.891999999993,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(580,'ref_262_15_lab','Reference site labor cost for 262.15',547270.1731000000146,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(581,'ref_262_15_mat','Reference site material cost for 262.15',104605.3007999999973,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(582,'ref_S','Reference Area for General Yardwork 211.1',62.0,'m^2',NULL,NULL,'scale_S',0); +INSERT INTO lpsr_variable VALUES(583,'ref_bldg_V','Reference Building volume for Structural & Miscellaneous Steel 213.142',212000.0,'m^3',NULL,NULL,'scale_bldg_V',0); +INSERT INTO lpsr_variable VALUES(584,'ref_cmn_bldg_vol','Reference common containment/auxiliary building volume',92268.0,'m^3',NULL,NULL,'scale_adm_bldg_bldg_vol, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_elec_tunnel_bldg_vol, scale_non_ess_swgr_bldg_bldg_vol, scale_sup_const, scale_wwt_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(585,'ref_cr_dg_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 218142',48762.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(586,'ref_cr_dg_bldg_sub_S','Reference Substructure S for Roofing & Flashing 218145',1890.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(587,'ref_cr_dg_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 21813',2268.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(588,'ref_cr_dg_bldg_sup_S','Reference Superstructure S for Painting 218149',6258.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(589,'ref_cr_dg_bldg_sup_vol','Reference Superstructure volume for Concrete Work 218141',3755.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(590,'ref_direct_cost_frm_flow','Reference direct cost basis for Flow rate scale, source account 222.11',108401469.0,'kg/s',NULL,NULL,'scale_frm_flow',0); +INSERT INTO lpsr_variable VALUES(591,'ref_direct_cost_frm_fuel_cask_cap','Reference direct cost basis for Fuel cask capacity scale, source account 225.114',1850028.0,'tonne',NULL,NULL,'scale_frm_fuel_cask_cap',0); +INSERT INTO lpsr_variable VALUES(592,'ref_direct_cost_frm_fuel_crane_cap','Reference direct cost basis for Fuel crane capacity scale, source account 225.111',391304.0,'tonne',NULL,NULL,'scale_frm_fuel_crane_cap',0); +INSERT INTO lpsr_variable VALUES(593,'ref_direct_cost_frm_ht_S','Reference direct cost basis for HT surface S scale, source account 222.13',119461264.0,'m^2',NULL,NULL,'scale_frm_ht_S',0); +INSERT INTO lpsr_variable VALUES(594,'ref_direct_cost_frm_prz_M','Reference direct cost basis for Pressurizer mass scale, source account 222.14',8419993.0,'kg',NULL,NULL,'scale_frm_prz_M',0); +INSERT INTO lpsr_variable VALUES(595,'ref_direct_cost_frm_S','Reference direct cost basis for Surface S scale, source account 212.3',1.0,'m^2',NULL,NULL,'scale_frm_S',0); +INSERT INTO lpsr_variable VALUES(596,'ref_direct_cost_frm_S_9_71886e_06','Reference direct cost basis for Surface S scale, source account 217.3',9718863.0,'m^2',NULL,NULL,'scale_frm_S_9_71886e_06',0); +INSERT INTO lpsr_variable VALUES(597,'ref_direct_cost_frm_vsl_M','Reference direct cost basis for Vessel mass scale, source account 221.1',75019941.0,'kg',NULL,NULL,'scale_frm_vsl_M',0); +INSERT INTO lpsr_variable VALUES(598,'ref_elec_P','Reference electric power used by electric-power scale laws',1144.0,'MWe',NULL,NULL,'scale_elec_P, scale_tur_plant_equip_elec_P',0); +INSERT INTO lpsr_variable VALUES(599,'ref_fuel_stor_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 217.142',28800.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(600,'ref_fuel_stor_bldg_sub_S','Reference Substructure S for Roofing & Flashing 217.145',900.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(601,'ref_fuel_stor_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 217.13',1080.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(602,'ref_fuel_stor_bldg_sup_S','Reference Superstructure S for Painting 217.149',3840.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(603,'ref_fuel_stor_bldg_sup_vol','Reference Superstructure volume for Concrete Work 217.141',2304.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(604,'ref_mc_piping_M','Reference MC piping mass for Reactor Coolant Piping System 222.12',154000.0,'kg',NULL,NULL,'scale_mc_piping_M',0); +INSERT INTO lpsr_variable VALUES(605,'ref_n_crs','Reference Number of CRs for Reactor Control Devices 221.2',57.0,NULL,NULL,NULL,'scale_n_crs',0); +INSERT INTO lpsr_variable VALUES(606,'ref_pri_aux_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 215.142',36232.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(607,'ref_pri_aux_bldg_sub_S','Reference Substructure S for Roofing & Flashing 215.145',1294.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(608,'ref_pri_aux_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 215.13',1553.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(609,'ref_pri_aux_bldg_sup_S','Reference Superstructure S for Painting 215.149',5544.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(610,'ref_pri_aux_bldg_sup_vol','Reference Superstructure volume for Concrete Work 215.141',3326.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(611,'ref_pri_flow','Reference Primary flowrate for Liquid Waste System 224.1',23872.0,'kg/s',NULL,NULL,'scale_pri_flow',0); +INSERT INTO lpsr_variable VALUES(612,'ref_rx_D','Reference Reactor diameter (m) for Vessel Internals 221.3',4.599999999999999644,'m',NULL,NULL,'scale_rx_D',0); +INSERT INTO lpsr_variable VALUES(613,'ref_rej_th_P','Reference Rejected thermal power for 261.1',2273.0,'MWt',NULL,NULL,'scale_rej_th_P',0); +INSERT INTO lpsr_variable VALUES(614,'ref_rx_P','Reference reactor/plant thermal power used by RX/plant-power scale laws',3417.0,'MWt',NULL,NULL,'scale_P',0); +INSERT INTO lpsr_variable VALUES(615,'ref_sfp_V','Reference SFP volume for Fuel Storage, Cleaning, & Inspection Equipment 225.4',1056.0,'m^3',NULL,NULL,'scale_sfp_V',0); +INSERT INTO lpsr_variable VALUES(616,'ref_sub_str_S','Reference Substructure S for Roof Deck 213.144',6100.0,'m^2',NULL,NULL,'scale_sub_str_S',0); +INSERT INTO lpsr_variable VALUES(617,'ref_sub_str_V','Reference Substructure volume for Substructure Concrete 212.13',4603.0,'m^3',NULL,NULL,'scale_sub_str_V',0); +INSERT INTO lpsr_variable VALUES(618,'ref_sup_str_S','Reference Superstructure S for Painting 212.149',9373.0,'m^2',NULL,NULL,'scale_sup_str_S',0); +INSERT INTO lpsr_variable VALUES(619,'ref_sup_str_V','Reference Superstructure volume for Concrete Work 212.141',11248.0,'m^3',NULL,NULL,'scale_sup_str_V',0); +INSERT INTO lpsr_variable VALUES(620,'ref_turb_gen_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 213.13',1830.0,'m^3',NULL,NULL,'scale_turb_gen_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(621,'ref_turb_gen_bldg_sup_S','Reference Superstructure S for Exterior Walls 213.143',17040.0,'m^2',NULL,NULL,'scale_turb_gen_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(622,'ref_turb_gen_bldg_sup_vol','Reference Superstructure volume for Concrete Work 213.141',5112.0,'m^3',NULL,NULL,'scale_turb_gen_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(623,'ref_V_of_212_213_215_216_217','Reference Volume of 212, 213, 215, 216, 217 for Fill & Backfill (Place/Comp) 211.712',416524.0,'m^3',NULL,NULL,'scale_V_of_212_213_215_216_217',0); +INSERT INTO lpsr_variable VALUES(624,'ref_waste_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 216.142',53328.0,'m^3',NULL,NULL,'scale_waste_bldg_bldg_vol',0); +INSERT INTO lpsr_variable VALUES(625,'ref_waste_bldg_sub_S','Reference Substructure S for Roof Deck 216.144',1728.0,'m^2',NULL,NULL,'scale_waste_bldg_sub_S',0); +INSERT INTO lpsr_variable VALUES(626,'ref_waste_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 216.13',2074.0,'m^3',NULL,NULL,'scale_waste_bldg_sub_vol',0); +INSERT INTO lpsr_variable VALUES(627,'ref_waste_bldg_sup_S','Reference Superstructure S for Exterior Walls 216.143',7380.0,'m^2',NULL,NULL,'scale_waste_bldg_sup_S',0); +INSERT INTO lpsr_variable VALUES(628,'ref_waste_bldg_sup_vol','Reference Superstructure volume for Concrete Work 216.141',4428.0,'m^3',NULL,NULL,'scale_waste_bldg_sup_vol',0); +INSERT INTO lpsr_variable VALUES(629,'scale_adm_bldg_bldg_vol','Admin Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_admin_bldg','adm_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin','ce_218B_24_mat, ce_218B_24_lab',0); +INSERT INTO lpsr_variable VALUES(630,'scale_S','Site Area scale factor = (new base unit value / Reference unit value)^exponent.',0.3709677419354838745,'1','scale_law_site_S','S, ref_S, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(631,'scale_bldg_V','Building Volume scale factor = (new base unit value / Reference unit value)^exponent.',0.9169433962264151861,'1','scale_law_bldg_V','bldg_V, ref_bldg_V, exp_lin','ce_213_142_mat, ce_213_142_lab, ce_213_146_mat, ce_213_146_lab, ce_213_147_mat, ce_213_147_lab',0); +INSERT INTO lpsr_variable VALUES(632,'scale_cont_hatch_ms_bldg_vol','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_containment','cont_hatch_ms_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(633,'scale_cont_V','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.933844215884505946,'1','scale_law_containment','cont_V, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(634,'scale_cr_dg_bldg_bldg_vol','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.05455067470571339782,'1','scale_law_control_dg_bldg','cr_dg_bldg_bldg_vol, ref_cr_dg_bldg_bldg_vol, exp_lin','ce_218A_142_mat, ce_218A_142_lab, ce_218A_146_mat, ce_218A_146_lab, ce_218A_147_mat, ce_218A_147_lab, ce_218A_148_mat, ce_218A_148_lab, ce_218A_21_mat, ce_218A_21_lab, ce_218A_235_fac, ce_218A_235_mat, ce_218A_235_lab, ce_218A_236_fac, ce_218A_236_mat, ce_218A_236_lab, ce_218A_237_fac, ce_218A_24_mat, ce_218A_24_lab',0); +INSERT INTO lpsr_variable VALUES(635,'scale_cr_dg_bldg_sub_S','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.2010582010582009915,'1','scale_law_control_dg_bldg','cr_dg_bldg_sub_S, ref_cr_dg_bldg_sub_S, exp_lin','ce_218A_145_mat, ce_218A_145_lab',0); +INSERT INTO lpsr_variable VALUES(636,'scale_cr_dg_bldg_sub_vol','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.1005291005291004957,'1','scale_law_control_dg_bldg','cr_dg_bldg_sub_vol, ref_cr_dg_bldg_sub_vol, exp_lin','ce_218A_13_mat, ce_218A_13_lab',0); +INSERT INTO lpsr_variable VALUES(637,'scale_cr_dg_bldg_sup_S','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.08724832214765100569,'1','scale_law_control_dg_bldg','cr_dg_bldg_sup_S, ref_cr_dg_bldg_sup_S, exp_lin','ce_218A_149_mat, ce_218A_149_lab',0); +INSERT INTO lpsr_variable VALUES(638,'scale_cr_dg_bldg_sup_vol','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.04362183754993340101,'1','scale_law_control_dg_bldg','cr_dg_bldg_sup_vol, ref_cr_dg_bldg_sup_vol, exp_lin','ce_218A_141_mat, ce_218A_141_lab',0); +INSERT INTO lpsr_variable VALUES(639,'scale_elec_P','Electric Power scale factor = (new base unit value / Reference unit value)^exponent.',0.981073892801862746,'1','scale_law_elec_P','elec_P, ref_elec_P, exp_elec_P',NULL,0); +INSERT INTO lpsr_variable VALUES(640,'scale_elec_tunnel_bldg_vol','Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_electrical_bldg','elec_tunnel_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(641,'scale_frm_flow','Formula Flow Rate direct formula scale factor.',0.928566011725832419,'1','formula_scale_flow_rate','uc_frm_flow, frm_flow, ref_direct_cost_frm_flow','ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab',0); +INSERT INTO lpsr_variable VALUES(642,'scale_frm_fuel_cask_cap','Formula Fuel Cask Capacity direct formula scale factor.',1.003238413605852308,'1','formula_scale_fuel_cask_capacity','uc_frm_fuel_cap, frm_fuel_cask_cap, ref_direct_cost_frm_fuel_cask_cap','ce_225_114_fac, ce_225_114_mat, ce_225_114_lab',0); +INSERT INTO lpsr_variable VALUES(643,'scale_frm_fuel_crane_cap','Formula Fuel Crane Capacity direct formula scale factor.',1.075252861593902321,'1','formula_scale_fuel_crane_capacity','uc_frm_fuel_cap, frm_fuel_crane_cap, ref_direct_cost_frm_fuel_crane_cap','ce_225_111_fac, ce_225_111_mat, ce_225_111_lab',0); +INSERT INTO lpsr_variable VALUES(644,'scale_frm_ht_S','Formula Ht Surface Area direct formula scale factor.',1.301355535578422762,'1','formula_scale_ht_surface_S','uc_frm_ht_S, frm_ht_S, ref_direct_cost_frm_ht_S','ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab',0); +INSERT INTO lpsr_variable VALUES(645,'scale_frm_prz_M','Formula Pressurizer Mass direct formula scale factor.',1.114840490754214875,'1','formula_scale_pressurizer_mass','uc_frm_prz_M, frm_prz_M, ref_direct_cost_frm_prz_M',NULL,0); +INSERT INTO lpsr_variable VALUES(646,'scale_frm_S','Formula Surface Area direct formula scale factor.',17866000.0,'1','formula_scale_surface_S','uc_frm_S, frm_S, ref_direct_cost_frm_S',NULL,0); +INSERT INTO lpsr_variable VALUES(647,'scale_frm_S_9_71886e_06','Formula Surface Area 9 71886E 06 direct formula scale factor.',0.8823748210052966279,'1','formula_scale_surface_S_9_71886e_06','uc_frm_S_9_71886e_06, frm_S_9_71886e_06, ref_direct_cost_frm_S_9_71886e_06',NULL,0); +INSERT INTO lpsr_variable VALUES(648,'scale_frm_vsl_M','Formula Vessel Mass direct formula scale factor.',0.9091005252450700125,'1','formula_scale_vessel_mass','uc_frm_vsl_M, frm_vsl_M, ref_direct_cost_frm_vsl_M',NULL,0); +INSERT INTO lpsr_variable VALUES(649,'scale_fuel_stor_bldg_bldg_vol','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.65625,'1','scale_law_fuel_storage','fuel_stor_bldg_bldg_vol, ref_fuel_stor_bldg_bldg_vol, exp_lin','ce_217_142_mat, ce_217_142_lab, ce_217_147_mat, ce_217_147_lab',0); +INSERT INTO lpsr_variable VALUES(650,'scale_fuel_stor_bldg_sub_S','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.7777777777777777901,'1','scale_law_fuel_storage','fuel_stor_bldg_sub_S, ref_fuel_stor_bldg_sub_S, exp_lin','ce_217_145_mat, ce_217_145_lab',0); +INSERT INTO lpsr_variable VALUES(651,'scale_fuel_stor_bldg_sub_vol','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.388888888888888895,'1','scale_law_fuel_storage','fuel_stor_bldg_sub_vol, ref_fuel_stor_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(652,'scale_fuel_stor_bldg_sup_S','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.7453125000000000444,'1','scale_law_fuel_storage','fuel_stor_bldg_sup_S, ref_fuel_stor_bldg_sup_S, exp_lin','ce_217_149_mat, ce_217_149_lab',0); +INSERT INTO lpsr_variable VALUES(653,'scale_fuel_stor_bldg_sup_vol','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.3726562500000000222,'1','scale_law_fuel_storage','fuel_stor_bldg_sup_vol, ref_fuel_stor_bldg_sup_vol, exp_lin','ce_217_141_mat, ce_217_141_lab',0); +INSERT INTO lpsr_variable VALUES(654,'scale_mc_piping_M','Piping Mass scale factor = (new base unit value / Reference unit value)^exponent.',0.5,'1','scale_law_piping_mass','mc_piping_M, ref_mc_piping_M, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(655,'scale_non_ess_swgr_bldg_bldg_vol','Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_electrical_bldg','non_ess_swgr_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(656,'scale_n_crs','Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.',1.210526315789473673,'1','scale_law_reactor_equipment','n_crs, ref_n_crs, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(657,'scale_P','Power scale factor for plant/reactor thermal power based direct-cost accounts',0.996017916397094027,'1','scale_law_power','rx_P, ref_rx_P, exp_P','ce_211_711_mat, ce_211_711_lab, ce_215_221_fac, ce_215_221_mat, ce_215_221_lab, ce_215_222_fac, ce_215_222_mat, ce_215_222_lab, ce_215_223_fac, ce_215_223_mat, ce_215_223_lab, ce_215_224_fac, ce_215_224_mat, ce_215_224_lab, ce_215_228_fac, ce_215_228_mat, ce_215_228_lab, ce_218A_231_fac, ce_218A_231_mat, ce_218A_231_lab, ce_218A_232_fac, ce_218A_232_mat, ce_218A_232_lab, ce_218A_233_fac, ce_218A_233_mat, ce_218A_233_lab, ce_218A_234_fac, ce_218A_234_mat, ce_218A_234_lab, ce_218A_238_fac, ce_218A_238_mat, ce_218A_238_lab, ce_218B_22_fac, ce_218B_22_mat, ce_218B_22_lab, ce_218B_23_fac, ce_218B_23_mat, ce_218B_23_lab',0); +INSERT INTO lpsr_variable VALUES(658,'scale_pri_aux_bldg_bldg_vol','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3686520203135350004,'1','scale_law_primary_aux_bldg','pri_aux_bldg_bldg_vol, ref_pri_aux_bldg_bldg_vol, exp_lin','ce_215_142_mat, ce_215_142_lab, ce_215_146_mat, ce_215_146_lab, ce_215_147_mat, ce_215_147_lab, ce_215_225_fac, ce_215_225_mat, ce_215_225_lab, ce_215_226_fac, ce_215_226_mat, ce_215_226_lab, ce_215_227_fac',0); +INSERT INTO lpsr_variable VALUES(659,'scale_pri_aux_bldg_sub_S','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.5432766615146831234,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sub_S, ref_pri_aux_bldg_sub_S, exp_lin','ce_215_145_mat, ce_215_145_lab',0); +INSERT INTO lpsr_variable VALUES(660,'scale_pri_aux_bldg_sub_vol','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.5432066967160334992,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sub_vol, ref_pri_aux_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(661,'scale_pri_aux_bldg_sup_S','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3838383838383838121,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sup_S, ref_pri_aux_bldg_sup_S, exp_lin','ce_215_149_mat, ce_215_149_lab',0); +INSERT INTO lpsr_variable VALUES(662,'scale_pri_aux_bldg_sup_vol','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3838845460012025867,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sup_vol, ref_pri_aux_bldg_sup_vol, exp_lin','ce_215_141_mat, ce_215_141_lab',0); +INSERT INTO lpsr_variable VALUES(663,'scale_pri_flow','Flow Rate scale factor = (new base unit value / Reference unit value)^exponent.',0.8717574764492064254,'1','scale_law_flow_rate','pri_flow, ref_pri_flow, exp_pri_flow',NULL,0); +INSERT INTO lpsr_variable VALUES(664,'scale_rx_D','Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.',0.956994328922495586,'1','scale_law_reactor_equipment','rx_D, ref_rx_D, exp_rx_D',NULL,0); +INSERT INTO lpsr_variable VALUES(665,'scale_rej_th_P','Heat Rejection scale factor = (new base unit value / Reference unit value)^exponent.',1.003518031940658917,'1','scale_law_heat_rejection','rej_th_P, ref_rej_th_P, exp_P',NULL,0); +INSERT INTO lpsr_variable VALUES(666,'scale_sfp_V','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.7736561975373580368,'1','scale_law_fuel_storage','sfp_V, ref_sfp_V, exp_sfp_V',NULL,0); +INSERT INTO lpsr_variable VALUES(667,'scale_sub_str_S','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.6780327868852459306,'1','scale_law_containment','sub_str_S, ref_sub_str_S, exp_lin','ce_213_144_mat, ce_213_144_lab, ce_213_145_mat, ce_213_145_lab',0); +INSERT INTO lpsr_variable VALUES(668,'scale_sub_str_V','Containment scale factor = (new base unit value / Reference unit value)^exponent.',1.000033848320524221,'1','scale_law_containment','sub_str_V, ref_sub_str_V, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(669,'scale_sup_const','Containment scale factor = (new base unit value / Reference unit value)^exponent.',1.004985654388968808,'1','scale_law_containment','sup_const, ref_cmn_bldg_vol, exp_lin','ce_212_140_fac, ce_212_140_mat, ce_212_140_lab, ce_212_142_mat, ce_212_142_lab',0); +INSERT INTO lpsr_variable VALUES(670,'scale_sup_str_S','Containment scale factor = (new base unit value / Reference unit value)^exponent.',1.004438194875893587,'1','scale_law_containment','sup_str_S, ref_sup_str_S, exp_lin','ce_212_149_mat, ce_212_149_lab',0); +INSERT INTO lpsr_variable VALUES(671,'scale_sup_str_V','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.8370020626397359776,'1','scale_law_containment','sup_str_S, ref_sup_str_V, exp_lin','ce_212_14111_mat, ce_212_14111_lab, ce_212_14112_mat, ce_212_14112_lab, ce_212_14113_mat, ce_212_14113_lab, ce_212_14114_mat, ce_212_14114_lab, ce_212_14115_mat, ce_212_14115_lab, ce_212_14116_mat, ce_212_14116_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14118_mat, ce_212_14118_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14122_mat, ce_212_14122_lab, ce_212_14123_mat, ce_212_14123_lab, ce_212_14125_mat, ce_212_14125_lab, ce_212_14127_mat, ce_212_14127_lab, ce_212_14128_mat, ce_212_14128_lab, ce_212_1419_mat, ce_212_1419_lab',0); +INSERT INTO lpsr_variable VALUES(672,'scale_turb_gen_bldg_sub_vol','Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.6780327868852459306,'1','scale_law_turbine_bldg','turb_gen_bldg_sub_vol, ref_turb_gen_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(673,'scale_turb_gen_bldg_sup_S','Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.7447183098591548811,'1','scale_law_turbine_bldg','turb_gen_bldg_sup_S, ref_turb_gen_bldg_sup_S, exp_lin','ce_213_143_mat, ce_213_143_lab, ce_213_149_mat, ce_213_149_lab',0); +INSERT INTO lpsr_variable VALUES(674,'scale_turb_gen_bldg_sup_vol','Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.7447183098591548811,'1','scale_law_turbine_bldg','turb_gen_bldg_sup_vol, ref_turb_gen_bldg_sup_vol, exp_lin','ce_213_141_mat, ce_213_141_lab',0); +INSERT INTO lpsr_variable VALUES(675,'scale_tur_plant_equip_elec_P','Turbine Equipment scale factor = (new base unit value / Reference unit value)^exponent.',0.985771570912432393,'1','scale_law_turbine_equipment','elec_P, ref_elec_P, exp_tur_plant_equip_elec_P',NULL,0); +INSERT INTO lpsr_variable VALUES(676,'scale_V_of_212_213_215_216_217','Volume Of 212 213 215 216 217 scale factor = (new base unit value / Reference unit value)^exponent.',0.8072164301676766351,'1','scale_law_V_of_212_213_215_216_217','V_of_212_213_215_216_217, ref_V_of_212_213_215_216_217, exp_lin','ce_211_712_fac, ce_211_712_mat, ce_211_712_lab',0); +INSERT INTO lpsr_variable VALUES(677,'scale_waste_bldg_bldg_vol','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3159315931593159044,'1','scale_law_waste_bldg','waste_bldg_bldg_vol, ref_waste_bldg_bldg_vol, exp_lin','ce_216_142_mat, ce_216_142_lab, ce_216_146_mat, ce_216_146_lab, ce_216_147_mat, ce_216_147_lab, ce_216_148_mat, ce_216_148_lab',0); +INSERT INTO lpsr_variable VALUES(678,'scale_waste_bldg_sub_S','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.75,'1','scale_law_waste_bldg','waste_bldg_sub_S, ref_waste_bldg_sub_S, exp_lin','ce_216_144_mat, ce_216_144_lab, ce_216_145_mat, ce_216_145_lab',0); +INSERT INTO lpsr_variable VALUES(679,'scale_waste_bldg_sub_vol','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.7498553519768563768,'1','scale_law_waste_bldg','waste_bldg_sub_vol, ref_waste_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(680,'scale_waste_bldg_sup_S','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.2747967479674796043,'1','scale_law_waste_bldg','waste_bldg_sup_S, ref_waste_bldg_sup_S, exp_lin','ce_216_143_mat, ce_216_143_lab, ce_216_149_mat, ce_216_149_lab',0); +INSERT INTO lpsr_variable VALUES(681,'scale_waste_bldg_sup_vol','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.2747967479674796043,'1','scale_law_waste_bldg','waste_bldg_sup_vol, ref_waste_bldg_sup_vol, exp_lin','ce_216_141_mat, ce_216_141_lab',0); +INSERT INTO lpsr_variable VALUES(682,'scale_wwt_bldg_bldg_vol','Wastewater Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_wastewater_bldg','wwt_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO lpsr_variable VALUES(683,'ce_211_711_fac','Open Cut factory equipment cost for 211.711',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(684,'ce_211_711_mat','Open Cut site material cost for 211.711',4422650.226751341485,'$','category_scale','ref_211_711_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(685,'ce_211_711_lab','Open Cut site labor cost for 211.711',15065631.54498581403,'$','category_scale','ref_211_711_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(686,'ce_211_712_fac','Fill & Backfill (Place/Comp) factory equipment cost for 211.712',198292.7160706897558,'$','category_scale','ref_211_712_fac, scale_V_of_212_213_215_216_217',NULL,0); +INSERT INTO lpsr_variable VALUES(687,'ce_211_712_mat','Fill & Backfill (Place/Comp) site material cost for 211.712',10818782.25794601999,'$','category_scale','ref_211_712_mat, scale_V_of_212_213_215_216_217',NULL,0); +INSERT INTO lpsr_variable VALUES(688,'ce_211_712_lab','Fill & Backfill (Place/Comp) site labor cost for 211.712',12629880.67976078764,'$','category_scale','ref_211_712_lab, scale_V_of_212_213_215_216_217',NULL,0); +INSERT INTO lpsr_variable VALUES(689,'ce_212_141_fac','Concrete Work factory equipment cost for 212.141',0.0,'$','sum_all','ce_212_1411_fac, ce_212_1412_fac, ce_212_1419_fac',NULL,0); +INSERT INTO lpsr_variable VALUES(690,'ce_212_141_mat','Concrete Work site material cost for 212.141',14052106.24287711643,'$','sum_all','ce_212_1411_mat, ce_212_1412_mat, ce_212_1419_mat',NULL,0); +INSERT INTO lpsr_variable VALUES(691,'ce_212_141_lab','Concrete Work site labor cost for 212.141',9164034.594639373944,'$','sum_all','ce_212_1411_lab, ce_212_1412_lab, ce_212_1419_lab',NULL,0); +INSERT INTO lpsr_variable VALUES(692,'ce_212_1411_fac','Containment Shell factory equipment cost for 212.1411',0.0,'$','sum_all','ce_212_14111_fac, ce_212_14112_fac, ce_212_14113_fac, ce_212_14114_fac, ce_212_14115_fac, ce_212_14116_fac, ce_212_14117_fac, ce_212_14118_fac','ce_212_141_fac',0); +INSERT INTO lpsr_variable VALUES(693,'ce_212_1411_mat','Containment Shell site material cost for 212.1411',10199269.0466403123,'$','sum_all','ce_212_14111_mat, ce_212_14112_mat, ce_212_14113_mat, ce_212_14114_mat, ce_212_14115_mat, ce_212_14116_mat, ce_212_14117_mat, ce_212_14118_mat','ce_212_141_mat',0); +INSERT INTO lpsr_variable VALUES(694,'ce_212_1411_lab','Containment Shell site labor cost for 212.1411',5715505.323950598948,'$','sum_all','ce_212_14111_lab, ce_212_14112_lab, ce_212_14113_lab, ce_212_14114_lab, ce_212_14115_lab, ce_212_14116_lab, ce_212_14117_lab, ce_212_14118_lab','ce_212_141_lab',0); +INSERT INTO lpsr_variable VALUES(695,'ce_212_14111_fac','Formwork factory equipment cost for 212.14111',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(696,'ce_212_14111_mat','Formwork site material cost for 212.14111',0.0,'$','category_scale','ref_212_14111_mat, scale_sup_str_V, adj_none','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(697,'ce_212_14111_lab','Formwork site labor cost for 212.14111',0.0,'$','category_scale','ref_212_14111_lab, scale_sup_str_V, adj_none','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(698,'ce_212_14112_fac','Reinforcing Steel factory equipment cost for 212.14112',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(699,'ce_212_14112_mat','Reinforcing Steel site material cost for 212.14112',8380508.768929803743,'$','category_scale','ref_212_14112_mat, scale_sup_str_V, adj_cont_mat_1_48','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(700,'ce_212_14112_lab','Reinforcing Steel site labor cost for 212.14112',1564590.356876003556,'$','category_scale','ref_212_14112_lab, scale_sup_str_V, adj_212_14112_lab','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(701,'ce_212_14113_fac','Concrete factory equipment cost for 212.14113',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(702,'ce_212_14113_mat','Concrete site material cost for 212.14113',1371366.345754568232,'$','category_scale','ref_212_14113_mat, scale_sup_str_V','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(703,'ce_212_14113_lab','Concrete site labor cost for 212.14113',2687756.528683356941,'$','category_scale','ref_212_14113_lab, scale_sup_str_V','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(704,'ce_212_14114_fac','Embedded Steel factory equipment cost for 212.14114',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(705,'ce_212_14114_mat','Embedded Steel site material cost for 212.14114',165512.6083622963051,'$','category_scale','ref_212_14114_mat, scale_sup_str_V','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(706,'ce_212_14114_lab','Embedded Steel site labor cost for 212.14114',454525.0145292392116,'$','category_scale','ref_212_14114_lab, scale_sup_str_V','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(707,'ce_212_14115_fac','Rubbing Surfaces factory equipment cost for 212.14115',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(708,'ce_212_14115_mat','Rubbing Surfaces site material cost for 212.14115',22026.0755169871809,'$','category_scale','ref_212_14115_mat, scale_sup_str_V','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(709,'ce_212_14115_lab','Rubbing Surfaces site labor cost for 212.14115',373300.2284734895802,'$','category_scale','ref_212_14115_lab, scale_sup_str_V','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(710,'ce_212_14116_fac','Waterproofing factory equipment cost for 212.14116',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(711,'ce_212_14116_mat','Waterproofing site material cost for 212.14116',14395.61364181819408,'$','category_scale','ref_212_14116_mat, scale_sup_str_V','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(712,'ce_212_14116_lab','Waterproofing site labor cost for 212.14116',37787.93662342439348,'$','category_scale','ref_212_14116_lab, scale_sup_str_V','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(713,'ce_212_14117_fac','Cadwelds factory equipment cost for 212.14117',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(714,'ce_212_14117_mat','Cadwelds site material cost for 212.14117',0.0,'$','category_scale','ref_212_14117_mat, scale_sup_str_V, adj_none','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(715,'ce_212_14117_lab','Cadwelds site labor cost for 212.14117',0.0,'$','category_scale','ref_212_14117_lab, scale_sup_str_V, adj_none','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(716,'ce_212_14118_fac','Construction Joints factory equipment cost for 212.14118',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO lpsr_variable VALUES(717,'ce_212_14118_mat','Construction Joints site material cost for 212.14118',245459.6344348382262,'$','category_scale','ref_212_14118_mat, scale_sup_str_V','ce_212_1411_mat',0); +INSERT INTO lpsr_variable VALUES(718,'ce_212_14118_lab','Construction Joints site labor cost for 212.14118',597545.258765084669,'$','category_scale','ref_212_14118_lab, scale_sup_str_V','ce_212_1411_lab',0); +INSERT INTO lpsr_variable VALUES(719,'ce_212_1412_fac','Containment Dome factory equipment cost for 212.1412',0.0,'$','sum_all','ce_212_14121_fac, ce_212_14122_fac, ce_212_14123_fac, ce_212_14125_fac, ce_212_14127_fac, ce_212_14128_fac','ce_212_141_fac',0); +INSERT INTO lpsr_variable VALUES(720,'ce_212_1412_mat','Containment Dome site material cost for 212.1412',3658110.955731711817,'$','sum_all','ce_212_14121_mat, ce_212_14122_mat, ce_212_14123_mat, ce_212_14125_mat, ce_212_14127_mat, ce_212_14128_mat','ce_212_141_mat',0); +INSERT INTO lpsr_variable VALUES(721,'ce_212_1412_lab','Containment Dome site labor cost for 212.1412',2781923.024968618061,'$','sum_all','ce_212_14121_lab, ce_212_14122_lab, ce_212_14123_lab, ce_212_14125_lab, ce_212_14127_lab, ce_212_14128_lab','ce_212_141_lab',0); +INSERT INTO lpsr_variable VALUES(722,'ce_212_14121_fac','Formwork factory equipment cost for 212.14121',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO lpsr_variable VALUES(723,'ce_212_14121_mat','Formwork site material cost for 212.14121',0.0,'$','category_scale','ref_212_14121_mat, scale_sup_str_V, adj_none','ce_212_1412_mat',0); +INSERT INTO lpsr_variable VALUES(724,'ce_212_14121_lab','Formwork site labor cost for 212.14121',0.0,'$','category_scale','ref_212_14121_lab, scale_sup_str_V, adj_none','ce_212_1412_lab',0); +INSERT INTO lpsr_variable VALUES(725,'ce_212_14122_fac','Reinforcing Steel factory equipment cost for 212.14122',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO lpsr_variable VALUES(726,'ce_212_14122_mat','Reinforcing Steel site material cost for 212.14122',3108898.414640051778,'$','category_scale','ref_212_14122_mat, scale_sup_str_V, adj_cont_mat_1_48','ce_212_1412_mat',0); +INSERT INTO lpsr_variable VALUES(727,'ce_212_14122_lab','Reinforcing Steel site labor cost for 212.14122',1564590.356876003556,'$','category_scale','ref_212_14122_lab, scale_sup_str_V, adj_212_14122_lab','ce_212_1412_lab',0); +INSERT INTO lpsr_variable VALUES(728,'ce_212_14123_fac','Concrete factory equipment cost for 212.14123',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO lpsr_variable VALUES(729,'ce_212_14123_mat','Concrete site material cost for 212.14123',492836.2763720937074,'$','category_scale','ref_212_14123_mat, scale_sup_str_V','ce_212_1412_mat',0); +INSERT INTO lpsr_variable VALUES(730,'ce_212_14123_lab','Concrete site labor cost for 212.14123',965916.670857400401,'$','category_scale','ref_212_14123_lab, scale_sup_str_V','ce_212_1412_lab',0); +INSERT INTO lpsr_variable VALUES(731,'ce_212_14125_fac','Rubbing Surfaces factory equipment cost for 212.14125',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO lpsr_variable VALUES(732,'ce_212_14125_mat','Rubbing Surfaces site material cost for 212.14125',7866.455541661564894,'$','category_scale','ref_212_14125_mat, scale_sup_str_V','ce_212_1412_mat',0); +INSERT INTO lpsr_variable VALUES(733,'ce_212_14125_lab','Rubbing Surfaces site labor cost for 212.14125',133321.2491440316081,'$','category_scale','ref_212_14125_lab, scale_sup_str_V','ce_212_1412_lab',0); +INSERT INTO lpsr_variable VALUES(734,'ce_212_14127_fac','Cadwelds factory equipment cost for 212.14127',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO lpsr_variable VALUES(735,'ce_212_14127_mat','Cadwelds site material cost for 212.14127',0.0,'$','category_scale','ref_212_14127_mat, scale_sup_str_V, adj_none','ce_212_1412_mat',0); +INSERT INTO lpsr_variable VALUES(736,'ce_212_14127_lab','Cadwelds site labor cost for 212.14127',0.0,'$','category_scale','ref_212_14127_lab, scale_sup_str_V, adj_none','ce_212_1412_lab',0); +INSERT INTO lpsr_variable VALUES(737,'ce_212_14128_fac','Construction Joints factory equipment cost for 212.14128',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO lpsr_variable VALUES(738,'ce_212_14128_mat','Construction Joints site material cost for 212.14128',48509.80917790415697,'$','category_scale','ref_212_14128_mat, scale_sup_str_V','ce_212_1412_mat',0); +INSERT INTO lpsr_variable VALUES(739,'ce_212_14128_lab','Construction Joints site labor cost for 212.14128',118094.7480911821621,'$','category_scale','ref_212_14128_lab, scale_sup_str_V','ce_212_1412_lab',0); +INSERT INTO lpsr_variable VALUES(740,'ce_212_140_fac','Interior Concrete factory equipment cost for 212.140',3384358.55023979023,'$','category_scale','ref_212_140_fac, scale_sup_const',NULL,0); +INSERT INTO lpsr_variable VALUES(741,'ce_212_140_mat','Interior Concrete site material cost for 212.140',13289138.40266117639,'$','category_scale','ref_212_140_mat, scale_sup_const',NULL,0); +INSERT INTO lpsr_variable VALUES(742,'ce_212_140_lab','Interior Concrete site labor cost for 212.140',45514958.84916845709,'$','category_scale','ref_212_140_lab, scale_sup_const',NULL,0); +INSERT INTO lpsr_variable VALUES(743,'ce_212_1419_fac','Removable Plugs factory equipment cost for 212.1419',0.0,'$',NULL,NULL,'ce_212_141_fac',0); +INSERT INTO lpsr_variable VALUES(744,'ce_212_1419_mat','Removable Plugs site material cost for 212.1419',194726.2405050928356,'$','category_scale','ref_212_1419_mat, scale_sup_str_V','ce_212_141_mat',0); +INSERT INTO lpsr_variable VALUES(745,'ce_212_1419_lab','Removable Plugs site labor cost for 212.1419',666606.2457201580983,'$','category_scale','ref_212_1419_lab, scale_sup_str_V','ce_212_141_lab',0); +INSERT INTO lpsr_variable VALUES(746,'ce_212_142_fac','Structural & Miscellaneous Steel factory equipment cost for 212.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(747,'ce_212_142_mat','Structural & Miscellaneous Steel site material cost for 212.142',3837058.018969011958,'$','category_scale','ref_212_142_mat, scale_sup_const',NULL,0); +INSERT INTO lpsr_variable VALUES(748,'ce_212_142_lab','Structural & Miscellaneous Steel site labor cost for 212.142',2923632.663465120829,'$','category_scale','ref_212_142_lab, scale_sup_const',NULL,0); +INSERT INTO lpsr_variable VALUES(749,'ce_212_149_fac','Painting factory equipment cost for 212.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(750,'ce_212_149_mat','Painting site material cost for 212.149',2468990.606222157366,'$','category_scale','ref_212_149_mat, scale_sup_str_S',NULL,0); +INSERT INTO lpsr_variable VALUES(751,'ce_212_149_lab','Painting site labor cost for 212.149',12605539.13780038245,'$','category_scale','ref_212_149_lab, scale_sup_str_S',NULL,0); +INSERT INTO lpsr_variable VALUES(752,'ce_213_141_fac','Concrete Work factory equipment cost for 213.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(753,'ce_213_141_mat','Concrete Work site material cost for 213.141',473512.8412995844847,'$','category_scale','ref_213_141_mat, scale_turb_gen_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(754,'ce_213_141_lab','Concrete Work site labor cost for 213.141',1221163.228185211309,'$','category_scale','ref_213_141_lab, scale_turb_gen_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(755,'ce_213_142_fac','Structural & Miscellaneous Steel factory equipment cost for 213.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(756,'ce_213_142_mat','Structural & Miscellaneous Steel site material cost for 213.142',22438700.41580560804,'$','category_scale','ref_213_142_mat, scale_bldg_V',NULL,0); +INSERT INTO lpsr_variable VALUES(757,'ce_213_142_lab','Structural & Miscellaneous Steel site labor cost for 213.142',14169619.2105070483,'$','category_scale','ref_213_142_lab, scale_bldg_V',NULL,0); +INSERT INTO lpsr_variable VALUES(758,'ce_213_143_fac','Exterior Walls factory equipment cost for 213.143',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(759,'ce_213_143_mat','Exterior Walls site material cost for 213.143',1819014.735324295936,'$','category_scale','ref_213_143_mat, scale_turb_gen_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(760,'ce_213_143_lab','Exterior Walls site labor cost for 213.143',1575247.563191725406,'$','category_scale','ref_213_143_lab, scale_turb_gen_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(761,'ce_213_144_fac','Roof Deck factory equipment cost for 213.144',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(762,'ce_213_144_mat','Roof Deck site material cost for 213.144',627619.9902490623062,'$','category_scale','ref_213_144_mat, scale_sub_str_S',NULL,0); +INSERT INTO lpsr_variable VALUES(763,'ce_213_144_lab','Roof Deck site labor cost for 213.144',604987.2644135082373,'$','category_scale','ref_213_144_lab, scale_sub_str_S',NULL,0); +INSERT INTO lpsr_variable VALUES(764,'ce_213_145_fac','Roofing & Flashing factory equipment cost for 213.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(765,'ce_213_145_mat','Roofing & Flashing site material cost for 213.145',297638.9385733770905,'$','category_scale','ref_213_145_mat, scale_sub_str_S',NULL,0); +INSERT INTO lpsr_variable VALUES(766,'ce_213_145_lab','Roofing & Flashing site labor cost for 213.145',320601.8450655738125,'$','category_scale','ref_213_145_lab, scale_sub_str_S',NULL,0); +INSERT INTO lpsr_variable VALUES(767,'ce_213_146_fac','Interior Walls & Partition factory equipment cost for 213.146',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(768,'ce_213_146_mat','Interior Walls & Partition site material cost for 213.146',260426.9110328308888,'$','category_scale','ref_213_146_mat, scale_bldg_V',NULL,0); +INSERT INTO lpsr_variable VALUES(769,'ce_213_146_lab','Interior Walls & Partition site labor cost for 213.146',407182.9200146566145,'$','category_scale','ref_213_146_lab, scale_bldg_V',NULL,0); +INSERT INTO lpsr_variable VALUES(770,'ce_213_147_fac','Doors & Windows factory equipment cost for 213.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(771,'ce_213_147_mat','Doors & Windows site material cost for 213.147',903580.1334755552235,'$','category_scale','ref_213_147_mat, scale_bldg_V',NULL,0); +INSERT INTO lpsr_variable VALUES(772,'ce_213_147_lab','Doors & Windows site labor cost for 213.147',590330.5279731657357,'$','category_scale','ref_213_147_lab, scale_bldg_V',NULL,0); +INSERT INTO lpsr_variable VALUES(773,'ce_213_149_fac','Painting factory equipment cost for 213.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(774,'ce_213_149_mat','Painting site material cost for 213.149',94462.5278440140828,'$','category_scale','ref_213_149_mat, scale_turb_gen_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(775,'ce_213_149_lab','Painting site labor cost for 213.149',1639057.314786971547,'$','category_scale','ref_213_149_lab, scale_turb_gen_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(776,'ce_215_141_fac','Concrete Work factory equipment cost for 215.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(777,'ce_215_141_mat','Concrete Work site material cost for 215.141',3262104.990817131941,'$','category_scale','ref_215_141_mat, scale_pri_aux_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(778,'ce_215_141_lab','Concrete Work site labor cost for 215.141',10367776.3207931444,'$','category_scale','ref_215_141_lab, scale_pri_aux_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(779,'ce_215_142_fac','Structural & Miscellaneous Steel factory equipment cost for 215.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(780,'ce_215_142_mat','Structural & Miscellaneous Steel site material cost for 215.142',1085567.824147807667,'$','category_scale','ref_215_142_mat, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(781,'ce_215_142_lab','Structural & Miscellaneous Steel site labor cost for 215.142',683150.5168248869013,'$','category_scale','ref_215_142_lab, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(782,'ce_215_145_fac','Roofing & Flashing factory equipment cost for 215.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(783,'ce_215_145_mat','Roofing & Flashing site material cost for 215.145',38679.04266404172813,'$','category_scale','ref_215_145_mat, scale_pri_aux_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(784,'ce_215_145_lab','Roofing & Flashing site labor cost for 215.145',41706.52092709427233,'$','category_scale','ref_215_145_lab, scale_pri_aux_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(785,'ce_215_146_fac','Interior Walls & Partition factory equipment cost for 215.146',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(786,'ce_215_146_mat','Interior Walls & Partition site material cost for 215.146',80622.38030974000867,'$','category_scale','ref_215_146_mat, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(787,'ce_215_146_lab','Interior Walls & Partition site labor cost for 215.146',88142.44585117851966,'$','category_scale','ref_215_146_lab, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(788,'ce_215_147_fac','Doors & Windows factory equipment cost for 215.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(789,'ce_215_147_mat','Doors & Windows site material cost for 215.147',32509.13475523197121,'$','category_scale','ref_215_147_mat, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(790,'ce_215_147_lab','Doors & Windows site labor cost for 215.147',30123.98476871241291,'$','category_scale','ref_215_147_lab, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(791,'ce_215_149_fac','Painting factory equipment cost for 215.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(792,'ce_215_149_mat','Painting site material cost for 215.149',55262.5487232323212,'$','category_scale','ref_215_149_mat, scale_pri_aux_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(793,'ce_215_149_lab','Painting site labor cost for 215.149',261431.5064626262466,'$','category_scale','ref_215_149_lab, scale_pri_aux_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(794,'ce_215_221_fac','Rotating Machinery factory equipment cost for 215.221',2521628.544022134505,'$','category_scale','ref_215_221_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(795,'ce_215_221_mat','Rotating Machinery site material cost for 215.221',28864.40564110573177,'$','category_scale','ref_215_221_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(796,'ce_215_221_lab','Rotating Machinery site labor cost for 215.221',335031.1497269407263,'$','category_scale','ref_215_221_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(797,'ce_215_222_fac','Heat Transfer Equipment factory equipment cost for 215.222',1928702.28556863591,'$','category_scale','ref_215_222_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(798,'ce_215_222_mat','Heat Transfer Equipment site material cost for 215.222',28361.85296869473313,'$','category_scale','ref_215_222_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(799,'ce_215_222_lab','Heat Transfer Equipment site labor cost for 215.222',329297.0853392361315,'$','category_scale','ref_215_222_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(800,'ce_215_223_fac','Tanks & Pressure Vessels factory equipment cost for 215.223',39253.11776857916266,'$','category_scale','ref_215_223_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(801,'ce_215_223_mat','Tanks & Pressure Vessels site material cost for 215.223',2525.095943345807427,'$','category_scale','ref_215_223_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(802,'ce_215_223_lab','Tanks & Pressure Vessels site labor cost for 215.223',30070.02928297626568,'$','category_scale','ref_215_223_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(803,'ce_215_224_fac','Purification & Filtration Equipment factory equipment cost for 215.224',468009.1189754314255,'$','category_scale','ref_215_224_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(804,'ce_215_224_mat','Purification & Filtration Equipment site material cost for 215.224',7880.519205779625736,'$','category_scale','ref_215_224_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(805,'ce_215_224_lab','Purification & Filtration Equipment site labor cost for 215.224',91473.00338756748533,'$','category_scale','ref_215_224_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(806,'ce_215_225_fac','Piping & Ductwork factory equipment cost for 215.225',207580.7802923051932,'$','category_scale','ref_215_225_fac, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(807,'ce_215_225_mat','Piping & Ductwork site material cost for 215.225',409832.3108319992898,'$','category_scale','ref_215_225_mat, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(808,'ce_215_225_lab','Piping & Ductwork site labor cost for 215.225',1860294.642882203916,'$','category_scale','ref_215_225_lab, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(809,'ce_215_226_fac','Valves & Dampers factory equipment cost for 215.226',102810.5957648073673,'$','category_scale','ref_215_226_fac, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(810,'ce_215_226_mat','Valves & Dampers site material cost for 215.226',3410.467256421422917,'$','category_scale','ref_215_226_mat, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(811,'ce_215_226_lab','Valves & Dampers site labor cost for 215.226',40207.10909078991245,'$','category_scale','ref_215_226_lab, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(812,'ce_215_227_fac','Piping & Miscellaneous Items factory equipment cost for 215.227',79866.59286784887081,'$','category_scale','ref_215_227_fac, scale_pri_aux_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(813,'ce_215_227_mat','Piping & Miscellaneous Items site material cost for 215.227',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(814,'ce_215_227_lab','Piping & Miscellaneous Items site labor cost for 215.227',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(815,'ce_215_228_fac','Instrumentation & Control factory equipment cost for 215.228',27529.94817736894766,'$','category_scale','ref_215_228_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(816,'ce_215_228_mat','Instrumentation & Control site material cost for 215.228',1486.076000223098845,'$','category_scale','ref_215_228_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(817,'ce_215_228_lab','Instrumentation & Control site labor cost for 215.228',17479.24218003889473,'$','category_scale','ref_215_228_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(818,'ce_216_141_fac','Concrete Work factory equipment cost for 216.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(819,'ce_216_141_mat','Concrete Work site material cost for 216.141',1963645.668241209584,'$','category_scale','ref_216_141_mat, scale_waste_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(820,'ce_216_141_lab','Concrete Work site labor cost for 216.141',6600126.849979316816,'$','category_scale','ref_216_141_lab, scale_waste_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(821,'ce_216_142_fac','Structural & Miscellaneous Steel factory equipment cost for 216.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(822,'ce_216_142_mat','Structural & Miscellaneous Steel site material cost for 216.142',1086395.994249910117,'$','category_scale','ref_216_142_mat, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(823,'ce_216_142_lab','Structural & Miscellaneous Steel site labor cost for 216.142',669483.7152461204677,'$','category_scale','ref_216_142_lab, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(824,'ce_216_143_fac','Exterior Walls factory equipment cost for 216.143',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(825,'ce_216_143_mat','Exterior Walls site material cost for 216.143',161001.8109203251952,'$','category_scale','ref_216_143_mat, scale_waste_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(826,'ce_216_143_lab','Exterior Walls site labor cost for 216.143',133726.891522276419,'$','category_scale','ref_216_143_lab, scale_waste_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(827,'ce_216_144_fac','Roof Deck factory equipment cost for 216.144',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(828,'ce_216_144_mat','Roof Deck site material cost for 216.144',221100.803812500002,'$','category_scale','ref_216_144_mat, scale_waste_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(829,'ce_216_144_lab','Roof Deck site labor cost for 216.144',230682.6900374999969,'$','category_scale','ref_216_144_lab, scale_waste_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(830,'ce_216_145_fac','Roofing & Flashing factory equipment cost for 216.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(831,'ce_216_145_mat','Roofing & Flashing site material cost for 216.145',96350.5735350000031,'$','category_scale','ref_216_145_mat, scale_waste_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(832,'ce_216_145_lab','Roofing & Flashing site labor cost for 216.145',110519.1284325000016,'$','category_scale','ref_216_145_lab, scale_waste_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(833,'ce_216_146_fac','Interior Walls & Partition factory equipment cost for 216.146',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(834,'ce_216_146_mat','Interior Walls & Partition site material cost for 216.146',1341.17669656255589,'$','category_scale','ref_216_146_mat, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(835,'ce_216_146_lab','Interior Walls & Partition site labor cost for 216.146',1453.173156388838834,'$','category_scale','ref_216_146_lab, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(836,'ce_216_147_fac','Doors & Windows factory equipment cost for 216.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(837,'ce_216_147_mat','Doors & Windows site material cost for 216.147',23702.15865118812144,'$','category_scale','ref_216_147_mat, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(838,'ce_216_147_lab','Doors & Windows site labor cost for 216.147',20971.64083239153115,'$','category_scale','ref_216_147_lab, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(839,'ce_216_148_fac','Wall, Floor, & Ceiling Finishing factory equipment cost for 216.148',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(840,'ce_216_148_mat','Wall, Floor, & Ceiling Finishing site material cost for 216.148',184.8513199795679896,'$','category_scale','ref_216_148_mat, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(841,'ce_216_148_lab','Wall, Floor, & Ceiling Finishing site labor cost for 216.148',3325.209090027002276,'$','category_scale','ref_216_148_lab, scale_waste_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(842,'ce_216_149_fac','Painting factory equipment cost for 216.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(843,'ce_216_149_mat','Painting site material cost for 216.149',25443.96597304064926,'$','category_scale','ref_216_149_mat, scale_waste_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(844,'ce_216_149_lab','Painting site labor cost for 216.149',153517.3818131707376,'$','category_scale','ref_216_149_lab, scale_waste_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(845,'ce_217_141_fac','Concrete Work factory equipment cost for 217.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(846,'ce_217_141_mat','Concrete Work site material cost for 217.141',913766.7652189594228,'$','category_scale','ref_217_141_mat, scale_fuel_stor_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(847,'ce_217_141_lab','Concrete Work site labor cost for 217.141',3428635.069330594036,'$','category_scale','ref_217_141_lab, scale_fuel_stor_bldg_sup_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(848,'ce_217_142_fac','Structural & Miscellaneous Steel factory equipment cost for 217.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(849,'ce_217_142_mat','Structural & Miscellaneous Steel site material cost for 217.142',586413.6599606249947,'$','category_scale','ref_217_142_mat, scale_fuel_stor_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(850,'ce_217_142_lab','Structural & Miscellaneous Steel site labor cost for 217.142',415822.972641562461,'$','category_scale','ref_217_142_lab, scale_fuel_stor_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(851,'ce_217_145_fac','Roofing & Flashing factory equipment cost for 217.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(852,'ce_217_145_mat','Roofing & Flashing site material cost for 217.145',36139.55483444444689,'$','category_scale','ref_217_145_mat, scale_fuel_stor_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(853,'ce_217_145_lab','Roofing & Flashing site labor cost for 217.145',44419.90458111112094,'$','category_scale','ref_217_145_lab, scale_fuel_stor_bldg_sub_S',NULL,0); +INSERT INTO lpsr_variable VALUES(854,'ce_217_147_fac','Doors & Windows factory equipment cost for 217.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(855,'ce_217_147_mat','Doors & Windows site material cost for 217.147',21447.69019509374993,'$','category_scale','ref_217_147_mat, scale_fuel_stor_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(856,'ce_217_147_lab','Doors & Windows site labor cost for 217.147',16254.21259612500034,'$','category_scale','ref_217_147_lab, scale_fuel_stor_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(857,'ce_217_149_fac','Painting factory equipment cost for 217.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(858,'ce_217_149_mat','Painting site material cost for 217.149',13433.40385579687609,'$','category_scale','ref_217_149_mat, scale_fuel_stor_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(859,'ce_217_149_lab','Painting site labor cost for 217.149',106400.8026618750155,'$','category_scale','ref_217_149_lab, scale_fuel_stor_bldg_sup_S',NULL,0); +INSERT INTO lpsr_variable VALUES(860,'ce_218A_13_fac','Substructure Concrete factory equipment cost for 218A.13',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(861,'ce_218A_13_mat','Substructure Concrete site material cost for 218A.13',77495.37770125395036,'$','category_scale','ref_218A_13_mat, scale_cr_dg_bldg_sub_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(862,'ce_218A_13_lab','Substructure Concrete site labor cost for 218A.13',134750.7765574603108,'$','category_scale','ref_218A_13_lab, scale_cr_dg_bldg_sub_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(863,'ce_218A_14_fac','Superstructure factory equipment cost for 218A.14',0.0,'$','sum_all','ce_218A_141_fac, ce_218A_142_fac, ce_218A_145_fac, ce_218A_146_fac, ce_218A_147_fac, ce_218A_148_fac, ce_218A_149_fac',NULL,0); +INSERT INTO lpsr_variable VALUES(864,'ce_218A_14_mat','Superstructure site material cost for 218A.14',772476.3988869898022,'$','sum_all','ce_218A_141_mat, ce_218A_142_mat, ce_218A_145_mat, ce_218A_146_mat, ce_218A_147_mat, ce_218A_148_mat, ce_218A_149_mat',NULL,0); +INSERT INTO lpsr_variable VALUES(865,'ce_218A_14_lab','Superstructure site labor cost for 218A.14',1661665.025356885978,'$','sum_all','ce_218A_141_lab, ce_218A_142_lab, ce_218A_145_lab, ce_218A_146_lab, ce_218A_147_lab, ce_218A_148_lab, ce_218A_149_lab',NULL,0); +INSERT INTO lpsr_variable VALUES(866,'ce_218A_141_fac','Concrete Work factory equipment cost for 218A.141',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(867,'ce_218A_141_mat','Concrete Work site material cost for 218A.141',367725.8841529896017,'$','category_scale','ref_218A_141_mat, scale_cr_dg_bldg_sup_vol','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(868,'ce_218A_141_lab','Concrete Work site labor cost for 218A.141',1258072.831596794073,'$','category_scale','ref_218A_141_lab, scale_cr_dg_bldg_sup_vol','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(869,'ce_218A_142_fac','Structural & Miscellaneous Steel factory equipment cost for 218A.142',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(870,'ce_218A_142_mat','Structural & Miscellaneous Steel site material cost for 218A.142',259502.7282345966086,'$','category_scale','ref_218A_142_mat, scale_cr_dg_bldg_bldg_vol','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(871,'ce_218A_142_lab','Structural & Miscellaneous Steel site labor cost for 218A.142',163863.5584012919862,'$','category_scale','ref_218A_142_lab, scale_cr_dg_bldg_bldg_vol','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(872,'ce_218A_145_fac','Roofing & Flashing factory equipment cost for 218A.145',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(873,'ce_218A_145_mat','Roofing & Flashing site material cost for 218A.145',27367.36725502645641,'$','category_scale','ref_218A_145_mat, scale_cr_dg_bldg_sub_S','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(874,'ce_218A_145_lab','Roofing & Flashing site labor cost for 218A.145',30723.48155449734987,'$','category_scale','ref_218A_145_lab, scale_cr_dg_bldg_sub_S','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(875,'ce_218A_146_fac','Interior Walls & Partition factory equipment cost for 218A.146',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(876,'ce_218A_146_mat','Interior Walls & Partition site material cost for 218A.146',99298.6733630663367,'$','category_scale','ref_218A_146_mat, scale_cr_dg_bldg_bldg_vol','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(877,'ce_218A_146_lab','Interior Walls & Partition site labor cost for 218A.146',135138.6774206718255,'$','category_scale','ref_218A_146_lab, scale_cr_dg_bldg_bldg_vol','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(878,'ce_218A_147_fac','Doors & Windows factory equipment cost for 218A.147',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(879,'ce_218A_147_mat','Doors & Windows site material cost for 218A.147',5247.427482334194792,'$','category_scale','ref_218A_147_mat, scale_cr_dg_bldg_bldg_vol','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(880,'ce_218A_147_lab','Doors & Windows site labor cost for 218A.147',5200.369174619580917,'$','category_scale','ref_218A_147_lab, scale_cr_dg_bldg_bldg_vol','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(881,'ce_218A_148_fac','Wall, Floor, & Ceiling Finishing factory equipment cost for 218A.148',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(882,'ce_218A_148_mat','Wall, Floor, & Ceiling Finishing site material cost for 218A.148',6633.908162802182232,'$','category_scale','ref_218A_148_mat, scale_cr_dg_bldg_bldg_vol','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(883,'ce_218A_148_lab','Wall, Floor, & Ceiling Finishing site labor cost for 218A.148',13799.17403854149052,'$','category_scale','ref_218A_148_lab, scale_cr_dg_bldg_bldg_vol','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(884,'ce_218A_149_fac','Painting factory equipment cost for 218A.149',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO lpsr_variable VALUES(885,'ce_218A_149_mat','Painting site material cost for 218A.149',6700.410236174496277,'$','category_scale','ref_218A_149_mat, scale_cr_dg_bldg_sup_S','ce_218A_14_mat',0); +INSERT INTO lpsr_variable VALUES(886,'ce_218A_149_lab','Painting site labor cost for 218A.149',54866.93317046979791,'$','category_scale','ref_218A_149_lab, scale_cr_dg_bldg_sup_S','ce_218A_14_lab',0); +INSERT INTO lpsr_variable VALUES(887,'ce_218A_21_fac','Plumbing & Drains factory equipment cost for 218A.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(888,'ce_218A_21_mat','Plumbing & Drains site material cost for 218A.21',35914.10901429802471,'$','category_scale','ref_218A_21_mat, scale_cr_dg_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(889,'ce_218A_21_lab','Plumbing & Drains site labor cost for 218A.21',128762.8626741314948,'$','category_scale','ref_218A_21_lab, scale_cr_dg_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(890,'ce_218A_23_fac','Special HVAC (Safety Related) factory equipment cost for 218A.23',2319565.487541882322,'$','sum_all','ce_218A_231_fac, ce_218A_232_fac, ce_218A_233_fac, ce_218A_234_fac, ce_218A_235_fac, ce_218A_236_fac, ce_218A_237_fac, ce_218A_238_fac',NULL,0); +INSERT INTO lpsr_variable VALUES(891,'ce_218A_23_mat','Special HVAC (Safety Related) site material cost for 218A.23',101786.126053618922,'$','sum_all','ce_218A_231_mat, ce_218A_232_mat, ce_218A_233_mat, ce_218A_234_mat, ce_218A_235_mat, ce_218A_236_mat, ce_218A_237_mat, ce_218A_238_mat',NULL,0); +INSERT INTO lpsr_variable VALUES(892,'ce_218A_23_lab','Special HVAC (Safety Related) site labor cost for 218A.23',874913.5481241005472,'$','sum_all','ce_218A_231_lab, ce_218A_232_lab, ce_218A_233_lab, ce_218A_234_lab, ce_218A_235_lab, ce_218A_236_lab, ce_218A_237_lab, ce_218A_238_lab',NULL,0); +INSERT INTO lpsr_variable VALUES(893,'ce_218A_231_fac','Rotating Machinery factory equipment cost for 218A.231',922959.828125435393,'$','category_scale','ref_218A_231_fac, scale_P','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(894,'ce_218A_231_mat','Rotating Machinery site material cost for 218A.231',9442.77190127116955,'$','category_scale','ref_218A_231_mat, scale_P','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(895,'ce_218A_231_lab','Rotating Machinery site labor cost for 218A.231',114267.1180063948996,'$','category_scale','ref_218A_231_lab, scale_P','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(896,'ce_218A_232_fac','Heat Transfer Equipment factory equipment cost for 218A.232',798020.9223690350772,'$','category_scale','ref_218A_232_fac, scale_P','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(897,'ce_218A_232_mat','Heat Transfer Equipment site material cost for 218A.232',15906.29165252245912,'$','category_scale','ref_218A_232_mat, scale_P','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(898,'ce_218A_232_lab','Heat Transfer Equipment site labor cost for 218A.232',192375.8725939751894,'$','category_scale','ref_218A_232_lab, scale_P','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(899,'ce_218A_233_fac','Tanks & Pressure Vessels factory equipment cost for 218A.233',3057.945250689492695,'$','category_scale','ref_218A_233_fac, scale_P','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(900,'ce_218A_233_mat','Tanks & Pressure Vessels site material cost for 218A.233',650.7581497215162471,'$','category_scale','ref_218A_233_mat, scale_P','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(901,'ce_218A_233_lab','Tanks & Pressure Vessels site labor cost for 218A.233',8070.74167857458724,'$','category_scale','ref_218A_233_lab, scale_P','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(902,'ce_218A_234_fac','Purification & Filtration Equipment factory equipment cost for 218A.234',192727.6418192094716,'$','category_scale','ref_218A_234_fac, scale_P','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(903,'ce_218A_234_mat','Purification & Filtration Equipment site material cost for 218A.234',6188.981152663587637,'$','category_scale','ref_218A_234_mat, scale_P','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(904,'ce_218A_234_lab','Purification & Filtration Equipment site labor cost for 218A.234',74801.14560150081525,'$','category_scale','ref_218A_234_lab, scale_P','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(905,'ce_218A_235_fac','Piping & Ductwork factory equipment cost for 218A.235',67692.11247774906224,'$','category_scale','ref_218A_235_fac, scale_cr_dg_bldg_bldg_vol','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(906,'ce_218A_235_mat','Piping & Ductwork site material cost for 218A.235',66188.91261269021198,'$','category_scale','ref_218A_235_mat, scale_cr_dg_bldg_bldg_vol','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(907,'ce_218A_235_lab','Piping & Ductwork site labor cost for 218A.235',411174.4160522538586,'$','category_scale','ref_218A_235_lab, scale_cr_dg_bldg_bldg_vol','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(908,'ce_218A_236_fac','Valves & Dampers factory equipment cost for 218A.236',14572.92598018949138,'$','category_scale','ref_218A_236_fac, scale_cr_dg_bldg_bldg_vol','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(909,'ce_218A_236_mat','Valves & Dampers site material cost for 218A.236',754.5375049095607664,'$','category_scale','ref_218A_236_mat, scale_cr_dg_bldg_bldg_vol','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(910,'ce_218A_236_lab','Valves & Dampers site labor cost for 218A.236',9203.645713465404696,'$','category_scale','ref_218A_236_lab, scale_cr_dg_bldg_bldg_vol','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(911,'ce_218A_237_fac','Piping & Miscellaneous Items factory equipment cost for 218A.237',1891.07704249210451,'$','category_scale','ref_218A_237_fac, scale_cr_dg_bldg_bldg_vol','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(912,'ce_218A_237_mat','Piping & Miscellaneous Items site material cost for 218A.237',0.0,'$',NULL,NULL,'ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(913,'ce_218A_237_lab','Piping & Miscellaneous Items site labor cost for 218A.237',0.0,'$',NULL,NULL,'ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(914,'ce_218A_238_fac','Instrumentation & Control factory equipment cost for 218A.238',318643.0344770823721,'$','category_scale','ref_218A_238_fac, scale_P','ce_218A_23_fac',0); +INSERT INTO lpsr_variable VALUES(915,'ce_218A_238_mat','Instrumentation & Control site material cost for 218A.238',2653.873079840405354,'$','category_scale','ref_218A_238_mat, scale_P','ce_218A_23_mat',0); +INSERT INTO lpsr_variable VALUES(916,'ce_218A_238_lab','Instrumentation & Control site labor cost for 218A.238',65020.60847793572612,'$','category_scale','ref_218A_238_lab, scale_P','ce_218A_23_lab',0); +INSERT INTO lpsr_variable VALUES(917,'ce_218A_24_fac','Lighting & Service Power factory equipment cost for 218A.24',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(918,'ce_218A_24_mat','Lighting & Service Power site material cost for 218A.24',33876.23942721791536,'$','category_scale','ref_218A_24_mat, scale_cr_dg_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(919,'ce_218A_24_lab','Lighting & Service Power site labor cost for 218A.24',110446.5912517944234,'$','category_scale','ref_218A_24_lab, scale_cr_dg_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(920,'ce_218B_21_fac','Plumbing & Drains factory equipment cost for 218B.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(921,'ce_218B_21_mat','Plumbing & Drains site material cost for 218B.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(922,'ce_218B_21_lab','Plumbing & Drains site labor cost for 218B.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(923,'ce_218B_22_fac','Heating, Ventilation, & Air Conditioning factory equipment cost for 218B.22',1859074.345697986893,'$','category_scale','ref_218B_22_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(924,'ce_218B_22_mat','Heating, Ventilation, & Air Conditioning site material cost for 218B.22',455469.9276725795352,'$','category_scale','ref_218B_22_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(925,'ce_218B_22_lab','Heating, Ventilation, & Air Conditioning site labor cost for 218B.22',3119188.467255360913,'$','category_scale','ref_218B_22_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(926,'ce_218B_23_fac','Special HVAC (Safety Related) factory equipment cost for 218B.23',23677.65476330531238,'$','category_scale','ref_218B_23_fac, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(927,'ce_218B_23_mat','Special HVAC (Safety Related) site material cost for 218B.23',1725.757069153419252,'$','category_scale','ref_218B_23_mat, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(928,'ce_218B_23_lab','Special HVAC (Safety Related) site labor cost for 218B.23',23068.87721885645079,'$','category_scale','ref_218B_23_lab, scale_P',NULL,0); +INSERT INTO lpsr_variable VALUES(929,'ce_218B_24_fac','Lighting & Service Power factory equipment cost for 218B.24',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO lpsr_variable VALUES(930,'ce_218B_24_mat','Lighting & Service Power site material cost for 218B.24',0.0,'$','category_scale','ref_218B_24_mat, scale_adm_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(931,'ce_218B_24_lab','Lighting & Service Power site labor cost for 218B.24',0.0,'$','category_scale','ref_218B_24_lab, scale_adm_bldg_bldg_vol',NULL,0); +INSERT INTO lpsr_variable VALUES(932,'ce_218B_25_fac','Elevator factory equipment cost for 218B.25',88303.82095999999729,'$','category_scale','ref_218B_25_fac',NULL,0); +INSERT INTO lpsr_variable VALUES(933,'ce_218B_25_mat','Elevator site material cost for 218B.25',3586.12780100000009,'$','category_scale','ref_218B_25_mat',NULL,0); +INSERT INTO lpsr_variable VALUES(934,'ce_218B_25_lab','Elevator site labor cost for 218B.25',45810.80043999999908,'$','category_scale','ref_218B_25_lab',NULL,0); +INSERT INTO lpsr_variable VALUES(935,'ce_222_111_fac','Rotating Machinery factory equipment cost for 222.111',89028940.41572172939,'$','category_scale','ref_222_111_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25',NULL,0); +INSERT INTO lpsr_variable VALUES(936,'ce_222_111_mat','Rotating Machinery site material cost for 222.111',332843.0211134939455,'$','category_scale','ref_222_111_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25',NULL,0); +INSERT INTO lpsr_variable VALUES(937,'ce_222_111_lab','Rotating Machinery site labor cost for 222.111',3060334.682982993313,'$','category_scale','ref_222_111_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25',NULL,0); +INSERT INTO lpsr_variable VALUES(938,'ce_222_119_fac','Foundations/Skids factory equipment cost for 222.119',2682485.997916631401,'$','category_scale','ref_222_119_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25',NULL,0); +INSERT INTO lpsr_variable VALUES(939,'ce_222_119_mat','Foundations/Skids site material cost for 222.119',389873.4372256504722,'$','category_scale','ref_222_119_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25',NULL,0); +INSERT INTO lpsr_variable VALUES(940,'ce_222_119_lab','Foundations/Skids site labor cost for 222.119',3633958.83921274962,'$','category_scale','ref_222_119_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25',NULL,0); +INSERT INTO lpsr_variable VALUES(941,'ce_222_132_fac','Heat Transfer Equipment factory equipment cost for 222.132',149609146.4818699359,'$','category_scale','ref_222_132_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half',NULL,0); +INSERT INTO lpsr_variable VALUES(942,'ce_222_132_mat','Heat Transfer Equipment site material cost for 222.132',449388.9889203871717,'$','category_scale','ref_222_132_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half',NULL,0); +INSERT INTO lpsr_variable VALUES(943,'ce_222_132_lab','Heat Transfer Equipment site labor cost for 222.132',4109347.558659870178,'$','category_scale','ref_222_132_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half',NULL,0); +INSERT INTO lpsr_variable VALUES(944,'ce_222_139_fac','Foundations/Skids factory equipment cost for 222.139',74901.17657324840548,'$','category_scale','ref_222_139_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half',NULL,0); +INSERT INTO lpsr_variable VALUES(945,'ce_222_139_mat','Foundations/Skids site material cost for 222.139',63614.80492704985955,'$','category_scale','ref_222_139_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half',NULL,0); +INSERT INTO lpsr_variable VALUES(946,'ce_222_139_lab','Foundations/Skids site labor cost for 222.139',617654.1352943376405,'$','category_scale','ref_222_139_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half',NULL,0); +INSERT INTO lpsr_variable VALUES(947,'ce_225_111_fac','New & Spent Fuel Crane factory equipment cost for 225.111',132640.4359116522537,'$','category_scale','ref_225_111_fac, scale_frm_fuel_crane_cap, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(948,'ce_225_111_mat','New & Spent Fuel Crane site material cost for 225.111',6365.745276305702646,'$','category_scale','ref_225_111_mat, scale_frm_fuel_crane_cap, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(949,'ce_225_111_lab','New & Spent Fuel Crane site labor cost for 225.111',79784.25381114652555,'$','category_scale','ref_225_111_lab, scale_frm_fuel_crane_cap, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(950,'ce_225_112_fac','Monorails & Hoists factory equipment cost for 225.112',16525.24140799999804,'$','category_scale','ref_225_112_fac, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(951,'ce_225_112_mat','Monorails & Hoists site material cost for 225.112',1183.304307120000204,'$','category_scale','ref_225_112_mat, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(952,'ce_225_112_lab','Monorails & Hoists site labor cost for 225.112',14840.09141680000176,'$','category_scale','ref_225_112_lab, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(953,'ce_225_113_fac','New Fuel Elevator factory equipment cost for 225.113',40706.89587639999809,'$','category_scale','ref_225_113_fac, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(954,'ce_225_113_mat','New Fuel Elevator site material cost for 225.113',5866.410669599999892,'$','category_scale','ref_225_113_mat, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(955,'ce_225_113_lab','New Fuel Elevator site labor cost for 225.113',74200.45708399999421,'$','category_scale','ref_225_113_lab, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(956,'ce_225_114_fac','Spent Fuel Cask Crane factory equipment cost for 225.114',742541.5094717735191,'$','category_scale','ref_225_114_fac, scale_frm_fuel_cask_cap, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(957,'ce_225_114_mat','Spent Fuel Cask Crane site material cost for 225.114',16445.00146556449908,'$','category_scale','ref_225_114_mat, scale_frm_fuel_cask_cap, f_simp_fuel_hndl',NULL,0); +INSERT INTO lpsr_variable VALUES(958,'ce_225_114_lab','Spent Fuel Cask Crane site labor cost for 225.114',206143.6122265231098,'$','category_scale','ref_225_114_lab, scale_frm_fuel_cask_cap, f_simp_fuel_hndl',NULL,0); +CREATE TABLE lpsr_algorithm ( + ind INTEGER, + alg_name TEXT, + alg_for TEXT, + alg_description TEXT, + alg_python TEXT, + alg_formulation TEXT, + alg_units TEXT, + variables TEXT, + constants TEXT, + PRIMARY KEY (ind) + ); +INSERT INTO lpsr_algorithm VALUES(1,'category_scale','c','Scale a reference cost by one scale factor and optional multipliers/count/adjustment factors.','LPSRDirectCostFunc','ref * scale * optional_multipliers','$','ref, scale, optional_multipliers',NULL); +INSERT INTO lpsr_algorithm VALUES(2,'cal_sup_str_S','v','Calculate cylinder-with-dome superstructure S for the containment structure.','LPSRDirectCostFunc','pi*D^2/2 + pi*D*H','m^2','cont_D_D, cont_H_H',NULL); +INSERT INTO lpsr_algorithm VALUES(3,'formula_scale_flow_rate','v','Flow Rate direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(4,'formula_scale_fuel_cask_capacity','v','Fuel Cask Capacity direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(5,'formula_scale_fuel_crane_capacity','v','Fuel Crane Capacity direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(6,'formula_scale_ht_surface_S','v','Ht Surface Area direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(7,'formula_scale_pressurizer_mass','v','Pressurizer Mass direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(8,'formula_scale_surface_S','v','Surface Area direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(9,'formula_scale_surface_S_9_71886e_06','v','Surface Area 9 71886E 06 direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(10,'formula_scale_vessel_mass','v','Vessel Mass direct formula scale.','LPSRDirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO lpsr_algorithm VALUES(11,'scale_law_admin_bldg','v','Admin Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(12,'scale_law_bldg_V','v','Building Volume scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(13,'scale_law_containment','v','Containment scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(14,'scale_law_control_dg_bldg','v','Control Dg Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(15,'scale_law_elec_P','v','Electric Power scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(16,'scale_law_electrical_bldg','v','Electrical Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(17,'scale_law_flow_rate','v','Flow Rate scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(18,'scale_law_fuel_storage','v','Fuel Storage scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(19,'scale_law_heat_rejection','v','Heat Rejection scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(20,'scale_law_piping_mass','v','Piping Mass scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(21,'scale_law_primary_aux_bldg','v','Primary Aux Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(22,'scale_law_reactor_equipment','v','Reactor Equipment scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(23,'scale_law_site_S','v','Site Area scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(24,'scale_law_turbine_bldg','v','Turbine Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(25,'scale_law_turbine_equipment','v','Turbine Equipment scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(26,'scale_law_V_of_212_213_215_216_217','v','Volume Of 212 213 215 216 217 scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(27,'scale_law_waste_bldg','v','Waste Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(28,'scale_law_wastewater_bldg','v','Wastewater Bldg scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(29,'scale_law_power','v','Power scale law.','LPSRDirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO lpsr_algorithm VALUES(30,'sum_all','c/v','Sum all supplied child cost elements or intermediate variables.','LPSRDirectCostFunc','sum(values)','$','values',NULL); +INSERT INTO lpsr_algorithm VALUES(31,'calc_rej_th_P','v','Rejected thermal power = thermal power - electric power.','LPSRDirectCostFunc','rx_P - elec_P','MWt','rx_P, elec_P',NULL); +CREATE TABLE ap1000_account (ind INTEGER, code_of_account TEXT NOT NULL, account_description TEXT, total_cost REAL, level INTEGER, supaccount TEXT, review_status TEXT, prn REAL, gncoa TEXT, gn_level INTEGER, gn_supaccount TEXT, gn_ind INTEGER, PRIMARY KEY (code_of_account)); +INSERT INTO ap1000_account VALUES(1,'2','Total Direct Cost',6673722963.402767182,0,NULL,'Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(2,'21','Structures and Improvements',1873207638.849651099,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(3,'211','Yardwork',168782503.1433584392,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(4,'211.1','General Yardwork',20891852.48384744301,3,'211','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(5,'211.4','Railroads',24779275.44051939622,3,'211','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(6,'211.7','Structure Associated Yardwork',123111375.2189916373,3,'211','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(7,'211.71','Cut & Fill',123111375.2189916373,4,'211.7','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(8,'212','Reactor Containment Building',1230414488.43313551,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(9,'212.1','Building Structure',1142969011.322661638,3,'212','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(10,'212.13','Substructure Concrete',54782091.19215378166,4,'212.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(11,'212.14','Superstructure',306070909.6601446867,4,'212.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(12,'212.15','Containment Liner',782116010.4703627825,4,'212.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(13,'212.2','Building Services',36454501.72844233363,3,'212','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(14,'212.21','Plumbing & Drains',4027819.749719792977,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(15,'212.22','Heating, Ventilation, & Air Conditioning',898493.049913480063,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(16,'212.23','Safety HVAC',16823086.00153748692,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(17,'212.24','Lighting & Service Power',13792794.68285956978,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(18,'212.25','Elevator',912308.2444120043655,4,'212.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(19,'212.3','Passive cooling pool',50990975.38203156739,3,'212','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(20,'213','Turbine Room & Heater Bay',204469475.5030284821,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(21,'213.1','Building Structure',176457081.0730240046,3,'213','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(22,'213.13','Substructure Concrete',41050593.41581688822,4,'213.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(23,'213.14','Superstructure',135406487.6572071612,4,'213.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(24,'213.2','Building Services',28012394.4300044477,3,'213','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(25,'213.21','Plumbing & Drains',12633379.28583391569,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(26,'213.22','Heating, Ventilation, & Air Conditioning',9119488.030590547248,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(27,'213.24','Lighting & Service Power',5301423.908740271815,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(28,'213.25','Elevator',958103.20483971003,4,'213.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(29,'214','Security Building',12937560.49784772285,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(30,'215','Primary Auxiliary Building & Tunnels',83112013.14095506073,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(31,'215.1','Building Structure',49694983.48858368396,3,'215','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(32,'215.13','Substructure Concrete',3952439.00071557425,4,'215.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(33,'215.14','Superstructure',45742544.4878681153,4,'215.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(34,'215.2','Building Services',33417029.65237136557,3,'215','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(35,'215.21','Plumbing & Drains',1991401.735913136276,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(36,'215.22','Heating, Ventilation, & Air Conditioning',24435465.55004407465,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(37,'215.23','Special HVAC (Safety Related)',3704388.585755669511,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(38,'215.24','Lighting & Service Power',1885412.560258756391,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(39,'215.25','Elevator',1400361.220399733865,4,'215.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(40,'216','Waste Process Building',60663948.8067913577,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(41,'216.1','Building Structure',44207457.06284517049,3,'216','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(42,'216.13','Substructure Concrete',11377061.4557711184,4,'216.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(43,'216.14','Superstructure',32830395.60707405583,4,'216.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(44,'216.2','Building Services',16456491.74394617602,3,'216','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(45,'216.21','Plumbing & Drains',1377284.196475084405,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(46,'216.22','Heating, Ventilation, & Air Conditioning',12395880.60382311791,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(47,'216.24','Lighting & Service Power',1119835.357046580407,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(48,'216.25','Elevator',1563491.586601394228,4,'216.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(49,'217','Fuel Storage Building',55201573.41668029874,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(50,'217.1','Building Structure',17998456.39527992532,3,'217','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(51,'217.13','Substructure Concrete',2064892.430889887969,4,'217.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(52,'217.3','Storage Pool Liner - S.S.',24475668.95147722587,3,'217','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(53,'217.14','Superstructure',15933563.96439004131,4,'217.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(54,'217.2','Building Services',12727448.06992312708,3,'217','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(55,'217.21','Plumbing & Drains',955916.006567868521,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(56,'217.22','Heating, Ventilation, & Air Conditioning',4861072.217268363572,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(57,'217.23','Special HVAC (Safety Related)',6156307.424254138954,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(58,'217.24','Lighting & Service Power',754152.421832756605,4,'217.2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(59,'218','Other Structures',57626075.90785454213,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(60,'218A','Control Room/D-G Building',17842710.2259153165,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(61,'218A.1','Building Structure',7552999.208929794841,4,'218A','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(62,'218A.2','Building Services',10289711.01698552445,4,'218A','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(63,'218B','Administrative & Service Building',16039655.05541908183,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(64,'218B.1','Building Structure',0.0,4,'218B','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(65,'218B.2','Building Services',16039655.05541908183,4,'218B','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(66,'218D','Fire Pump House, Including Foundations',3498591.141095912549,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(67,'218E','Emergency Feed Pump Building',465356.0145923888194,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(68,'218F','Manway Tunnels (RCA Tunnels)',7482256.124801469967,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(69,'218G','Electrical Tunnels',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(70,'218H','Non-essential SWGR Building',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(71,'218J','Main Steam & Feedwater Pipe Enclosure',1727387.807272757404,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(72,'218K','Pipe Tunnels',2575046.271614226978,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(73,'218L','Technical Support Center',6515970.208274860867,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(74,'218P','Containment EQ Hatch Missile Shield',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(75,'218S','Waste Water Treatment',0.0,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(76,'218T','Ultimate Heat Sink Structure',793673.3259753570892,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(77,'218V','Control Room Emergency Air Intake Structure',685429.7328931570519,3,'218','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(78,'22','Reactor Plant Equipment',1978563704.453619957,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(79,'221','Reactor Equipment',436647141.1691203117,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(80,'221.1','Reactor Vessel + Accessory',194650093.5067299902,3,'221','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(81,'221.3','Vessel Internals',135744316.91598019,3,'221','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(82,'221.2','Reactor Control Devices',106252730.746410057,3,'221','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(83,'222','Main Heat Transfer Transport System ',803531721.31282866,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(84,'222.1','Reactor Core Coolant System',803531721.31282866,3,'222','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(85,'222.11','Fluid Circulation Drive System',282920388.4380705952,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(86,'222.12','Reactor Coolant Piping System',51654752.73456536978,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(87,'222.13','Steam Generator Equipment',442165486.4023687839,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(88,'222.14','Pressurizing System',26791093.7378239669,4,'222.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(89,'223','Safeguards System',146834379.2107964754,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(90,'223.1','Residual Heat Removal System',35205938.0915869847,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(91,'223.3','Safety Injection System',65250929.59979652614,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(92,'223.4','Containment Spray System',40007170.44362261146,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(93,'223.5','Combustible Gas Control System',6370341.075790358707,3,'223','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(94,'224','Radwaste Processing',135468680.405417204,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(95,'224.1','Liquid Waste System',82252518.70873565972,3,'224','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(96,'224.2','Rad Gas Waste Processing',8286722.548907097429,3,'224','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(97,'224.3','Solid Waste System',44929439.14777446538,3,'224','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(98,'225','Fuel Handling & Storage',15044786.65867413953,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(99,'225.1','Fuel Handling Tools & Equipment',6627755.881607549265,3,'225','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(100,'225.11','Cranes & Hoists',3816597.044572589919,4,'225.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(101,'225.12','Fuel Handling Tools',527467.2508061577101,4,'225.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(102,'225.13','Transfer Systems',2283691.586228800938,4,'225.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(103,'225.3','Service Platforms',565652.8477431276115,3,'225','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(104,'225.4','Fuel Storage, Cleaning, & Inspection Equipment',7851377.929323460906,3,'225','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(105,'226','Other Reactor Plant Equipment',217034381.4991679489,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(106,'226.1','Inert Gas System',6478973.483468266204,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(107,'226.3','Reactor Makeup Water System',8055980.922054843046,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(108,'226.4','Coolant Treatment & Recycle',80264413.80225437879,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(109,'226.6','Fluid Leak Detection System',683081.5900287406985,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(110,'226.7','Auxiliary Cooling System',103529986.7673051655,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(111,'226.71','Nuclear Service Water System',64594822.54068118334,4,'226.7','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(112,'226.72','Primary Component Cooling Water',38935164.22662398965,4,'226.7','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(113,'226.8','Maintenance Equipment',14600097.89126897975,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(114,'226.9','Sampling Equipment',3421847.042787610088,3,'226','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(115,'227','Reactor Instrumentation & Control',165884743.9717169405,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(116,'227.1','Benchboard, Panels, & Racks',25396701.74235140905,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(117,'227.11','NSS Control Board',9566182.47001759894,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(118,'227.15','HVAC Panels',1014908.000235511922,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(119,'227.16','Radwaste Panels & Racks',4124796.86535445461,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(120,'227.17','Local Panels & Cabinets',4021371.195853620301,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(121,'227.18','Instrument Ranks',4213589.683076533488,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(122,'227.19','Alarm System',2455853.527813688851,4,'227.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(123,'227.2','Process Computer',21631675.30252795666,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(124,'227.3','Monitoring Systems',27207796.46122606843,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(125,'227.4','Plant Control Systems',26158165.24767866731,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(126,'227.5','Reactor Plant I&C Tubing & Fitting',35358636.16232904791,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(127,'227.9','TMI Instrumentation',30131769.05560377985,3,'227','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(128,'228','Reactor Plant Miscellaneous Items',58117870.22589825839,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(129,'229','NuScale Equipment',0.0,2,'22','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(130,'23','Turbine Plant Equipment',1661276981.473501921,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(131,'24','Electric Plant Equipment',414764743.4891183377,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(132,'241','Switchgear',40583479.59227532893,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(133,'242','Station Service Equipment',33740935.83709803969,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(134,'243','Switchboards',10956345.43512899242,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(135,'244','Protective Equipment',31465601.12627176567,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(136,'245','Electrical Structure & Wiring Container',169687359.8237870633,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(137,'246','Power & Control Wiring',128331021.6745572538,2,'24','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(138,'25','Miscellaneous Plant Equipment',371576306.841614008,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(139,'251','Transportation & Lift Equipment',39491290.0946297869,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(140,'251.1','Cranes & Hoists',39491290.0946297869,3,'251','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(141,'251.11','Turbine Building Crane',13049639.29103768616,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(142,'251.12','Reactor Containment Building Crane',19732703.30749324336,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(143,'251.16','Miscellaneous Cranes, Hoists, & Monorails',3720702.05468827067,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(144,'251.17','Diesel Building Cranes',2988245.441410582046,4,'251.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(145,'252','Air, Water, & Steam Service System',260843366.584741354,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(146,'252.1','Air Systems',56316743.29113242775,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(147,'252.2','Water Systems',166825806.6504147052,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(148,'252.3','Auxiliary Steam System',35545391.52213411779,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(149,'252.4','Plant Fuel Oil System',2155425.121060117148,3,'252','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(150,'253','Communications Equipment',37289358.56260389835,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(151,'254','Furnishings & Fixtures',14900567.94806433841,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(152,'255','Waste Water Treatment Equipment',19051723.65157467127,2,'25','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(153,'26','Main Condenser Heat Reject System',374333588.2952604889,1,'2','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(154,'261','Structures',38491487.01126914472,2,'26','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(155,'262','Mechanical Equipment',335842101.2839913369,2,'26','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(156,'262.1','Heat Rejection System',335842101.2839913369,3,'262','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(157,'262.11','Water Intake Equipment',3291091.355131878517,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(158,'262.12','Circulating Water System',106698208.8696564286,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(159,'262.13','Cooling Towers',215486884.4853577017,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(160,'262.14','Cooling Tower Basins',709023.1474226844729,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(161,'262.15','Main Cooling Tower Makeup & Blowdown System',9656893.42642263137,4,'262.1','Unchanged',NULL,NULL,NULL,NULL,NULL); +INSERT INTO ap1000_account VALUES(162,'219','Reactor Shield Building',0.0,2,'21','Unchanged',NULL,NULL,NULL,NULL,NULL); +CREATE TABLE ap1000_cost_element (ind INTEGER NOT NULL, cost_element TEXT, cost_2018 REAL, sup_cost_ele TEXT, alg_name TEXT, fun_unit TEXT, variables TEXT, account TEXT, algno TEXT, updated INTEGER, source_row_type TEXT, PRIMARY KEY (ind)); +INSERT INTO ap1000_cost_element VALUES(1,'2_fac',3266428952.085056782,NULL,NULL,'$',NULL,'2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(2,'2_mat',794260433.2990031242,NULL,NULL,'$',NULL,'2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(3,'2_lab',2613033578.018706322,NULL,NULL,'$',NULL,'2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(4,'21_fac',314038745.594164133,'2_fac',NULL,'$',NULL,'21','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(5,'21_mat',492688958.1974138618,'2_mat',NULL,'$',NULL,'21','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(6,'21_lab',1066479935.058072925,'2_lab',NULL,'$',NULL,'21','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(7,'211_fac',1229953.366187281907,'21_fac',NULL,'$',NULL,'211','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(8,'211_mat',62780240.46622049064,'21_mat',NULL,'$',NULL,'211','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(9,'211_lab',104772309.3109506964,'21_lab',NULL,'$',NULL,'211','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(10,'211.1_fac',664010.2897517777747,'211_fac','category_scale','$','ref_211_1_fac, scale_S, scale_ap1000','211.1','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(11,'211.1_mat',8701537.620275279508,'211_mat','category_scale','$','ref_211_1_mat, scale_S, scale_ap1000','211.1','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(12,'211.1_lab',11526304.57382038794,'211_lab','category_scale','$','ref_211_1_lab, scale_S, scale_ap1000','211.1','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(13,'211.4_fac',0.0,'211_fac',NULL,'$',NULL,'211.4','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(14,'211.4_mat',10578450.48872483522,'211_mat','category_scale','$','ref_211_4_mat, scale_P, scale_ap1000','211.4','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(15,'211.4_lab',14200824.95179456286,'211_lab','category_scale','$','ref_211_4_lab, scale_P, scale_ap1000','211.4','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(16,'211.7_fac',565943.0764355041319,'211_fac',NULL,'$',NULL,'211.7','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(17,'211.7_mat',43500252.3572203815,'211_mat',NULL,'$',NULL,'211.7','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(18,'211.7_lab',79045179.78533573449,'211_lab',NULL,'$',NULL,'211.7','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(19,'211.71_fac',565943.0764355041319,'211.7_fac','sum_all','$','ce_211_711_fac, ce_211_712_fac','211.71','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(20,'211.71_mat',43500252.3572203815,'211.7_mat','sum_all','$','ce_211_711_mat, ce_211_712_mat','211.71','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(21,'211.71_lab',79045179.78533573449,'211.7_lab','sum_all','$','ce_211_711_lab, ce_211_712_lab','211.71','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(22,'212_fac',265354135.4854981006,'21_fac',NULL,'$',NULL,'212','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(23,'212_mat',265226006.1778402627,'21_mat',NULL,'$',NULL,'212','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(24,'212_lab',699834346.7697969676,'21_lab',NULL,'$',NULL,'212','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(25,'212.1_fac',260662312.9857086539,'212_fac',NULL,'$',NULL,'212.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(26,'212.1_mat',223304061.2222388088,'212_mat',NULL,'$',NULL,'212.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(27,'212.1_lab',659002637.1147139072,'212_lab',NULL,'$',NULL,'212.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(28,'212.13_fac',0.0,'212.1_fac',NULL,'$',NULL,'212.13','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(29,'212.13_mat',23015624.22840005159,'212.1_mat','category_scale','$','ref_212_13_mat, scale_sub_str_V, scale_ap1000','212.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(30,'212.13_lab',31766466.96375373005,'212.1_lab','category_scale','$','ref_212_13_lab, scale_sub_str_V, scale_ap1000','212.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(31,'212.14_fac',9659226.66065404564,'212.1_fac','sum_all','$','ce_212_141_fac, ce_212_140_fac, ce_212_142_fac, ce_212_149_fac','212.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(32,'212.14_mat',96032033.0706236661,'212.1_mat','sum_all','$','ce_212_141_mat, ce_212_140_mat, ce_212_142_mat, ce_212_149_mat','212.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(33,'212.14_lab',200379649.9288670421,'212.1_lab','sum_all','$','ce_212_141_lab, ce_212_140_lab, ce_212_142_lab, ce_212_149_lab','212.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(34,'212.15_fac',251003086.3250546456,'212.1_fac','category_scale','$','ref_212_15_fac, scale_sup_str_S, f_ss_cont_fac, scale_ap1000','212.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(35,'212.15_mat',104256403.9232150912,'212.1_mat','category_scale','$','ref_212_15_mat, scale_sup_str_S, f_ss_cont_mat, scale_ap1000','212.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(36,'212.15_lab',426856520.2220931649,'212.1_lab','category_scale','$','ref_212_15_lab, scale_sup_str_S, f_ss_cont_lab, scale_ap1000','212.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(37,'212.2_fac',4691822.499789379538,'212_fac',NULL,'$',NULL,'212.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(38,'212.2_mat',7048105.696494580247,'212_mat',NULL,'$',NULL,'212.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(39,'212.2_lab',24714573.53215837479,'212_lab',NULL,'$',NULL,'212.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(40,'212.21_fac',431797.8671499798074,'212.2_fac','category_scale','$','ref_212_21_fac, scale_sup_const, scale_ap1000','212.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(41,'212.21_mat',588268.4560361171607,'212.2_mat','category_scale','$','ref_212_21_mat, scale_sup_const, scale_ap1000','212.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(42,'212.21_lab',3007753.426533695777,'212.2_lab','category_scale','$','ref_212_21_lab, scale_sup_const, scale_ap1000','212.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(43,'212.22_fac',685392.4255910780047,'212.2_fac','category_scale','$','ref_212_22_fac, scale_P, scale_ap1000','212.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(44,'212.22_mat',20573.77706415277499,'212.2_mat','category_scale','$','ref_212_22_mat, scale_P, scale_ap1000','212.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(45,'212.22_lab',192526.8472582493268,'212.2_lab','category_scale','$','ref_212_22_lab, scale_P, scale_ap1000','212.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(46,'212.23_fac',3008426.772742148024,'212.2_fac','category_scale','$','ref_212_23_fac, scale_P, scale_ap1000','212.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(47,'212.23_mat',2554693.847446704749,'212.2_mat','category_scale','$','ref_212_23_mat, scale_P, scale_ap1000','212.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(48,'212.23_lab',11259965.38134863413,'212.2_lab','category_scale','$','ref_212_23_lab, scale_P, scale_ap1000','212.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(49,'212.24_fac',0.0,'212.2_fac',NULL,'$',NULL,'212.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(50,'212.24_mat',3858452.28114486672,'212.2_mat','category_scale','$','ref_212_24_mat, scale_sup_const, scale_ap1000','212.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(51,'212.24_lab',9934342.40171470307,'212.2_lab','category_scale','$','ref_212_24_lab, scale_sup_const, scale_ap1000','212.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(52,'212.25_fac',566205.4343061735853,'212.2_fac','category_scale','$','ref_212_25_fac, scale_ap1000','212.25','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(53,'212.25_mat',26117.33480273843089,'212.2_mat','category_scale','$','ref_212_25_mat, scale_ap1000','212.25','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(54,'212.25_lab',319985.475303092273,'212.2_lab','category_scale','$','ref_212_25_lab, scale_ap1000','212.25','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(55,'212.3_fac',0.0,'212_fac',NULL,'$',NULL,'212.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(56,'212.3_mat',34873839.25910691916,'212_mat','category_scale','$','ref_212_3_mat, scale_frm_S, scale_ap1000','212.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(57,'212.3_lab',16117136.12292465568,'212_lab','category_scale','$','ref_212_3_lab, scale_frm_S, scale_ap1000','212.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(58,'213_fac',4135808.495754240546,'21_fac',NULL,'$',NULL,'213','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(59,'213_mat',93842959.7394505591,'21_mat',NULL,'$',NULL,'213','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(60,'213_lab',106490707.2678236664,'21_lab',NULL,'$',NULL,'213','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(61,'213.1_fac',0.0,'213_fac',NULL,'$',NULL,'213.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(62,'213.1_mat',89012954.98679704964,'213_mat',NULL,'$',NULL,'213.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(63,'213.1_lab',87444126.08622694016,'213_lab',NULL,'$',NULL,'213.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(64,'213.13_fac',0.0,'213.1_fac',NULL,'$',NULL,'213.13','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(65,'213.13_mat',12195542.92064744047,'213.1_mat','category_scale','$','ref_213_13_mat, scale_turb_gen_bldg_sub_vol, scale_ap1000','213.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(66,'213.13_lab',28855050.49516944215,'213.1_lab','category_scale','$','ref_213_13_lab, scale_turb_gen_bldg_sub_vol, scale_ap1000','213.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(67,'213.14_fac',0.0,'213.1_fac','sum_all','$','ce_213_141_fac, ce_213_142_fac, ce_213_143_fac, ce_213_144_fac, ce_213_145_fac, ce_213_146_fac, ce_213_147_fac, ce_213_149_fac','213.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(68,'213.14_mat',76817412.0661496222,'213.1_mat','sum_all','$','ce_213_141_mat, ce_213_142_mat, ce_213_143_mat, ce_213_144_mat, ce_213_145_mat, ce_213_146_mat, ce_213_147_mat, ce_213_149_mat','213.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(69,'213.14_lab',58589075.59105750919,'213.1_lab','sum_all','$','ce_213_141_lab, ce_213_142_lab, ce_213_143_lab, ce_213_144_lab, ce_213_145_lab, ce_213_146_lab, ce_213_147_lab, ce_213_149_lab','213.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(70,'213.2_fac',4135808.495754240546,'213_fac',NULL,'$',NULL,'213.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(71,'213.2_mat',4830004.75265348237,'213_mat',NULL,'$',NULL,'213.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(72,'213.2_lab',19046581.18159672617,'213_lab',NULL,'$',NULL,'213.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(73,'213.21_fac',70522.35580515602487,'213.2_fac','category_scale','$','ref_213_21_fac, scale_bldg_V, scale_ap1000','213.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(74,'213.21_mat',2474611.350002286025,'213.2_mat','category_scale','$','ref_213_21_mat, scale_bldg_V, scale_ap1000','213.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(75,'213.21_lab',10088245.58002647571,'213.2_lab','category_scale','$','ref_213_21_lab, scale_bldg_V, scale_ap1000','213.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(76,'213.22_fac',3414591.761247939896,'213.2_fac','category_scale','$','ref_213_22_fac, scale_P, scale_ap1000','213.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(77,'213.22_mat',810807.2797069838271,'213.2_mat','category_scale','$','ref_213_22_mat, scale_P, scale_ap1000','213.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(78,'213.22_lab',4894088.989635626786,'213.2_lab','category_scale','$','ref_213_22_lab, scale_P, scale_ap1000','213.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(79,'213.24_fac',0.0,'213.2_fac',NULL,'$',NULL,'213.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(80,'213.24_mat',1517823.214765653248,'213.2_mat','category_scale','$','ref_213_24_mat, scale_bldg_V, scale_ap1000','213.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(81,'213.24_lab',3783600.693974618799,'213.2_lab','category_scale','$','ref_213_24_lab, scale_bldg_V, scale_ap1000','213.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(82,'213.25_fac',650694.3787011445965,'213.2_fac','category_scale','$','ref_213_25_fac, scale_ap1000','213.25','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(83,'213.25_mat',26762.90817855964997,'213.2_mat','category_scale','$','ref_213_25_mat, scale_ap1000','213.25','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(84,'213.25_lab',280645.9179600058706,'213.2_lab','category_scale','$','ref_213_25_lab, scale_ap1000','213.25','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(85,'214_fac',489345.5441078161239,'21_fac','category_scale','$','ref_214_fac, scale_ap1000','214','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(86,'214_mat',3161155.398286339362,'21_mat','category_scale','$','ref_214_mat, scale_ap1000','214','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(87,'214_lab',9287059.5554535687,'21_lab','category_scale','$','ref_214_lab, scale_ap1000','214','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(88,'215_fac',18776678.10015292465,'21_fac',NULL,'$',NULL,'215','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(89,'215_mat',17026499.82745093853,'21_mat',NULL,'$',NULL,'215','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(90,'215_lab',47308835.21335119009,'21_lab',NULL,'$',NULL,'215','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(91,'215.1_fac',0.0,'215_fac',NULL,'$',NULL,'215.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(92,'215.1_mat',14648188.69175532646,'215_mat',NULL,'$',NULL,'215.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(93,'215.1_lab',35046794.79682835937,'215_lab',NULL,'$',NULL,'215.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(94,'215.13_fac',0.0,'215.1_fac',NULL,'$',NULL,'215.13','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(95,'215.13_mat',1648584.015252899611,'215.1_mat','category_scale','$','ref_215_13_mat, scale_pri_aux_bldg_sub_vol, scale_ap1000','215.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(96,'215.13_lab',2303854.985462673939,'215.1_lab','category_scale','$','ref_215_13_lab, scale_pri_aux_bldg_sub_vol, scale_ap1000','215.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(97,'215.14_fac',0.0,'215.1_fac','sum_all','$','ce_215_141_fac, ce_215_142_fac, ce_215_145_fac, ce_215_146_fac, ce_215_147_fac, ce_215_149_fac','215.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(98,'215.14_mat',12999604.67650242523,'215.1_mat','sum_all','$','ce_215_141_mat, ce_215_142_mat, ce_215_145_mat, ce_215_146_mat, ce_215_147_mat, ce_215_149_mat','215.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(99,'215.14_lab',32742939.81136567518,'215.1_lab','sum_all','$','ce_215_141_lab, ce_215_142_lab, ce_215_145_lab, ce_215_146_lab, ce_215_147_lab, ce_215_149_lab','215.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(100,'215.2_fac',18776678.10015292465,'215_fac',NULL,'$',NULL,'215.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(101,'215.2_mat',2378311.135695610196,'215_mat',NULL,'$',NULL,'215.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(102,'215.2_lab',12262040.41652283818,'215_lab',NULL,'$',NULL,'215.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(103,'215.21_fac',8218.023806622593839,'215.2_fac','category_scale','$','ref_215_21_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000','215.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(104,'215.21_mat',377825.4004408108304,'215.2_mat','category_scale','$','ref_215_21_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000','215.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(105,'215.21_lab',1605358.311665702612,'215.2_lab','category_scale','$','ref_215_21_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000','215.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(106,'215.22_fac',15341761.97220879979,'215.2_fac','sum_all','$','ce_215_221_fac, ce_215_222_fac, ce_215_223_fac, ce_215_224_fac, ce_215_225_fac, ce_215_226_fac, ce_215_227_fac, ce_215_228_fac','215.22','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(107,'215.22_mat',1376695.622911354295,'215.2_mat','sum_all','$','ce_215_221_mat, ce_215_222_mat, ce_215_223_mat, ce_215_224_mat, ce_215_225_mat, ce_215_226_mat, ce_215_227_mat, ce_215_228_mat','215.22','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(108,'215.22_lab',7717007.954923920334,'215.2_lab','sum_all','$','ce_215_221_lab, ce_215_222_lab, ce_215_223_lab, ce_215_224_lab, ce_215_225_lab, ce_215_226_lab, ce_215_227_lab, ce_215_228_lab','215.22','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(109,'215.23_fac',2513583.617893266491,'215.2_fac','category_scale','$','ref_215_23_fac, scale_P, scale_ap1000','215.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(110,'215.23_mat',93989.8071349544044,'215.2_mat','category_scale','$','ref_215_23_mat, scale_P, scale_ap1000','215.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(111,'215.23_lab',1096815.160727448761,'215.2_lab','category_scale','$','ref_215_23_lab, scale_P, scale_ap1000','215.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(112,'215.24_fac',0.0,'215.2_fac',NULL,'$',NULL,'215.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(113,'215.24_mat',489478.6401883312501,'215.2_mat','category_scale','$','ref_215_24_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000','215.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(114,'215.24_lab',1395933.920070425374,'215.2_lab','category_scale','$','ref_215_24_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000','215.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(115,'215.25_fac',913114.4862442346057,'215.2_fac','category_scale','$','ref_215_25_fac, scale_ap1000','215.25','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(116,'215.25_mat',40321.66502015917649,'215.2_mat','category_scale','$','ref_215_25_mat, scale_ap1000','215.25','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(117,'215.25_lab',446925.0691353401052,'215.2_lab','category_scale','$','ref_215_25_lab, scale_ap1000','215.25','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(118,'216_fac',4242237.965267619119,'21_fac',NULL,'$',NULL,'216','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(119,'216_mat',17213433.78427869827,'21_mat',NULL,'$',NULL,'216','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(120,'216_lab',39208277.05724503099,'21_lab',NULL,'$',NULL,'216','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(121,'216.1_fac',0.0,'216_fac',NULL,'$',NULL,'216.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(122,'216.1_mat',14712511.27909563296,'216_mat',NULL,'$',NULL,'216.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(123,'216.1_lab',29494945.78374954685,'216_lab',NULL,'$',NULL,'216.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(124,'216.13_fac',0.0,'216.1_fac',NULL,'$',NULL,'216.13','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(125,'216.13_mat',4497285.903603936546,'216.1_mat','category_scale','$','ref_216_13_mat, scale_waste_bldg_sub_vol, scale_ap1000','216.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(126,'216.13_lab',6879775.552167179063,'216.1_lab','category_scale','$','ref_216_13_lab, scale_waste_bldg_sub_vol, scale_ap1000','216.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(127,'216.14_fac',0.0,'216.1_fac','sum_all','$','ce_216_141_fac, ce_216_142_fac, ce_216_143_fac, ce_216_144_fac, ce_216_145_fac, ce_216_146_fac, ce_216_147_fac, ce_216_148_fac, ce_216_149_fac','216.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(128,'216.14_mat',10215225.37549169547,'216.1_mat','sum_all','$','ce_216_141_mat, ce_216_142_mat, ce_216_143_mat, ce_216_144_mat, ce_216_145_mat, ce_216_146_mat, ce_216_147_mat, ce_216_148_mat, ce_216_149_mat','216.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(129,'216.14_lab',22615170.23158236594,'216.1_lab','sum_all','$','ce_216_141_lab, ce_216_142_lab, ce_216_143_lab, ce_216_144_lab, ce_216_145_lab, ce_216_146_lab, ce_216_147_lab, ce_216_148_lab, ce_216_149_lab','216.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(130,'216.2_fac',4242237.965267619119,'216_fac',NULL,'$',NULL,'216.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(131,'216.2_mat',2500922.505183069036,'216_mat',NULL,'$',NULL,'216.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(132,'216.2_lab',9713331.27349548973,'216_lab',NULL,'$',NULL,'216.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(133,'216.21_fac',0.0,'216.2_fac',NULL,'$',NULL,'216.21','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(134,'216.21_mat',227547.4558345633558,'216.2_mat','category_scale','$','ref_216_21_mat, scale_waste_bldg_bldg_vol, scale_ap1000','216.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(135,'216.21_lab',1149736.74064052105,'216.2_lab','category_scale','$','ref_216_21_lab, scale_waste_bldg_bldg_vol, scale_ap1000','216.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(136,'216.22_fac',3224846.186598432251,'216.2_fac','category_scale','$','ref_216_22_fac, scale_P, scale_ap1000','216.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(137,'216.22_mat',1917695.810005407081,'216.2_mat','category_scale','$','ref_216_22_mat, scale_P, scale_ap1000','216.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(138,'216.22_lab',7253338.607219278813,'216.2_lab','category_scale','$','ref_216_22_lab, scale_P, scale_ap1000','216.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(139,'216.24_fac',0.0,'216.2_fac',NULL,'$',NULL,'216.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(140,'216.24_mat',307800.0783655699925,'216.2_mat','category_scale','$','ref_216_24_mat, scale_waste_bldg_bldg_vol, scale_ap1000','216.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(141,'216.24_lab',812035.2786810103572,'216.2_lab','category_scale','$','ref_216_24_lab, scale_waste_bldg_bldg_vol, scale_ap1000','216.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(142,'216.25_fac',1017391.778669186751,'216.2_fac','category_scale','$','ref_216_25_fac, scale_ap1000','216.25','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(143,'216.25_mat',47879.16097752832138,'216.2_mat','category_scale','$','ref_216_25_mat, scale_ap1000','216.25','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(144,'216.25_lab',498220.6469546793377,'216.2_lab','category_scale','$','ref_216_25_lab, scale_ap1000','216.25','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(145,'217_fac',6292153.004829783924,'21_fac',NULL,'$',NULL,'217','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(146,'217_mat',23226380.82041720674,'21_mat',NULL,'$',NULL,'217','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(147,'217_lab',25683039.59143328294,'21_lab',NULL,'$',NULL,'217','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(148,'217.1_fac',0.0,'217_fac',NULL,'$',NULL,'217.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(149,'217.1_mat',5180875.137002043426,'217_mat',NULL,'$',NULL,'217.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(150,'217.1_lab',12817581.25827788375,'217_lab',NULL,'$',NULL,'217.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(151,'217.13_fac',0.0,'217.1_fac',NULL,'$',NULL,'217.13','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(152,'217.13_mat',696543.149547333247,'217.1_mat','category_scale','$','ref_217_13_mat, scale_fuel_stor_bldg_sub_vol, scale_ap1000','217.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(153,'217.13_lab',1368349.281342554371,'217.1_lab','category_scale','$','ref_217_13_lab, scale_fuel_stor_bldg_sub_vol, scale_ap1000','217.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(154,'217.3_fac',0.0,'217_fac',NULL,'$',NULL,'217.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(155,'217.3_mat',16739443.36274578981,'217_mat','category_scale','$','ref_217_3_mat, scale_frm_S_9_71886e_06, scale_ap1000','217.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(156,'217.3_lab',7736225.588731435127,'217_lab','category_scale','$','ref_217_3_lab, scale_frm_S_9_71886e_06, scale_ap1000','217.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(157,'217.14_fac',0.0,'217.1_fac','sum_all','$','ce_217_141_fac, ce_217_142_fac, ce_217_145_fac, ce_217_147_fac, ce_217_149_fac','217.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(158,'217.14_mat',4484331.987454711459,'217.1_mat','sum_all','$','ce_217_141_mat, ce_217_142_mat, ce_217_145_mat, ce_217_147_mat, ce_217_149_mat','217.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(159,'217.14_lab',11449231.9769353252,'217.1_lab','sum_all','$','ce_217_141_lab, ce_217_142_lab, ce_217_145_lab, ce_217_147_lab, ce_217_149_lab','217.14','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(160,'217.2_fac',6292153.004829783924,'217_fac',NULL,'$',NULL,'217.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(161,'217.2_mat',1306062.320669377223,'217_mat',NULL,'$',NULL,'217.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(162,'217.2_lab',5129232.744423965923,'217_lab',NULL,'$',NULL,'217.2','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(163,'217.21_fac',14069.69369042079962,'217.2_fac','category_scale','$','ref_217_21_fac, scale_fuel_stor_bldg_bldg_vol, scale_ap1000','217.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(164,'217.21_mat',281517.0448992162711,'217.2_mat','category_scale','$','ref_217_21_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000','217.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(165,'217.21_lab',660329.2679782314226,'217.2_lab','category_scale','$','ref_217_21_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000','217.21','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(166,'217.22_fac',551228.8160138694802,'217.2_fac','category_scale','$','ref_217_22_fac, scale_P, scale_ap1000','217.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(167,'217.22_mat',787919.9908249650616,'217.2_mat','category_scale','$','ref_217_22_mat, scale_P, scale_ap1000','217.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(168,'217.22_lab',3521923.410429528915,'217.2_lab','category_scale','$','ref_217_22_lab, scale_P, scale_ap1000','217.22','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(169,'217.23_fac',5726854.495125493966,'217.2_fac','category_scale','$','ref_217_23_fac, scale_P, scale_ap1000','217.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(170,'217.23_mat',30165.28387726704387,'217.2_mat','category_scale','$','ref_217_23_mat, scale_P, scale_ap1000','217.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(171,'217.23_lab',399287.6452513784171,'217.2_lab','category_scale','$','ref_217_23_lab, scale_P, scale_ap1000','217.23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(172,'217.24_fac',0.0,'217.2_fac',NULL,'$',NULL,'217.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(173,'217.24_mat',206460.0010679287079,'217.2_mat','category_scale','$','ref_217_24_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000','217.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(174,'217.24_lab',547692.4207648277515,'217.2_lab','category_scale','$','ref_217_24_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000','217.24','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(175,'218_fac',13518433.63236645796,'21_fac',NULL,'$',NULL,'218','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(176,'218_mat',10212281.98346948065,'21_mat',NULL,'$',NULL,'218','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(177,'218_lab',33895360.29201859235,'21_lab',NULL,'$',NULL,'218','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(178,'218A_fac',6620223.142967545428,'218_fac',NULL,'$',NULL,'218A','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(179,'218A_mat',2915579.409075896722,'218_mat',NULL,'$',NULL,'218A','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(180,'218A_lab',8306907.67387187481,'218_lab',NULL,'$',NULL,'218A','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(181,'218A.1_fac',0.0,'218A_fac','sum_all','$','ce_218A_13_fac, ce_218A_14_fac','218A.1','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(182,'218A.1_mat',2425886.596632305999,'218A_mat','sum_all','$','ce_218A_13_mat, ce_218A_14_mat','218A.1','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(183,'218A.1_lab',5127112.612297488377,'218A_lab','sum_all','$','ce_218A_13_lab, ce_218A_14_lab','218A.1','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(184,'218A.2_fac',6620223.14296754729,'218A_fac','sum_all','$','ce_218A_21_fac, ce_218A_23_fac, ce_218A_24_fac','218A.2','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(185,'218A.2_mat',489692.8124435906066,'218A_mat','sum_all','$','ce_218A_21_mat, ce_218A_23_mat, ce_218A_24_mat','218A.2','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(186,'218A.2_lab',3179795.061574387829,'218A_lab','sum_all','$','ce_218A_21_lab, ce_218A_23_lab, ce_218A_24_lab','218A.2','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(187,'218B_fac',5625549.024219361134,'218_fac',NULL,'$',NULL,'218B','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(188,'218B_mat',1315107.693935653427,'218_mat',NULL,'$',NULL,'218B','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(189,'218B_lab',9098998.337264072149,'218_lab',NULL,'$',NULL,'218B','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(190,'218B.1_fac',0.0,'218B_fac',NULL,'$',NULL,'218B.1','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(191,'218B.1_mat',0.0,'218B_mat',NULL,'$',NULL,'218B.1','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(192,'218B.1_lab',0.0,'218B_lab',NULL,'$',NULL,'218B.1','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(193,'218B.2_fac',5625549.024219361134,'218B_fac','sum_all','$','ce_218B_21_fac, ce_218B_22_fac, ce_218B_23_fac, ce_218B_24_fac, ce_218B_25_fac','218B.2','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(194,'218B.2_mat',1315107.693935653427,'218B_mat','sum_all','$','ce_218B_21_mat, ce_218B_22_mat, ce_218B_23_mat, ce_218B_24_mat, ce_218B_25_mat','218B.2','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(195,'218B.2_lab',9098998.337264072149,'218B_lab','sum_all','$','ce_218B_21_lab, ce_218B_22_lab, ce_218B_23_lab, ce_218B_24_lab, ce_218B_25_lab','218B.2','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(196,'218D_fac',250738.2607123646012,'218_fac','category_scale','$','ref_218D_fac, scale_ap1000','218D','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(197,'218D_mat',1010142.467389298371,'218_mat','category_scale','$','ref_218D_mat, scale_ap1000','218D','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(198,'218D_lab',2237710.412994249258,'218_lab','category_scale','$','ref_218D_lab, scale_ap1000','218D','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(199,'218E_fac',140749.4364614425867,'218_fac','category_scale','$','ref_218E_fac, scale_P, scale_ap1000','218E','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(200,'218E_mat',51921.39829170420125,'218_mat','category_scale','$','ref_218E_mat, scale_P, scale_ap1000','218E','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(201,'218E_lab',272685.1798392421334,'218_lab','category_scale','$','ref_218E_lab, scale_P, scale_ap1000','218E','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(202,'218F_fac',0.0,'218_fac',NULL,'$',NULL,'218F','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(203,'218F_mat',1829542.754045411479,'218_mat','category_scale','$','ref_218F_mat, scale_P, scale_ap1000','218F','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(204,'218F_lab',5652713.370756059886,'218_lab','category_scale','$','ref_218F_lab, scale_P, scale_ap1000','218F','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(205,'218G_fac',0.0,'218_fac','category_scale','$','ref_218G_fac, scale_elec_tunnel_bldg_vol, scale_ap1000','218G','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(206,'218G_mat',0.0,'218_mat','category_scale','$','ref_218G_mat, scale_elec_tunnel_bldg_vol, scale_ap1000','218G','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(207,'218G_lab',0.0,'218_lab','category_scale','$','ref_218G_lab, scale_elec_tunnel_bldg_vol, scale_ap1000','218G','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(208,'218H_fac',0.0,'218_fac','category_scale','$','ref_218H_fac, scale_non_ess_swgr_bldg_bldg_vol, scale_ap1000','218H','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(209,'218H_mat',0.0,'218_mat','category_scale','$','ref_218H_mat, scale_non_ess_swgr_bldg_bldg_vol, scale_ap1000','218H','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(210,'218H_lab',0.0,'218_lab','category_scale','$','ref_218H_lab, scale_non_ess_swgr_bldg_bldg_vol, scale_ap1000','218H','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(211,'218J_fac',221190.6238085922086,'218_fac','category_scale','$','ref_218J_fac, scale_P, scale_ap1000','218J','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(212,'218J_mat',148803.1254341659659,'218_mat','category_scale','$','ref_218J_mat, scale_P, scale_ap1000','218J','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(213,'218J_lab',1357394.058029999026,'218_lab','category_scale','$','ref_218J_lab, scale_P, scale_ap1000','218J','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(214,'218K_fac',0.0,'218_fac',NULL,'$',NULL,'218K','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(215,'218K_mat',744841.6203679294558,'218_mat','category_scale','$','ref_218K_mat, scale_P, scale_ap1000','218K','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(216,'218K_lab',1830204.651246297406,'218_lab','category_scale','$','ref_218K_lab, scale_P, scale_ap1000','218K','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(217,'218L_fac',391475.1792631673744,'218_fac','category_scale','$','ref_218L_fac, scale_ap1000','218L','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(218,'218L_mat',1905756.452452991624,'218_mat','category_scale','$','ref_218L_mat, scale_ap1000','218L','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(219,'218L_lab',4218738.576558701694,'218_lab','category_scale','$','ref_218L_lab, scale_ap1000','218L','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(220,'218P_fac',0.0,'218_fac',NULL,'$',NULL,'218P','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(221,'218P_mat',0.0,'218_mat','category_scale','$','ref_218P_mat, scale_cont_hatch_ms_bldg_vol, scale_ap1000','218P','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(222,'218P_lab',0.0,'218_lab','category_scale','$','ref_218P_lab, scale_cont_hatch_ms_bldg_vol, scale_ap1000','218P','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(223,'218S_fac',0.0,'218_fac','category_scale','$','ref_218S_fac, scale_wwt_bldg_bldg_vol, scale_ap1000','218S','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(224,'218S_mat',0.0,'218_mat','category_scale','$','ref_218S_mat, scale_wwt_bldg_bldg_vol, scale_ap1000','218S','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(225,'218S_lab',0.0,'218_lab','category_scale','$','ref_218S_lab, scale_wwt_bldg_bldg_vol, scale_ap1000','218S','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(226,'218T_fac',268507.9649339849712,'218_fac','category_scale','$','ref_218T_fac, scale_P, scale_ap1000','218T','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(227,'218T_mat',97740.9401923109836,'218_mat','category_scale','$','ref_218T_mat, scale_P, scale_ap1000','218T','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(228,'218T_lab',427424.42084906128,'218_lab','category_scale','$','ref_218T_lab, scale_P, scale_ap1000','218T','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(229,'218V_fac',0.0,'218_fac',NULL,'$',NULL,'218V','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(230,'218V_mat',192846.1222841188719,'218_mat','category_scale','$','ref_218V_mat, scale_ap1000','218V','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(231,'218V_lab',492583.6106090381508,'218_lab','category_scale','$','ref_218V_lab, scale_ap1000','218V','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(232,'22_fac',1442717790.256937981,'2_fac',NULL,'$',NULL,'22','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(233,'22_mat',95389413.8597456068,'2_mat',NULL,'$',NULL,'22','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(234,'22_lab',440456500.3369363546,'2_lab',NULL,'$',NULL,'22','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(235,'221_fac',376389824.0614533425,'22_fac',NULL,'$',NULL,'221','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(236,'221_mat',34734836.74965362996,'22_mat',NULL,'$',NULL,'221','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(237,'221_lab',25522480.35801327228,'22_lab',NULL,'$',NULL,'221','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(238,'221.1_fac',142559182.3083947598,'221_fac','category_scale','$','ref_221_1_fac, scale_frm_vsl_M, scale_ap1000','221.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(239,'221.1_mat',34033992.41645570845,'221_mat','category_scale','$','ref_221_1_mat, scale_frm_vsl_M, scale_ap1000','221.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(240,'221.1_lab',18056918.7818795368,'221_lab','category_scale','$','ref_221_1_lab, scale_frm_vsl_M, scale_ap1000','221.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(241,'221.3_fac',131845564.0645514577,'221_fac','category_scale','$','ref_221_3_fac, scale_rx_D, scale_ap1000','221.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(242,'221.3_mat',332077.1386768480297,'221_mat','category_scale','$','ref_221_3_mat, scale_rx_D, scale_ap1000','221.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(243,'221.3_lab',3566675.712751893793,'221_lab','category_scale','$','ref_221_3_lab, scale_rx_D, scale_ap1000','221.3','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(244,'221.2_fac',101985077.6885071396,'221_fac','category_scale','$','ref_221_2_fac, scale_n_crs, scale_ap1000','221.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(245,'221.2_mat',368767.194521073834,'221_mat','category_scale','$','ref_221_2_mat, scale_n_crs, scale_ap1000','221.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(246,'221.2_lab',3898885.863381844946,'221_lab','category_scale','$','ref_221_2_lab, scale_n_crs, scale_ap1000','221.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(247,'222_fac',731198556.1366150379,'22_fac',NULL,'$',NULL,'222','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(248,'222_mat',6775547.253522042185,'22_mat',NULL,'$',NULL,'222','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(249,'222_lab',65557617.92269158364,'22_lab',NULL,'$',NULL,'222','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(250,'222.1_fac',731198556.1366150379,'222_fac',NULL,'$',NULL,'222.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(251,'222.1_mat',6775547.253522042185,'222_mat',NULL,'$',NULL,'222.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(252,'222.1_lab',65557617.92269158364,'222_lab',NULL,'$',NULL,'222.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(253,'222.11_fac',261751656.0231072009,'222.1_fac','sum_all','$','ce_222_111_fac, ce_222_119_fac','222.11','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(254,'222.11_mat',2062689.865406938363,'222.1_mat','sum_all','$','ce_222_111_mat, ce_222_119_mat','222.11','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(255,'222.11_lab',19106042.54955650866,'222.1_lab','sum_all','$','ce_222_111_lab, ce_222_119_lab','222.11','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(256,'222.12_fac',17383762.47432366759,'222.1_fac','category_scale','$','ref_222_12_fac, scale_mc_piping_M, scale_ap1000','222.12','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(257,'222.12_mat',3074663.092788825742,'222.1_mat','category_scale','$','ref_222_12_mat, scale_mc_piping_M, scale_ap1000','222.12','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(258,'222.12_lab',31196327.16745287553,'222.1_lab','category_scale','$','ref_222_12_lab, scale_mc_piping_M, scale_ap1000','222.12','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(259,'222.13_fac',427210096.7891255021,'222.1_fac','sum_all','$','ce_222_132_fac, ce_222_139_fac','222.13','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(260,'222.13_mat',1464153.354022358544,'222.1_mat','sum_all','$','ce_222_132_mat, ce_222_139_mat','222.13','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(261,'222.13_lab',13491236.25922089629,'222.1_lab','sum_all','$','ce_222_132_lab, ce_222_139_lab','222.13','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(262,'222.14_fac',24853040.8500587456,'222.1_fac','category_scale','$','ref_222_14_fac, scale_frm_prz_M, scale_ap1000','222.14','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(263,'222.14_mat',174040.9413039194478,'222.1_mat','category_scale','$','ref_222_14_mat, scale_frm_prz_M, scale_ap1000','222.14','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(264,'222.14_lab',1764011.946461301762,'222.1_lab','category_scale','$','ref_222_14_lab, scale_frm_prz_M, scale_ap1000','222.14','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(265,'223_fac',72148062.67451557518,'22_fac',NULL,'$',NULL,'223','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(266,'223_mat',7388677.741251615807,'22_mat',NULL,'$',NULL,'223','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(267,'223_lab',67297638.79502926767,'22_lab',NULL,'$',NULL,'223','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(268,'223.1_fac',18418281.29520587251,'223_fac','category_scale','$','ref_223_1_fac, scale_P, f_simp_sfgd, scale_ap1000','223.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(269,'223.1_mat',1299401.072704549879,'223_mat','category_scale','$','ref_223_1_mat, scale_P, f_simp_sfgd, scale_ap1000','223.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(270,'223.1_lab',15488255.72367655485,'223_lab','category_scale','$','ref_223_1_lab, scale_P, f_simp_sfgd, scale_ap1000','223.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(271,'223.3_fac',36320841.47661212087,'223_fac','category_scale','$','ref_223_3_fac, scale_P, f_simp_sfgd, scale_ap1000','223.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(272,'223.3_mat',3733013.404787294101,'223_mat','category_scale','$','ref_223_3_mat, scale_P, f_simp_sfgd, scale_ap1000','223.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(273,'223.3_lab',25197074.71839709953,'223_lab','category_scale','$','ref_223_3_lab, scale_P, f_simp_sfgd, scale_ap1000','223.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(274,'223.4_fac',13584581.15740686655,'223_fac','category_scale','$','ref_223_4_fac, scale_cont_V, f_simp_sfgd, scale_ap1000','223.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(275,'223.4_mat',2152428.913790014107,'223_mat','category_scale','$','ref_223_4_mat, scale_cont_V, f_simp_sfgd, scale_ap1000','223.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(276,'223.4_lab',24270160.37242573128,'223_lab','category_scale','$','ref_223_4_lab, scale_cont_V, f_simp_sfgd, scale_ap1000','223.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(277,'223.5_fac',3824358.745290722698,'223_fac','category_scale','$','ref_223_5_fac, scale_cont_V, f_simp_sfgd, scale_ap1000','223.5','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(278,'223.5_mat',203834.349969758303,'223_mat','category_scale','$','ref_223_5_mat, scale_cont_V, f_simp_sfgd, scale_ap1000','223.5','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(279,'223.5_lab',2342147.980529879219,'223_lab','category_scale','$','ref_223_5_lab, scale_cont_V, f_simp_sfgd, scale_ap1000','223.5','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(280,'224_fac',76474736.46611970664,'22_fac',NULL,'$',NULL,'224','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(281,'224_mat',5387639.16535753943,'22_mat',NULL,'$',NULL,'224','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(282,'224_lab',53606304.7739399597,'22_lab',NULL,'$',NULL,'224','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(283,'224.1_fac',33238835.96017596125,'224_fac','category_scale','$','ref_224_1_fac, scale_pri_flow, f_simp_radw, scale_ap1000','224.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(284,'224.1_mat',4568113.701132465153,'224_mat','category_scale','$','ref_224_1_mat, scale_pri_flow, f_simp_radw, scale_ap1000','224.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(285,'224.1_lab',44445569.04742722213,'224_lab','category_scale','$','ref_224_1_lab, scale_pri_flow, f_simp_radw, scale_ap1000','224.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(286,'224.2_fac',5843796.950513904914,'224_fac','category_scale','$','ref_224_2_fac, scale_pri_flow, f_simp_radw, scale_ap1000','224.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(287,'224.2_mat',143276.1712620885809,'224_mat','category_scale','$','ref_224_2_mat, scale_pri_flow, f_simp_radw, scale_ap1000','224.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(288,'224.2_lab',2299649.427131104283,'224_lab','category_scale','$','ref_224_2_lab, scale_pri_flow, f_simp_radw, scale_ap1000','224.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(289,'224.3_fac',37392103.55542983859,'224_fac','category_scale','$','ref_224_3_fac, scale_P, f_simp_radw, scale_ap1000','224.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(290,'224.3_mat',676249.2929629860446,'224_mat','category_scale','$','ref_224_3_mat, scale_P, f_simp_radw, scale_ap1000','224.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(291,'224.3_lab',6861086.299381646328,'224_lab','category_scale','$','ref_224_3_lab, scale_P, f_simp_radw, scale_ap1000','224.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(292,'225_fac',9335413.3099845983,'22_fac',NULL,'$',NULL,'225','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(293,'225_mat',481318.7414647599216,'22_mat',NULL,'$',NULL,'225','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(294,'225_lab',5228054.607224781066,'22_lab',NULL,'$',NULL,'225','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(295,'225.1_fac',3770287.432417981793,'225_fac',NULL,'$',NULL,'225.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(296,'225.1_mat',205015.6532951439148,'225_mat',NULL,'$',NULL,'225.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(297,'225.1_lab',2652452.795894423966,'225_lab',NULL,'$',NULL,'225.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(298,'225.11_fac',2661183.450978095177,'225.1_fac','sum_all','$','ce_225_111_fac, ce_225_112_fac, ce_225_113_fac, ce_225_114_fac','225.11','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(299,'225.11_mat',85224.11666790154413,'225.1_mat','sum_all','$','ce_225_111_mat, ce_225_112_mat, ce_225_113_mat, ce_225_114_mat','225.11','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(300,'225.11_lab',1070189.476926592878,'225.1_lab','sum_all','$','ce_225_111_lab, ce_225_112_lab, ce_225_113_lab, ce_225_114_lab','225.11','AP1000_DIRECT',0,'rollup_from_moved_variables'); +INSERT INTO ap1000_cost_element VALUES(301,'225.12_fac',462918.0405946028769,'225.1_fac','category_scale','$','ref_225_12_fac, f_simp_fuel_hndl, scale_ap1000','225.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(302,'225.12_mat',4769.430748779594978,'225.1_mat','category_scale','$','ref_225_12_mat, f_simp_fuel_hndl, scale_ap1000','225.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(303,'225.12_lab',59779.77946277525916,'225.1_lab','category_scale','$','ref_225_12_lab, f_simp_fuel_hndl, scale_ap1000','225.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(304,'225.13_fac',646185.9408452827483,'225.1_fac','category_scale','$','ref_225_13_fac, f_simp_fuel_hndl, scale_ap1000','225.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(305,'225.13_mat',115022.1058784628112,'225.1_mat','category_scale','$','ref_225_13_mat, f_simp_fuel_hndl, scale_ap1000','225.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(306,'225.13_lab',1522483.53950505564,'225.1_lab','category_scale','$','ref_225_13_lab, f_simp_fuel_hndl, scale_ap1000','225.13','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(307,'225.3_fac',336937.1850408049068,'225_fac','category_scale','$','ref_225_3_fac, f_simp_fuel_hndl, scale_ap1000','225.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(308,'225.3_mat',15982.62182104653221,'225_mat','category_scale','$','ref_225_3_mat, f_simp_fuel_hndl, scale_ap1000','225.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(309,'225.3_lab',212733.0408812761016,'225_lab','category_scale','$','ref_225_3_lab, f_simp_fuel_hndl, scale_ap1000','225.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(310,'225.4_fac',5228188.692525810563,'225_fac','category_scale','$','ref_225_4_fac, scale_sfp_V, f_simp_fuel_hndl, scale_ap1000','225.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(311,'225.4_mat',260320.46634856952,'225_mat','category_scale','$','ref_225_4_mat, scale_sfp_V, f_simp_fuel_hndl, scale_ap1000','225.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(312,'225.4_lab',2362868.770449080504,'225_lab','category_scale','$','ref_225_4_lab, scale_sfp_V, f_simp_fuel_hndl, scale_ap1000','225.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(313,'226_fac',83891464.97857294977,'22_fac',NULL,'$',NULL,'226','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(314,'226_mat',14259524.36597745121,'22_mat',NULL,'$',NULL,'226','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(315,'226_lab',118883392.1546175777,'22_lab',NULL,'$',NULL,'226','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(316,'226.1_fac',2523809.891261753161,'226_fac','category_scale','$','ref_226_1_fac, f_simp_other_rx_equip, scale_ap1000','226.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(317,'226.1_mat',285494.9509429583558,'226_mat','category_scale','$','ref_226_1_mat, f_simp_other_rx_equip, scale_ap1000','226.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(318,'226.1_lab',3669668.641263554339,'226_lab','category_scale','$','ref_226_1_lab, f_simp_other_rx_equip, scale_ap1000','226.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(319,'226.3_fac',2877089.852360242047,'226_fac','category_scale','$','ref_226_3_fac, f_simp_other_rx_equip, scale_ap1000','226.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(320,'226.3_mat',897490.6813177498988,'226_mat','category_scale','$','ref_226_3_mat, f_simp_other_rx_equip, scale_ap1000','226.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(321,'226.3_lab',4281400.388376850634,'226_lab','category_scale','$','ref_226_3_lab, f_simp_other_rx_equip, scale_ap1000','226.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(322,'226.4_fac',30764724.87330244854,'226_fac','category_scale','$','ref_226_4_fac, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000','226.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(323,'226.4_mat',5098299.994208203629,'226_mat','category_scale','$','ref_226_4_mat, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000','226.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(324,'226.4_lab',44401388.93474373221,'226_lab','category_scale','$','ref_226_4_lab, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000','226.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(325,'226.6_fac',544783.4608331834898,'226_fac','category_scale','$','ref_226_6_fac, f_simp_other_rx_equip, scale_ap1000','226.6','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(326,'226.6_mat',5221.151284715566362,'226_mat','category_scale','$','ref_226_6_mat, f_simp_other_rx_equip, scale_ap1000','226.6','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(327,'226.6_lab',133076.9779108416406,'226_lab','category_scale','$','ref_226_6_lab, f_simp_other_rx_equip, scale_ap1000','226.6','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(328,'226.7_fac',34675314.48744239658,'226_fac',NULL,'$',NULL,'226.7','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(329,'226.7_mat',4940633.956157955341,'226_mat',NULL,'$',NULL,'226.7','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(330,'226.7_lab',63914038.32370480896,'226_lab',NULL,'$',NULL,'226.7','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(331,'226.71_fac',19184105.22065895795,'226.7_fac','category_scale','$','ref_226_71_fac, scale_P, f_simp_other_rx_equip, scale_ap1000','226.71','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(332,'226.71_mat',3248385.750098762569,'226.7_mat','category_scale','$','ref_226_71_mat, scale_P, f_simp_other_rx_equip, scale_ap1000','226.71','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(333,'226.71_lab',42162331.56992344559,'226.7_lab','category_scale','$','ref_226_71_lab, scale_P, f_simp_other_rx_equip, scale_ap1000','226.71','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(334,'226.72_fac',15491209.26678344234,'226.7_fac','category_scale','$','ref_226_72_fac, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000','226.72','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(335,'226.72_mat',1692248.206059192074,'226.7_mat','category_scale','$','ref_226_72_mat, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000','226.72','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(336,'226.72_lab',21751706.75378136336,'226.7_lab','category_scale','$','ref_226_72_lab, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000','226.72','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(337,'226.8_fac',11227763.39011468925,'226_fac','category_scale','$','ref_226_8_fac, f_simp_other_rx_equip, scale_ap1000','226.8','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(338,'226.8_mat',2865730.766659149434,'226_mat','category_scale','$','ref_226_8_mat, f_simp_other_rx_equip, scale_ap1000','226.8','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(339,'226.8_lab',506603.7344951436972,'226_lab','category_scale','$','ref_226_8_lab, f_simp_other_rx_equip, scale_ap1000','226.8','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(340,'226.9_fac',1277979.023258236469,'226_fac','category_scale','$','ref_226_9_fac, f_simp_other_rx_equip, scale_ap1000','226.9','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(341,'226.9_mat',166652.8654067211318,'226_mat','category_scale','$','ref_226_9_mat, f_simp_other_rx_equip, scale_ap1000','226.9','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(342,'226.9_lab',1977215.154122652718,'226_lab','category_scale','$','ref_226_9_lab, f_simp_other_rx_equip, scale_ap1000','226.9','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(343,'227_fac',93279732.629676789,'22_fac',NULL,'$',NULL,'227','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(344,'227_mat',5831239.221660980024,'22_mat',NULL,'$',NULL,'227','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(345,'227_lab',66773772.12037917971,'22_lab',NULL,'$',NULL,'227','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(346,'227.1_fac',16731116.03427666798,'227_fac',NULL,'$',NULL,'227.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(347,'227.1_mat',415956.6370270565384,'227_mat',NULL,'$',NULL,'227.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(348,'227.1_lab',8249629.071047681383,'227_lab',NULL,'$',NULL,'227.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(349,'227.11_fac',6701731.730375718325,'227.1_fac','category_scale','$','ref_227_11_fac, scale_ap1000','227.11','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(350,'227.11_mat',134371.8665027546813,'227.1_mat','category_scale','$','ref_227_11_mat, scale_ap1000','227.11','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(351,'227.11_lab',2730078.873139126227,'227.1_lab','category_scale','$','ref_227_11_lab, scale_ap1000','227.11','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(352,'227.15_fac',574574.0457296326057,'227.1_fac','category_scale','$','ref_227_15_fac, scale_ap1000','227.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(353,'227.15_mat',21724.17742507607182,'227.1_mat','category_scale','$','ref_227_15_mat, scale_ap1000','227.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(354,'227.15_lab',418609.7770808031201,'227.1_lab','category_scale','$','ref_227_15_lab, scale_ap1000','227.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(355,'227.16_fac',2401728.739311987069,'227.1_fac','category_scale','$','ref_227_16_fac, scale_ap1000','227.16','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(356,'227.16_mat',85022.3131654947938,'227.1_mat','category_scale','$','ref_227_16_mat, scale_ap1000','227.16','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(357,'227.16_lab',1638045.812876972369,'227.1_lab','category_scale','$','ref_227_16_lab, scale_ap1000','227.16','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(358,'227.17_fac',2298303.069811153225,'227.1_fac','category_scale','$','ref_227_17_fac, scale_ap1000','227.17','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(359,'227.17_mat',85022.3131654947938,'227.1_mat','category_scale','$','ref_227_17_mat, scale_ap1000','227.17','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(360,'227.17_lab',1638045.812876972369,'227.1_lab','category_scale','$','ref_227_17_lab, scale_ap1000','227.17','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(361,'227.18_fac',2876843.517601048108,'227.1_fac','category_scale','$','ref_227_18_fac, scale_ap1000','227.18','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(362,'227.18_mat',62708.8542465896171,'227.1_mat','category_scale','$','ref_227_18_mat, scale_ap1000','227.18','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(363,'227.18_lab',1274037.311228895792,'227.1_lab','category_scale','$','ref_227_18_lab, scale_ap1000','227.18','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(364,'227.19_fac',1877934.931447128766,'227.1_fac','category_scale','$','ref_227_19_fac, scale_n_crs, scale_ap1000','227.19','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(365,'227.19_mat',27107.1125216466171,'227.1_mat','category_scale','$','ref_227_19_mat, scale_n_crs, scale_ap1000','227.19','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(366,'227.19_lab',550811.4838449135423,'227.1_lab','category_scale','$','ref_227_19_lab, scale_n_crs, scale_ap1000','227.19','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(367,'227.2_fac',18766570.19032762199,'227_fac','category_scale','$','ref_227_2_fac, scale_ap1000','227.2','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(368,'227.2_mat',256755.2755789523071,'227_mat','category_scale','$','ref_227_2_mat, scale_ap1000','227.2','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(369,'227.2_lab',2608349.836621382739,'227_lab','category_scale','$','ref_227_2_lab, scale_ap1000','227.2','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(370,'227.3_fac',19468964.34294287115,'227_fac','category_scale','$','ref_227_3_fac, scale_ap1000','227.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(371,'227.3_mat',404015.4775818211492,'227_mat','category_scale','$','ref_227_3_mat, scale_ap1000','227.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(372,'227.3_lab',7334816.64070137404,'227_lab','category_scale','$','ref_227_3_lab, scale_ap1000','227.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(373,'227.4_fac',18776867.17664469033,'227_fac','category_scale','$','ref_227_4_fac, scale_n_crs, scale_ap1000','227.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(374,'227.4_mat',661472.9632847630418,'227_mat','category_scale','$','ref_227_4_mat, scale_n_crs, scale_ap1000','227.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(375,'227.4_lab',6719825.107749218122,'227_lab','category_scale','$','ref_227_4_lab, scale_n_crs, scale_ap1000','227.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(376,'227.5_fac',1504921.852003928973,'227_fac','category_scale','$','ref_227_5_fac, scale_n_crs, scale_ap1000','227.5','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(377,'227.5_mat',3008655.337751244195,'227_mat','category_scale','$','ref_227_5_mat, scale_n_crs, scale_ap1000','227.5','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(378,'227.5_lab',30845058.97257386894,'227_lab','category_scale','$','ref_227_5_lab, scale_n_crs, scale_ap1000','227.5','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(379,'227.9_fac',18031293.03348100558,'227_fac','category_scale','$','ref_227_9_fac, scale_n_crs, scale_ap1000','227.9','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(380,'227.9_mat',1084383.530437141192,'227_mat','category_scale','$','ref_227_9_mat, scale_n_crs, scale_ap1000','227.9','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(381,'227.9_lab',11016092.49168564193,'227_lab','category_scale','$','ref_227_9_lab, scale_n_crs, scale_ap1000','227.9','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(382,'228_fac',0.0,'22_fac',NULL,'$',NULL,'228','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(383,'228_mat',20530630.6208575815,'22_mat','category_scale','$','ref_228_mat, scale_ap1000','228','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(384,'228_lab',37587239.60504067689,'22_lab','category_scale','$','ref_228_lab, scale_ap1000','228','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(385,'229_fac',0.0,'22_fac',NULL,'$',NULL,'229','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(386,'229_mat',0.0,'22_mat',NULL,'$',NULL,'229','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(387,'229_lab',0.0,'22_lab',NULL,'$',NULL,'229','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(388,'23_fac',1115928778.265224456,'2_fac','category_scale','$','ref_23_fac, scale_elec_P, scale_ap1000','23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(389,'23_mat',71694656.38854078948,'2_mat','category_scale','$','ref_23_mat, scale_elec_P, scale_ap1000','23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(390,'23_lab',473653546.8197370768,'2_lab','category_scale','$','ref_23_lab, scale_elec_P, scale_ap1000','23','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(391,'24_fac',84014350.34107561409,'2_fac',NULL,'$',NULL,'24','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(392,'24_mat',76514666.64616328477,'2_mat',NULL,'$',NULL,'24','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(393,'24_lab',254235726.5018795132,'2_lab',NULL,'$',NULL,'24','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(394,'241_fac',38196895.68243374675,'24_fac','category_scale','$','ref_241_fac, scale_tur_plant_equip_elec_P, f_elec_swgr, scale_ap1000','241','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(395,'241_mat',299834.5465517936973,'24_mat','category_scale','$','ref_241_mat, scale_tur_plant_equip_elec_P, f_elec_swgr, scale_ap1000','241','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(396,'241_lab',2086749.363289786503,'24_lab','category_scale','$','ref_241_lab, scale_tur_plant_equip_elec_P, f_elec_swgr, scale_ap1000','241','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(397,'242_fac',30353177.85445730015,'24_fac','category_scale','$','ref_242_fac, scale_tur_plant_equip_elec_P, f_elec_st_serv, scale_ap1000','242','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(398,'242_mat',541014.0645522477571,'24_mat','category_scale','$','ref_242_mat, scale_tur_plant_equip_elec_P, f_elec_st_serv, scale_ap1000','242','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(399,'242_lab',2846743.91808849154,'24_lab','category_scale','$','ref_242_lab, scale_tur_plant_equip_elec_P, f_elec_st_serv, scale_ap1000','242','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(400,'243_fac',8814551.267784392462,'24_fac','category_scale','$','ref_243_fac, scale_tur_plant_equip_elec_P, f_elec_switchboards, scale_ap1000','243','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(401,'243_mat',177892.1230746608053,'24_mat','category_scale','$','ref_243_mat, scale_tur_plant_equip_elec_P, f_elec_switchboards, scale_ap1000','243','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(402,'243_lab',1963902.044269940118,'24_lab','category_scale','$','ref_243_lab, scale_tur_plant_equip_elec_P, f_elec_switchboards, scale_ap1000','243','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(403,'244_fac',0.0,'24_fac',NULL,'$',NULL,'244','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(404,'244_mat',11056560.28387742676,'24_mat','category_scale','$','ref_244_mat, scale_tur_plant_equip_elec_P, f_elec_prot, scale_ap1000','244','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(405,'244_lab',20409040.84239433706,'24_lab','category_scale','$','ref_244_lab, scale_tur_plant_equip_elec_P, f_elec_prot, scale_ap1000','244','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(406,'245_fac',0.0,'24_fac',NULL,'$',NULL,'245','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(407,'245_mat',24302880.68895334005,'24_mat','category_scale','$','ref_245_mat, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont, scale_ap1000','245','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(408,'245_lab',145384479.1348336638,'24_lab','category_scale','$','ref_245_lab, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont, scale_ap1000','245','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(409,'246_fac',6649725.53640018031,'24_fac','category_scale','$','ref_246_fac, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir, scale_ap1000','246','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(410,'246_mat',40136484.93915381282,'24_mat','category_scale','$','ref_246_mat, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir, scale_ap1000','246','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(411,'246_lab',81544811.1990032494,'24_lab','category_scale','$','ref_246_lab, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir, scale_ap1000','246','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(412,'25_fac',109644291.8705731481,'2_fac',NULL,'$',NULL,'25','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(413,'25_mat',33527132.75756181404,'2_mat',NULL,'$',NULL,'25','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(414,'25_lab',228404882.2134790718,'2_lab',NULL,'$',NULL,'25','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(415,'251_fac',31649349.10510003195,'25_fac',NULL,'$',NULL,'251','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(416,'251_mat',740441.3446219881299,'25_mat',NULL,'$',NULL,'251','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(417,'251_lab',7101499.644907755777,'25_lab',NULL,'$',NULL,'251','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(418,'251.1_fac',31649349.10510003195,'251_fac',NULL,'$',NULL,'251.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(419,'251.1_mat',740441.3446219881299,'251_mat',NULL,'$',NULL,'251.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(420,'251.1_lab',7101499.644907755777,'251_lab',NULL,'$',NULL,'251.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(421,'251.11_fac',11141448.26308757067,'251.1_fac','category_scale','$','ref_251_11_fac, scale_P, scale_ap1000','251.11','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(422,'251.11_mat',180170.5277728002402,'251.1_mat','category_scale','$','ref_251_11_mat, scale_P, scale_ap1000','251.11','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(423,'251.11_lab',1728020.50017731334,'251.1_lab','category_scale','$','ref_251_11_lab, scale_P, scale_ap1000','251.11','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(424,'251.12_fac',15916354.66155367159,'251.1_fac','category_scale','$','ref_251_12_fac, scale_P, scale_ap1000','251.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(425,'251.12_mat',360341.0554318919312,'251.1_mat','category_scale','$','ref_251_12_mat, scale_P, scale_ap1000','251.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(426,'251.12_lab',3456007.590507677756,'251.1_lab','category_scale','$','ref_251_12_lab, scale_P, scale_ap1000','251.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(427,'251.16_fac',1917598.597317775013,'251.1_fac','category_scale','$','ref_251_16_fac, scale_ap1000','251.16','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(428,'251.16_mat',170249.6976722505934,'251.1_mat','category_scale','$','ref_251_16_mat, scale_ap1000','251.16','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(429,'251.16_lab',1632853.759698245208,'251.1_lab','category_scale','$','ref_251_16_lab, scale_ap1000','251.16','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(430,'251.17_fac',2673947.583141016773,'251.1_fac','category_scale','$','ref_251_17_fac, scale_P, scale_ap1000','251.17','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(431,'251.17_mat',29680.06374504538689,'251.1_mat','category_scale','$','ref_251_17_mat, scale_P, scale_ap1000','251.17','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(432,'251.17_lab',284617.79452452017,'251.1_lab','category_scale','$','ref_251_17_lab, scale_P, scale_ap1000','251.17','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(433,'252_fac',52043192.34685958922,'25_fac',NULL,'$',NULL,'252','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(434,'252_mat',27795317.95359371231,'25_mat',NULL,'$',NULL,'252','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(435,'252_lab',181004856.2842880785,'25_lab',NULL,'$',NULL,'252','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(436,'252.1_fac',9193183.821536559611,'252_fac','category_scale','$','ref_252_1_fac, scale_V_of_212_213_215_216_217, scale_ap1000','252.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(437,'252.1_mat',1922969.566117499954,'252_mat','category_scale','$','ref_252_1_mat, scale_V_of_212_213_215_216_217, scale_ap1000','252.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(438,'252.1_lab',45200589.90347836912,'252_lab','category_scale','$','ref_252_1_lab, scale_V_of_212_213_215_216_217, scale_ap1000','252.1','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(439,'252.2_fac',29441010.31694540754,'252_fac','category_scale','$','ref_252_2_fac, scale_V_of_212_213_215_216_217, scale_ap1000','252.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(440,'252.2_mat',23864021.45667997747,'252_mat','category_scale','$','ref_252_2_mat, scale_V_of_212_213_215_216_217, scale_ap1000','252.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(441,'252.2_lab',113520774.8767893315,'252_lab','category_scale','$','ref_252_2_lab, scale_V_of_212_213_215_216_217, scale_ap1000','252.2','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(442,'252.3_fac',13408998.20837763883,'252_fac','category_scale','$','ref_252_3_fac, scale_V_of_212_213_215_216_217, scale_ap1000','252.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(443,'252.3_mat',1235248.192410800374,'252_mat','category_scale','$','ref_252_3_mat, scale_V_of_212_213_215_216_217, scale_ap1000','252.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(444,'252.3_lab',20901145.1213456802,'252_lab','category_scale','$','ref_252_3_lab, scale_V_of_212_213_215_216_217, scale_ap1000','252.3','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(445,'252.4_fac',0.0,'252_fac',NULL,'$',NULL,'252.4','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(446,'252.4_mat',773078.7383854342624,'252_mat','category_scale','$','ref_252_4_mat, scale_ap1000','252.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(447,'252.4_lab',1382346.382674682885,'252_lab','category_scale','$','ref_252_4_lab, scale_ap1000','252.4','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(448,'253_fac',9877474.89593536779,'25_fac','category_scale','$','ref_253_fac, scale_V_of_212_213_215_216_217, scale_ap1000','253','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(449,'253_mat',3326156.547956905794,'25_mat','category_scale','$','ref_253_mat, scale_V_of_212_213_215_216_217, scale_ap1000','253','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(450,'253_lab',24085727.11871162056,'25_lab','category_scale','$','ref_253_lab, scale_V_of_212_213_215_216_217, scale_ap1000','253','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(451,'254_fac',11311234.37019832433,'25_fac','category_scale','$','ref_254_fac, scale_V_of_212_213_215_216_217, scale_ap1000','254','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(452,'254_mat',371591.3353406360839,'25_mat','category_scale','$','ref_254_mat, scale_V_of_212_213_215_216_217, scale_ap1000','254','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(453,'254_lab',3217742.242525373585,'25_lab','category_scale','$','ref_254_lab, scale_V_of_212_213_215_216_217, scale_ap1000','254','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(454,'255_fac',4763041.1524798451,'25_fac','category_scale','$','ref_255_fac, scale_ap1000','255','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(455,'255_mat',1293625.576048562768,'25_mat','category_scale','$','ref_255_mat, scale_ap1000','255','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(456,'255_lab',12995056.92304626108,'25_lab','category_scale','$','ref_255_lab, scale_ap1000','255','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(457,'26_fac',200084995.7570815981,'2_fac',NULL,'$',NULL,'26','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(458,'26_mat',24445605.44957758113,'2_mat',NULL,'$',NULL,'26','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(459,'26_lab',149802987.0886013209,'2_lab',NULL,'$',NULL,'26','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(460,'261_fac',1124505.072865268914,'26_fac','category_scale','$','ref_261_fac, scale_rej_th_P, scale_ap1000','261','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(461,'261_mat',11231061.51233344339,'26_mat','category_scale','$','ref_261_mat, scale_rej_th_P, scale_ap1000','261','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(462,'261_lab',26135920.4260704331,'26_lab','category_scale','$','ref_261_lab, scale_rej_th_P, scale_ap1000','261','AP1000_DIRECT',0,'collapsed_category_scaled'); +INSERT INTO ap1000_cost_element VALUES(463,'262_fac',198960490.6842163205,'26_fac',NULL,'$',NULL,'262','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(464,'262_mat',13214543.93724413961,'26_mat',NULL,'$',NULL,'262','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(465,'262_lab',123667066.662530899,'26_lab',NULL,'$',NULL,'262','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(466,'262.1_fac',198960490.6842163205,'262_fac',NULL,'$',NULL,'262.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(467,'262.1_mat',13214543.93724413961,'262_mat',NULL,'$',NULL,'262.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(468,'262.1_lab',123667066.662530899,'262_lab',NULL,'$',NULL,'262.1','AP1000_DIRECT',0,'rollup_from_subaccounts'); +INSERT INTO ap1000_cost_element VALUES(469,'262.11_fac',2345244.64527074853,'262.1_fac','category_scale','$','ref_262_11_fac, scale_rej_th_P, scale_ap1000','262.11','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(470,'262.11_mat',89899.78909382849815,'262.1_mat','category_scale','$','ref_262_11_mat, scale_rej_th_P, scale_ap1000','262.11','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(471,'262.11_lab',855946.9207673013443,'262.1_lab','category_scale','$','ref_262_11_lab, scale_rej_th_P, scale_ap1000','262.11','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(472,'262.12_fac',56471175.91976574809,'262.1_fac','category_scale','$','ref_262_12_fac, scale_ap1000','262.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(473,'262.12_mat',6364345.794783722609,'262.1_mat','category_scale','$','ref_262_12_mat, scale_ap1000','262.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(474,'262.12_lab',43862687.15510696172,'262.1_lab','category_scale','$','ref_262_12_lab, scale_ap1000','262.12','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(475,'262.13_fac',132354226.105111584,'262.1_fac','category_scale','$','ref_262_13_fac, scale_rej_th_P, scale_ap1000','262.13','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(476,'262.13_mat',6124500.274164423347,'262.1_mat','category_scale','$','ref_262_13_mat, scale_rej_th_P, scale_ap1000','262.13','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(477,'262.13_lab',77008158.10608170927,'262.1_lab','category_scale','$','ref_262_13_lab, scale_rej_th_P, scale_ap1000','262.13','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(478,'262.14_fac',0.0,'262.1_fac',NULL,'$',NULL,'262.14','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(479,'262.14_mat',336195.9723467761069,'262.1_mat','category_scale','$','ref_262_14_mat, scale_rej_th_P, scale_ap1000','262.14','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(480,'262.14_lab',372827.1750759084243,'262.1_lab','category_scale','$','ref_262_14_lab, scale_rej_th_P, scale_ap1000','262.14','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(481,'262.15_fac',7789844.01406823285,'262.1_fac','category_scale','$','ref_262_15_fac, scale_rej_th_P, scale_ap1000','262.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(482,'262.15_mat',299602.1068553890801,'262.1_mat','category_scale','$','ref_262_15_mat, scale_rej_th_P, scale_ap1000','262.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(483,'262.15_lab',1567447.305499010254,'262.1_lab','category_scale','$','ref_262_15_lab, scale_rej_th_P, scale_ap1000','262.15','AP1000_DIRECT',0,'category_scaled'); +INSERT INTO ap1000_cost_element VALUES(484,'219_fac',0.0,'21_fac',NULL,'$',NULL,'219','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(485,'219_mat',0.0,'21_mat',NULL,'$',NULL,'219','AP1000_DIRECT',0,'collapsed_rollup_zero'); +INSERT INTO ap1000_cost_element VALUES(486,'219_lab',0.0,'21_lab',NULL,'$',NULL,'219','AP1000_DIRECT',0,'collapsed_rollup_zero'); +CREATE TABLE ap1000_variable (ind INTEGER NOT NULL, var_name TEXT, var_description TEXT, var_value REAL, var_unit TEXT, var_alg TEXT, var_need TEXT, v_linked TEXT, user_input INTEGER, PRIMARY KEY (ind)); +INSERT INTO ap1000_variable VALUES(1,'adm_bldg_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_adm_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(2,'S','General Yardwork Area for 211.1',23.0,'m^2',NULL,NULL,'scale_S',0); +INSERT INTO ap1000_variable VALUES(3,'bldg_V','Structural & Miscellaneous Steel Building volume for 213.142',194392.0,'m^3',NULL,NULL,'scale_bldg_V',0); +INSERT INTO ap1000_variable VALUES(4,'cont_D_D','AP1000 A.212.15 containment cylinder/dome diameter D',44.20000000000000285,'m',NULL,NULL,'sup_str_S',0); +INSERT INTO ap1000_variable VALUES(5,'cont_hatch_ms_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_cont_hatch_ms_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(6,'cont_H_H','AP1000 A.212.15 containment cylinder height H',45.70000000000000285,'m',NULL,NULL,'sup_str_S',0); +INSERT INTO ap1000_variable VALUES(7,'cont_V','Containment Spray System Containment volume for 223.4',86163.93811123160412,'m^3',NULL,NULL,'scale_cont_V',0); +INSERT INTO ap1000_variable VALUES(8,'cr_dg_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 218142',2660.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(9,'cr_dg_bldg_sub_S','Roofing & Flashing Substructure S for 218145',380.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(10,'cr_dg_bldg_sub_vol','Substructure Concrete Substructure volume for 21813',228.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(11,'cr_dg_bldg_sup_S','Painting Superstructure S for 218149',546.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(12,'cr_dg_bldg_sup_vol','Concrete Work Superstructure volume for 218141',163.7999999999999829,'m^3',NULL,NULL,'scale_cr_dg_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(13,'elec_P','Input unit value for Electric power scale, source account 231.; also used for new_base_turbine_plant_equipment_elec_P',2234.0,'MWe',NULL,NULL,'rej_th_P, scale_elec_P, scale_tur_plant_equip_elec_P',0); +INSERT INTO ap1000_variable VALUES(14,'elec_tunnel_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_elec_tunnel_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(15,'frm_flow','Fluid Circulation Drive System Flow rate for 222.11',5000.0,'kg/s',NULL,NULL,'scale_frm_flow',0); +INSERT INTO ap1000_variable VALUES(16,'frm_fuel_cask_cap','Spent Fuel Cask Crane Fuel cask capacity for 225.114',113.0,'tonne',NULL,NULL,'scale_frm_fuel_cask_cap',0); +INSERT INTO ap1000_variable VALUES(17,'frm_fuel_crane_cap','New & Spent Fuel Crane Fuel crane capacity for 225.111',2.0,'tonne',NULL,NULL,'scale_frm_fuel_crane_cap',0); +INSERT INTO ap1000_variable VALUES(18,'frm_ht_S','Steam Generator Equipment HT surface S for 222.13',11477.0,'m^2',NULL,NULL,'scale_frm_ht_S',0); +INSERT INTO ap1000_variable VALUES(19,'frm_prz_M','Pressurizing System Pressurizer mass for 222.14',106000.0,'kg',NULL,NULL,'scale_frm_prz_M',0); +INSERT INTO ap1000_variable VALUES(20,'frm_S','Passive cooling pool Surface S for 212.3',1000.0,'m^2',NULL,NULL,'scale_frm_S',0); +INSERT INTO ap1000_variable VALUES(21,'frm_S_9_71886e_06','Storage Pool Liner - S.S. Surface S for 217.3',480.0,'m^2',NULL,NULL,'scale_frm_S_9_71886e_06',0); +INSERT INTO ap1000_variable VALUES(22,'frm_vsl_M','Reactor Vessel + Accessory Vessel mass for 221.1',352000.0,'kg',NULL,NULL,'scale_frm_vsl_M',0); +INSERT INTO ap1000_variable VALUES(23,'fuel_stor_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 217.142',18900.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(24,'fuel_stor_bldg_sub_S','Roofing & Flashing Substructure S for 217.145',700.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(25,'fuel_stor_bldg_sub_vol','Substructure Concrete Substructure volume for 217.13',420.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(26,'fuel_stor_bldg_sup_S','Painting Superstructure S for 217.149',2862.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(27,'fuel_stor_bldg_sup_vol','Concrete Work Superstructure volume for 217.141',858.6000000000000227,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(28,'mc_piping_M','Reactor Coolant Piping System MC piping mass for 222.12',77000.0,'kg',NULL,NULL,'scale_mc_piping_M',0); +INSERT INTO ap1000_variable VALUES(29,'non_ess_swgr_bldg_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_non_ess_swgr_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(30,'n_crs','Reactor Control Devices Number of CRs for 221.2',69.0,NULL,NULL,NULL,'scale_n_crs',0); +INSERT INTO ap1000_variable VALUES(31,'pri_aux_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 215.142',13357.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(32,'pri_aux_bldg_sub_S','Roofing & Flashing Substructure S for 215.145',703.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(33,'pri_aux_bldg_sub_vol','Substructure Concrete Substructure volume for 215.13',843.6000000000000227,'m^3',NULL,NULL,'scale_pri_aux_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(34,'pri_aux_bldg_sup_S','Painting Superstructure S for 215.149',2128.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(35,'pri_aux_bldg_sup_vol','Concrete Work Superstructure volume for 215.141',1276.799999999999955,'m^3',NULL,NULL,'scale_pri_aux_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(36,'pri_flow','Liquid Waste System Primary flowrate for 224.1',19880.0,'kg/s',NULL,NULL,'scale_pri_flow',0); +INSERT INTO ap1000_variable VALUES(37,'rx_D','Vessel Internals Reactor diameter (m) for 221.3',4.5,'m',NULL,NULL,'scale_rx_D',0); +INSERT INTO ap1000_variable VALUES(38,'rej_th_P','Rejected thermal power for 261.1',4566.0,'MWt','calc_rej_th_P','rx_P, elec_P','scale_rej_th_P',0); +INSERT INTO ap1000_variable VALUES(39,'rx_P','Input unit value for Plant power scale, source account 212.22; also used for new_base_rx_P; also used for new_base_yardwork_rx_P',6800.0,'MWt',NULL,NULL,'rej_th_P, scale_P',0); +INSERT INTO ap1000_variable VALUES(40,'sfp_V','Fuel Storage, Cleaning, & Inspection Equipment SFP volume for 225.4',750.0,'m^3',NULL,NULL,'scale_sfp_V',0); +INSERT INTO ap1000_variable VALUES(41,'sub_str_S','Roof Deck Substructure S for 213.144',4136.0,'m^2',NULL,NULL,'scale_sub_str_S',0); +INSERT INTO ap1000_variable VALUES(42,'sub_str_V','Substructure Concrete Substructure volume for 212.13',4603.155803819373432,'m^3',NULL,NULL,'scale_sub_str_V',0); +INSERT INTO ap1000_variable VALUES(43,'sup_const','Interior Concrete Building volume for 212.140',92728.0163591613819,'m^3',NULL,NULL,'scale_sup_const',0); +INSERT INTO ap1000_variable VALUES(44,'sup_str_S','Calculated containment superstructure S for cylinder with dome: pi*D^2/2 + pi*D*H',9414.59920057175077,'m^2','cal_sup_str_S','cont_D_D, cont_H_H','scale_sup_str_S, scale_sup_str_V',0); +INSERT INTO ap1000_variable VALUES(45,'turb_gen_bldg_sub_vol','Substructure Concrete Substructure volume for 213.13',1240.799999999999955,'m^3',NULL,NULL,'scale_turb_gen_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(46,'turb_gen_bldg_sup_S','Exterior Walls Superstructure S for 213.143',12690.0,'m^2',NULL,NULL,'scale_turb_gen_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(47,'turb_gen_bldg_sup_vol','Concrete Work Superstructure volume for 213.141',3807.0,'m^3',NULL,NULL,'scale_turb_gen_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(48,'uc_frm_flow','Unit-cost coefficient for Flow rate scale, source account 222.11',9054.0,'kg/s',NULL,NULL,'scale_frm_flow',0); +INSERT INTO ap1000_variable VALUES(49,'uc_frm_fuel_cap','Unit cost coefficient for fuel cask and crane capacity direct formula scale',411796.0,'$/tonne',NULL,NULL,'scale_frm_fuel_cask_cap, scale_frm_fuel_crane_cap',0); +INSERT INTO ap1000_variable VALUES(50,'uc_frm_ht_S','Unit-cost coefficient for HT surface S scale, source account 222.13',31688.0,'m^2',NULL,NULL,'scale_frm_ht_S',0); +INSERT INTO ap1000_variable VALUES(51,'uc_frm_prz_M','Unit-cost coefficient for Pressurizer mass scale, source account 222.14',13128.0,'kg',NULL,NULL,'scale_frm_prz_M',0); +INSERT INTO ap1000_variable VALUES(52,'uc_frm_S','Unit-cost coefficient for Surface S scale, source account 212.3',17866.0,'m^2',NULL,NULL,'scale_frm_S',0); +INSERT INTO ap1000_variable VALUES(53,'uc_frm_S_9_71886e_06','Unit-cost coefficient for Surface S scale, source account 217.3',17866.0,'m^2',NULL,NULL,'scale_frm_S_9_71886e_06',0); +INSERT INTO ap1000_variable VALUES(54,'uc_frm_vsl_M','Unit-cost coefficient for Vessel mass scale, source account 221.1',13128.0,'kg',NULL,NULL,'scale_frm_vsl_M',0); +INSERT INTO ap1000_variable VALUES(55,'V_of_212_213_215_216_217','Fill & Backfill (Place/Comp) Volume of 212, 213, 215, 216, 217 for 211.712',336225.0163591612945,'m^3',NULL,NULL,'scale_V_of_212_213_215_216_217',0); +INSERT INTO ap1000_variable VALUES(56,'waste_bldg_bldg_vol','Structural & Miscellaneous Steel Building volume for 216.142',16848.0,'m^3',NULL,NULL,'scale_waste_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(57,'waste_bldg_sub_S','Roof Deck Substructure S for 216.144',1296.0,'m^2',NULL,NULL,'scale_waste_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(58,'waste_bldg_sub_vol','Substructure Concrete Substructure volume for 216.13',1555.200000000000045,'m^3',NULL,NULL,'scale_waste_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(59,'waste_bldg_sup_S','Exterior Walls Superstructure S for 216.143',2028.0,'m^2',NULL,NULL,'scale_waste_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(60,'waste_bldg_sup_vol','Concrete Work Superstructure volume for 216.141',1216.799999999999955,'m^3',NULL,NULL,'scale_waste_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(61,'wwt_bldg_bldg_vol','Building volume for 219.142',0.0,'m^3',NULL,NULL,'scale_wwt_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(62,'adj_212_14112_lab','Adjustment factor for 212.14112_lab',0.1686319183939024025,'1',NULL,NULL,'ce_212_14112_lab',0); +INSERT INTO ap1000_variable VALUES(63,'adj_212_14122_lab','Adjustment factor for 212.14122_lab',0.4545732208217064807,'1',NULL,NULL,'ce_212_14122_lab',0); +INSERT INTO ap1000_variable VALUES(64,'adj_cont_mat_1_48','Adjustment factor for 212.14112_mat, 212.14122_mat',1.479999999999999983,'1',NULL,NULL,'ce_212_14112_mat, ce_212_14122_mat',0); +INSERT INTO ap1000_variable VALUES(65,'adj_half','Adjustment factor for 222.132_fac, 222.132_lab, 222.132_mat, 222.139_fac, 222.139_lab, 222.139_mat',0.5,'1',NULL,NULL,'ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab',0); +INSERT INTO ap1000_variable VALUES(66,'adj_none','Adjustment factor for 212.14111_lab, 212.14111_mat, 212.14117_lab, 212.14117_mat, 212.14121_lab, 212.14121_mat, 212.14127_lab, 212.14127_mat',0.0,'1',NULL,NULL,'ce_212_14111_mat, ce_212_14111_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14127_mat, ce_212_14127_lab',0); +INSERT INTO ap1000_variable VALUES(67,'adj_rx_aux_0_25','Adjustment factor for 222.111_fac, 222.111_lab, 222.111_mat, 222.119_fac, 222.119_lab, 222.119_mat',0.249999999999999889,'1',NULL,NULL,'ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab',0); +INSERT INTO ap1000_variable VALUES(68,'count_222_11','Count per plant for 222.11',4.0,'1',NULL,NULL,'ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab',0); +INSERT INTO ap1000_variable VALUES(69,'count_222_13','Count per plant for 222.13',2.0,'1',NULL,NULL,'ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab',0); +INSERT INTO ap1000_variable VALUES(70,'exp_lin','Linear scaling exponent used by unit-cost/geometry scale laws where exponent = 1',1.0,'1',NULL,NULL,'scale_adm_bldg_bldg_vol, scale_S, scale_bldg_V, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_cr_dg_bldg_bldg_vol, scale_cr_dg_bldg_sub_S, scale_cr_dg_bldg_sub_vol, scale_cr_dg_bldg_sup_S, scale_cr_dg_bldg_sup_vol, scale_elec_tunnel_bldg_vol, scale_fuel_stor_bldg_bldg_vol, scale_fuel_stor_bldg_sub_S, scale_fuel_stor_bldg_sub_vol, scale_fuel_stor_bldg_sup_S, scale_fuel_stor_bldg_sup_vol, scale_mc_piping_M, scale_non_ess_swgr_bldg_bldg_vol, scale_n_crs, scale_pri_aux_bldg_bldg_vol, scale_pri_aux_bldg_sub_S, scale_pri_aux_bldg_sub_vol, scale_pri_aux_bldg_sup_S, scale_pri_aux_bldg_sup_vol, scale_sub_str_S, scale_sub_str_V, scale_sup_const, scale_sup_str_S, scale_sup_str_V, scale_turb_gen_bldg_sub_vol, scale_turb_gen_bldg_sup_S, scale_turb_gen_bldg_sup_vol, scale_V_of_212_213_215_216_217, scale_waste_bldg_bldg_vol, scale_waste_bldg_sub_S, scale_waste_bldg_sub_vol, scale_waste_bldg_sup_S, scale_waste_bldg_sup_vol, scale_wwt_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(71,'exp_elec_P','Exponent for Electric power scale, source account 231.',0.8000000000000000444,'1',NULL,NULL,'scale_elec_P',0); +INSERT INTO ap1000_variable VALUES(72,'exp_P','Exponent for Plant power scale, source account 212.22; also used for exp_rej_th_P; also used for exp_rx_P; also used for exp_yardwork_rx_P',0.8000000000000000444,'1',NULL,NULL,'scale_P, scale_rej_th_P',0); +INSERT INTO ap1000_variable VALUES(73,'exp_pri_flow','Exponent for Primary flowrate scale, source account 224.1',0.75,'1',NULL,NULL,'scale_pri_flow',0); +INSERT INTO ap1000_variable VALUES(74,'exp_rx_D','Exponent for Reactor diameter (m) scale, source account 221.3',2.0,'1',NULL,NULL,'scale_rx_D',0); +INSERT INTO ap1000_variable VALUES(75,'exp_sfp_V','Exponent for SFP volume scale, source account 225.4',0.75,'1',NULL,NULL,'scale_sfp_V',0); +INSERT INTO ap1000_variable VALUES(76,'exp_tur_plant_equip_elec_P','Exponent for Electric power scale, source account 241.',0.5999999999999999778,'1',NULL,NULL,'scale_tur_plant_equip_elec_P',0); +INSERT INTO ap1000_variable VALUES(77,'f_elec_P_ctrl_wir','Passive safety factor: [Electrical] A.246 Power & Control Wiring',0.6050901652907003659,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(78,'f_elec_prot','Passive safety factor: [Electrical] A.244 Protective Equipment',1.009930695461569661,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(79,'f_elec_st_serv','Passive safety factor: [Electrical] A.242 Station Service Equipment',0.2678830011089926023,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(80,'f_elec_str_wir_cont','Passive safety factor: [Electrical] A.245 Electrical Structures & Wiring Container',0.5783708145703972958,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(81,'f_elec_switchboards','Passive safety factor: [Electrical] A.243 Switchboards',0.9062342772269471603,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(82,'f_elec_swgr','Passive safety factor: [Electrical] A.241 Switchgear',0.5483394388542619514,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(83,'f_simp_fuel_hndl','Design simplifications factor: [Simple] A.225 Fuel Handling & Storage',0.5200000000000000177,'1',NULL,NULL,'ce_225_111_fac, ce_225_111_mat, ce_225_111_lab, ce_225_112_fac, ce_225_112_mat, ce_225_112_lab, ce_225_113_fac, ce_225_113_mat, ce_225_113_lab, ce_225_114_fac, ce_225_114_mat, ce_225_114_lab',0); +INSERT INTO ap1000_variable VALUES(84,'f_simp_other_rx_equip','Design simplifications factor: [Simple] A.226 Other Reactor Equipment',0.5,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(85,'f_simp_radw','Design simplifications factor: [Simple] A.224 Radwaste Processing',0.7600000000000000088,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(86,'f_simp_sfgd','Design simplifications factor: [Simple] A.223 Safeguards system',0.7099999999999999645,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(87,'f_ss_cont_fac','Standalone steel containment factor: 212.15 Factory cost mult',3.25,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(88,'f_ss_cont_lab','Standalone steel containment factor: 212.15 Labor cost mult',4.559999999999999609,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(89,'f_ss_cont_mat','Standalone steel containment factor: 212.15 Material cost mult',28.98000000000000042,'1',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(90,'lrn_222_11_fac','Factory learning factor for 222.11 grouped accounts',0.996280999999999973,'1',NULL,NULL,'ce_222_111_fac, ce_222_119_fac',0); +INSERT INTO ap1000_variable VALUES(91,'lrn_222_11_lab','Labor learning factor for 222.11 grouped accounts',0.8561590000000000033,'1',NULL,NULL,'ce_222_111_lab, ce_222_119_lab',0); +INSERT INTO ap1000_variable VALUES(92,'lrn_222_11_mat','Material learning factor for 222.11 grouped accounts',0.9204670000000000351,'1',NULL,NULL,'ce_222_111_mat, ce_222_119_mat',0); +INSERT INTO ap1000_variable VALUES(93,'lrn_222_13_fac','Factory learning factor for 222.13 grouped accounts',0.998750000000000026,'1',NULL,NULL,'ce_222_132_fac, ce_222_139_fac',0); +INSERT INTO ap1000_variable VALUES(94,'lrn_222_13_lab','Labor learning factor for 222.13 grouped accounts',0.934499999999999998,'1',NULL,NULL,'ce_222_132_lab, ce_222_139_lab',0); +INSERT INTO ap1000_variable VALUES(95,'lrn_222_13_mat','Material learning factor for 222.13 grouped accounts',0.964500000000000023,'1',NULL,NULL,'ce_222_132_mat, ce_222_139_mat',0); +INSERT INTO ap1000_variable VALUES(96,'ref_211_1_fac','Reference factory equipment cost for 211.1',627151.8000000000465,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(97,'ref_211_1_lab','Reference site labor cost for 211.1',10886491.92999999971,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(98,'ref_211_1_mat','Reference site material cost for 211.1',8218524.720999999903,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(99,'ref_211_4_lab','Reference site labor cost for 211.4',4995516.912999999709,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(100,'ref_211_4_mat','Reference site material cost for 211.4',3721250.597000000067,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(101,'ref_211_711_lab','Aggregated reference lab cost for 211.711',15125864.0,'$',NULL,NULL,'ce_211_711_lab',0); +INSERT INTO ap1000_variable VALUES(102,'ref_211_711_mat','Aggregated reference mat cost for 211.711',4440332.0,'$',NULL,NULL,'ce_211_711_mat',0); +INSERT INTO ap1000_variable VALUES(103,'ref_211_712_fac','Reference factory equipment cost for 211.712',245650.0,'$',NULL,NULL,'ce_211_712_fac',0); +INSERT INTO ap1000_variable VALUES(104,'ref_211_712_lab','Reference site labor cost for 211.712',15646213.58999999986,'$',NULL,NULL,'ce_211_712_lab',0); +INSERT INTO ap1000_variable VALUES(105,'ref_211_712_mat','Reference site material cost for 211.712',13402579.34999999963,'$',NULL,NULL,'ce_211_712_mat',0); +INSERT INTO ap1000_variable VALUES(106,'ref_212_13_lab','Aggregated reference lab cost for 212.13',11129822.18730000033,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(107,'ref_212_13_mat','Aggregated reference mat cost for 212.13',8063843.092280000449,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(108,'ref_212_140_fac','Aggregated reference fac cost for 212.140',3367569.01500000013,'$',NULL,NULL,'ce_212_140_fac',0); +INSERT INTO ap1000_variable VALUES(109,'ref_212_140_lab','Aggregated reference lab cost for 212.140',45289162.73619999737,'$',NULL,NULL,'ce_212_140_lab',0); +INSERT INTO ap1000_variable VALUES(110,'ref_212_140_mat','Aggregated reference mat cost for 212.140',13223212.03752999939,'$',NULL,NULL,'ce_212_140_mat',0); +INSERT INTO ap1000_variable VALUES(111,'ref_212_14111_lab','Reference site labor cost for 212.14111',6302007.271999999881,'$',NULL,NULL,'ce_212_14111_lab',0); +INSERT INTO ap1000_variable VALUES(112,'ref_212_14111_mat','Reference site material cost for 212.14111',524742.3560999999754,'$',NULL,NULL,'ce_212_14111_mat',0); +INSERT INTO ap1000_variable VALUES(113,'ref_212_14112_lab','Reference site labor cost for 212.14112',11084965.35999999941,'$',NULL,NULL,'ce_212_14112_lab',0); +INSERT INTO ap1000_variable VALUES(114,'ref_212_14112_mat','Reference site material cost for 212.14112',6765223.382000000216,'$',NULL,NULL,'ce_212_14112_mat',0); +INSERT INTO ap1000_variable VALUES(115,'ref_212_14113_lab','Reference site labor cost for 212.14113',3211170.73499999987,'$',NULL,NULL,'ce_212_14113_lab',0); +INSERT INTO ap1000_variable VALUES(116,'ref_212_14113_mat','Reference site material cost for 212.14113',1638426.483000000007,'$',NULL,NULL,'ce_212_14113_mat',0); +INSERT INTO ap1000_variable VALUES(117,'ref_212_14114_lab','Reference site labor cost for 212.14114',543039.3003999999492,'$',NULL,NULL,'ce_212_14114_lab',0); +INSERT INTO ap1000_variable VALUES(118,'ref_212_14114_mat','Reference site material cost for 212.14114',197744.5645000000076,'$',NULL,NULL,'ce_212_14114_mat',0); +INSERT INTO ap1000_variable VALUES(119,'ref_212_14115_lab','Reference site labor cost for 212.14115',445996.784400000004,'$',NULL,NULL,'ce_212_14115_lab',0); +INSERT INTO ap1000_variable VALUES(120,'ref_212_14115_mat','Reference site material cost for 212.14115',26315.43755999999849,'$',NULL,NULL,'ce_212_14115_mat',0); +INSERT INTO ap1000_variable VALUES(121,'ref_212_14116_lab','Reference site labor cost for 212.14116',45146.76643000000332,'$',NULL,NULL,'ce_212_14116_lab',0); +INSERT INTO ap1000_variable VALUES(122,'ref_212_14116_mat','Reference site material cost for 212.14116',17199.01812000000063,'$',NULL,NULL,'ce_212_14116_mat',0); +INSERT INTO ap1000_variable VALUES(123,'ref_212_14117_lab','Reference site labor cost for 212.14117',3895733.578000000212,'$',NULL,NULL,'ce_212_14117_lab',0); +INSERT INTO ap1000_variable VALUES(124,'ref_212_14117_mat','Reference site material cost for 212.14117',1567178.290000000037,'$',NULL,NULL,'ce_212_14117_mat',0); +INSERT INTO ap1000_variable VALUES(125,'ref_212_14118_lab','Reference site labor cost for 212.14118',713911.3336000000126,'$',NULL,NULL,'ce_212_14118_lab',0); +INSERT INTO ap1000_variable VALUES(126,'ref_212_14118_mat','Reference site material cost for 212.14118',293260.4893000000156,'$',NULL,NULL,'ce_212_14118_mat',0); +INSERT INTO ap1000_variable VALUES(127,'ref_212_14121_lab','Reference site labor cost for 212.14121',1742460.389999999898,'$',NULL,NULL,'ce_212_14121_lab',0); +INSERT INTO ap1000_variable VALUES(128,'ref_212_14121_mat','Reference site material cost for 212.14121',152723.5216000000073,'$',NULL,NULL,'ce_212_14121_mat',0); +INSERT INTO ap1000_variable VALUES(129,'ref_212_14122_lab','Reference site labor cost for 212.14122',4112162.547999999952,'$',NULL,NULL,'ce_212_14122_lab',0); +INSERT INTO ap1000_variable VALUES(130,'ref_212_14122_mat','Reference site material cost for 212.14122',2509679.641999999993,'$',NULL,NULL,'ce_212_14122_mat',0); +INSERT INTO ap1000_variable VALUES(131,'ref_212_14123_lab','Reference site labor cost for 212.14123',1154019.462999999989,'$',NULL,NULL,'ce_212_14123_lab',0); +INSERT INTO ap1000_variable VALUES(132,'ref_212_14123_mat','Reference site material cost for 212.14123',588811.3044999999692,'$',NULL,NULL,'ce_212_14123_mat',0); +INSERT INTO ap1000_variable VALUES(133,'ref_212_14125_lab','Reference site labor cost for 212.14125',159284.2539999999862,'$',NULL,NULL,'ce_212_14125_lab',0); +INSERT INTO ap1000_variable VALUES(134,'ref_212_14125_mat','Reference site material cost for 212.14125',9398.37055700000018,'$',NULL,NULL,'ce_212_14125_mat',0); +INSERT INTO ap1000_variable VALUES(135,'ref_212_14127_lab','Reference site labor cost for 212.14127',3161753.910000000149,'$',NULL,NULL,'ce_212_14127_lab',0); +INSERT INTO ap1000_variable VALUES(136,'ref_212_14127_mat','Reference site material cost for 212.14127',1271912.814999999945,'$',NULL,NULL,'ce_212_14127_mat',0); +INSERT INTO ap1000_variable VALUES(137,'ref_212_14128_lab','Reference site labor cost for 212.14128',141092.5413000000116,'$',NULL,NULL,'ce_212_14128_lab',0); +INSERT INTO ap1000_variable VALUES(138,'ref_212_14128_mat','Reference site material cost for 212.14128',57956.61843999999838,'$',NULL,NULL,'ce_212_14128_mat',0); +INSERT INTO ap1000_variable VALUES(139,'ref_212_1419_lab','Reference site labor cost for 212.1419',796421.2700000000186,'$',NULL,NULL,'ce_212_1419_lab',0); +INSERT INTO ap1000_variable VALUES(140,'ref_212_1419_mat','Reference site material cost for 212.1419',232647.2648000000044,'$',NULL,NULL,'ce_212_1419_mat',0); +INSERT INTO ap1000_variable VALUES(141,'ref_212_142_lab','Aggregated reference lab cost for 212.142',2909128.752929999958,'$',NULL,NULL,'ce_212_142_lab',0); +INSERT INTO ap1000_variable VALUES(142,'ref_212_142_mat','Aggregated reference mat cost for 212.142',3818022.677449999843,'$',NULL,NULL,'ce_212_142_mat',0); +INSERT INTO ap1000_variable VALUES(143,'ref_212_149_lab','Reference site labor cost for 212.149',12549840.5,'$',NULL,NULL,'ce_212_149_lab',0); +INSERT INTO ap1000_variable VALUES(144,'ref_212_149_mat','Reference site material cost for 212.149',2458081.163000000175,'$',NULL,NULL,'ce_212_149_mat',0); +INSERT INTO ap1000_variable VALUES(145,'ref_212_15_fac','Reference factory equipment cost for 212.15',26940552.12000000104,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(146,'ref_212_15_lab','Reference site labor cost for 212.15',32653359.39000000059,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(147,'ref_212_15_mat','Reference site material cost for 212.15',1254917.429000000003,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(148,'ref_212_21_fac','Aggregated reference fac cost for 212.21',150540.9458999999916,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(149,'ref_212_21_lab','Aggregated reference lab cost for 212.21',1048615.753599999939,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(150,'ref_212_21_mat','Aggregated reference mat cost for 212.21',205092.4669899999862,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(151,'ref_212_22_fac','Aggregated reference fac cost for 212.22',241104.9685990000143,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(152,'ref_212_22_lab','Aggregated reference lab cost for 212.22',67726.42610199999762,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(153,'ref_212_22_mat','Aggregated reference mat cost for 212.22',7237.371887700000115,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(154,'ref_212_23_fac','Aggregated reference fac cost for 212.23',1058293.928400000092,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(155,'ref_212_23_lab','Aggregated reference lab cost for 212.23',3960991.540510000195,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(156,'ref_212_23_mat','Aggregated reference mat cost for 212.23',898681.3347659999271,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(157,'ref_212_24_lab','Reference site labor cost for 212.24',3463484.689999999945,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(158,'ref_212_24_mat','Reference site material cost for 212.24',1345201.308999999892,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(159,'ref_212_25_fac','Reference factory equipment cost for 212.25',198384.6399000000092,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(160,'ref_212_25_lab','Reference site labor cost for 212.25',112115.1431000000011,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(161,'ref_212_25_mat','Reference site material cost for 212.25',9150.880133000000569,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(162,'ref_212_3_lab','Reference site labor cost for 212.3',0.3160782080000000272,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(163,'ref_212_3_mat','Reference site material cost for 212.3',0.6839217920000000283,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(164,'ref_213_13_lab','Aggregated reference lab cost for 213.13',14910944.50128999912,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(165,'ref_213_13_mat','Aggregated reference mat cost for 213.13',6302087.867886999621,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(166,'ref_213_141_lab','Aggregated reference lab cost for 213.141',1639765.280400000046,'$',NULL,NULL,'ce_213_141_lab',0); +INSERT INTO ap1000_variable VALUES(167,'ref_213_141_mat','Aggregated reference mat cost for 213.141',635828.117867999943,'$',NULL,NULL,'ce_213_141_mat',0); +INSERT INTO ap1000_variable VALUES(168,'ref_213_142_lab','Aggregated reference lab cost for 213.142',15453101.32427000068,'$',NULL,NULL,'ce_213_142_lab',0); +INSERT INTO ap1000_variable VALUES(169,'ref_213_142_mat','Aggregated reference mat cost for 213.142',24471194.74130000175,'$',NULL,NULL,'ce_213_142_mat',0); +INSERT INTO ap1000_variable VALUES(170,'ref_213_143_lab','Aggregated reference lab cost for 213.143',2115226.042299999855,'$',NULL,NULL,'ce_213_143_lab',0); +INSERT INTO ap1000_variable VALUES(171,'ref_213_143_mat','Aggregated reference mat cost for 213.143',2442554.065400000195,'$',NULL,NULL,'ce_213_143_mat',0); +INSERT INTO ap1000_variable VALUES(172,'ref_213_144_lab','Aggregated reference lab cost for 213.144',892268.450899999938,'$',NULL,NULL,'ce_213_144_lab',0); +INSERT INTO ap1000_variable VALUES(173,'ref_213_144_mat','Aggregated reference mat cost for 213.144',925648.438229999971,'$',NULL,NULL,'ce_213_144_mat',0); +INSERT INTO ap1000_variable VALUES(174,'ref_213_145_lab','Aggregated reference lab cost for 213.145',472841.2125000000233,'$',NULL,NULL,'ce_213_145_lab',0); +INSERT INTO ap1000_variable VALUES(175,'ref_213_145_mat','Aggregated reference mat cost for 213.145',438974.2566000000224,'$',NULL,NULL,'ce_213_145_mat',0); +INSERT INTO ap1000_variable VALUES(176,'ref_213_146_lab','Aggregated reference lab cost for 213.146',444065.4916000000084,'$',NULL,NULL,'ce_213_146_lab',0); +INSERT INTO ap1000_variable VALUES(177,'ref_213_146_mat','Aggregated reference mat cost for 213.146',284016.3439800000051,'$',NULL,NULL,'ce_213_146_mat',0); +INSERT INTO ap1000_variable VALUES(178,'ref_213_147_lab','Aggregated reference lab cost for 213.147',643802.5841100000543,'$',NULL,NULL,'ce_213_147_lab',0); +INSERT INTO ap1000_variable VALUES(179,'ref_213_147_mat','Aggregated reference mat cost for 213.147',985426.294789999957,'$',NULL,NULL,'ce_213_147_mat',0); +INSERT INTO ap1000_variable VALUES(180,'ref_213_149_lab','Reference site labor cost for 213.149',2200909.112999999896,'$',NULL,NULL,'ce_213_149_lab',0); +INSERT INTO ap1000_variable VALUES(181,'ref_213_149_mat','Reference site material cost for 213.149',126843.2997999999935,'$',NULL,NULL,'ce_213_149_mat',0); +INSERT INTO ap1000_variable VALUES(182,'ref_213_21_fac','Aggregated reference fac cost for 213.21',26947.48846000000048,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(183,'ref_213_21_lab','Aggregated reference lab cost for 213.21',3854846.853110000026,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(184,'ref_213_21_mat','Aggregated reference mat cost for 213.21',945580.448012999957,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(185,'ref_213_22_fac','Aggregated reference fac cost for 213.22',1201173.238330000081,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(186,'ref_213_22_lab','Aggregated reference lab cost for 213.22',1721625.638260000153,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(187,'ref_213_22_mat','Aggregated reference mat cost for 213.22',285222.9706872000242,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(188,'ref_213_24_lab','Reference site labor cost for 213.24',1445761.912999999943,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(189,'ref_213_24_mat','Reference site material cost for 213.24',579979.5411999999779,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(190,'ref_213_25_fac','Aggregated reference fac cost for 213.25',227987.5150999999897,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(191,'ref_213_25_lab','Aggregated reference lab cost for 213.25',98331.5171499999997,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(192,'ref_213_25_mat','Aggregated reference mat cost for 213.25',9377.07337299999926,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(193,'ref_214_fac','Aggregated reference fac cost for 214',171454.8000999999932,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(194,'ref_214_lab','Aggregated reference lab cost for 214',3253960.23070000019,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(195,'ref_214_mat','Aggregated reference mat cost for 214',1107592.116500000003,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(196,'ref_215_13_lab','Aggregated reference lab cost for 215.13',1486017.877090000082,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(197,'ref_215_13_mat','Aggregated reference mat cost for 215.13',1063359.167139000027,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(198,'ref_215_141_lab','Aggregated reference lab cost for 215.141',27007537.62762999907,'$',NULL,NULL,'ce_215_141_lab',0); +INSERT INTO ap1000_variable VALUES(199,'ref_215_141_mat','Aggregated reference mat cost for 215.141',8497619.987043999135,'$',NULL,NULL,'ce_215_141_mat',0); +INSERT INTO ap1000_variable VALUES(200,'ref_215_142_lab','Aggregated reference lab cost for 215.142',1853103.954900000011,'$',NULL,NULL,'ce_215_142_lab',0); +INSERT INTO ap1000_variable VALUES(201,'ref_215_142_mat','Aggregated reference mat cost for 215.142',2944695.171409999951,'$',NULL,NULL,'ce_215_142_mat',0); +INSERT INTO ap1000_variable VALUES(202,'ref_215_145_lab','Aggregated reference lab cost for 215.145',76768.47521999999298,'$',NULL,NULL,'ce_215_145_lab',0); +INSERT INTO ap1000_variable VALUES(203,'ref_215_145_mat','Aggregated reference mat cost for 215.145',71195.8480899999995,'$',NULL,NULL,'ce_215_145_mat',0); +INSERT INTO ap1000_variable VALUES(204,'ref_215_146_lab','Aggregated reference lab cost for 215.146',239093.8906999999891,'$',NULL,NULL,'ce_215_146_lab',0); +INSERT INTO ap1000_variable VALUES(205,'ref_215_146_mat','Aggregated reference mat cost for 215.146',218695.0725000000093,'$',NULL,NULL,'ce_215_146_mat',0); +INSERT INTO ap1000_variable VALUES(206,'ref_215_147_lab','Aggregated reference lab cost for 215.147',81713.87408400001005,'$',NULL,NULL,'ce_215_147_lab',0); +INSERT INTO ap1000_variable VALUES(207,'ref_215_147_mat','Aggregated reference mat cost for 215.147',88183.79654499999014,'$',NULL,NULL,'ce_215_147_mat',0); +INSERT INTO ap1000_variable VALUES(208,'ref_215_149_lab','Reference site labor cost for 215.149',681097.8721000000369,'$',NULL,NULL,'ce_215_149_lab',0); +INSERT INTO ap1000_variable VALUES(209,'ref_215_149_mat','Reference site material cost for 215.149',143973.4821999999986,'$',NULL,NULL,'ce_215_149_mat',0); +INSERT INTO ap1000_variable VALUES(210,'ref_215_21_fac','Aggregated reference fac cost for 215.21',7810.607011000000057,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(211,'ref_215_21_lab','Aggregated reference lab cost for 215.21',1525771.058750000084,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(212,'ref_215_21_mat','Aggregated reference mat cost for 215.21',359094.3262100000283,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(213,'ref_215_221_fac','Reference factory equipment cost for 215.221',2531710.024999999907,'$',NULL,NULL,'ce_215_221_fac',0); +INSERT INTO ap1000_variable VALUES(214,'ref_215_221_lab','Reference site labor cost for 215.221',336370.6056000000098,'$',NULL,NULL,'ce_215_221_lab',0); +INSERT INTO ap1000_variable VALUES(215,'ref_215_221_mat','Reference site material cost for 215.221',28979.80564999999843,'$',NULL,NULL,'ce_215_221_mat',0); +INSERT INTO ap1000_variable VALUES(216,'ref_215_222_fac','Reference factory equipment cost for 215.222',1936413.245000000111,'$',NULL,NULL,'ce_215_222_fac',0); +INSERT INTO ap1000_variable VALUES(217,'ref_215_222_lab','Reference site labor cost for 215.222',330613.616399999999,'$',NULL,NULL,'ce_215_222_lab',0); +INSERT INTO ap1000_variable VALUES(218,'ref_215_222_mat','Reference site material cost for 215.222',28475.24377000000094,'$',NULL,NULL,'ce_215_222_mat',0); +INSERT INTO ap1000_variable VALUES(219,'ref_215_223_fac','Reference factory equipment cost for 215.223',39410.05189000000245,'$',NULL,NULL,'ce_215_223_fac',0); +INSERT INTO ap1000_variable VALUES(220,'ref_215_223_lab','Reference site labor cost for 215.223',30190.24938000000111,'$',NULL,NULL,'ce_215_223_lab',0); +INSERT INTO ap1000_variable VALUES(221,'ref_215_223_mat','Reference site material cost for 215.223',2535.191287000000102,'$',NULL,NULL,'ce_215_223_mat',0); +INSERT INTO ap1000_variable VALUES(222,'ref_215_224_fac','Reference factory equipment cost for 215.224',469880.2212999999755,'$',NULL,NULL,'ce_215_224_fac',0); +INSERT INTO ap1000_variable VALUES(223,'ref_215_224_lab','Reference site labor cost for 215.224',91838.71282000000064,'$',NULL,NULL,'ce_215_224_lab',0); +INSERT INTO ap1000_variable VALUES(224,'ref_215_224_mat','Reference site material cost for 215.224',7912.025553000000401,'$',NULL,NULL,'ce_215_224_mat',0); +INSERT INTO ap1000_variable VALUES(225,'ref_215_225_fac','Reference factory equipment cost for 215.225',563080.5444000000134,'$',NULL,NULL,'ce_215_225_fac',0); +INSERT INTO ap1000_variable VALUES(226,'ref_215_225_lab','Reference site labor cost for 215.225',5046207.64400000032,'$',NULL,NULL,'ce_215_225_lab',0); +INSERT INTO ap1000_variable VALUES(227,'ref_215_225_mat','Reference site material cost for 215.225',1111705.044999999925,'$',NULL,NULL,'ce_215_225_mat',0); +INSERT INTO ap1000_variable VALUES(228,'ref_215_226_fac','Reference factory equipment cost for 215.226',278882.4965000000083,'$',NULL,NULL,'ce_215_226_fac',0); +INSERT INTO ap1000_variable VALUES(229,'ref_215_226_lab','Reference site labor cost for 215.226',109065.207500000004,'$',NULL,NULL,'ce_215_226_lab',0); +INSERT INTO ap1000_variable VALUES(230,'ref_215_226_mat','Reference site material cost for 215.226',9251.18287299999975,'$',NULL,NULL,'ce_215_226_mat',0); +INSERT INTO ap1000_variable VALUES(231,'ref_215_227_fac','Reference factory equipment cost for 215.227',216644.9347000000125,'$',NULL,NULL,'ce_215_227_fac',0); +INSERT INTO ap1000_variable VALUES(232,'ref_215_228_fac','Reference factory equipment cost for 215.228',27640.01301999999851,'$',NULL,NULL,'ce_215_228_fac',0); +INSERT INTO ap1000_variable VALUES(233,'ref_215_228_lab','Reference site labor cost for 215.228',17549.1242600000005,'$',NULL,NULL,'ce_215_228_lab',0); +INSERT INTO ap1000_variable VALUES(234,'ref_215_228_mat','Reference site material cost for 215.228',1492.017338000000108,'$',NULL,NULL,'ce_215_228_mat',0); +INSERT INTO ap1000_variable VALUES(235,'ref_215_23_fac','Aggregated reference fac cost for 215.23',884219.7208999999566,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(236,'ref_215_23_lab','Aggregated reference lab cost for 215.23',385833.8303900000174,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(237,'ref_215_23_mat','Aggregated reference mat cost for 215.23',33063.40813199999684,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(238,'ref_215_24_lab','Reference site labor cost for 215.24',1326729.091999999946,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(239,'ref_215_24_mat','Reference site material cost for 215.24',465212.2443000000204,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(240,'ref_215_25_fac','Reference factory equipment cost for 215.25',319933.1506999999984,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(241,'ref_215_25_lab','Reference site labor cost for 215.25',156591.6953999999969,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(242,'ref_215_25_mat','Reference site material cost for 215.25',14127.73264000000017,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(243,'ref_216_13_lab','Aggregated reference lab cost for 216.13',3214628.454540000297,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(244,'ref_216_13_mat','Aggregated reference mat cost for 216.13',2101391.698654000181,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(245,'ref_216_141_lab','Aggregated reference lab cost for 216.141',24018213.09312000125,'$',NULL,NULL,'ce_216_141_lab',0); +INSERT INTO ap1000_variable VALUES(246,'ref_216_141_mat','Aggregated reference mat cost for 216.141',7145811.159575999714,'$',NULL,NULL,'ce_216_141_mat',0); +INSERT INTO ap1000_variable VALUES(247,'ref_216_142_lab','Aggregated reference lab cost for 216.142',2119078.08443999989,'$',NULL,NULL,'ce_216_142_lab',0); +INSERT INTO ap1000_variable VALUES(248,'ref_216_142_mat','Aggregated reference mat cost for 216.142',3438706.409150000195,'$',NULL,NULL,'ce_216_142_mat',0); +INSERT INTO ap1000_variable VALUES(249,'ref_216_143_lab','Aggregated reference lab cost for 216.143',486639.2798000000184,'$',NULL,NULL,'ce_216_143_lab',0); +INSERT INTO ap1000_variable VALUES(250,'ref_216_143_mat','Aggregated reference mat cost for 216.143',585894.1639999999898,'$',NULL,NULL,'ce_216_143_mat',0); +INSERT INTO ap1000_variable VALUES(251,'ref_216_144_lab','Aggregated reference lab cost for 216.144',307576.9200500000152,'$',NULL,NULL,'ce_216_144_lab',0); +INSERT INTO ap1000_variable VALUES(252,'ref_216_144_mat','Aggregated reference mat cost for 216.144',294801.0717500000028,'$',NULL,NULL,'ce_216_144_mat',0); +INSERT INTO ap1000_variable VALUES(253,'ref_216_145_lab','Aggregated reference lab cost for 216.145',147358.837910000002,'$',NULL,NULL,'ce_216_145_lab',0); +INSERT INTO ap1000_variable VALUES(254,'ref_216_145_mat','Aggregated reference mat cost for 216.145',128467.4313799999946,'$',NULL,NULL,'ce_216_145_mat',0); +INSERT INTO ap1000_variable VALUES(255,'ref_216_146_lab','Aggregated reference lab cost for 216.146',4599.644948000000113,'$',NULL,NULL,'ce_216_146_lab',0); +INSERT INTO ap1000_variable VALUES(256,'ref_216_146_mat','Aggregated reference mat cost for 216.146',4245.149030999999923,'$',NULL,NULL,'ce_216_146_mat',0); +INSERT INTO ap1000_variable VALUES(257,'ref_216_147_lab','Aggregated reference lab cost for 216.147',66380.32183699999587,'$',NULL,NULL,'ce_216_147_lab',0); +INSERT INTO ap1000_variable VALUES(258,'ref_216_147_mat','Aggregated reference mat cost for 216.147',75023.07197000000452,'$',NULL,NULL,'ce_216_147_mat',0); +INSERT INTO ap1000_variable VALUES(259,'ref_216_148_lab','Aggregated reference lab cost for 216.148',10525.09202000000004,'$',NULL,NULL,'ce_216_148_lab',0); +INSERT INTO ap1000_variable VALUES(260,'ref_216_148_mat','Aggregated reference mat cost for 216.148',585.099192300000027,'$',NULL,NULL,'ce_216_148_mat',0); +INSERT INTO ap1000_variable VALUES(261,'ref_216_149_lab','Reference site labor cost for 216.149',558657.9279000000097,'$',NULL,NULL,'ce_216_149_lab',0); +INSERT INTO ap1000_variable VALUES(262,'ref_216_149_mat','Reference site material cost for 216.149',92591.9471800000028,'$',NULL,NULL,'ce_216_149_mat',0); +INSERT INTO ap1000_variable VALUES(263,'ref_216_21_lab','Aggregated reference lab cost for 216.21',1275085.662550000009,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(264,'ref_216_21_mat','Aggregated reference mat cost for 216.21',252355.5943099999858,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(265,'ref_216_22_fac','Aggregated reference fac cost for 216.22',1134425.198652999941,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(266,'ref_216_22_lab','Aggregated reference lab cost for 216.22',2551554.280197000132,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(267,'ref_216_22_mat','Aggregated reference mat cost for 216.22',674600.3760620000539,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(268,'ref_216_24_lab','Reference site labor cost for 216.24',900566.6295000000392,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(269,'ref_216_24_mat','Reference site material cost for 216.24',341357.680400000012,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(270,'ref_216_25_fac','Aggregated reference fac cost for 216.25',356469.3827000000164,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(271,'ref_216_25_lab','Aggregated reference lab cost for 216.25',174564.4206999999879,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(272,'ref_216_25_mat','Aggregated reference mat cost for 216.25',16775.69576999999844,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(273,'ref_217_13_lab','Aggregated reference lab cost for 217.13',1232836.386079000076,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(274,'ref_217_13_mat','Aggregated reference mat cost for 217.13',627561.8008828000166,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(275,'ref_217_141_lab','Aggregated reference lab cost for 217.141',9200530.165079999715,'$',NULL,NULL,'ce_217_141_lab',0); +INSERT INTO ap1000_variable VALUES(276,'ref_217_141_mat','Aggregated reference mat cost for 217.141',2452036.602684000042,'$',NULL,NULL,'ce_217_141_mat',0); +INSERT INTO ap1000_variable VALUES(277,'ref_217_142_lab','Aggregated reference lab cost for 217.142',633635.0059299999848,'$',NULL,NULL,'ce_217_142_lab',0); +INSERT INTO ap1000_variable VALUES(278,'ref_217_142_mat','Aggregated reference mat cost for 217.142',893582.7199399999808,'$',NULL,NULL,'ce_217_142_mat',0); +INSERT INTO ap1000_variable VALUES(279,'ref_217_145_lab','Aggregated reference lab cost for 217.145',57111.30589000000328,'$',NULL,NULL,'ce_217_145_lab',0); +INSERT INTO ap1000_variable VALUES(280,'ref_217_145_mat','Aggregated reference mat cost for 217.145',46465.14192999999795,'$',NULL,NULL,'ce_217_145_mat',0); +INSERT INTO ap1000_variable VALUES(281,'ref_217_147_lab','Aggregated reference lab cost for 217.147',24768.32395600000018,'$',NULL,NULL,'ce_217_147_lab',0); +INSERT INTO ap1000_variable VALUES(282,'ref_217_147_mat','Aggregated reference mat cost for 217.147',32682.19458300000043,'$',NULL,NULL,'ce_217_147_mat',0); +INSERT INTO ap1000_variable VALUES(283,'ref_217_149_lab','Reference site labor cost for 217.149',142759.9868000000134,'$',NULL,NULL,'ce_217_149_lab',0); +INSERT INTO ap1000_variable VALUES(284,'ref_217_149_mat','Reference site material cost for 217.149',18023.85423000000082,'$',NULL,NULL,'ce_217_149_mat',0); +INSERT INTO ap1000_variable VALUES(285,'ref_217_21_fac','Aggregated reference fac cost for 217.21',7511.892017000000124,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(286,'ref_217_21_lab','Aggregated reference lab cost for 217.21',352553.6707380000153,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(287,'ref_217_21_mat','Aggregated reference mat cost for 217.21',150303.6021080999927,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(288,'ref_217_22_fac','Aggregated reference fac cost for 217.22',193909.3596799999942,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(289,'ref_217_22_lab','Aggregated reference lab cost for 217.22',1238929.993349999887,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(290,'ref_217_22_mat','Aggregated reference mat cost for 217.22',277171.7596420000191,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(291,'ref_217_23_fac','Aggregated reference fac cost for 217.23',2014572.997399999993,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(292,'ref_217_23_lab','Aggregated reference lab cost for 217.23',140460.0219900000083,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(293,'ref_217_23_mat','Aggregated reference mat cost for 217.23',10611.43886399999974,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(294,'ref_217_24_lab','Reference site labor cost for 217.24',292416.1970999999904,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(295,'ref_217_24_mat','Reference site material cost for 217.24',110230.2060000000055,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(296,'ref_217_3_lab','Reference site labor cost for 217.3',3071920.899999999907,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(297,'ref_217_3_mat','Reference site material cost for 217.3',6646942.405000000261,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(298,'ref_218A_13_lab','Aggregated reference lab cost for 218A.13',1340415.619440000038,'$',NULL,NULL,'ce_218A_13_lab',0); +INSERT INTO ap1000_variable VALUES(299,'ref_218A_13_mat','Aggregated reference mat cost for 218A.13',770875.0729229999707,'$',NULL,NULL,'ce_218A_13_mat',0); +INSERT INTO ap1000_variable VALUES(300,'ref_218A_141_lab','Aggregated reference lab cost for 218A.141',28840436.40199000016,'$',NULL,NULL,'ce_218A_141_lab',0); +INSERT INTO ap1000_variable VALUES(301,'ref_218A_141_mat','Aggregated reference mat cost for 218A.141',8429857.722798999399,'$',NULL,NULL,'ce_218A_141_mat',0); +INSERT INTO ap1000_variable VALUES(302,'ref_218A_142_lab','Aggregated reference lab cost for 218A.142',3003877.75743000023,'$',NULL,NULL,'ce_218A_142_lab',0); +INSERT INTO ap1000_variable VALUES(303,'ref_218A_142_mat','Aggregated reference mat cost for 218A.142',4757094.749689999968,'$',NULL,NULL,'ce_218A_142_mat',0); +INSERT INTO ap1000_variable VALUES(304,'ref_218A_145_lab','Aggregated reference lab cost for 218A.145',152808.8950999999943,'$',NULL,NULL,'ce_218A_145_lab',0); +INSERT INTO ap1000_variable VALUES(305,'ref_218A_145_mat','Aggregated reference mat cost for 218A.145',136116.6424000000115,'$',NULL,NULL,'ce_218A_145_mat',0); +INSERT INTO ap1000_variable VALUES(306,'ref_218A_146_lab','Aggregated reference lab cost for 218A.146',2477305.333980000113,'$',NULL,NULL,'ce_218A_146_lab',0); +INSERT INTO ap1000_variable VALUES(307,'ref_218A_146_mat','Aggregated reference mat cost for 218A.146',1820301.470123999985,'$',NULL,NULL,'ce_218A_146_mat',0); +INSERT INTO ap1000_variable VALUES(308,'ref_218A_147_lab','Aggregated reference lab cost for 218A.147',95330.9780800000007,'$',NULL,NULL,'ce_218A_147_lab',0); +INSERT INTO ap1000_variable VALUES(309,'ref_218A_147_mat','Aggregated reference mat cost for 218A.147',96193.6311629999982,'$',NULL,NULL,'ce_218A_147_mat',0); +INSERT INTO ap1000_variable VALUES(310,'ref_218A_148_lab','Aggregated reference lab cost for 218A.148',252960.6482959999994,'$',NULL,NULL,'ce_218A_148_lab',0); +INSERT INTO ap1000_variable VALUES(311,'ref_218A_148_mat','Aggregated reference mat cost for 218A.148',121610.011215999999,'$',NULL,NULL,'ce_218A_148_mat',0); +INSERT INTO ap1000_variable VALUES(312,'ref_218A_149_lab','Reference site labor cost for 218A.149',628859.464799999958,'$',NULL,NULL,'ce_218A_149_lab',0); +INSERT INTO ap1000_variable VALUES(313,'ref_218A_149_mat','Reference site material cost for 218A.149',76797.00963000000048,'$',NULL,NULL,'ce_218A_149_mat',0); +INSERT INTO ap1000_variable VALUES(314,'ref_218A_21_lab','Aggregated reference lab cost for 218A.21',2360426.582600000315,'$',NULL,NULL,'ce_218A_21_lab',0); +INSERT INTO ap1000_variable VALUES(315,'ref_218A_21_mat','Aggregated reference mat cost for 218A.21',658362.3247200000332,'$',NULL,NULL,'ce_218A_21_mat',0); +INSERT INTO ap1000_variable VALUES(316,'ref_218A_231_fac','Reference factory equipment cost for 218A.231',926649.825199999963,'$',NULL,NULL,'ce_218A_231_fac',0); +INSERT INTO ap1000_variable VALUES(317,'ref_218A_231_lab','Reference site labor cost for 218A.231',114723.9584000000031,'$',NULL,NULL,'ce_218A_231_lab',0); +INSERT INTO ap1000_variable VALUES(318,'ref_218A_231_mat','Reference site material cost for 218A.231',9480.52414099999988,'$',NULL,NULL,'ce_218A_231_mat',0); +INSERT INTO ap1000_variable VALUES(319,'ref_218A_232_fac','Reference factory equipment cost for 218A.232',801211.4131999999518,'$',NULL,NULL,'ce_218A_232_fac',0); +INSERT INTO ap1000_variable VALUES(320,'ref_218A_232_lab','Reference site labor cost for 218A.232',193144.9921000000031,'$',NULL,NULL,'ce_218A_232_lab',0); +INSERT INTO ap1000_variable VALUES(321,'ref_218A_232_mat','Reference site material cost for 218A.232',15969.88507000000026,'$',NULL,NULL,'ce_218A_232_mat',0); +INSERT INTO ap1000_variable VALUES(322,'ref_218A_233_fac','Reference factory equipment cost for 218A.233',3070.170928000000003,'$',NULL,NULL,'ce_218A_233_fac',0); +INSERT INTO ap1000_variable VALUES(323,'ref_218A_233_lab','Reference site labor cost for 218A.233',8103.008536000000276,'$',NULL,NULL,'ce_218A_233_lab',0); +INSERT INTO ap1000_variable VALUES(324,'ref_218A_233_mat','Reference site material cost for 218A.233',653.3598833999999442,'$',NULL,NULL,'ce_218A_233_mat',0); +INSERT INTO ap1000_variable VALUES(325,'ref_218A_234_fac','Reference factory equipment cost for 218A.234',193498.1676999999909,'$',NULL,NULL,'ce_218A_234_fac',0); +INSERT INTO ap1000_variable VALUES(326,'ref_218A_234_lab','Reference site labor cost for 218A.234',75100.20088000000396,'$',NULL,NULL,'ce_218A_234_lab',0); +INSERT INTO ap1000_variable VALUES(327,'ref_218A_234_mat','Reference site material cost for 218A.234',6213.724723999999697,'$',NULL,NULL,'ce_218A_234_mat',0); +INSERT INTO ap1000_variable VALUES(328,'ref_218A_235_fac','Reference factory equipment cost for 218A.235',1240903.304000000003,'$',NULL,NULL,'ce_218A_235_fac',0); +INSERT INTO ap1000_variable VALUES(329,'ref_218A_235_lab','Reference site labor cost for 218A.235',7537476.269000000321,'$',NULL,NULL,'ce_218A_235_lab',0); +INSERT INTO ap1000_variable VALUES(330,'ref_218A_235_mat','Reference site material cost for 218A.235',1213347.277000000001,'$',NULL,NULL,'ce_218A_235_mat',0); +INSERT INTO ap1000_variable VALUES(331,'ref_218A_236_fac','Reference factory equipment cost for 218A.236',267144.7431000000215,'$',NULL,NULL,'ce_218A_236_fac',0); +INSERT INTO ap1000_variable VALUES(332,'ref_218A_236_lab','Reference site labor cost for 218A.236',168717.3580000000074,'$',NULL,NULL,'ce_218A_236_lab',0); +INSERT INTO ap1000_variable VALUES(333,'ref_218A_236_mat','Reference site material cost for 218A.236',13831.86383999999999,'$',NULL,NULL,'ce_218A_236_mat',0); +INSERT INTO ap1000_variable VALUES(334,'ref_218A_237_fac','Reference factory equipment cost for 218A.237',34666.42809999999735,'$',NULL,NULL,'ce_218A_237_fac',0); +INSERT INTO ap1000_variable VALUES(335,'ref_218A_238_fac','Reference factory equipment cost for 218A.238',319916.9706000000005,'$',NULL,NULL,'ce_218A_238_fac',0); +INSERT INTO ap1000_variable VALUES(336,'ref_218A_238_lab','Reference site labor cost for 218A.238',65280.56113000000187,'$',NULL,NULL,'ce_218A_238_lab',0); +INSERT INTO ap1000_variable VALUES(337,'ref_218A_238_mat','Reference site material cost for 218A.238',2664.483275000000048,'$',NULL,NULL,'ce_218A_238_mat',0); +INSERT INTO ap1000_variable VALUES(338,'ref_218A_24_lab','Reference site labor cost for 218A.24',2024660.406999999891,'$',NULL,NULL,'ce_218A_24_lab',0); +INSERT INTO ap1000_variable VALUES(339,'ref_218A_24_mat','Reference site material cost for 218A.24',621004.9575000000187,'$',NULL,NULL,'ce_218A_24_mat',0); +INSERT INTO ap1000_variable VALUES(340,'ref_218B_22_fac','Aggregated reference fac cost for 218B.22',1866506.932347999886,'$',NULL,NULL,'ce_218B_22_fac',0); +INSERT INTO ap1000_variable VALUES(341,'ref_218B_22_lab','Aggregated reference lab cost for 218B.22',3131658.995190000161,'$',NULL,NULL,'ce_218B_22_lab',0); +INSERT INTO ap1000_variable VALUES(342,'ref_218B_22_mat','Aggregated reference mat cost for 218B.22',457290.8982602999894,'$',NULL,NULL,'ce_218B_22_mat',0); +INSERT INTO ap1000_variable VALUES(343,'ref_218B_23_fac','Aggregated reference fac cost for 218B.23',23772.31812150000042,'$',NULL,NULL,'ce_218B_23_fac',0); +INSERT INTO ap1000_variable VALUES(344,'ref_218B_23_lab','Aggregated reference lab cost for 218B.23',23161.10668200000145,'$',NULL,NULL,'ce_218B_23_lab',0); +INSERT INTO ap1000_variable VALUES(345,'ref_218B_23_mat','Aggregated reference mat cost for 218B.23',1732.656652800000074,'$',NULL,NULL,'ce_218B_23_mat',0); +INSERT INTO ap1000_variable VALUES(346,'ref_218B_24_lab','Reference site labor cost for 218B.24',970307.795700000016,'$',NULL,NULL,'ce_218B_24_lab',0); +INSERT INTO ap1000_variable VALUES(347,'ref_218B_24_mat','Reference site material cost for 218B.24',379587.3549999999814,'$',NULL,NULL,'ce_218B_24_mat',0); +INSERT INTO ap1000_variable VALUES(348,'ref_218B_25_fac','Reference factory equipment cost for 218B.25',88303.82095999999729,'$',NULL,NULL,'ce_218B_25_fac',0); +INSERT INTO ap1000_variable VALUES(349,'ref_218B_25_lab','Reference site labor cost for 218B.25',45810.80043999999908,'$',NULL,NULL,'ce_218B_25_lab',0); +INSERT INTO ap1000_variable VALUES(350,'ref_218B_25_mat','Reference site material cost for 218B.25',3586.12780100000009,'$',NULL,NULL,'ce_218B_25_mat',0); +INSERT INTO ap1000_variable VALUES(351,'ref_218D_fac','Reference factory equipment cost for 218D',87852.60004000000481,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(352,'ref_218D_lab','Reference site labor cost for 218D',784039.4096999999601,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(353,'ref_218D_mat','Reference site material cost for 218D',353929.4000000000232,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(354,'ref_218E_fac','Aggregated reference fac cost for 218E',49512.34824210000078,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(355,'ref_218E_lab','Aggregated reference lab cost for 218E',95924.2461219999969,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(356,'ref_218E_mat','Aggregated reference mat cost for 218E',18264.72928110000067,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(357,'ref_218F_lab','Reference site labor cost for 218F',1988491.889999999898,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(358,'ref_218F_mat','Reference site material cost for 218F',643590.1999999999535,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(359,'ref_218G_fac','Reference factory equipment cost for 218G',24217.59999999999855,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(360,'ref_218G_lab','Reference site labor cost for 218G',121782.0800000000017,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(361,'ref_218G_mat','Reference site material cost for 218G',45674.19999000000098,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(362,'ref_218H_fac','Reference factory equipment cost for 218H',43003.39998000000196,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(363,'ref_218H_lab','Reference site labor cost for 218H',951888.630200000014,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(364,'ref_218H_mat','Reference site material cost for 218H',633998.1999999999535,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(365,'ref_218J_fac','Aggregated reference fac cost for 218J',77809.66993000000367,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(366,'ref_218J_lab','Aggregated reference lab cost for 218J',477499.3704600000056,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(367,'ref_218J_mat','Aggregated reference mat cost for 218J',52345.44699599999877,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(368,'ref_218K_lab','Reference site labor cost for 218K',643823.0398999999742,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(369,'ref_218K_mat','Reference site material cost for 218K',262017.7999999999884,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(370,'ref_218L_fac','Reference factory equipment cost for 218L',137163.3999999999942,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(371,'ref_218L_lab','Reference site labor cost for 218L',1478143.590000000083,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(372,'ref_218L_mat','Reference site material cost for 218L',667730.7998999999836,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(373,'ref_218P_lab','Reference site labor cost for 218P',439306.5601000000024,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(374,'ref_218P_mat','Reference site material cost for 218P',127124.8000000000029,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(375,'ref_218S_fac','Reference factory equipment cost for 218S',18293.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(376,'ref_218S_lab','Reference site labor cost for 218S',1325719.330000000074,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(377,'ref_218S_mat','Reference site material cost for 218S',668122.4000000000232,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(378,'ref_218T_fac','Aggregated reference fac cost for 218T',94454.799960999997,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(379,'ref_218T_lab','Aggregated reference lab cost for 218T',150357.8792520000134,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(380,'ref_218T_mat','Aggregated reference mat cost for 218T',34382.96869940000034,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(381,'ref_218V_lab','Reference site labor cost for 218V',172589.3399999999966,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(382,'ref_218V_mat','Reference site material cost for 218V',67568.60003000000143,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(383,'ref_221_1_fac','Aggregated reference fac cost for 221.1',54943623.46000000089,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(384,'ref_221_1_lab','Aggregated reference lab cost for 221.1',6959303.009000000543,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(385,'ref_221_1_mat','Aggregated reference mat cost for 221.1',13117014.51909999921,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(386,'ref_221_2_fac','Aggregated reference fac cost for 221.2',29518644.19000000134,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(387,'ref_221_2_lab','Aggregated reference lab cost for 221.2',1128496.709000000031,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(388,'ref_221_2_mat','Aggregated reference mat cost for 221.2',106736.2780000000057,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(389,'ref_221_3_fac','Reference factory equipment cost for 221.3',48271430.43999999762,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(390,'ref_221_3_lab','Reference site labor cost for 221.3',1305834.897000000113,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(391,'ref_221_3_mat','Reference site material cost for 221.3',121580.4158000000024,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(392,'ref_222_111_fac','Reference factory equipment cost for 222.111',96235783.5100000053,'$',NULL,NULL,'ce_222_111_fac',0); +INSERT INTO ap1000_variable VALUES(393,'ref_222_111_lab','Reference site labor cost for 222.111',3849475.091000000014,'$',NULL,NULL,'ce_222_111_lab',0); +INSERT INTO ap1000_variable VALUES(394,'ref_222_111_mat','Reference site material cost for 222.111',389420.0621999999858,'$',NULL,NULL,'ce_222_111_mat',0); +INSERT INTO ap1000_variable VALUES(395,'ref_222_119_fac','Reference factory equipment cost for 222.119',2899631.743999999948,'$',NULL,NULL,'ce_222_119_fac',0); +INSERT INTO ap1000_variable VALUES(396,'ref_222_119_lab','Reference site labor cost for 222.119',4571014.441999999807,'$',NULL,NULL,'ce_222_119_lab',0); +INSERT INTO ap1000_variable VALUES(397,'ref_222_119_mat','Reference site material cost for 222.119',456144.5742999999784,'$',NULL,NULL,'ce_222_119_mat',0); +INSERT INTO ap1000_variable VALUES(398,'ref_222_12_fac','Aggregated reference fac cost for 222.12',12181696.78219999932,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(399,'ref_222_12_lab','Aggregated reference lab cost for 222.12',21860871.53649999946,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(400,'ref_222_12_mat','Aggregated reference mat cost for 222.12',2154574.624400000087,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(401,'ref_222_132_fac','Reference factory equipment cost for 222.132',115107954.9000000059,'$',NULL,NULL,'ce_222_132_fac',0); +INSERT INTO ap1000_variable VALUES(402,'ref_222_132_lab','Reference site labor cost for 222.132',3379073.239000000059,'$',NULL,NULL,'ce_222_132_lab',0); +INSERT INTO ap1000_variable VALUES(403,'ref_222_132_mat','Reference site material cost for 222.132',358033.9675999999745,'$',NULL,NULL,'ce_222_132_mat',0); +INSERT INTO ap1000_variable VALUES(404,'ref_222_139_fac','Reference factory equipment cost for 222.139',57628.3032000000021,'$',NULL,NULL,'ce_222_139_fac',0); +INSERT INTO ap1000_variable VALUES(405,'ref_222_139_lab','Reference site labor cost for 222.139',507890.4934999999823,'$',NULL,NULL,'ce_222_139_lab',0); +INSERT INTO ap1000_variable VALUES(406,'ref_222_139_mat','Reference site material cost for 222.139',50682.73047999999836,'$',NULL,NULL,'ce_222_139_mat',0); +INSERT INTO ap1000_variable VALUES(407,'ref_222_14_fac','Aggregated reference fac cost for 222.14',7810895.185580000281,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(408,'ref_222_14_lab','Aggregated reference lab cost for 222.14',554399.4597300000023,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(409,'ref_222_14_mat','Aggregated reference mat cost for 222.14',54698.15781199999765,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(410,'ref_223_1_fac','Aggregated reference fac cost for 223.1',9125519.813300000504,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(411,'ref_223_1_lab','Aggregated reference lab cost for 223.1',7673809.635900000111,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(412,'ref_223_1_mat','Aggregated reference mat cost for 223.1',643801.1258669999661,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(413,'ref_223_3_fac','Aggregated reference fac cost for 223.3',17995520.49500000104,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(414,'ref_223_3_lab','Aggregated reference lab cost for 223.3',12484140.12656999938,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(415,'ref_223_3_mat','Aggregated reference mat cost for 223.3',1849558.449167999905,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(416,'ref_223_4_fac','Aggregated reference fac cost for 223.4',7178727.713500000536,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(417,'ref_223_4_lab','Aggregated reference lab cost for 223.4',12825487.28281000071,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(418,'ref_223_4_mat','Aggregated reference mat cost for 223.4',1137444.056296000024,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(419,'ref_223_5_fac','Aggregated reference fac cost for 223.5',2020969.935920000076,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(420,'ref_223_5_lab','Aggregated reference lab cost for 223.5',1237700.479839999928,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(421,'ref_223_5_mat','Aggregated reference mat cost for 223.5',107715.5990409999941,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(422,'ref_224_1_fac','Aggregated reference fac cost for 224.1',17578043.84462000058,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(423,'ref_224_1_lab','Aggregated reference lab cost for 224.1',23504618.58384000137,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(424,'ref_224_1_mat','Aggregated reference mat cost for 224.1',2415803.700885400176,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(425,'ref_224_2_fac','Aggregated reference fac cost for 224.2',3090436.714999999851,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(426,'ref_224_2_lab','Aggregated reference lab cost for 224.2',1216147.837000000057,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(427,'ref_224_2_mat','Aggregated reference mat cost for 224.2',75770.24728999999933,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(428,'ref_224_3_fac','Aggregated reference fac cost for 224.3',17307453.16760000214,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(429,'ref_224_3_lab','Aggregated reference lab cost for 224.3',3175748.848400000017,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(430,'ref_224_3_mat','Aggregated reference mat cost for 224.3',313011.3541279999773,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(431,'ref_225_111_fac','Reference factory equipment cost for 225.111',237225.8381999999984,'$',NULL,NULL,'ce_225_111_fac',0); +INSERT INTO ap1000_variable VALUES(432,'ref_225_111_lab','Reference site labor cost for 225.111',142693.1866999999912,'$',NULL,NULL,'ce_225_111_lab',0); +INSERT INTO ap1000_variable VALUES(433,'ref_225_111_mat','Reference site material cost for 225.111',11385.05953000000044,'$',NULL,NULL,'ce_225_111_mat',0); +INSERT INTO ap1000_variable VALUES(434,'ref_225_112_fac','Reference factory equipment cost for 225.112',31779.31039999999849,'$',NULL,NULL,'ce_225_112_fac',0); +INSERT INTO ap1000_variable VALUES(435,'ref_225_112_lab','Reference site labor cost for 225.112',28538.63734000000113,'$',NULL,NULL,'ce_225_112_lab',0); +INSERT INTO ap1000_variable VALUES(436,'ref_225_112_mat','Reference site material cost for 225.112',2275.585206000000199,'$',NULL,NULL,'ce_225_112_mat',0); +INSERT INTO ap1000_variable VALUES(437,'ref_225_113_fac','Reference factory equipment cost for 225.113',78282.49206999999297,'$',NULL,NULL,'ce_225_113_fac',0); +INSERT INTO ap1000_variable VALUES(438,'ref_225_113_lab','Reference site labor cost for 225.113',142693.1866999999912,'$',NULL,NULL,'ce_225_113_lab',0); +INSERT INTO ap1000_variable VALUES(439,'ref_225_113_mat','Reference site material cost for 225.113',11281.5589799999998,'$',NULL,NULL,'ce_225_113_mat',0); +INSERT INTO ap1000_variable VALUES(440,'ref_225_114_fac','Reference factory equipment cost for 225.114',1423355.029000000096,'$',NULL,NULL,'ce_225_114_fac',0); +INSERT INTO ap1000_variable VALUES(441,'ref_225_114_lab','Reference site labor cost for 225.114',395150.3632000000216,'$',NULL,NULL,'ce_225_114_lab',0); +INSERT INTO ap1000_variable VALUES(442,'ref_225_114_mat','Reference site material cost for 225.114',31522.91857000000163,'$',NULL,NULL,'ce_225_114_mat',0); +INSERT INTO ap1000_variable VALUES(443,'ref_225_12_fac','Reference factory equipment cost for 225.12',311913.931500000006,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(444,'ref_225_12_lab','Reference site labor cost for 225.12',40279.58385999999883,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(445,'ref_225_12_mat','Reference site material cost for 225.12',3213.639921999999843,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(446,'ref_225_13_fac','Aggregated reference fac cost for 225.13',435399.745990000025,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(447,'ref_225_13_lab','Aggregated reference lab cost for 225.13',1025848.605600000009,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(448,'ref_225_13_mat','Aggregated reference mat cost for 225.13',77501.83425099999294,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(449,'ref_225_3_fac','Aggregated reference fac cost for 225.3',227028.0975000000034,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(450,'ref_225_3_lab','Aggregated reference lab cost for 225.3',143339.4107000000076,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(451,'ref_225_3_mat','Aggregated reference mat cost for 225.3',10769.08215000000018,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(452,'ref_225_4_fac','Aggregated reference fac cost for 225.4',4553380.162469999864,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(453,'ref_225_4_lab','Aggregated reference lab cost for 225.4',2057890.489160000113,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(454,'ref_225_4_mat','Aggregated reference mat cost for 225.4',226720.5942759999889,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(455,'ref_226_1_fac','Aggregated reference fac cost for 226.1',1768563.443999999902,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(456,'ref_226_1_lab','Aggregated reference lab cost for 226.1',2571525.626000000163,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(457,'ref_226_1_mat','Aggregated reference mat cost for 226.1',200061.0011999999988,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(458,'ref_226_3_fac','Aggregated reference fac cost for 226.3',2016124.889440000057,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(459,'ref_226_3_lab','Aggregated reference lab cost for 226.3',3000197.535569999833,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(460,'ref_226_3_mat','Aggregated reference mat cost for 226.3',628917.897423599963,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(461,'ref_226_4_fac','Aggregated reference fac cost for 226.4',24729843.08700000123,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(462,'ref_226_4_lab','Aggregated reference lab cost for 226.4',35691506.61100000144,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(463,'ref_226_4_mat','Aggregated reference mat cost for 226.4',4098205.311000000219,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(464,'ref_226_6_fac','Aggregated reference fac cost for 226.6',381757.8008000000264,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(465,'ref_226_6_lab','Aggregated reference lab cost for 226.6',93253.8853999999993,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(466,'ref_226_6_mat','Aggregated reference mat cost for 226.6',3658.729339999999866,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(467,'ref_226_71_fac','Aggregated reference fac cost for 226.71',13497035.89980000071,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(468,'ref_226_71_lab','Aggregated reference lab cost for 226.71',29663437.32339999824,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(469,'ref_226_71_mat','Aggregated reference mat cost for 226.71',2285411.729199000168,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(470,'ref_226_72_fac','Aggregated reference fac cost for 226.72',12452416.71990000085,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(471,'ref_226_72_lab','Aggregated reference lab cost for 226.72',17484840.09236999973,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(472,'ref_226_72_mat','Aggregated reference mat cost for 226.72',1360292.762976000085,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(473,'ref_226_8_fac','Aggregated reference fac cost for 226.8',7867871.490000000223,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(474,'ref_226_8_lab','Aggregated reference lab cost for 226.8',355003.3021600000211,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(475,'ref_226_8_mat','Aggregated reference mat cost for 226.8',2008164.993650000077,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(476,'ref_226_9_fac','Aggregated reference fac cost for 226.9',895545.655224999995,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(477,'ref_226_9_lab','Aggregated reference lab cost for 226.9',1385536.38870000001,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(478,'ref_226_9_mat','Aggregated reference mat cost for 226.9',116782.2372900000045,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(479,'ref_227_11_fac','Reference factory equipment cost for 227.11',2348124.117999999784,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(480,'ref_227_11_lab','Reference site labor cost for 227.11',956553.366200000047,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(481,'ref_227_11_mat','Reference site material cost for 227.11',47080.64022999999724,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(482,'ref_227_15_fac','Reference factory equipment cost for 227.15',201316.7981999999902,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(483,'ref_227_15_lab','Reference site labor cost for 227.15',146670.7043999999878,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(484,'ref_227_15_mat','Reference site material cost for 227.15',7611.624429000000419,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(485,'ref_227_16_fac','Reference factory equipment cost for 227.16',841507.4497999999439,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(486,'ref_227_16_lab','Reference site labor cost for 227.16',573931.4902999999468,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(487,'ref_227_16_mat','Reference site material cost for 227.16',29789.75466999999845,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(488,'ref_227_17_fac','Reference factory equipment cost for 227.17',805269.6058000000193,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(489,'ref_227_17_lab','Reference site labor cost for 227.17',573931.4902999999468,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(490,'ref_227_17_mat','Reference site material cost for 227.17',29789.75466999999845,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(491,'ref_227_18_fac','Reference factory equipment cost for 227.18',1007976.135000000009,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(492,'ref_227_18_lab','Reference site labor cost for 227.18',446391.747399999993,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(493,'ref_227_18_mat','Reference site material cost for 227.18',21971.6603099999993,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(494,'ref_227_19_fac','Reference factory equipment cost for 227.19',543551.0204999999841,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(495,'ref_227_19_lab','Reference site labor cost for 227.19',159427.3257999999915,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(496,'ref_227_19_mat','Reference site material cost for 227.19',7845.904789999999594,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(497,'ref_227_2_fac','Reference factory equipment cost for 227.2',6575350.648000000044,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(498,'ref_227_2_lab','Reference site labor cost for 227.2',913902.4666999999899,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(499,'ref_227_2_mat','Reference site material cost for 227.2',89960.81599000000279,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(500,'ref_227_3_fac','Aggregated reference fac cost for 227.3',6821452.508899999782,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(501,'ref_227_3_lab','Aggregated reference lab cost for 227.3',2569941.702839999926,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(502,'ref_227_3_mat','Aggregated reference mat cost for 227.3',141557.216122999991,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(503,'ref_227_4_fac','Aggregated reference fac cost for 227.4',5434791.773000000045,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(504,'ref_227_4_lab','Aggregated reference lab cost for 227.4',1944991.668099999894,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(505,'ref_227_4_mat','Aggregated reference mat cost for 227.4',191457.2748000000138,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(506,'ref_227_5_fac','Reference factory equipment cost for 227.5',435585.8101000000024,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(507,'ref_227_5_lab','Reference site labor cost for 227.5',8927819.063999999314,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(508,'ref_227_5_mat','Reference site material cost for 227.5',870827.6585000000196,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(509,'ref_227_9_fac','Reference factory equipment cost for 227.9',5218992.184000000357,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(510,'ref_227_9_lab','Reference site labor cost for 227.9',3188506.808999999892,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(511,'ref_227_9_mat','Reference site material cost for 227.9',313864.8547999999718,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(512,'ref_228_lab','Aggregated reference lab cost for 228',13169656.3509999998,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(513,'ref_228_mat','Aggregated reference mat cost for 228',7193434.601400000044,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(514,'ref_23_fac','Aggregated reference fac cost for 23',398537111.5299999714,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(515,'ref_23_lab','Aggregated reference lab cost for 23',169158211.6099999845,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(516,'ref_23_mat','Aggregated reference mat cost for 23',25604663.86899999901,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(517,'ref_241_fac','Aggregated reference fac cost for 241',24759182.80200000107,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(518,'ref_241_lab','Aggregated reference lab cost for 241',1352628.479999999982,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(519,'ref_241_mat','Aggregated reference mat cost for 241',194352.3999999999942,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(520,'ref_242_fac','Aggregated reference fac cost for 242',40273254.99899999797,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(521,'ref_242_lab','Aggregated reference lab cost for 242',3777121.600899999961,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(522,'ref_242_mat','Aggregated reference mat cost for 242',717829.2001000000164,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(523,'ref_243_fac','Aggregated reference fac cost for 243',3457143.79879999999,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(524,'ref_243_lab','Aggregated reference lab cost for 243',770259.4910999999847,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(525,'ref_243_mat','Aggregated reference mat cost for 243',69770.84044999998877,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(526,'ref_244_lab','Aggregated reference lab cost for 244',7182716.802999999375,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(527,'ref_244_mat','Aggregated reference mat cost for 244',3891223.597800000105,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(528,'ref_245_lab','Aggregated reference lab cost for 245',89344823.68999999761,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(529,'ref_245_mat','Aggregated reference mat cost for 245',14935133.40100000053,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(530,'ref_246_fac','Aggregated reference fac cost for 246',3906081.919000000227,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(531,'ref_246_lab','Aggregated reference lab cost for 246',47899828.47699999809,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(532,'ref_246_mat','Aggregated reference mat cost for 246',23576371.2734999992,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(533,'ref_251_11_fac','Aggregated reference fac cost for 251.11',3919300.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(534,'ref_251_11_lab','Aggregated reference lab cost for 251.11',607877.0538999999408,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(535,'ref_251_11_mat','Aggregated reference mat cost for 251.11',63379.76292000000103,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(536,'ref_251_12_fac','Reference factory equipment cost for 251.12',5599000.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(537,'ref_251_12_lab','Reference site labor cost for 251.12',1215742.354999999982,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(538,'ref_251_12_mat','Reference site material cost for 251.12',126759.525800000003,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(539,'ref_251_16_fac','Reference factory equipment cost for 251.16',671880.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(540,'ref_251_16_lab','Reference site labor cost for 251.16',572112.3209000000498,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(541,'ref_251_16_mat','Reference site material cost for 251.16',59651.3613600000026,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(542,'ref_251_17_fac','Reference factory equipment cost for 251.17',940632.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(543,'ref_251_17_lab','Reference site labor cost for 251.17',100121.8598999999959,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(544,'ref_251_17_mat','Reference site material cost for 251.17',10440.74980999999934,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(545,'ref_252_1_fac','Aggregated reference fac cost for 252.1',3990340.547999999952,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(546,'ref_252_1_lab','Aggregated reference lab cost for 252.1',19619508.34299999848,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(547,'ref_252_1_mat','Aggregated reference mat cost for 252.1',834673.1210000000428,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(548,'ref_252_2_fac','Aggregated reference fac cost for 252.2',12778995.77800000086,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(549,'ref_252_2_lab','Aggregated reference lab cost for 252.2',49274175.28300000727,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(550,'ref_252_2_mat','Aggregated reference mat cost for 252.2',10358280.03720000013,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(551,'ref_252_3_fac','Aggregated reference fac cost for 252.3',5820232.717810000292,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(552,'ref_252_3_lab','Aggregated reference lab cost for 252.3',9072230.958979999647,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(553,'ref_252_3_mat','Aggregated reference mat cost for 252.3',536164.7329919999465,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(554,'ref_252_4_lab','Aggregated reference lab cost for 252.4',484340.6169000000228,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(555,'ref_252_4_mat','Aggregated reference mat cost for 252.4',270868.0239300000249,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(556,'ref_253_fac','Aggregated reference fac cost for 253',4287360.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(557,'ref_253_lab','Aggregated reference lab cost for 253',10454512.32300000079,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(558,'ref_253_mat','Aggregated reference mat cost for 253',1443732.399999999907,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(559,'ref_254_fac','Aggregated reference fac cost for 254',4909689.399400000461,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(560,'ref_254_lab','Aggregated reference lab cost for 254',1396674.709503999912,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(561,'ref_254_mat','Aggregated reference mat cost for 254',161290.7999534999835,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(562,'ref_255_fac','Reference factory equipment cost for 255',1668854.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(563,'ref_255_lab','Reference site labor cost for 255',4553152.498999999837,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(564,'ref_255_mat','Reference site material cost for 255',453254.9998999999953,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(565,'ref_261_fac','Aggregated reference fac cost for 261',392618.0380800000276,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(566,'ref_261_lab','Aggregated reference lab cost for 261',9125289.026000000537,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(567,'ref_261_mat','Aggregated reference mat cost for 261',3921296.082100000233,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(568,'ref_262_11_fac','Reference factory equipment cost for 262.11',818836.1027999999933,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(569,'ref_262_11_lab','Reference site labor cost for 262.11',298851.6537999999709,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(570,'ref_262_11_mat','Reference site material cost for 262.11',31388.27886999999828,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(571,'ref_262_12_fac','Reference factory equipment cost for 262.12',19786129.23999999836,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(572,'ref_262_12_lab','Reference site labor cost for 262.12',15368420.83999999986,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(573,'ref_262_12_mat','Reference site material cost for 262.12',2229912.27600000007,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(574,'ref_262_13_fac','Reference factory equipment cost for 262.13',46211135.75999999792,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(575,'ref_262_13_lab','Reference site labor cost for 262.13',26887199.25,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(576,'ref_262_13_mat','Reference site material cost for 262.13',2138353.432000000029,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(577,'ref_262_14_lab','Reference site labor cost for 262.14',130171.6440000000002,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(578,'ref_262_14_mat','Reference site material cost for 262.14',117381.9542999999977,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(579,'ref_262_15_fac','Reference factory equipment cost for 262.15',2719803.891999999993,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(580,'ref_262_15_lab','Reference site labor cost for 262.15',547270.1731000000146,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(581,'ref_262_15_mat','Reference site material cost for 262.15',104605.3007999999973,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(582,'ref_S','Reference Area for General Yardwork 211.1',62.0,'m^2',NULL,NULL,'scale_S',0); +INSERT INTO ap1000_variable VALUES(583,'ref_bldg_V','Reference Building volume for Structural & Miscellaneous Steel 213.142',212000.0,'m^3',NULL,NULL,'scale_bldg_V',0); +INSERT INTO ap1000_variable VALUES(584,'ref_cmn_bldg_vol','Reference common containment/auxiliary building volume',92268.0,'m^3',NULL,NULL,'scale_adm_bldg_bldg_vol, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_elec_tunnel_bldg_vol, scale_non_ess_swgr_bldg_bldg_vol, scale_sup_const, scale_wwt_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(585,'ref_cr_dg_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 218142',48762.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(586,'ref_cr_dg_bldg_sub_S','Reference Substructure S for Roofing & Flashing 218145',1890.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(587,'ref_cr_dg_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 21813',2268.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(588,'ref_cr_dg_bldg_sup_S','Reference Superstructure S for Painting 218149',6258.0,'m^2',NULL,NULL,'scale_cr_dg_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(589,'ref_cr_dg_bldg_sup_vol','Reference Superstructure volume for Concrete Work 218141',3755.0,'m^3',NULL,NULL,'scale_cr_dg_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(590,'ref_direct_cost_frm_flow','Reference direct cost basis for Flow rate scale, source account 222.11',108401469.0,'kg/s',NULL,NULL,'scale_frm_flow',0); +INSERT INTO ap1000_variable VALUES(591,'ref_direct_cost_frm_fuel_cask_cap','Reference direct cost basis for Fuel cask capacity scale, source account 225.114',1850028.0,'tonne',NULL,NULL,'scale_frm_fuel_cask_cap',0); +INSERT INTO ap1000_variable VALUES(592,'ref_direct_cost_frm_fuel_crane_cap','Reference direct cost basis for Fuel crane capacity scale, source account 225.111',391304.0,'tonne',NULL,NULL,'scale_frm_fuel_crane_cap',0); +INSERT INTO ap1000_variable VALUES(593,'ref_direct_cost_frm_ht_S','Reference direct cost basis for HT surface S scale, source account 222.13',119461264.0,'m^2',NULL,NULL,'scale_frm_ht_S',0); +INSERT INTO ap1000_variable VALUES(594,'ref_direct_cost_frm_prz_M','Reference direct cost basis for Pressurizer mass scale, source account 222.14',8419993.0,'kg',NULL,NULL,'scale_frm_prz_M',0); +INSERT INTO ap1000_variable VALUES(595,'ref_direct_cost_frm_S','Reference direct cost basis for Surface S scale, source account 212.3',1.0,'m^2',NULL,NULL,'scale_frm_S',0); +INSERT INTO ap1000_variable VALUES(596,'ref_direct_cost_frm_S_9_71886e_06','Reference direct cost basis for Surface S scale, source account 217.3',9718863.0,'m^2',NULL,NULL,'scale_frm_S_9_71886e_06',0); +INSERT INTO ap1000_variable VALUES(597,'ref_direct_cost_frm_vsl_M','Reference direct cost basis for Vessel mass scale, source account 221.1',75019941.0,'kg',NULL,NULL,'scale_frm_vsl_M',0); +INSERT INTO ap1000_variable VALUES(598,'ref_elec_P','Reference electric power used by electric-power scale laws',2288.0,'MWe',NULL,NULL,'scale_elec_P, scale_tur_plant_equip_elec_P',0); +INSERT INTO ap1000_variable VALUES(599,'ref_fuel_stor_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 217.142',28800.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(600,'ref_fuel_stor_bldg_sub_S','Reference Substructure S for Roofing & Flashing 217.145',900.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(601,'ref_fuel_stor_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 217.13',1080.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(602,'ref_fuel_stor_bldg_sup_S','Reference Superstructure S for Painting 217.149',3840.0,'m^2',NULL,NULL,'scale_fuel_stor_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(603,'ref_fuel_stor_bldg_sup_vol','Reference Superstructure volume for Concrete Work 217.141',2304.0,'m^3',NULL,NULL,'scale_fuel_stor_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(604,'ref_mc_piping_M','Reference MC piping mass for Reactor Coolant Piping System 222.12',154000.0,'kg',NULL,NULL,'scale_mc_piping_M',0); +INSERT INTO ap1000_variable VALUES(605,'ref_n_crs','Reference Number of CRs for Reactor Control Devices 221.2',57.0,NULL,NULL,NULL,'scale_n_crs',0); +INSERT INTO ap1000_variable VALUES(606,'ref_pri_aux_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 215.142',36232.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(607,'ref_pri_aux_bldg_sub_S','Reference Substructure S for Roofing & Flashing 215.145',1294.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(608,'ref_pri_aux_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 215.13',1553.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(609,'ref_pri_aux_bldg_sup_S','Reference Superstructure S for Painting 215.149',5544.0,'m^2',NULL,NULL,'scale_pri_aux_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(610,'ref_pri_aux_bldg_sup_vol','Reference Superstructure volume for Concrete Work 215.141',3326.0,'m^3',NULL,NULL,'scale_pri_aux_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(611,'ref_pri_flow','Reference Primary flowrate for Liquid Waste System 224.1',23872.0,'kg/s',NULL,NULL,'scale_pri_flow',0); +INSERT INTO ap1000_variable VALUES(612,'ref_rx_D','Reference Reactor diameter (m) for Vessel Internals 221.3',4.599999999999999644,'m',NULL,NULL,'scale_rx_D',0); +INSERT INTO ap1000_variable VALUES(613,'ref_rej_th_P','Reference Rejected thermal power for 261.1',4546.0,'MWt',NULL,NULL,'scale_rej_th_P',0); +INSERT INTO ap1000_variable VALUES(614,'ref_rx_P','Reference reactor/plant thermal power used by RX/plant-power scale laws',6834.0,'MWt',NULL,NULL,'scale_P',0); +INSERT INTO ap1000_variable VALUES(615,'ref_sfp_V','Reference SFP volume for Fuel Storage, Cleaning, & Inspection Equipment 225.4',1056.0,'m^3',NULL,NULL,'scale_sfp_V',0); +INSERT INTO ap1000_variable VALUES(616,'ref_sub_str_S','Reference Substructure S for Roof Deck 213.144',6100.0,'m^2',NULL,NULL,'scale_sub_str_S',0); +INSERT INTO ap1000_variable VALUES(617,'ref_sub_str_V','Reference Substructure volume for Substructure Concrete 212.13',4603.0,'m^3',NULL,NULL,'scale_sub_str_V',0); +INSERT INTO ap1000_variable VALUES(618,'ref_sup_str_S','Reference Superstructure S for Painting 212.149',9373.0,'m^2',NULL,NULL,'scale_sup_str_S',0); +INSERT INTO ap1000_variable VALUES(619,'ref_sup_str_V','Reference Superstructure volume for Concrete Work 212.141',11248.0,'m^3',NULL,NULL,'scale_sup_str_V',0); +INSERT INTO ap1000_variable VALUES(620,'ref_turb_gen_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 213.13',1830.0,'m^3',NULL,NULL,'scale_turb_gen_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(621,'ref_turb_gen_bldg_sup_S','Reference Superstructure S for Exterior Walls 213.143',17040.0,'m^2',NULL,NULL,'scale_turb_gen_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(622,'ref_turb_gen_bldg_sup_vol','Reference Superstructure volume for Concrete Work 213.141',5112.0,'m^3',NULL,NULL,'scale_turb_gen_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(623,'ref_V_of_212_213_215_216_217','Reference Volume of 212, 213, 215, 216, 217 for Fill & Backfill (Place/Comp) 211.712',416524.0,'m^3',NULL,NULL,'scale_V_of_212_213_215_216_217',0); +INSERT INTO ap1000_variable VALUES(624,'ref_waste_bldg_bldg_vol','Reference Building volume for Structural & Miscellaneous Steel 216.142',53328.0,'m^3',NULL,NULL,'scale_waste_bldg_bldg_vol',0); +INSERT INTO ap1000_variable VALUES(625,'ref_waste_bldg_sub_S','Reference Substructure S for Roof Deck 216.144',1728.0,'m^2',NULL,NULL,'scale_waste_bldg_sub_S',0); +INSERT INTO ap1000_variable VALUES(626,'ref_waste_bldg_sub_vol','Reference Substructure volume for Substructure Concrete 216.13',2074.0,'m^3',NULL,NULL,'scale_waste_bldg_sub_vol',0); +INSERT INTO ap1000_variable VALUES(627,'ref_waste_bldg_sup_S','Reference Superstructure S for Exterior Walls 216.143',7380.0,'m^2',NULL,NULL,'scale_waste_bldg_sup_S',0); +INSERT INTO ap1000_variable VALUES(628,'ref_waste_bldg_sup_vol','Reference Superstructure volume for Concrete Work 216.141',4428.0,'m^3',NULL,NULL,'scale_waste_bldg_sup_vol',0); +INSERT INTO ap1000_variable VALUES(629,'scale_adm_bldg_bldg_vol','Admin Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_admin_bldg','adm_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin','ce_218B_24_mat, ce_218B_24_lab',0); +INSERT INTO ap1000_variable VALUES(630,'scale_S','Site Area scale factor = (new base unit value / Reference unit value)^exponent.',0.3709677419354838745,'1','scale_law_site_S','S, ref_S, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(631,'scale_bldg_V','Building Volume scale factor = (new base unit value / Reference unit value)^exponent.',0.9169433962264151861,'1','scale_law_bldg_V','bldg_V, ref_bldg_V, exp_lin','ce_213_142_mat, ce_213_142_lab, ce_213_146_mat, ce_213_146_lab, ce_213_147_mat, ce_213_147_lab',0); +INSERT INTO ap1000_variable VALUES(632,'scale_cont_hatch_ms_bldg_vol','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_containment','cont_hatch_ms_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(633,'scale_cont_V','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.933844215884505946,'1','scale_law_containment','cont_V, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(634,'scale_cr_dg_bldg_bldg_vol','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.05455067470571339782,'1','scale_law_control_dg_bldg','cr_dg_bldg_bldg_vol, ref_cr_dg_bldg_bldg_vol, exp_lin','ce_218A_142_mat, ce_218A_142_lab, ce_218A_146_mat, ce_218A_146_lab, ce_218A_147_mat, ce_218A_147_lab, ce_218A_148_mat, ce_218A_148_lab, ce_218A_21_mat, ce_218A_21_lab, ce_218A_235_fac, ce_218A_235_mat, ce_218A_235_lab, ce_218A_236_fac, ce_218A_236_mat, ce_218A_236_lab, ce_218A_237_fac, ce_218A_24_mat, ce_218A_24_lab',0); +INSERT INTO ap1000_variable VALUES(635,'scale_cr_dg_bldg_sub_S','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.2010582010582009915,'1','scale_law_control_dg_bldg','cr_dg_bldg_sub_S, ref_cr_dg_bldg_sub_S, exp_lin','ce_218A_145_mat, ce_218A_145_lab',0); +INSERT INTO ap1000_variable VALUES(636,'scale_cr_dg_bldg_sub_vol','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.1005291005291004957,'1','scale_law_control_dg_bldg','cr_dg_bldg_sub_vol, ref_cr_dg_bldg_sub_vol, exp_lin','ce_218A_13_mat, ce_218A_13_lab',0); +INSERT INTO ap1000_variable VALUES(637,'scale_cr_dg_bldg_sup_S','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.08724832214765100569,'1','scale_law_control_dg_bldg','cr_dg_bldg_sup_S, ref_cr_dg_bldg_sup_S, exp_lin','ce_218A_149_mat, ce_218A_149_lab',0); +INSERT INTO ap1000_variable VALUES(638,'scale_cr_dg_bldg_sup_vol','Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.04362183754993340101,'1','scale_law_control_dg_bldg','cr_dg_bldg_sup_vol, ref_cr_dg_bldg_sup_vol, exp_lin','ce_218A_141_mat, ce_218A_141_lab',0); +INSERT INTO ap1000_variable VALUES(639,'scale_elec_P','Electric Power scale factor = (new base unit value / Reference unit value)^exponent.',0.981073892801862746,'1','scale_law_elec_P','elec_P, ref_elec_P, exp_elec_P',NULL,0); +INSERT INTO ap1000_variable VALUES(640,'scale_elec_tunnel_bldg_vol','Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_electrical_bldg','elec_tunnel_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(641,'scale_frm_flow','Formula Flow Rate direct formula scale factor.',0.928566011725832419,'1','formula_scale_flow_rate','uc_frm_flow, frm_flow, ref_direct_cost_frm_flow','ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab',0); +INSERT INTO ap1000_variable VALUES(642,'scale_frm_fuel_cask_cap','Formula Fuel Cask Capacity direct formula scale factor.',1.003238413605852308,'1','formula_scale_fuel_cask_capacity','uc_frm_fuel_cap, frm_fuel_cask_cap, ref_direct_cost_frm_fuel_cask_cap','ce_225_114_fac, ce_225_114_mat, ce_225_114_lab',0); +INSERT INTO ap1000_variable VALUES(643,'scale_frm_fuel_crane_cap','Formula Fuel Crane Capacity direct formula scale factor.',1.075252861593902321,'1','formula_scale_fuel_crane_capacity','uc_frm_fuel_cap, frm_fuel_crane_cap, ref_direct_cost_frm_fuel_crane_cap','ce_225_111_fac, ce_225_111_mat, ce_225_111_lab',0); +INSERT INTO ap1000_variable VALUES(644,'scale_frm_ht_S','Formula Ht Surface Area direct formula scale factor.',1.301355535578422762,'1','formula_scale_ht_surface_S','uc_frm_ht_S, frm_ht_S, ref_direct_cost_frm_ht_S','ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab',0); +INSERT INTO ap1000_variable VALUES(645,'scale_frm_prz_M','Formula Pressurizer Mass direct formula scale factor.',1.114840490754214875,'1','formula_scale_pressurizer_mass','uc_frm_prz_M, frm_prz_M, ref_direct_cost_frm_prz_M',NULL,0); +INSERT INTO ap1000_variable VALUES(646,'scale_frm_S','Formula Surface Area direct formula scale factor.',17866000.0,'1','formula_scale_surface_S','uc_frm_S, frm_S, ref_direct_cost_frm_S',NULL,0); +INSERT INTO ap1000_variable VALUES(647,'scale_frm_S_9_71886e_06','Formula Surface Area 9 71886E 06 direct formula scale factor.',0.8823748210052966279,'1','formula_scale_surface_S_9_71886e_06','uc_frm_S_9_71886e_06, frm_S_9_71886e_06, ref_direct_cost_frm_S_9_71886e_06',NULL,0); +INSERT INTO ap1000_variable VALUES(648,'scale_frm_vsl_M','Formula Vessel Mass direct formula scale factor.',0.9091005252450700125,'1','formula_scale_vessel_mass','uc_frm_vsl_M, frm_vsl_M, ref_direct_cost_frm_vsl_M',NULL,0); +INSERT INTO ap1000_variable VALUES(649,'scale_fuel_stor_bldg_bldg_vol','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.65625,'1','scale_law_fuel_storage','fuel_stor_bldg_bldg_vol, ref_fuel_stor_bldg_bldg_vol, exp_lin','ce_217_142_mat, ce_217_142_lab, ce_217_147_mat, ce_217_147_lab',0); +INSERT INTO ap1000_variable VALUES(650,'scale_fuel_stor_bldg_sub_S','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.7777777777777777901,'1','scale_law_fuel_storage','fuel_stor_bldg_sub_S, ref_fuel_stor_bldg_sub_S, exp_lin','ce_217_145_mat, ce_217_145_lab',0); +INSERT INTO ap1000_variable VALUES(651,'scale_fuel_stor_bldg_sub_vol','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.388888888888888895,'1','scale_law_fuel_storage','fuel_stor_bldg_sub_vol, ref_fuel_stor_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(652,'scale_fuel_stor_bldg_sup_S','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.7453125000000000444,'1','scale_law_fuel_storage','fuel_stor_bldg_sup_S, ref_fuel_stor_bldg_sup_S, exp_lin','ce_217_149_mat, ce_217_149_lab',0); +INSERT INTO ap1000_variable VALUES(653,'scale_fuel_stor_bldg_sup_vol','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.3726562500000000222,'1','scale_law_fuel_storage','fuel_stor_bldg_sup_vol, ref_fuel_stor_bldg_sup_vol, exp_lin','ce_217_141_mat, ce_217_141_lab',0); +INSERT INTO ap1000_variable VALUES(654,'scale_mc_piping_M','Piping Mass scale factor = (new base unit value / Reference unit value)^exponent.',0.5,'1','scale_law_piping_mass','mc_piping_M, ref_mc_piping_M, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(655,'scale_non_ess_swgr_bldg_bldg_vol','Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_electrical_bldg','non_ess_swgr_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(656,'scale_n_crs','Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.',1.210526315789473673,'1','scale_law_reactor_equipment','n_crs, ref_n_crs, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(657,'scale_P','Power scale factor for plant/reactor thermal power based direct-cost accounts',0.996017916397094027,'1','scale_law_power','rx_P, ref_rx_P, exp_P','ce_211_711_mat, ce_211_711_lab, ce_215_221_fac, ce_215_221_mat, ce_215_221_lab, ce_215_222_fac, ce_215_222_mat, ce_215_222_lab, ce_215_223_fac, ce_215_223_mat, ce_215_223_lab, ce_215_224_fac, ce_215_224_mat, ce_215_224_lab, ce_215_228_fac, ce_215_228_mat, ce_215_228_lab, ce_218A_231_fac, ce_218A_231_mat, ce_218A_231_lab, ce_218A_232_fac, ce_218A_232_mat, ce_218A_232_lab, ce_218A_233_fac, ce_218A_233_mat, ce_218A_233_lab, ce_218A_234_fac, ce_218A_234_mat, ce_218A_234_lab, ce_218A_238_fac, ce_218A_238_mat, ce_218A_238_lab, ce_218B_22_fac, ce_218B_22_mat, ce_218B_22_lab, ce_218B_23_fac, ce_218B_23_mat, ce_218B_23_lab',0); +INSERT INTO ap1000_variable VALUES(658,'scale_pri_aux_bldg_bldg_vol','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3686520203135350004,'1','scale_law_primary_aux_bldg','pri_aux_bldg_bldg_vol, ref_pri_aux_bldg_bldg_vol, exp_lin','ce_215_142_mat, ce_215_142_lab, ce_215_146_mat, ce_215_146_lab, ce_215_147_mat, ce_215_147_lab, ce_215_225_fac, ce_215_225_mat, ce_215_225_lab, ce_215_226_fac, ce_215_226_mat, ce_215_226_lab, ce_215_227_fac',0); +INSERT INTO ap1000_variable VALUES(659,'scale_pri_aux_bldg_sub_S','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.5432766615146831234,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sub_S, ref_pri_aux_bldg_sub_S, exp_lin','ce_215_145_mat, ce_215_145_lab',0); +INSERT INTO ap1000_variable VALUES(660,'scale_pri_aux_bldg_sub_vol','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.5432066967160334992,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sub_vol, ref_pri_aux_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(661,'scale_pri_aux_bldg_sup_S','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3838383838383838121,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sup_S, ref_pri_aux_bldg_sup_S, exp_lin','ce_215_149_mat, ce_215_149_lab',0); +INSERT INTO ap1000_variable VALUES(662,'scale_pri_aux_bldg_sup_vol','Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3838845460012025867,'1','scale_law_primary_aux_bldg','pri_aux_bldg_sup_vol, ref_pri_aux_bldg_sup_vol, exp_lin','ce_215_141_mat, ce_215_141_lab',0); +INSERT INTO ap1000_variable VALUES(663,'scale_pri_flow','Flow Rate scale factor = (new base unit value / Reference unit value)^exponent.',0.8717574764492064254,'1','scale_law_flow_rate','pri_flow, ref_pri_flow, exp_pri_flow',NULL,0); +INSERT INTO ap1000_variable VALUES(664,'scale_rx_D','Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.',0.956994328922495586,'1','scale_law_reactor_equipment','rx_D, ref_rx_D, exp_rx_D',NULL,0); +INSERT INTO ap1000_variable VALUES(665,'scale_rej_th_P','Heat Rejection scale factor = (new base unit value / Reference unit value)^exponent.',1.003518031940658917,'1','scale_law_heat_rejection','rej_th_P, ref_rej_th_P, exp_P',NULL,0); +INSERT INTO ap1000_variable VALUES(666,'scale_sfp_V','Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.',0.7736561975373580368,'1','scale_law_fuel_storage','sfp_V, ref_sfp_V, exp_sfp_V',NULL,0); +INSERT INTO ap1000_variable VALUES(667,'scale_sub_str_S','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.6780327868852459306,'1','scale_law_containment','sub_str_S, ref_sub_str_S, exp_lin','ce_213_144_mat, ce_213_144_lab, ce_213_145_mat, ce_213_145_lab',0); +INSERT INTO ap1000_variable VALUES(668,'scale_sub_str_V','Containment scale factor = (new base unit value / Reference unit value)^exponent.',1.000033848320524221,'1','scale_law_containment','sub_str_V, ref_sub_str_V, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(669,'scale_sup_const','Containment scale factor = (new base unit value / Reference unit value)^exponent.',1.004985654388968808,'1','scale_law_containment','sup_const, ref_cmn_bldg_vol, exp_lin','ce_212_140_fac, ce_212_140_mat, ce_212_140_lab, ce_212_142_mat, ce_212_142_lab',0); +INSERT INTO ap1000_variable VALUES(670,'scale_sup_str_S','Containment scale factor = (new base unit value / Reference unit value)^exponent.',1.004438194875893587,'1','scale_law_containment','sup_str_S, ref_sup_str_S, exp_lin','ce_212_149_mat, ce_212_149_lab',0); +INSERT INTO ap1000_variable VALUES(671,'scale_sup_str_V','Containment scale factor = (new base unit value / Reference unit value)^exponent.',0.8370020626397359776,'1','scale_law_containment','sup_str_S, ref_sup_str_V, exp_lin','ce_212_14111_mat, ce_212_14111_lab, ce_212_14112_mat, ce_212_14112_lab, ce_212_14113_mat, ce_212_14113_lab, ce_212_14114_mat, ce_212_14114_lab, ce_212_14115_mat, ce_212_14115_lab, ce_212_14116_mat, ce_212_14116_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14118_mat, ce_212_14118_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14122_mat, ce_212_14122_lab, ce_212_14123_mat, ce_212_14123_lab, ce_212_14125_mat, ce_212_14125_lab, ce_212_14127_mat, ce_212_14127_lab, ce_212_14128_mat, ce_212_14128_lab, ce_212_1419_mat, ce_212_1419_lab',0); +INSERT INTO ap1000_variable VALUES(672,'scale_turb_gen_bldg_sub_vol','Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.6780327868852459306,'1','scale_law_turbine_bldg','turb_gen_bldg_sub_vol, ref_turb_gen_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(673,'scale_turb_gen_bldg_sup_S','Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.7447183098591548811,'1','scale_law_turbine_bldg','turb_gen_bldg_sup_S, ref_turb_gen_bldg_sup_S, exp_lin','ce_213_143_mat, ce_213_143_lab, ce_213_149_mat, ce_213_149_lab',0); +INSERT INTO ap1000_variable VALUES(674,'scale_turb_gen_bldg_sup_vol','Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.7447183098591548811,'1','scale_law_turbine_bldg','turb_gen_bldg_sup_vol, ref_turb_gen_bldg_sup_vol, exp_lin','ce_213_141_mat, ce_213_141_lab',0); +INSERT INTO ap1000_variable VALUES(675,'scale_tur_plant_equip_elec_P','Turbine Equipment scale factor = (new base unit value / Reference unit value)^exponent.',0.985771570912432393,'1','scale_law_turbine_equipment','elec_P, ref_elec_P, exp_tur_plant_equip_elec_P',NULL,0); +INSERT INTO ap1000_variable VALUES(676,'scale_V_of_212_213_215_216_217','Volume Of 212 213 215 216 217 scale factor = (new base unit value / Reference unit value)^exponent.',0.8072164301676766351,'1','scale_law_V_of_212_213_215_216_217','V_of_212_213_215_216_217, ref_V_of_212_213_215_216_217, exp_lin','ce_211_712_fac, ce_211_712_mat, ce_211_712_lab',0); +INSERT INTO ap1000_variable VALUES(677,'scale_waste_bldg_bldg_vol','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.3159315931593159044,'1','scale_law_waste_bldg','waste_bldg_bldg_vol, ref_waste_bldg_bldg_vol, exp_lin','ce_216_142_mat, ce_216_142_lab, ce_216_146_mat, ce_216_146_lab, ce_216_147_mat, ce_216_147_lab, ce_216_148_mat, ce_216_148_lab',0); +INSERT INTO ap1000_variable VALUES(678,'scale_waste_bldg_sub_S','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.75,'1','scale_law_waste_bldg','waste_bldg_sub_S, ref_waste_bldg_sub_S, exp_lin','ce_216_144_mat, ce_216_144_lab, ce_216_145_mat, ce_216_145_lab',0); +INSERT INTO ap1000_variable VALUES(679,'scale_waste_bldg_sub_vol','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.7498553519768563768,'1','scale_law_waste_bldg','waste_bldg_sub_vol, ref_waste_bldg_sub_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(680,'scale_waste_bldg_sup_S','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.2747967479674796043,'1','scale_law_waste_bldg','waste_bldg_sup_S, ref_waste_bldg_sup_S, exp_lin','ce_216_143_mat, ce_216_143_lab, ce_216_149_mat, ce_216_149_lab',0); +INSERT INTO ap1000_variable VALUES(681,'scale_waste_bldg_sup_vol','Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.2747967479674796043,'1','scale_law_waste_bldg','waste_bldg_sup_vol, ref_waste_bldg_sup_vol, exp_lin','ce_216_141_mat, ce_216_141_lab',0); +INSERT INTO ap1000_variable VALUES(682,'scale_wwt_bldg_bldg_vol','Wastewater Bldg scale factor = (new base unit value / Reference unit value)^exponent.',0.0,'1','scale_law_wastewater_bldg','wwt_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin',NULL,0); +INSERT INTO ap1000_variable VALUES(683,'ce_211_711_fac','Open Cut factory equipment cost for 211.711',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(684,'ce_211_711_mat','Open Cut site material cost for 211.711',4422650.226751341485,'$','category_scale','ref_211_711_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(685,'ce_211_711_lab','Open Cut site labor cost for 211.711',15065631.54498581403,'$','category_scale','ref_211_711_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(686,'ce_211_712_fac','Fill & Backfill (Place/Comp) factory equipment cost for 211.712',198292.7160706897558,'$','category_scale','ref_211_712_fac, scale_V_of_212_213_215_216_217, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(687,'ce_211_712_mat','Fill & Backfill (Place/Comp) site material cost for 211.712',10818782.25794601999,'$','category_scale','ref_211_712_mat, scale_V_of_212_213_215_216_217, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(688,'ce_211_712_lab','Fill & Backfill (Place/Comp) site labor cost for 211.712',12629880.67976078764,'$','category_scale','ref_211_712_lab, scale_V_of_212_213_215_216_217, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(689,'ce_212_141_fac','Concrete Work factory equipment cost for 212.141',0.0,'$','sum_all','ce_212_1411_fac, ce_212_1412_fac, ce_212_1419_fac',NULL,0); +INSERT INTO ap1000_variable VALUES(690,'ce_212_141_mat','Concrete Work site material cost for 212.141',14052106.24287711643,'$','sum_all','ce_212_1411_mat, ce_212_1412_mat, ce_212_1419_mat',NULL,0); +INSERT INTO ap1000_variable VALUES(691,'ce_212_141_lab','Concrete Work site labor cost for 212.141',9164034.594639373944,'$','sum_all','ce_212_1411_lab, ce_212_1412_lab, ce_212_1419_lab',NULL,0); +INSERT INTO ap1000_variable VALUES(692,'ce_212_1411_fac','Containment Shell factory equipment cost for 212.1411',0.0,'$','sum_all','ce_212_14111_fac, ce_212_14112_fac, ce_212_14113_fac, ce_212_14114_fac, ce_212_14115_fac, ce_212_14116_fac, ce_212_14117_fac, ce_212_14118_fac','ce_212_141_fac',0); +INSERT INTO ap1000_variable VALUES(693,'ce_212_1411_mat','Containment Shell site material cost for 212.1411',10199269.0466403123,'$','sum_all','ce_212_14111_mat, ce_212_14112_mat, ce_212_14113_mat, ce_212_14114_mat, ce_212_14115_mat, ce_212_14116_mat, ce_212_14117_mat, ce_212_14118_mat','ce_212_141_mat',0); +INSERT INTO ap1000_variable VALUES(694,'ce_212_1411_lab','Containment Shell site labor cost for 212.1411',5715505.323950598948,'$','sum_all','ce_212_14111_lab, ce_212_14112_lab, ce_212_14113_lab, ce_212_14114_lab, ce_212_14115_lab, ce_212_14116_lab, ce_212_14117_lab, ce_212_14118_lab','ce_212_141_lab',0); +INSERT INTO ap1000_variable VALUES(695,'ce_212_14111_fac','Formwork factory equipment cost for 212.14111',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(696,'ce_212_14111_mat','Formwork site material cost for 212.14111',0.0,'$','category_scale','ref_212_14111_mat, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(697,'ce_212_14111_lab','Formwork site labor cost for 212.14111',0.0,'$','category_scale','ref_212_14111_lab, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(698,'ce_212_14112_fac','Reinforcing Steel factory equipment cost for 212.14112',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(699,'ce_212_14112_mat','Reinforcing Steel site material cost for 212.14112',8380508.768929803743,'$','category_scale','ref_212_14112_mat, scale_sup_str_V, adj_cont_mat_1_48, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(700,'ce_212_14112_lab','Reinforcing Steel site labor cost for 212.14112',1564590.356876003556,'$','category_scale','ref_212_14112_lab, scale_sup_str_V, adj_212_14112_lab, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(701,'ce_212_14113_fac','Concrete factory equipment cost for 212.14113',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(702,'ce_212_14113_mat','Concrete site material cost for 212.14113',1371366.345754568232,'$','category_scale','ref_212_14113_mat, scale_sup_str_V, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(703,'ce_212_14113_lab','Concrete site labor cost for 212.14113',2687756.528683356941,'$','category_scale','ref_212_14113_lab, scale_sup_str_V, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(704,'ce_212_14114_fac','Embedded Steel factory equipment cost for 212.14114',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(705,'ce_212_14114_mat','Embedded Steel site material cost for 212.14114',165512.6083622963051,'$','category_scale','ref_212_14114_mat, scale_sup_str_V, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(706,'ce_212_14114_lab','Embedded Steel site labor cost for 212.14114',454525.0145292392116,'$','category_scale','ref_212_14114_lab, scale_sup_str_V, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(707,'ce_212_14115_fac','Rubbing Surfaces factory equipment cost for 212.14115',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(708,'ce_212_14115_mat','Rubbing Surfaces site material cost for 212.14115',22026.0755169871809,'$','category_scale','ref_212_14115_mat, scale_sup_str_V, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(709,'ce_212_14115_lab','Rubbing Surfaces site labor cost for 212.14115',373300.2284734895802,'$','category_scale','ref_212_14115_lab, scale_sup_str_V, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(710,'ce_212_14116_fac','Waterproofing factory equipment cost for 212.14116',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(711,'ce_212_14116_mat','Waterproofing site material cost for 212.14116',14395.61364181819408,'$','category_scale','ref_212_14116_mat, scale_sup_str_V, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(712,'ce_212_14116_lab','Waterproofing site labor cost for 212.14116',37787.93662342439348,'$','category_scale','ref_212_14116_lab, scale_sup_str_V, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(713,'ce_212_14117_fac','Cadwelds factory equipment cost for 212.14117',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(714,'ce_212_14117_mat','Cadwelds site material cost for 212.14117',0.0,'$','category_scale','ref_212_14117_mat, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(715,'ce_212_14117_lab','Cadwelds site labor cost for 212.14117',0.0,'$','category_scale','ref_212_14117_lab, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(716,'ce_212_14118_fac','Construction Joints factory equipment cost for 212.14118',0.0,'$',NULL,NULL,'ce_212_1411_fac',0); +INSERT INTO ap1000_variable VALUES(717,'ce_212_14118_mat','Construction Joints site material cost for 212.14118',245459.6344348382262,'$','category_scale','ref_212_14118_mat, scale_sup_str_V, scale_ap1000','ce_212_1411_mat',0); +INSERT INTO ap1000_variable VALUES(718,'ce_212_14118_lab','Construction Joints site labor cost for 212.14118',597545.258765084669,'$','category_scale','ref_212_14118_lab, scale_sup_str_V, scale_ap1000','ce_212_1411_lab',0); +INSERT INTO ap1000_variable VALUES(719,'ce_212_1412_fac','Containment Dome factory equipment cost for 212.1412',0.0,'$','sum_all','ce_212_14121_fac, ce_212_14122_fac, ce_212_14123_fac, ce_212_14125_fac, ce_212_14127_fac, ce_212_14128_fac','ce_212_141_fac',0); +INSERT INTO ap1000_variable VALUES(720,'ce_212_1412_mat','Containment Dome site material cost for 212.1412',3658110.955731711817,'$','sum_all','ce_212_14121_mat, ce_212_14122_mat, ce_212_14123_mat, ce_212_14125_mat, ce_212_14127_mat, ce_212_14128_mat','ce_212_141_mat',0); +INSERT INTO ap1000_variable VALUES(721,'ce_212_1412_lab','Containment Dome site labor cost for 212.1412',2781923.024968618061,'$','sum_all','ce_212_14121_lab, ce_212_14122_lab, ce_212_14123_lab, ce_212_14125_lab, ce_212_14127_lab, ce_212_14128_lab','ce_212_141_lab',0); +INSERT INTO ap1000_variable VALUES(722,'ce_212_14121_fac','Formwork factory equipment cost for 212.14121',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO ap1000_variable VALUES(723,'ce_212_14121_mat','Formwork site material cost for 212.14121',0.0,'$','category_scale','ref_212_14121_mat, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1412_mat',0); +INSERT INTO ap1000_variable VALUES(724,'ce_212_14121_lab','Formwork site labor cost for 212.14121',0.0,'$','category_scale','ref_212_14121_lab, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1412_lab',0); +INSERT INTO ap1000_variable VALUES(725,'ce_212_14122_fac','Reinforcing Steel factory equipment cost for 212.14122',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO ap1000_variable VALUES(726,'ce_212_14122_mat','Reinforcing Steel site material cost for 212.14122',3108898.414640051778,'$','category_scale','ref_212_14122_mat, scale_sup_str_V, adj_cont_mat_1_48, scale_ap1000','ce_212_1412_mat',0); +INSERT INTO ap1000_variable VALUES(727,'ce_212_14122_lab','Reinforcing Steel site labor cost for 212.14122',1564590.356876003556,'$','category_scale','ref_212_14122_lab, scale_sup_str_V, adj_212_14122_lab, scale_ap1000','ce_212_1412_lab',0); +INSERT INTO ap1000_variable VALUES(728,'ce_212_14123_fac','Concrete factory equipment cost for 212.14123',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO ap1000_variable VALUES(729,'ce_212_14123_mat','Concrete site material cost for 212.14123',492836.2763720937074,'$','category_scale','ref_212_14123_mat, scale_sup_str_V, scale_ap1000','ce_212_1412_mat',0); +INSERT INTO ap1000_variable VALUES(730,'ce_212_14123_lab','Concrete site labor cost for 212.14123',965916.670857400401,'$','category_scale','ref_212_14123_lab, scale_sup_str_V, scale_ap1000','ce_212_1412_lab',0); +INSERT INTO ap1000_variable VALUES(731,'ce_212_14125_fac','Rubbing Surfaces factory equipment cost for 212.14125',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO ap1000_variable VALUES(732,'ce_212_14125_mat','Rubbing Surfaces site material cost for 212.14125',7866.455541661564894,'$','category_scale','ref_212_14125_mat, scale_sup_str_V, scale_ap1000','ce_212_1412_mat',0); +INSERT INTO ap1000_variable VALUES(733,'ce_212_14125_lab','Rubbing Surfaces site labor cost for 212.14125',133321.2491440316081,'$','category_scale','ref_212_14125_lab, scale_sup_str_V, scale_ap1000','ce_212_1412_lab',0); +INSERT INTO ap1000_variable VALUES(734,'ce_212_14127_fac','Cadwelds factory equipment cost for 212.14127',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO ap1000_variable VALUES(735,'ce_212_14127_mat','Cadwelds site material cost for 212.14127',0.0,'$','category_scale','ref_212_14127_mat, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1412_mat',0); +INSERT INTO ap1000_variable VALUES(736,'ce_212_14127_lab','Cadwelds site labor cost for 212.14127',0.0,'$','category_scale','ref_212_14127_lab, scale_sup_str_V, adj_none, scale_ap1000','ce_212_1412_lab',0); +INSERT INTO ap1000_variable VALUES(737,'ce_212_14128_fac','Construction Joints factory equipment cost for 212.14128',0.0,'$',NULL,NULL,'ce_212_1412_fac',0); +INSERT INTO ap1000_variable VALUES(738,'ce_212_14128_mat','Construction Joints site material cost for 212.14128',48509.80917790415697,'$','category_scale','ref_212_14128_mat, scale_sup_str_V, scale_ap1000','ce_212_1412_mat',0); +INSERT INTO ap1000_variable VALUES(739,'ce_212_14128_lab','Construction Joints site labor cost for 212.14128',118094.7480911821621,'$','category_scale','ref_212_14128_lab, scale_sup_str_V, scale_ap1000','ce_212_1412_lab',0); +INSERT INTO ap1000_variable VALUES(740,'ce_212_140_fac','Interior Concrete factory equipment cost for 212.140',3384358.55023979023,'$','category_scale','ref_212_140_fac, scale_sup_const, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(741,'ce_212_140_mat','Interior Concrete site material cost for 212.140',13289138.40266117639,'$','category_scale','ref_212_140_mat, scale_sup_const, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(742,'ce_212_140_lab','Interior Concrete site labor cost for 212.140',45514958.84916845709,'$','category_scale','ref_212_140_lab, scale_sup_const, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(743,'ce_212_1419_fac','Removable Plugs factory equipment cost for 212.1419',0.0,'$',NULL,NULL,'ce_212_141_fac',0); +INSERT INTO ap1000_variable VALUES(744,'ce_212_1419_mat','Removable Plugs site material cost for 212.1419',194726.2405050928356,'$','category_scale','ref_212_1419_mat, scale_sup_str_V, scale_ap1000','ce_212_141_mat',0); +INSERT INTO ap1000_variable VALUES(745,'ce_212_1419_lab','Removable Plugs site labor cost for 212.1419',666606.2457201580983,'$','category_scale','ref_212_1419_lab, scale_sup_str_V, scale_ap1000','ce_212_141_lab',0); +INSERT INTO ap1000_variable VALUES(746,'ce_212_142_fac','Structural & Miscellaneous Steel factory equipment cost for 212.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(747,'ce_212_142_mat','Structural & Miscellaneous Steel site material cost for 212.142',3837058.018969011958,'$','category_scale','ref_212_142_mat, scale_sup_const, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(748,'ce_212_142_lab','Structural & Miscellaneous Steel site labor cost for 212.142',2923632.663465120829,'$','category_scale','ref_212_142_lab, scale_sup_const, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(749,'ce_212_149_fac','Painting factory equipment cost for 212.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(750,'ce_212_149_mat','Painting site material cost for 212.149',2468990.606222157366,'$','category_scale','ref_212_149_mat, scale_sup_str_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(751,'ce_212_149_lab','Painting site labor cost for 212.149',12605539.13780038245,'$','category_scale','ref_212_149_lab, scale_sup_str_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(752,'ce_213_141_fac','Concrete Work factory equipment cost for 213.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(753,'ce_213_141_mat','Concrete Work site material cost for 213.141',473512.8412995844847,'$','category_scale','ref_213_141_mat, scale_turb_gen_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(754,'ce_213_141_lab','Concrete Work site labor cost for 213.141',1221163.228185211309,'$','category_scale','ref_213_141_lab, scale_turb_gen_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(755,'ce_213_142_fac','Structural & Miscellaneous Steel factory equipment cost for 213.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(756,'ce_213_142_mat','Structural & Miscellaneous Steel site material cost for 213.142',22438700.41580560804,'$','category_scale','ref_213_142_mat, scale_bldg_V, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(757,'ce_213_142_lab','Structural & Miscellaneous Steel site labor cost for 213.142',14169619.2105070483,'$','category_scale','ref_213_142_lab, scale_bldg_V, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(758,'ce_213_143_fac','Exterior Walls factory equipment cost for 213.143',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(759,'ce_213_143_mat','Exterior Walls site material cost for 213.143',1819014.735324295936,'$','category_scale','ref_213_143_mat, scale_turb_gen_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(760,'ce_213_143_lab','Exterior Walls site labor cost for 213.143',1575247.563191725406,'$','category_scale','ref_213_143_lab, scale_turb_gen_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(761,'ce_213_144_fac','Roof Deck factory equipment cost for 213.144',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(762,'ce_213_144_mat','Roof Deck site material cost for 213.144',627619.9902490623062,'$','category_scale','ref_213_144_mat, scale_sub_str_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(763,'ce_213_144_lab','Roof Deck site labor cost for 213.144',604987.2644135082373,'$','category_scale','ref_213_144_lab, scale_sub_str_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(764,'ce_213_145_fac','Roofing & Flashing factory equipment cost for 213.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(765,'ce_213_145_mat','Roofing & Flashing site material cost for 213.145',297638.9385733770905,'$','category_scale','ref_213_145_mat, scale_sub_str_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(766,'ce_213_145_lab','Roofing & Flashing site labor cost for 213.145',320601.8450655738125,'$','category_scale','ref_213_145_lab, scale_sub_str_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(767,'ce_213_146_fac','Interior Walls & Partition factory equipment cost for 213.146',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(768,'ce_213_146_mat','Interior Walls & Partition site material cost for 213.146',260426.9110328308888,'$','category_scale','ref_213_146_mat, scale_bldg_V, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(769,'ce_213_146_lab','Interior Walls & Partition site labor cost for 213.146',407182.9200146566145,'$','category_scale','ref_213_146_lab, scale_bldg_V, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(770,'ce_213_147_fac','Doors & Windows factory equipment cost for 213.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(771,'ce_213_147_mat','Doors & Windows site material cost for 213.147',903580.1334755552235,'$','category_scale','ref_213_147_mat, scale_bldg_V, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(772,'ce_213_147_lab','Doors & Windows site labor cost for 213.147',590330.5279731657357,'$','category_scale','ref_213_147_lab, scale_bldg_V, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(773,'ce_213_149_fac','Painting factory equipment cost for 213.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(774,'ce_213_149_mat','Painting site material cost for 213.149',94462.5278440140828,'$','category_scale','ref_213_149_mat, scale_turb_gen_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(775,'ce_213_149_lab','Painting site labor cost for 213.149',1639057.314786971547,'$','category_scale','ref_213_149_lab, scale_turb_gen_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(776,'ce_215_141_fac','Concrete Work factory equipment cost for 215.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(777,'ce_215_141_mat','Concrete Work site material cost for 215.141',3262104.990817131941,'$','category_scale','ref_215_141_mat, scale_pri_aux_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(778,'ce_215_141_lab','Concrete Work site labor cost for 215.141',10367776.3207931444,'$','category_scale','ref_215_141_lab, scale_pri_aux_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(779,'ce_215_142_fac','Structural & Miscellaneous Steel factory equipment cost for 215.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(780,'ce_215_142_mat','Structural & Miscellaneous Steel site material cost for 215.142',1085567.824147807667,'$','category_scale','ref_215_142_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(781,'ce_215_142_lab','Structural & Miscellaneous Steel site labor cost for 215.142',683150.5168248869013,'$','category_scale','ref_215_142_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(782,'ce_215_145_fac','Roofing & Flashing factory equipment cost for 215.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(783,'ce_215_145_mat','Roofing & Flashing site material cost for 215.145',38679.04266404172813,'$','category_scale','ref_215_145_mat, scale_pri_aux_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(784,'ce_215_145_lab','Roofing & Flashing site labor cost for 215.145',41706.52092709427233,'$','category_scale','ref_215_145_lab, scale_pri_aux_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(785,'ce_215_146_fac','Interior Walls & Partition factory equipment cost for 215.146',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(786,'ce_215_146_mat','Interior Walls & Partition site material cost for 215.146',80622.38030974000867,'$','category_scale','ref_215_146_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(787,'ce_215_146_lab','Interior Walls & Partition site labor cost for 215.146',88142.44585117851966,'$','category_scale','ref_215_146_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(788,'ce_215_147_fac','Doors & Windows factory equipment cost for 215.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(789,'ce_215_147_mat','Doors & Windows site material cost for 215.147',32509.13475523197121,'$','category_scale','ref_215_147_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(790,'ce_215_147_lab','Doors & Windows site labor cost for 215.147',30123.98476871241291,'$','category_scale','ref_215_147_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(791,'ce_215_149_fac','Painting factory equipment cost for 215.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(792,'ce_215_149_mat','Painting site material cost for 215.149',55262.5487232323212,'$','category_scale','ref_215_149_mat, scale_pri_aux_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(793,'ce_215_149_lab','Painting site labor cost for 215.149',261431.5064626262466,'$','category_scale','ref_215_149_lab, scale_pri_aux_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(794,'ce_215_221_fac','Rotating Machinery factory equipment cost for 215.221',2521628.544022134505,'$','category_scale','ref_215_221_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(795,'ce_215_221_mat','Rotating Machinery site material cost for 215.221',28864.40564110573177,'$','category_scale','ref_215_221_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(796,'ce_215_221_lab','Rotating Machinery site labor cost for 215.221',335031.1497269407263,'$','category_scale','ref_215_221_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(797,'ce_215_222_fac','Heat Transfer Equipment factory equipment cost for 215.222',1928702.28556863591,'$','category_scale','ref_215_222_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(798,'ce_215_222_mat','Heat Transfer Equipment site material cost for 215.222',28361.85296869473313,'$','category_scale','ref_215_222_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(799,'ce_215_222_lab','Heat Transfer Equipment site labor cost for 215.222',329297.0853392361315,'$','category_scale','ref_215_222_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(800,'ce_215_223_fac','Tanks & Pressure Vessels factory equipment cost for 215.223',39253.11776857916266,'$','category_scale','ref_215_223_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(801,'ce_215_223_mat','Tanks & Pressure Vessels site material cost for 215.223',2525.095943345807427,'$','category_scale','ref_215_223_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(802,'ce_215_223_lab','Tanks & Pressure Vessels site labor cost for 215.223',30070.02928297626568,'$','category_scale','ref_215_223_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(803,'ce_215_224_fac','Purification & Filtration Equipment factory equipment cost for 215.224',468009.1189754314255,'$','category_scale','ref_215_224_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(804,'ce_215_224_mat','Purification & Filtration Equipment site material cost for 215.224',7880.519205779625736,'$','category_scale','ref_215_224_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(805,'ce_215_224_lab','Purification & Filtration Equipment site labor cost for 215.224',91473.00338756748533,'$','category_scale','ref_215_224_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(806,'ce_215_225_fac','Piping & Ductwork factory equipment cost for 215.225',207580.7802923051932,'$','category_scale','ref_215_225_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(807,'ce_215_225_mat','Piping & Ductwork site material cost for 215.225',409832.3108319992898,'$','category_scale','ref_215_225_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(808,'ce_215_225_lab','Piping & Ductwork site labor cost for 215.225',1860294.642882203916,'$','category_scale','ref_215_225_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(809,'ce_215_226_fac','Valves & Dampers factory equipment cost for 215.226',102810.5957648073673,'$','category_scale','ref_215_226_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(810,'ce_215_226_mat','Valves & Dampers site material cost for 215.226',3410.467256421422917,'$','category_scale','ref_215_226_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(811,'ce_215_226_lab','Valves & Dampers site labor cost for 215.226',40207.10909078991245,'$','category_scale','ref_215_226_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(812,'ce_215_227_fac','Piping & Miscellaneous Items factory equipment cost for 215.227',79866.59286784887081,'$','category_scale','ref_215_227_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(813,'ce_215_227_mat','Piping & Miscellaneous Items site material cost for 215.227',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(814,'ce_215_227_lab','Piping & Miscellaneous Items site labor cost for 215.227',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(815,'ce_215_228_fac','Instrumentation & Control factory equipment cost for 215.228',27529.94817736894766,'$','category_scale','ref_215_228_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(816,'ce_215_228_mat','Instrumentation & Control site material cost for 215.228',1486.076000223098845,'$','category_scale','ref_215_228_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(817,'ce_215_228_lab','Instrumentation & Control site labor cost for 215.228',17479.24218003889473,'$','category_scale','ref_215_228_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(818,'ce_216_141_fac','Concrete Work factory equipment cost for 216.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(819,'ce_216_141_mat','Concrete Work site material cost for 216.141',1963645.668241209584,'$','category_scale','ref_216_141_mat, scale_waste_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(820,'ce_216_141_lab','Concrete Work site labor cost for 216.141',6600126.849979316816,'$','category_scale','ref_216_141_lab, scale_waste_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(821,'ce_216_142_fac','Structural & Miscellaneous Steel factory equipment cost for 216.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(822,'ce_216_142_mat','Structural & Miscellaneous Steel site material cost for 216.142',1086395.994249910117,'$','category_scale','ref_216_142_mat, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(823,'ce_216_142_lab','Structural & Miscellaneous Steel site labor cost for 216.142',669483.7152461204677,'$','category_scale','ref_216_142_lab, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(824,'ce_216_143_fac','Exterior Walls factory equipment cost for 216.143',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(825,'ce_216_143_mat','Exterior Walls site material cost for 216.143',161001.8109203251952,'$','category_scale','ref_216_143_mat, scale_waste_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(826,'ce_216_143_lab','Exterior Walls site labor cost for 216.143',133726.891522276419,'$','category_scale','ref_216_143_lab, scale_waste_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(827,'ce_216_144_fac','Roof Deck factory equipment cost for 216.144',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(828,'ce_216_144_mat','Roof Deck site material cost for 216.144',221100.803812500002,'$','category_scale','ref_216_144_mat, scale_waste_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(829,'ce_216_144_lab','Roof Deck site labor cost for 216.144',230682.6900374999969,'$','category_scale','ref_216_144_lab, scale_waste_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(830,'ce_216_145_fac','Roofing & Flashing factory equipment cost for 216.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(831,'ce_216_145_mat','Roofing & Flashing site material cost for 216.145',96350.5735350000031,'$','category_scale','ref_216_145_mat, scale_waste_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(832,'ce_216_145_lab','Roofing & Flashing site labor cost for 216.145',110519.1284325000016,'$','category_scale','ref_216_145_lab, scale_waste_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(833,'ce_216_146_fac','Interior Walls & Partition factory equipment cost for 216.146',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(834,'ce_216_146_mat','Interior Walls & Partition site material cost for 216.146',1341.17669656255589,'$','category_scale','ref_216_146_mat, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(835,'ce_216_146_lab','Interior Walls & Partition site labor cost for 216.146',1453.173156388838834,'$','category_scale','ref_216_146_lab, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(836,'ce_216_147_fac','Doors & Windows factory equipment cost for 216.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(837,'ce_216_147_mat','Doors & Windows site material cost for 216.147',23702.15865118812144,'$','category_scale','ref_216_147_mat, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(838,'ce_216_147_lab','Doors & Windows site labor cost for 216.147',20971.64083239153115,'$','category_scale','ref_216_147_lab, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(839,'ce_216_148_fac','Wall, Floor, & Ceiling Finishing factory equipment cost for 216.148',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(840,'ce_216_148_mat','Wall, Floor, & Ceiling Finishing site material cost for 216.148',184.8513199795679896,'$','category_scale','ref_216_148_mat, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(841,'ce_216_148_lab','Wall, Floor, & Ceiling Finishing site labor cost for 216.148',3325.209090027002276,'$','category_scale','ref_216_148_lab, scale_waste_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(842,'ce_216_149_fac','Painting factory equipment cost for 216.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(843,'ce_216_149_mat','Painting site material cost for 216.149',25443.96597304064926,'$','category_scale','ref_216_149_mat, scale_waste_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(844,'ce_216_149_lab','Painting site labor cost for 216.149',153517.3818131707376,'$','category_scale','ref_216_149_lab, scale_waste_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(845,'ce_217_141_fac','Concrete Work factory equipment cost for 217.141',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(846,'ce_217_141_mat','Concrete Work site material cost for 217.141',913766.7652189594228,'$','category_scale','ref_217_141_mat, scale_fuel_stor_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(847,'ce_217_141_lab','Concrete Work site labor cost for 217.141',3428635.069330594036,'$','category_scale','ref_217_141_lab, scale_fuel_stor_bldg_sup_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(848,'ce_217_142_fac','Structural & Miscellaneous Steel factory equipment cost for 217.142',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(849,'ce_217_142_mat','Structural & Miscellaneous Steel site material cost for 217.142',586413.6599606249947,'$','category_scale','ref_217_142_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(850,'ce_217_142_lab','Structural & Miscellaneous Steel site labor cost for 217.142',415822.972641562461,'$','category_scale','ref_217_142_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(851,'ce_217_145_fac','Roofing & Flashing factory equipment cost for 217.145',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(852,'ce_217_145_mat','Roofing & Flashing site material cost for 217.145',36139.55483444444689,'$','category_scale','ref_217_145_mat, scale_fuel_stor_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(853,'ce_217_145_lab','Roofing & Flashing site labor cost for 217.145',44419.90458111112094,'$','category_scale','ref_217_145_lab, scale_fuel_stor_bldg_sub_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(854,'ce_217_147_fac','Doors & Windows factory equipment cost for 217.147',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(855,'ce_217_147_mat','Doors & Windows site material cost for 217.147',21447.69019509374993,'$','category_scale','ref_217_147_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(856,'ce_217_147_lab','Doors & Windows site labor cost for 217.147',16254.21259612500034,'$','category_scale','ref_217_147_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(857,'ce_217_149_fac','Painting factory equipment cost for 217.149',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(858,'ce_217_149_mat','Painting site material cost for 217.149',13433.40385579687609,'$','category_scale','ref_217_149_mat, scale_fuel_stor_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(859,'ce_217_149_lab','Painting site labor cost for 217.149',106400.8026618750155,'$','category_scale','ref_217_149_lab, scale_fuel_stor_bldg_sup_S, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(860,'ce_218A_13_fac','Substructure Concrete factory equipment cost for 218A.13',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(861,'ce_218A_13_mat','Substructure Concrete site material cost for 218A.13',77495.37770125395036,'$','category_scale','ref_218A_13_mat, scale_cr_dg_bldg_sub_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(862,'ce_218A_13_lab','Substructure Concrete site labor cost for 218A.13',134750.7765574603108,'$','category_scale','ref_218A_13_lab, scale_cr_dg_bldg_sub_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(863,'ce_218A_14_fac','Superstructure factory equipment cost for 218A.14',0.0,'$','sum_all','ce_218A_141_fac, ce_218A_142_fac, ce_218A_145_fac, ce_218A_146_fac, ce_218A_147_fac, ce_218A_148_fac, ce_218A_149_fac',NULL,0); +INSERT INTO ap1000_variable VALUES(864,'ce_218A_14_mat','Superstructure site material cost for 218A.14',772476.3988869898022,'$','sum_all','ce_218A_141_mat, ce_218A_142_mat, ce_218A_145_mat, ce_218A_146_mat, ce_218A_147_mat, ce_218A_148_mat, ce_218A_149_mat',NULL,0); +INSERT INTO ap1000_variable VALUES(865,'ce_218A_14_lab','Superstructure site labor cost for 218A.14',1661665.025356885978,'$','sum_all','ce_218A_141_lab, ce_218A_142_lab, ce_218A_145_lab, ce_218A_146_lab, ce_218A_147_lab, ce_218A_148_lab, ce_218A_149_lab',NULL,0); +INSERT INTO ap1000_variable VALUES(866,'ce_218A_141_fac','Concrete Work factory equipment cost for 218A.141',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(867,'ce_218A_141_mat','Concrete Work site material cost for 218A.141',367725.8841529896017,'$','category_scale','ref_218A_141_mat, scale_cr_dg_bldg_sup_vol, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(868,'ce_218A_141_lab','Concrete Work site labor cost for 218A.141',1258072.831596794073,'$','category_scale','ref_218A_141_lab, scale_cr_dg_bldg_sup_vol, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(869,'ce_218A_142_fac','Structural & Miscellaneous Steel factory equipment cost for 218A.142',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(870,'ce_218A_142_mat','Structural & Miscellaneous Steel site material cost for 218A.142',259502.7282345966086,'$','category_scale','ref_218A_142_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(871,'ce_218A_142_lab','Structural & Miscellaneous Steel site labor cost for 218A.142',163863.5584012919862,'$','category_scale','ref_218A_142_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(872,'ce_218A_145_fac','Roofing & Flashing factory equipment cost for 218A.145',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(873,'ce_218A_145_mat','Roofing & Flashing site material cost for 218A.145',27367.36725502645641,'$','category_scale','ref_218A_145_mat, scale_cr_dg_bldg_sub_S, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(874,'ce_218A_145_lab','Roofing & Flashing site labor cost for 218A.145',30723.48155449734987,'$','category_scale','ref_218A_145_lab, scale_cr_dg_bldg_sub_S, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(875,'ce_218A_146_fac','Interior Walls & Partition factory equipment cost for 218A.146',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(876,'ce_218A_146_mat','Interior Walls & Partition site material cost for 218A.146',99298.6733630663367,'$','category_scale','ref_218A_146_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(877,'ce_218A_146_lab','Interior Walls & Partition site labor cost for 218A.146',135138.6774206718255,'$','category_scale','ref_218A_146_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(878,'ce_218A_147_fac','Doors & Windows factory equipment cost for 218A.147',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(879,'ce_218A_147_mat','Doors & Windows site material cost for 218A.147',5247.427482334194792,'$','category_scale','ref_218A_147_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(880,'ce_218A_147_lab','Doors & Windows site labor cost for 218A.147',5200.369174619580917,'$','category_scale','ref_218A_147_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(881,'ce_218A_148_fac','Wall, Floor, & Ceiling Finishing factory equipment cost for 218A.148',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(882,'ce_218A_148_mat','Wall, Floor, & Ceiling Finishing site material cost for 218A.148',6633.908162802182232,'$','category_scale','ref_218A_148_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(883,'ce_218A_148_lab','Wall, Floor, & Ceiling Finishing site labor cost for 218A.148',13799.17403854149052,'$','category_scale','ref_218A_148_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(884,'ce_218A_149_fac','Painting factory equipment cost for 218A.149',0.0,'$',NULL,NULL,'ce_218A_14_fac',0); +INSERT INTO ap1000_variable VALUES(885,'ce_218A_149_mat','Painting site material cost for 218A.149',6700.410236174496277,'$','category_scale','ref_218A_149_mat, scale_cr_dg_bldg_sup_S, scale_ap1000','ce_218A_14_mat',0); +INSERT INTO ap1000_variable VALUES(886,'ce_218A_149_lab','Painting site labor cost for 218A.149',54866.93317046979791,'$','category_scale','ref_218A_149_lab, scale_cr_dg_bldg_sup_S, scale_ap1000','ce_218A_14_lab',0); +INSERT INTO ap1000_variable VALUES(887,'ce_218A_21_fac','Plumbing & Drains factory equipment cost for 218A.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(888,'ce_218A_21_mat','Plumbing & Drains site material cost for 218A.21',35914.10901429802471,'$','category_scale','ref_218A_21_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(889,'ce_218A_21_lab','Plumbing & Drains site labor cost for 218A.21',128762.8626741314948,'$','category_scale','ref_218A_21_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(890,'ce_218A_23_fac','Special HVAC (Safety Related) factory equipment cost for 218A.23',2319565.487541882322,'$','sum_all','ce_218A_231_fac, ce_218A_232_fac, ce_218A_233_fac, ce_218A_234_fac, ce_218A_235_fac, ce_218A_236_fac, ce_218A_237_fac, ce_218A_238_fac',NULL,0); +INSERT INTO ap1000_variable VALUES(891,'ce_218A_23_mat','Special HVAC (Safety Related) site material cost for 218A.23',101786.126053618922,'$','sum_all','ce_218A_231_mat, ce_218A_232_mat, ce_218A_233_mat, ce_218A_234_mat, ce_218A_235_mat, ce_218A_236_mat, ce_218A_237_mat, ce_218A_238_mat',NULL,0); +INSERT INTO ap1000_variable VALUES(892,'ce_218A_23_lab','Special HVAC (Safety Related) site labor cost for 218A.23',874913.5481241005472,'$','sum_all','ce_218A_231_lab, ce_218A_232_lab, ce_218A_233_lab, ce_218A_234_lab, ce_218A_235_lab, ce_218A_236_lab, ce_218A_237_lab, ce_218A_238_lab',NULL,0); +INSERT INTO ap1000_variable VALUES(893,'ce_218A_231_fac','Rotating Machinery factory equipment cost for 218A.231',922959.828125435393,'$','category_scale','ref_218A_231_fac, scale_P, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(894,'ce_218A_231_mat','Rotating Machinery site material cost for 218A.231',9442.77190127116955,'$','category_scale','ref_218A_231_mat, scale_P, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(895,'ce_218A_231_lab','Rotating Machinery site labor cost for 218A.231',114267.1180063948996,'$','category_scale','ref_218A_231_lab, scale_P, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(896,'ce_218A_232_fac','Heat Transfer Equipment factory equipment cost for 218A.232',798020.9223690350772,'$','category_scale','ref_218A_232_fac, scale_P, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(897,'ce_218A_232_mat','Heat Transfer Equipment site material cost for 218A.232',15906.29165252245912,'$','category_scale','ref_218A_232_mat, scale_P, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(898,'ce_218A_232_lab','Heat Transfer Equipment site labor cost for 218A.232',192375.8725939751894,'$','category_scale','ref_218A_232_lab, scale_P, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(899,'ce_218A_233_fac','Tanks & Pressure Vessels factory equipment cost for 218A.233',3057.945250689492695,'$','category_scale','ref_218A_233_fac, scale_P, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(900,'ce_218A_233_mat','Tanks & Pressure Vessels site material cost for 218A.233',650.7581497215162471,'$','category_scale','ref_218A_233_mat, scale_P, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(901,'ce_218A_233_lab','Tanks & Pressure Vessels site labor cost for 218A.233',8070.74167857458724,'$','category_scale','ref_218A_233_lab, scale_P, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(902,'ce_218A_234_fac','Purification & Filtration Equipment factory equipment cost for 218A.234',192727.6418192094716,'$','category_scale','ref_218A_234_fac, scale_P, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(903,'ce_218A_234_mat','Purification & Filtration Equipment site material cost for 218A.234',6188.981152663587637,'$','category_scale','ref_218A_234_mat, scale_P, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(904,'ce_218A_234_lab','Purification & Filtration Equipment site labor cost for 218A.234',74801.14560150081525,'$','category_scale','ref_218A_234_lab, scale_P, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(905,'ce_218A_235_fac','Piping & Ductwork factory equipment cost for 218A.235',67692.11247774906224,'$','category_scale','ref_218A_235_fac, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(906,'ce_218A_235_mat','Piping & Ductwork site material cost for 218A.235',66188.91261269021198,'$','category_scale','ref_218A_235_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(907,'ce_218A_235_lab','Piping & Ductwork site labor cost for 218A.235',411174.4160522538586,'$','category_scale','ref_218A_235_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(908,'ce_218A_236_fac','Valves & Dampers factory equipment cost for 218A.236',14572.92598018949138,'$','category_scale','ref_218A_236_fac, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(909,'ce_218A_236_mat','Valves & Dampers site material cost for 218A.236',754.5375049095607664,'$','category_scale','ref_218A_236_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(910,'ce_218A_236_lab','Valves & Dampers site labor cost for 218A.236',9203.645713465404696,'$','category_scale','ref_218A_236_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(911,'ce_218A_237_fac','Piping & Miscellaneous Items factory equipment cost for 218A.237',1891.07704249210451,'$','category_scale','ref_218A_237_fac, scale_cr_dg_bldg_bldg_vol, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(912,'ce_218A_237_mat','Piping & Miscellaneous Items site material cost for 218A.237',0.0,'$',NULL,NULL,'ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(913,'ce_218A_237_lab','Piping & Miscellaneous Items site labor cost for 218A.237',0.0,'$',NULL,NULL,'ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(914,'ce_218A_238_fac','Instrumentation & Control factory equipment cost for 218A.238',318643.0344770823721,'$','category_scale','ref_218A_238_fac, scale_P, scale_ap1000','ce_218A_23_fac',0); +INSERT INTO ap1000_variable VALUES(915,'ce_218A_238_mat','Instrumentation & Control site material cost for 218A.238',2653.873079840405354,'$','category_scale','ref_218A_238_mat, scale_P, scale_ap1000','ce_218A_23_mat',0); +INSERT INTO ap1000_variable VALUES(916,'ce_218A_238_lab','Instrumentation & Control site labor cost for 218A.238',65020.60847793572612,'$','category_scale','ref_218A_238_lab, scale_P, scale_ap1000','ce_218A_23_lab',0); +INSERT INTO ap1000_variable VALUES(917,'ce_218A_24_fac','Lighting & Service Power factory equipment cost for 218A.24',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(918,'ce_218A_24_mat','Lighting & Service Power site material cost for 218A.24',33876.23942721791536,'$','category_scale','ref_218A_24_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(919,'ce_218A_24_lab','Lighting & Service Power site labor cost for 218A.24',110446.5912517944234,'$','category_scale','ref_218A_24_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(920,'ce_218B_21_fac','Plumbing & Drains factory equipment cost for 218B.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(921,'ce_218B_21_mat','Plumbing & Drains site material cost for 218B.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(922,'ce_218B_21_lab','Plumbing & Drains site labor cost for 218B.21',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(923,'ce_218B_22_fac','Heating, Ventilation, & Air Conditioning factory equipment cost for 218B.22',1859074.345697986893,'$','category_scale','ref_218B_22_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(924,'ce_218B_22_mat','Heating, Ventilation, & Air Conditioning site material cost for 218B.22',455469.9276725795352,'$','category_scale','ref_218B_22_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(925,'ce_218B_22_lab','Heating, Ventilation, & Air Conditioning site labor cost for 218B.22',3119188.467255360913,'$','category_scale','ref_218B_22_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(926,'ce_218B_23_fac','Special HVAC (Safety Related) factory equipment cost for 218B.23',23677.65476330531238,'$','category_scale','ref_218B_23_fac, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(927,'ce_218B_23_mat','Special HVAC (Safety Related) site material cost for 218B.23',1725.757069153419252,'$','category_scale','ref_218B_23_mat, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(928,'ce_218B_23_lab','Special HVAC (Safety Related) site labor cost for 218B.23',23068.87721885645079,'$','category_scale','ref_218B_23_lab, scale_P, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(929,'ce_218B_24_fac','Lighting & Service Power factory equipment cost for 218B.24',0.0,'$',NULL,NULL,NULL,0); +INSERT INTO ap1000_variable VALUES(930,'ce_218B_24_mat','Lighting & Service Power site material cost for 218B.24',0.0,'$','category_scale','ref_218B_24_mat, scale_adm_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(931,'ce_218B_24_lab','Lighting & Service Power site labor cost for 218B.24',0.0,'$','category_scale','ref_218B_24_lab, scale_adm_bldg_bldg_vol, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(932,'ce_218B_25_fac','Elevator factory equipment cost for 218B.25',88303.82095999999729,'$','category_scale','ref_218B_25_fac, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(933,'ce_218B_25_mat','Elevator site material cost for 218B.25',3586.12780100000009,'$','category_scale','ref_218B_25_mat, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(934,'ce_218B_25_lab','Elevator site labor cost for 218B.25',45810.80043999999908,'$','category_scale','ref_218B_25_lab, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(935,'ce_222_111_fac','Rotating Machinery factory equipment cost for 222.111',89028940.41572172939,'$','category_scale','ref_222_111_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(936,'ce_222_111_mat','Rotating Machinery site material cost for 222.111',332843.0211134939455,'$','category_scale','ref_222_111_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(937,'ce_222_111_lab','Rotating Machinery site labor cost for 222.111',3060334.682982993313,'$','category_scale','ref_222_111_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(938,'ce_222_119_fac','Foundations/Skids factory equipment cost for 222.119',2682485.997916631401,'$','category_scale','ref_222_119_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(939,'ce_222_119_mat','Foundations/Skids site material cost for 222.119',389873.4372256504722,'$','category_scale','ref_222_119_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(940,'ce_222_119_lab','Foundations/Skids site labor cost for 222.119',3633958.83921274962,'$','category_scale','ref_222_119_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(941,'ce_222_132_fac','Heat Transfer Equipment factory equipment cost for 222.132',149609146.4818699359,'$','category_scale','ref_222_132_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(942,'ce_222_132_mat','Heat Transfer Equipment site material cost for 222.132',449388.9889203871717,'$','category_scale','ref_222_132_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(943,'ce_222_132_lab','Heat Transfer Equipment site labor cost for 222.132',4109347.558659870178,'$','category_scale','ref_222_132_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(944,'ce_222_139_fac','Foundations/Skids factory equipment cost for 222.139',74901.17657324840548,'$','category_scale','ref_222_139_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(945,'ce_222_139_mat','Foundations/Skids site material cost for 222.139',63614.80492704985955,'$','category_scale','ref_222_139_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(946,'ce_222_139_lab','Foundations/Skids site labor cost for 222.139',617654.1352943376405,'$','category_scale','ref_222_139_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(947,'ce_225_111_fac','New & Spent Fuel Crane factory equipment cost for 225.111',132640.4359116522537,'$','category_scale','ref_225_111_fac, scale_frm_fuel_crane_cap, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(948,'ce_225_111_mat','New & Spent Fuel Crane site material cost for 225.111',6365.745276305702646,'$','category_scale','ref_225_111_mat, scale_frm_fuel_crane_cap, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(949,'ce_225_111_lab','New & Spent Fuel Crane site labor cost for 225.111',79784.25381114652555,'$','category_scale','ref_225_111_lab, scale_frm_fuel_crane_cap, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(950,'ce_225_112_fac','Monorails & Hoists factory equipment cost for 225.112',16525.24140799999804,'$','category_scale','ref_225_112_fac, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(951,'ce_225_112_mat','Monorails & Hoists site material cost for 225.112',1183.304307120000204,'$','category_scale','ref_225_112_mat, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(952,'ce_225_112_lab','Monorails & Hoists site labor cost for 225.112',14840.09141680000176,'$','category_scale','ref_225_112_lab, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(953,'ce_225_113_fac','New Fuel Elevator factory equipment cost for 225.113',40706.89587639999809,'$','category_scale','ref_225_113_fac, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(954,'ce_225_113_mat','New Fuel Elevator site material cost for 225.113',5866.410669599999892,'$','category_scale','ref_225_113_mat, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(955,'ce_225_113_lab','New Fuel Elevator site labor cost for 225.113',74200.45708399999421,'$','category_scale','ref_225_113_lab, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(956,'ce_225_114_fac','Spent Fuel Cask Crane factory equipment cost for 225.114',742541.5094717735191,'$','category_scale','ref_225_114_fac, scale_frm_fuel_cask_cap, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(957,'ce_225_114_mat','Spent Fuel Cask Crane site material cost for 225.114',16445.00146556449908,'$','category_scale','ref_225_114_mat, scale_frm_fuel_cask_cap, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(958,'ce_225_114_lab','Spent Fuel Cask Crane site labor cost for 225.114',206143.6122265231098,'$','category_scale','ref_225_114_lab, scale_frm_fuel_cask_cap, f_simp_fuel_hndl, scale_ap1000',NULL,0); +INSERT INTO ap1000_variable VALUES(959,'scale_ap1000','AP1000 reference calibration factor applied to calculated direct cost elements',2.85407899821065536,'1',NULL,NULL,'ce_211_711_mat, ce_211_711_lab, ce_211_712_fac, ce_211_712_mat, ce_211_712_lab, ce_212_14111_mat, ce_212_14111_lab, ce_212_14112_mat, ce_212_14112_lab, ce_212_14113_mat, ce_212_14113_lab, ce_212_14114_mat, ce_212_14114_lab, ce_212_14115_mat, ce_212_14115_lab, ce_212_14116_mat, ce_212_14116_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14118_mat, ce_212_14118_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14122_mat, ce_212_14122_lab, ce_212_14123_mat, ce_212_14123_lab, ce_212_14125_mat, ce_212_14125_lab, ce_212_14127_mat, ce_212_14127_lab, ce_212_14128_mat, ce_212_14128_lab, ce_212_140_fac, ce_212_140_mat, ce_212_140_lab, ce_212_1419_mat, ce_212_1419_lab, ce_212_142_mat, ce_212_142_lab, ce_212_149_mat, ce_212_149_lab, ce_213_141_mat, ce_213_141_lab, ce_213_142_mat, ce_213_142_lab, ce_213_143_mat, ce_213_143_lab, ce_213_144_mat, ce_213_144_lab, ce_213_145_mat, ce_213_145_lab, ce_213_146_mat, ce_213_146_lab, ce_213_147_mat, ce_213_147_lab, ce_213_149_mat, ce_213_149_lab, ce_215_141_mat, ce_215_141_lab, ce_215_142_mat, ce_215_142_lab, ce_215_145_mat, ce_215_145_lab, ce_215_146_mat, ce_215_146_lab, ce_215_147_mat, ce_215_147_lab, ce_215_149_mat, ce_215_149_lab, ce_215_221_fac, ce_215_221_mat, ce_215_221_lab, ce_215_222_fac, ce_215_222_mat, ce_215_222_lab, ce_215_223_fac, ce_215_223_mat, ce_215_223_lab, ce_215_224_fac, ce_215_224_mat, ce_215_224_lab, ce_215_225_fac, ce_215_225_mat, ce_215_225_lab, ce_215_226_fac, ce_215_226_mat, ce_215_226_lab, ce_215_227_fac, ce_215_228_fac, ce_215_228_mat, ce_215_228_lab, ce_216_141_mat, ce_216_141_lab, ce_216_142_mat, ce_216_142_lab, ce_216_143_mat, ce_216_143_lab, ce_216_144_mat, ce_216_144_lab, ce_216_145_mat, ce_216_145_lab, ce_216_146_mat, ce_216_146_lab, ce_216_147_mat, ce_216_147_lab, ce_216_148_mat, ce_216_148_lab, ce_216_149_mat, ce_216_149_lab, ce_217_141_mat, ce_217_141_lab, ce_217_142_mat, ce_217_142_lab, ce_217_145_mat, ce_217_145_lab, ce_217_147_mat, ce_217_147_lab, ce_217_149_mat, ce_217_149_lab, ce_218A_13_mat, ce_218A_13_lab, ce_218A_141_mat, ce_218A_141_lab, ce_218A_142_mat, ce_218A_142_lab, ce_218A_145_mat, ce_218A_145_lab, ce_218A_146_mat, ce_218A_146_lab, ce_218A_147_mat, ce_218A_147_lab, ce_218A_148_mat, ce_218A_148_lab, ce_218A_149_mat, ce_218A_149_lab, ce_218A_21_mat, ce_218A_21_lab, ce_218A_231_fac, ce_218A_231_mat, ce_218A_231_lab, ce_218A_232_fac, ce_218A_232_mat, ce_218A_232_lab, ce_218A_233_fac, ce_218A_233_mat, ce_218A_233_lab, ce_218A_234_fac, ce_218A_234_mat, ce_218A_234_lab, ce_218A_235_fac, ce_218A_235_mat, ce_218A_235_lab, ce_218A_236_fac, ce_218A_236_mat, ce_218A_236_lab, ce_218A_237_fac, ce_218A_238_fac, ce_218A_238_mat, ce_218A_238_lab, ce_218A_24_mat, ce_218A_24_lab, ce_218B_22_fac, ce_218B_22_mat, ce_218B_22_lab, ce_218B_23_fac, ce_218B_23_mat, ce_218B_23_lab, ce_218B_24_mat, ce_218B_24_lab, ce_218B_25_fac, ce_218B_25_mat, ce_218B_25_lab, ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab, ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab, ce_225_111_fac, ce_225_111_mat, ce_225_111_lab, ce_225_112_fac, ce_225_112_mat, ce_225_112_lab, ce_225_113_fac, ce_225_113_mat, ce_225_113_lab, ce_225_114_fac, ce_225_114_mat, ce_225_114_lab',0); +CREATE TABLE ap1000_algorithm ( + ind INTEGER, + alg_name TEXT, + alg_for TEXT, + alg_description TEXT, + alg_python TEXT, + alg_formulation TEXT, + alg_units TEXT, + variables TEXT, + constants TEXT, + PRIMARY KEY (ind) + ); +INSERT INTO ap1000_algorithm VALUES(1,'category_scale','c','Scale a reference cost by one scale factor and optional multipliers/count/adjustment factors.','AP1000DirectCostFunc','ref * scale * optional_multipliers','$','ref, scale, optional_multipliers',NULL); +INSERT INTO ap1000_algorithm VALUES(2,'cal_sup_str_S','v','Calculate cylinder-with-dome superstructure S for the containment structure.','AP1000DirectCostFunc','pi*D^2/2 + pi*D*H','m^2','cont_D_D, cont_H_H',NULL); +INSERT INTO ap1000_algorithm VALUES(3,'formula_scale_flow_rate','v','Flow Rate direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(4,'formula_scale_fuel_cask_capacity','v','Fuel Cask Capacity direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(5,'formula_scale_fuel_crane_capacity','v','Fuel Crane Capacity direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(6,'formula_scale_ht_surface_S','v','Ht Surface Area direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(7,'formula_scale_pressurizer_mass','v','Pressurizer Mass direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(8,'formula_scale_surface_S','v','Surface Area direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(9,'formula_scale_surface_S_9_71886e_06','v','Surface Area 9 71886E 06 direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(10,'formula_scale_vessel_mass','v','Vessel Mass direct formula scale.','AP1000DirectCostFunc','unit_cost_coefficient * input_unit_value / reference_direct_cost','1','unit_cost_coefficient, input_unit_value, reference_direct_cost',NULL); +INSERT INTO ap1000_algorithm VALUES(11,'scale_law_admin_bldg','v','Admin Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(12,'scale_law_bldg_V','v','Building Volume scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(13,'scale_law_containment','v','Containment scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(14,'scale_law_control_dg_bldg','v','Control Dg Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(15,'scale_law_elec_P','v','Electric Power scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(16,'scale_law_electrical_bldg','v','Electrical Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(17,'scale_law_flow_rate','v','Flow Rate scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(18,'scale_law_fuel_storage','v','Fuel Storage scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(19,'scale_law_heat_rejection','v','Heat Rejection scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(20,'scale_law_piping_mass','v','Piping Mass scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(21,'scale_law_primary_aux_bldg','v','Primary Aux Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(22,'scale_law_reactor_equipment','v','Reactor Equipment scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(23,'scale_law_site_S','v','Site Area scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(24,'scale_law_turbine_bldg','v','Turbine Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(25,'scale_law_turbine_equipment','v','Turbine Equipment scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(26,'scale_law_V_of_212_213_215_216_217','v','Volume Of 212 213 215 216 217 scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(27,'scale_law_waste_bldg','v','Waste Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(28,'scale_law_wastewater_bldg','v','Wastewater Bldg scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(29,'scale_law_power','v','Power scale law.','AP1000DirectCostFunc','(input_unit_value / reference_unit_value)^exponent','1','input_unit_value, reference_unit_value, exponent',NULL); +INSERT INTO ap1000_algorithm VALUES(30,'sum_all','c/v','Sum all supplied child cost elements or intermediate variables.','AP1000DirectCostFunc','sum(values)','$','values',NULL); +INSERT INTO ap1000_algorithm VALUES(31,'calc_rej_th_P','v','Rejected thermal power = thermal power - electric power.','AP1000DirectCostFunc','rx_P - elec_P','MWt','rx_P, elec_P',NULL); +COMMIT; diff --git a/src/cost_escalation.py b/src/cost_escalation.py new file mode 100644 index 0000000..2b465fa --- /dev/null +++ b/src/cost_escalation.py @@ -0,0 +1,28 @@ +MODEL_COST_YEARS = { + "abr1000": 2017, + "ap1000": 2018, + "heatpipe": 2018, + "lfr": 2017, + "lpsr": 2018, + "pwr12-be": 2017, + "fusion": 2015, + "stellarator": 2015, +} + +# CPI-U, U.S. city average, all items, annual average. Source: BLS CPI-U. +CPI_U_ANNUAL_AVERAGE = { + 2015: 237.017, + 2017: 245.120, + 2018: 251.107, + 2024: 313.689, +} + +TARGET_DOLLAR_YEAR = 2024 + + +def model_cost_year(ref_model: str) -> int: + return MODEL_COST_YEARS.get(str(ref_model).lower(), 2017) + + +def cpi_escalation_factor(from_year: int, to_year: int = TARGET_DOLLAR_YEAR) -> float: + return CPI_U_ANNUAL_AVERAGE[to_year] / CPI_U_ANNUAL_AVERAGE[from_year] diff --git a/src/crf/__init__.py b/src/crf/__init__.py index e65467e..7d40779 100644 --- a/src/crf/__init__.py +++ b/src/crf/__init__.py @@ -10,6 +10,7 @@ run_sampling_from_excel, print_scenario_result, ) +from .accert_bridge import accert_output_to_crf_baseline from .visualization import ( occ_reduction_from_foak_to_noak, tci_reduction_from_foak_to_noak, @@ -27,6 +28,7 @@ "calculate_tci_waterfall", "run_sampling_from_excel", "print_scenario_result", + "accert_output_to_crf_baseline", "occ_reduction_from_foak_to_noak", "tci_reduction_from_foak_to_noak", "levers_to_dataframe", diff --git a/src/crf/accert_bridge.py b/src/crf/accert_bridge.py new file mode 100644 index 0000000..5814f5a --- /dev/null +++ b/src/crf/accert_bridge.py @@ -0,0 +1,174 @@ +from __future__ import annotations + +from pathlib import Path + +import pandas as pd + +from .io.excel_inputs import COLS, InputStore, _normalize_account +from .model.core_accounts import DIRECT_DETAIL_ACCOUNTS, update_high_level_costs + + +ACCERT_ACCOUNT_COLUMNS = { + "code_of_account": "Account", + "account_description": "Title", + "total_cost": "Total Cost (USD)", +} + +DIRECT_TOTAL_ACCOUNTS = ["21", "22", "23", "24", "25", "26", "28"] +ACCERT_TO_CRF_DIRECT_ACCOUNT_MAP = { + "211": "211", + "212": "212", + "213": "213", + "214": "216", + "215": "214", + "216": "215", + "217": "214", + "22": "22", + "23": "232.1", + "24": "24", + "25": "26", + "26": "233", +} +ACCOUNT_218_LETTERS = tuple("ABCDEFGHIJKLMNOPQRSTUV") + + +def accert_output_to_crf_baseline( + accert_csv: str | Path, + output_csv: str | Path | None = None, + *, + reactor_type: str = "AP1000", + total_20s_labor_hours: float, + data_dir: str | Path | None = None, + template_baseline_csv: str | Path | None = None, +) -> pd.DataFrame: + """Convert an ACCERT updated-account CSV into a CRF/IAT baseline CSV. + + ACCERT account outputs contain account totals but not the CRF category split + or labor-hour inputs. This bridge keeps the ACCERT direct-account totals, + uses the selected CRF baseline's cost-category proportions for factory, + labor, and material dollars, and distributes the user-provided total 20s + labor hours using the selected CRF baseline's labor-hour proportions. + """ + template, power = InputStore( + data_dir=str(data_dir) if data_dir else None, + baseline_csv=str(template_baseline_csv) if template_baseline_csv else None, + ).get_baseline(reactor_type) + accert_accounts = _read_accert_account_output(accert_csv) + + converted = template.copy() + totals = _crf_direct_totals_from_accert(accert_accounts) + _apply_direct_totals(converted, totals, template) + _apply_labor_hours(converted, float(total_20s_labor_hours), template) + + converted = update_high_level_costs(converted, power)[COLS].copy() + if output_csv is not None: + output_path = Path(output_csv) + output_path.parent.mkdir(parents=True, exist_ok=True) + converted.to_csv(output_path, index=False) + return converted + + +def _read_accert_account_output(path: str | Path) -> pd.DataFrame: + df = pd.read_csv(path) + if {"Account", "Title", "Total Cost (USD)"}.issubset(df.columns): + out = df[["Account", "Title", "Total Cost (USD)"]].copy() + else: + missing = set(ACCERT_ACCOUNT_COLUMNS) - set(df.columns) + if missing: + raise ValueError(f"{path} missing ACCERT account columns: {sorted(missing)}") + out = df.rename(columns=ACCERT_ACCOUNT_COLUMNS)[["Account", "Title", "Total Cost (USD)"]].copy() + out["Account"] = out["Account"].map(_normalize_account) + out["Total Cost (USD)"] = pd.to_numeric( + out["Total Cost (USD)"].astype(str).str.replace(",", "", regex=False), + errors="coerce", + ).fillna(0.0) + return out + + +def _value_by_account(df: pd.DataFrame, account: str) -> float: + matches = df.loc[df["Account"].astype(str).eq(str(account)), "Total Cost (USD)"] + if matches.empty: + return 0.0 + return float(matches.iloc[0]) + + +def _crf_direct_totals_from_accert(accert_accounts: pd.DataFrame) -> dict[str, float]: + totals = {account: 0.0 for account in DIRECT_TOTAL_ACCOUNTS} + for accert_account, crf_account in ACCERT_TO_CRF_DIRECT_ACCOUNT_MAP.items(): + totals[crf_account] = totals.get(crf_account, 0.0) + _value_by_account(accert_accounts, accert_account) + totals["214"] = totals.get("214", 0.0) + _sum_218_letter_accounts(accert_accounts) + return totals + + +def _sum_218_letter_accounts(df: pd.DataFrame) -> float: + accounts = df["Account"].astype(str) + mask = accounts.map( + lambda account: ( + len(account) == 4 + and account.startswith("218") + and account[-1] in ACCOUNT_218_LETTERS + ) + ) + return float(df.loc[mask, "Total Cost (USD)"].sum()) + + +def _category_shares(row: pd.Series) -> dict[str, float]: + total = float(row["Total Cost (USD)"]) + if total <= 0: + return { + "Factory Equipment Cost": 0.0, + "Site Labor Cost": 0.0, + "Site Material Cost": 0.0, + } + shares = { + "Factory Equipment Cost": float(row["Factory Equipment Cost"]) / total, + "Site Labor Cost": float(row["Site Labor Cost"]) / total, + "Site Material Cost": float(row["Site Material Cost"]) / total, + } + allocated = sum(shares.values()) + if allocated <= 0: + shares["Site Material Cost"] = 1.0 + elif abs(allocated - 1.0) > 1e-12: + shares["Site Material Cost"] += 1.0 - allocated + return shares + + +def _apply_direct_totals(converted: pd.DataFrame, totals: dict[str, float], template: pd.DataFrame) -> None: + template_rows = template.set_index("Account", drop=False) + for account, total in totals.items(): + mask = converted["Account"].astype(str).eq(str(account)) + if not mask.any() or account not in template_rows.index: + continue + shares = _category_shares(template_rows.loc[account]) + converted.loc[mask, "Total Cost (USD)"] = total + for column, share in shares.items(): + converted.loc[mask, column] = total * share + + +def _apply_labor_hours(converted: pd.DataFrame, total_20s_labor_hours: float, template: pd.DataFrame) -> None: + if total_20s_labor_hours < 0: + raise ValueError("total_20s_labor_hours must be non-negative") + + template_hours = { + account: _labor_hours_by_account(template, account) + for account in DIRECT_DETAIL_ACCOUNTS + } + total_template_hours = sum(template_hours.values()) + if total_template_hours <= 0: + shares = {account: 1.0 / len(DIRECT_DETAIL_ACCOUNTS) for account in DIRECT_DETAIL_ACCOUNTS} + else: + shares = { + account: hours / total_template_hours + for account, hours in template_hours.items() + } + for account, share in shares.items(): + mask = converted["Account"].astype(str).eq(str(account)) + if mask.any(): + converted.loc[mask, "Site Labor Hours"] = total_20s_labor_hours * share + + +def _labor_hours_by_account(df: pd.DataFrame, account: str) -> float: + matches = df.loc[df["Account"].astype(str).eq(str(account)), "Site Labor Hours"] + if matches.empty: + return 0.0 + return float(matches.iloc[0]) diff --git a/src/crf/model/direct_cost.py b/src/crf/model/direct_cost.py index cec58ee..dff4a11 100644 --- a/src/crf/model/direct_cost.py +++ b/src/crf/model/direct_cost.py @@ -70,7 +70,9 @@ def add_land_cost(df: pd.DataFrame, land_cost_per_acre: float, power: float): return update_high_level_costs(db, power)[COLS].copy() -def _grade_ref_duration(reactor_type: str) -> float: +def _grade_ref_duration(reactor_type: str, construction_duration_0: float | None = None) -> float: + if construction_duration_0 is not None: + return float(construction_duration_0) if reactor_type == "HTGR": return 125 if reactor_type == "SFR": @@ -227,6 +229,7 @@ def add_reworking_productivity( power: float, prev_cons_duration: float, baseline_lab_hours, + ref_duration: float | None = None, trace=None ): if n_th == 1: @@ -242,13 +245,13 @@ def add_reworking_productivity( if reactor_type == "HTGR": rework = (-0.69 * design_completion + 1.69) * (-0.125 * ae_exp + 1.25) * (-0.125 * ce_exp + 1.25) - ref_duration = 125 + ref_duration = 125 if ref_duration is None else ref_duration elif reactor_type == "SFR": rework = (-0.9 * design_completion + 1.9) * (-0.15 * ae_exp + 1.3) * (-0.15 * ce_exp + 1.3) - ref_duration = 80 + ref_duration = 80 if ref_duration is None else ref_duration elif reactor_type == "AP1000": rework = (-0.69 * design_completion + 1.69) * (-0.125 * ae_exp + 1.25) * (-0.125 * ce_exp + 1.25) - ref_duration = 76 + ref_duration = 76 if ref_duration is None else ref_duration else: raise ValueError(f"Unknown reactor type: {reactor_type}") db = df.copy() @@ -289,6 +292,7 @@ def update_direct_cost( ce_exp_0: float, N_cons: float, mod_0: str, + construction_duration_0: float | None = None, trace=None ): reactor_df, power = store.get_baseline(reactor_type) @@ -301,12 +305,13 @@ def update_direct_cost( before_grades = db.copy() db = add_commercial_bop(db, BOP_grade_0, power, reactor_type, n_th, trace=trace) db = add_non_safety_related_rb(db, RB_grade_0, power, trace=trace) - prev_dur = update_cons_duration(before_grades, db, _grade_ref_duration(reactor_type)) + ref_duration = _grade_ref_duration(reactor_type, construction_duration_0) + prev_dur = update_cons_duration(before_grades, db, ref_duration) db, prev_dur = add_modular_civil_construction(db, power, reactor_type, n_th, mod_0, prev_dur, trace=trace) db = add_bulk_ordering(db, num_orders, f_22, f_2321, power, reactor_type, trace=trace) db, dur_no_delay = add_reworking_productivity( db, reactor_type, n_th, design_completion_0, ae_exp_0, N_AE, ce_exp_0, N_cons, - power, prev_dur, baseline_lab_hours, trace=trace + power, prev_dur, baseline_lab_hours, ref_duration=ref_duration, trace=trace ) return db, dur_no_delay diff --git a/src/crf/model/pipeline.py b/src/crf/model/pipeline.py index 37a4ee0..5e878f8 100644 --- a/src/crf/model/pipeline.py +++ b/src/crf/model/pipeline.py @@ -27,6 +27,7 @@ def calculate_final_result(config: dict, inp: dict, store, n_th: int, trace=None ce_exp_0=inp["ce_exp_0"], N_cons=inp["N_cons"], mod_0=inp["mod_0"], + construction_duration_0=config.get("construction_duration_0"), trace=trace, ) # duration: add delay + learning diff --git a/src/database_install.py b/src/database_install.py index ea25e5e..9548418 100644 --- a/src/database_install.py +++ b/src/database_install.py @@ -1,92 +1,43 @@ -import configparser -import mysql.connector -from mysql.connector import Error -import os -import re -from subprocess import Popen, PIPE - - -thisfolder = os.path.dirname(os.path.abspath(__file__)) -initfile = os.path.join(thisfolder, 'install.conf') -ins = configparser.ConfigParser() -ins.read(initfile) -passwd = ins.get("INSTALL","PASSWD") - - -def createConnection(host_name, user_name, user_password): - connection = None +"""Install or refresh the ACCERT SQLite database. + +Usage: + python src/database_install.py + python src/database_install.py --db src/accertdb.sqlite --sql src/accertdb_sqlite_schema_data.sql +""" +from __future__ import annotations + +import argparse +import sqlite3 +from pathlib import Path + + +def install_sqlite_database(sql_file: str | Path, db_file: str | Path, overwrite: bool = True) -> Path: + sql_path = Path(sql_file) + db_path = Path(db_file) + if not sql_path.exists(): + raise FileNotFoundError(f"SQLite SQL file not found: {sql_path}") + db_path.parent.mkdir(parents=True, exist_ok=True) + if db_path.exists() and overwrite: + db_path.unlink() + conn = sqlite3.connect(db_path) try: - connection = mysql.connector.connect( - host=host_name, - user=user_name, - passwd=user_password, - auth_plugin='mysql_native_password' - ) - print("Connection to MySQL") - except Error as e: - print(f"The error '{e}' occurred") + conn.executescript(sql_path.read_text(encoding="utf-8")) + conn.commit() + finally: + conn.close() + return db_path - return connection -def checkDatabase(cursor, databaseName): - cursor.execute("show databases;") - if (databaseName,) in cursor.fetchall(): - print('Database {} exist'.format(databaseName)) - return True - else: - print('Database {} do not exist'.format(databaseName)) - return False +def main() -> None: + here = Path(__file__).resolve().parent + parser = argparse.ArgumentParser() + parser.add_argument("--sql", default=str(here / "accertdb_sqlite_schema_data.sql")) + parser.add_argument("--db", default=str(here / "accertdb.sqlite")) + parser.add_argument("--keep-existing", action="store_true") + args = parser.parse_args() + db = install_sqlite_database(args.sql, args.db, overwrite=not args.keep_existing) + print(f"Installed SQLite database at {db}") -def executeScriptsFromFile(filename): - # run mysql --user=root --password accert_db < accertdb.sql - process = Popen(['mysql', '-h', 'localhost', '-u', 'root', '-p'], - stdout=PIPE, stdin=PIPE) - # then run the source command - output = process.communicate(str.encode('source ' + filename))[0] - # output = process.communicate(str.encode('source ' + filename))[0] - -def checkstoredProcedures(c): - print("Checking stored procedures") - c.execute("""SELECT routine_schema, - routine_name, - routine_type - FROM information_schema.routines - WHERE routine_schema = 'accert_db'""") - rows = c.fetchall() - for row in rows: - print(row) - print("Above stored procedures have been created") - -def main(): - connection = createConnection("localhost", "root", passwd) - if connection is not None: - c = connection.cursor() - dbName='accert_db' - if not checkDatabase(c, dbName): - print ("Executing SQL script file: '{}.sql'".format(dbName)) - executeScriptsFromFile('accertdb.sql') - if checkDatabase(c, dbName): - print ("MySQL and its connection has been installed successfully") - else: - print ("MySQL and its connection failed to install") - else: - #check if user want to overwrite the database - print("Database {} already exist".format(dbName)) - print("Do you want to overwrite it? (y/n)") - answer = input() - if answer == 'y': - executeScriptsFromFile('accertdb.sql') - connection.commit() - if checkDatabase(c, dbName): - print ("MySQL and its connection has been installed successfully") - checkstoredProcedures(c) - else: - print ("MySQL and its connection failed to install") - else: - print("No connection found") - return - -if __name__ == '__main__': +if __name__ == "__main__": main() - diff --git a/src/etc/accert.sch b/src/etc/accert.sch index e47eaf1..855333b 100644 --- a/src/etc/accert.sch +++ b/src/etc/accert.sch @@ -3,12 +3,12 @@ accert{ Description = "[optional] for accert calculations" MinOccurs = 0 MaxOccurs = 1 - InputTmpl = "accert" + InputTmpl = "accert/accert" ref_model{ Description = "[required] User input reference model" MinOccurs = 1 MaxOccurs = 1 - InputTmpl = "ref_model" + InputTmpl = "accert/ref_model" ValType = String ValEnums = [ REF:user_defined_names REF:ref_models] } @@ -18,16 +18,32 @@ accert{ MinOccurs = 0 MaxOccurs = 1 InputType=String - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" ValEnums=[true false] InputDefault=false } + + post_process{ + Description = "[optional] post-process ACCERT results" + MinOccurs = 0 + MaxOccurs = 1 + InputTmpl = "accert/post_process" + occ{ + Description = "[optional] calculate ACCERT OCC summary" + MinOccurs = 0 + MaxOccurs = 1 + InputType=String + InputTmpl = "common/flagtypes" + ValEnums=[true false] + InputDefault=true + } + } power{ Description = "[required] User input power" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "power" + InputTmpl = "accert/power" id{ MinOccurs = 1 MaxOccurs = 1 @@ -54,12 +70,12 @@ accert{ Description = "changed variable value" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "var" + InputTmpl = "accert/var" id{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 1 @@ -79,7 +95,7 @@ accert{ Description = "level 0 code of account" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "L0COA" + InputTmpl = "accert/L0COA" id{ MinOccurs = 0 MaxOccurs = 1 @@ -90,7 +106,7 @@ accert{ Description = "level 1 code of account" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "L1COA" % TODO: add template + InputTmpl = "accert/L1COA" % TODO: add template id{ MinOccurs = 0 MaxOccurs = 1 @@ -101,7 +117,7 @@ accert{ Description = "total cost value" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "total_cost" % TODO: Add template + InputTmpl = "accert/total_cost" % TODO: Add template value{ MinOccurs = 1 MaxOccurs = 1 @@ -121,7 +137,7 @@ accert{ Description = "level 2 code of account" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "L2COA" % TODO: add template + InputTmpl = "accert/L2COA" % TODO: add template id{ MinOccurs = 0 MaxOccurs = 1 @@ -132,7 +148,7 @@ accert{ Description = "total cost value" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "total_cost" + InputTmpl = "accert/total_cost" value{ MinOccurs = 1 MaxOccurs = 1 @@ -151,7 +167,7 @@ accert{ Description = "???" % needs to be added MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "ce" % TODO: add template + InputTmpl = "accert/ce" % TODO: add template id{ MinOccurs = 0 MaxOccurs = 1 @@ -162,7 +178,7 @@ accert{ Description = "???" % needs to be added MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "alg" % TODO: add template + InputTmpl = "accert/alg" % TODO: add template id{ MinOccurs = 0 MaxOccurs = 1 @@ -173,7 +189,7 @@ accert{ Description = "changed variable value" MinOccurs = 1 MaxOccurs = NoLimit - InputTmpl = "alg_var" % TODO add template + InputTmpl = "accert/alg_var" % TODO add template id{ MinOccurs = 1 MaxOccurs = 1 @@ -181,7 +197,7 @@ accert{ ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names - REF:stellarator_var_names] + REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 0 @@ -200,7 +216,7 @@ accert{ Description = "valriable algorithm" MinOccurs = 0 MaxOccurs = 1 - InputTmpl = "alg_var_alg" % ??? + InputTmpl = "accert/alg_var_alg" % ??? id{ MinOccurs = 1 MaxOccurs = 1 @@ -211,12 +227,12 @@ accert{ Description = "changed variable value" MinOccurs = 1 MaxOccurs = NoLimit - InputTmpl = "alg_var_alg_var" % ??? + InputTmpl = "accert/alg_var_alg_var" % ??? id{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 1 @@ -251,7 +267,7 @@ accert{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 0 @@ -284,7 +300,7 @@ accert{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 1 @@ -344,7 +360,7 @@ accert{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 0 @@ -377,7 +393,7 @@ accert{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 1 @@ -419,7 +435,7 @@ accert{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 0 @@ -452,7 +468,7 @@ accert{ MinOccurs = 1 MaxOccurs = 1 ValType = String - ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names] + ValEnums =[ REF:user_defined_names REF:pwr_var_names REF:abr_var_names REF:containment_var_names REF:heatpipe_var_names REF:fusion_var_names REF:stellarator_var_names REF:lpsr_var_names] } value{ MinOccurs = 1 @@ -477,7 +493,7 @@ accert{ Description = "new code of account" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl = "newCOA" % TODO: add template + InputTmpl = "accert/newCOA" % TODO: add template id{ MinOccurs = 0 MaxOccurs = 1 @@ -496,7 +512,7 @@ accert{ } EndOfSchema{} -ref_models = [ "PWR12-BE" "ABR1000" "LFR" "heatpipe" "fusion" "stellarator"] +ref_models = [ "PWR12-BE" "ABR1000" "AP1000" "LFR" "LPSR" "heatpipe" "fusion" "stellarator"] power_type = ["Thermal" "Electric"] power_unit = ["W" "kWW" "MW"] total_cost_unit = ["million" "dollar"] @@ -564,23 +580,7 @@ unit_names = [squareMeter cubeMeter kW MW W lbs ton kg million 'gpm*feet' '1' 'm '$/coil', '$/A', 'kW', 'kV', 'kg/coil' '$/m3' '$/MVA' '$/kA-m' '$/kW' '$/mva' '$/kw' '$/ka-m' 'million/ton'] -alg_names = ['sum_multi_accounts' 'sum_multi_weights' 'sum_multi_pumps' 'ptn_account' -'unit_weights' 'pump' 'containment' 'MWth_scale' 'unit_volume' 'dev_factor_ref' 'tur_exp_n' -'esc_1987' 'cost_by_weight' 'default_0' 'rpv_mass' 'unit_facility' 'MWe_scale' -'unit_weights_plate' 'esc_1978' 'total_weight_prn' 'unit_weights_factor' 'factor_sum' -'complex' 'MWth_lmfbrscale' 'MWreth_scale' 'Sgsum' 'containmentsum' 'inside_rad' -'round_surface' 'basemat_volume' 'wall_height' 'walls_surface' 'wall_volume' -'dome_inside_diameter' 'roof_surface' 'roof_volume' 'tot_internal_volume' -'building_internal_volume' 'building_internal _surface' 'volume_of_the_structures' -'Inside_liner_surface' 'liner_Surface' 'painted_surface' 'Inflation_rate' -'unitcost_v_eedb_to_accert' 'unitcost_s_eedb_to_accert' 'tol_contaiment_ce_cost' 'sum_ce' -'Yardwork_cost' 'Reactor_containment_mat_cost' 'Reactor_containment_lab_cost' -'Building_and_utilities_mat_cost' 'Building_and_utilities_lab_cost' -'Reactor_startup_facility_cost' 'Outer_vessel_mat_cost' 'Outer_vessel_lab_cost' -'Inner_vessel_cost' 'Reactivity_control_system_cost' 'Reflector_cost' 'Shield_cost' -'Moderator_cost' 'cooling_heat_pipes_cost' 'heat_exchangers_mat_cost' -'heat_exchangers_lab_cost' 'heat_exchangers_fac_cost' 'instrumentation_contorl_cost' -'turb_and_elec_sys_cost' 'stcalaintmass' 'stcalintercoil_surface' 'stcalclgsmass'] +alg_names = ['sum_multi_accounts' 'sum_multi_weights' 'sum_multi_pumps' 'ptn_account' 'unit_weights' 'pump' 'containment' 'MWth_scale' 'unit_volume' 'dev_factor_ref' 'tur_exp_n' 'esc_1987' 'cost_by_weight' 'default_0' 'rpv_mass' 'unit_facility' 'MWe_scale' 'unit_weights_plate' 'esc_1978' 'total_weight_prn' 'unit_weights_factor' 'factor_sum' 'complex' 'MWth_lmfbrscale' 'MWreth_scale' 'Sgsum' 'containmentsum' 'inside_rad' 'round_surface' 'basemat_volume' 'wall_height' 'walls_surface' 'wall_volume' 'dome_inside_diameter' 'roof_surface' 'roof_volume' 'tot_internal_volume' 'building_internal_volume' 'building_internal _surface' 'volume_of_the_structures' 'Inside_liner_surface' 'liner_Surface' 'painted_surface' 'Inflation_rate' 'unitcost_v_eedb_to_accert' 'unitcost_s_eedb_to_accert' 'tol_contaiment_ce_cost' 'sum_ce' 'Yardwork_cost' 'Reactor_containment_mat_cost' 'Reactor_containment_lab_cost' 'Building_and_utilities_mat_cost' 'Building_and_utilities_lab_cost' 'Reactor_startup_facility_cost' 'Outer_vessel_mat_cost' 'Outer_vessel_lab_cost' 'Inner_vessel_cost' 'Reactivity_control_system_cost' 'Reflector_cost' 'Shield_cost' 'Moderator_cost' 'cooling_heat_pipes_cost' 'heat_exchangers_mat_cost' 'heat_exchangers_lab_cost' 'heat_exchangers_fac_cost' 'instrumentation_contorl_cost' 'turb_and_elec_sys_cost' 'stcalaintmass' 'stcalintercoil_surface' 'stcalclgsmass' 'category_scale' 'cal_sup_str_S' 'formula_scale_flow_rate' 'formula_scale_fuel_cask_capacity' 'formula_scale_fuel_crane_capacity' 'formula_scale_ht_surface_S' 'formula_scale_pressurizer_mass' 'formula_scale_surface_S' 'formula_scale_surface_S_9_71886e_06' 'formula_scale_vessel_mass' 'scale_law_admin_bldg' 'scale_law_bldg_V' 'scale_law_containment' 'scale_law_control_dg_bldg' 'scale_law_elec_P' 'scale_law_electrical_bldg' 'scale_law_flow_rate' 'scale_law_fuel_storage' 'scale_law_heat_rejection' 'scale_law_piping_mass' 'scale_law_primary_aux_bldg' 'scale_law_reactor_equipment' 'scale_law_site_S' 'scale_law_turbine_bldg' 'scale_law_turbine_equipment' 'scale_law_V_of_212_213_215_216_217' 'scale_law_waste_bldg' 'scale_law_wastewater_bldg' 'scale_law_power' 'sum_all' 'calc_rej_th_P'] fusion_alg_names = ['acc2' 'acc21' 'acc211' 'acc212' 'acc213' 'acc214' 'acc2141' 'acc2142' 'acc215' 'acc216' 'acc217' 'acc2171' 'acc2172' 'acc2173' 'acc2174' 'acc22' 'acc221' @@ -787,5 +787,6 @@ heatpipe_var_names = ['land_surface_area' 'containment_subVolume' 'Containment_h fusion_var_names = ['a' 'acptmax' 'admvol' 'afuel' 'ai' 'aintmass' 'akappa' 'anncap' 'anncdr' 'anncp' 'anndecom' 'anndiv' 'annfuel' 'annfwbl' 'annoam' 'annwst' 'areaoh' 'awpoh' 'b0' 'bktlife' 'blmass' 'capcost' 'cconfix' 'cconshpf' 'cconshtf' 'cdcost' 'cdirt' 'cdriv0' 'cdriv1' 'cdriv2' 'cdriv3' 'cdrlife' 'cfactr' 'cfind_0' 'cfind_1' 'cfind_2' 'cfind_3' 'cland' 'clgsmass' 'cmlsa' 'coecdr' 'coecp' 'coediv' 'coefuel' 'coefwbl' 'coewst' 'coilmass' 'convol' 'coolmass' 'coolwh' 'cowner' 'cplife' 'cpstcst' 'cpttf' 'crfcdr' 'crfcp' 'crfdiv' 'crffwbl' 'crypmw' 'cryvol' 'csi' 'cturbb' 'd_0' 'd_1' 'd_2' 'd_3' 'dcdrv0' 'dcdrv1' 'dcdrv2' 'dcond_0' 'dcond_1' 'dcond_2' 'dcond_3' 'dcond_4' 'dcond_5' 'dcond_6' 'dcond_7' 'dcond_8' 'dcopper' 'decomf' 'dens' 'denstl' 'dintrt' 'discount_rate' 'divcst' 'divlife' 'divsur' 'dlscal' 'drbi' 'dtlife' 'dtstor' 'dvrtmass' 'ealphadt' 'echarge' 'echpwr' 'edrive' 'effrfss' 'elevol' 'ensxpfm' 'esbldgm3' 'estotftgj' 'etadrv' 'expcry' 'expel' 'expepe' 'exphts' 'exprb' 'exprf' 'exptpe' 'faccd' 'faccdfix' 'fachtmw' 'fburn' 'fcap0' 'fcap0cp' 'fcdfuel' 'fcontng' 'fcr0' 'fcsht' 'fcuohsu' 'fcupfsu' 'fefcdr' 'fefcp' 'fefdiv' 'feffwbl' 'fhe3' 'fkind' 'fncmass' 'fndt' 'ftrit' 'fusionrate' 'fwallcst' 'fwarea' 'fwbllife' 'fwmass' 'fwmatm' 'gain' 'gsmass' 'hccl' 'hcwt' 'helpow' 'hrbi' 'i_tf_sc_mat' 'i_tf_sup' 'iblanket' 'iefrf' 'ife' 'ifedrv' 'ifueltyp' 'imax' 'intercoil_surface' 'iohcl' 'ipfres' 'ireactor' 'istore' 'isumatoh' 'isumatpf' 'itart' 'l1' 'lpulse' 'lsa' 'ltot' 'mbvfac' 'mcdriv' 'n_day_year' 'n_tf' 'n_tf_turn' 'nohc' 'nphx' 'ntype' 'nvduct' 'oh_steel_frac' 'pacpmw' 'palpnb' 'peakmva' 'pfbldgm3' 'pfckts' 'pfmass' 'pfwdiv' 'pfwndl' 'pgrossmw' 'pheat' 'pibv' 'pinjht' 'pinjwp' 'plascur' 'plhybd' 'pnbitot' 'pnetelmw' 'pnucblkt' 'pnucshld' 'powfmw' 'pthermmw' 'r0' 'rbrt' 'rbvfac' 'rbvol' 'rbwt' 'reprat' 'ric_0' 'ric_1' 'ric_2' 'ric_3' 'ric_4' 'ric_5' 'ric_6' 'rjconpf_0' 'rjconpf_1' 'rjconpf_10' 'rjconpf_11' 'rjconpf_12' 'rjconpf_13' 'rjconpf_14' 'rjconpf_15' 'rjconpf_16' 'rjconpf_17' 'rjconpf_18' 'rjconpf_19' 'rjconpf_2' 'rjconpf_20' 'rjconpf_21' 'rjconpf_3' 'rjconpf_4' 'rjconpf_5' 'rjconpf_6' 'rjconpf_7' 'rjconpf_8' 'rjconpf_9' 'rmbvol' 'rndfuel' 'rpf_0' 'rpf_1' 'rpf_2' 'rpf_3' 'rpf_4' 'rpf_5' 'rpf_6' 'shh' 'shldmass' 'shm' 'shmatm' 'shmf' 'shovol' 'shri' 'shro' 'sigal' 'spfbusl' 'srcktpm' 'st_f_b' 'st_f_n' 'st_f_r' 'stcl' 'stella_config_coillength' 'stella_config_coilsurface' 'targtm' 'tburn' 'tcycle' 'tdown' 'tdspmw' 'tf_h_width' 'tfacmw' 'tfbusl' 'tfbusmas' 'tfcbv' 'tfckw' 'tfcmw' 'tfhmax' 'tfleng' 'tfmass' 'tftort' 'tlife' 'tlvpmw' 'tmpcry' 'trcl' 'trithtmw' 'triv' 'turns_0' 'turns_1' 'turns_2' 'turns_3' 'turns_4' 'turns_5' 'turns_6' 'twopi' 'ucad' 'ucaf' 'ucahts' 'ucap' 'ucblbe' 'ucblbreed' 'ucblli' 'ucblli2o' 'ucbllipb' 'ucblss' 'ucblvd' 'ucbpmp' 'ucbus' 'uccarb' 'uccase' 'ucco' 'ucconc' 'uccpcl1' 'uccpclb' 'uccpmp' 'uccr' 'uccry' 'uccryo' 'uccu' 'ucdgen' 'ucdiv' 'ucdtc' 'ucduct' 'ucech' 'ucel' 'ucf1' 'ucfnc' 'ucfpr' 'ucfuel' 'ucfwa' 'ucfwps' 'ucfws' 'ucgss' 'uche3' 'uchrs' 'uchts_0' 'uchts_1' 'uciac' 'ucich' 'ucint' 'uclh' 'uclv' 'ucmb' 'ucme' 'ucmisc' 'ucnbi' 'ucnbv' 'ucoam_0' 'ucoam_1' 'ucoam_2' 'ucoam_3' 'ucpens' 'ucpfb' 'ucpfbk' 'ucpfbs' 'ucpfcb' 'ucpfdr1' 'ucpfic' 'ucpfps' 'ucphx' 'ucpp' 'ucrb' 'ucsc_0' 'ucsc_1' 'ucsc_2' 'ucsc_3' 'ucsc_4' 'ucsc_5' 'ucsc_6' 'ucsc_7' 'ucsc_8' 'ucsh' 'ucshld' 'ucswyd' 'uctarg' 'uctfbr' 'uctfbus' 'uctfdr' 'uctfgr' 'uctfic' 'uctfps' 'uctfsw' 'uctpmp' 'uctr' 'ucturb_0' 'ucturb_1' 'ucvalv' 'ucvdsh' 'ucviac' 'ucwindpf' 'ucwindtf' 'ucws' 'ucwst_0' 'ucwst_1' 'ucwst_2' 'ucwst_3' 'umass' 'vacdshm' 'vachtmw' 'vcdimax' 'vf' 'vfohc' 'vol' 'volrci' 'vpfskv' 'vpumpn' 'vtfskv' 'vvmass' 'wgt2' 'whtblbe' 'whtblbreed' 'whtblli' 'whtblss' 'whtblvd' 'whtcas' 'whtconcu' 'whtconsc' 'whtcp' 'whtpfs' 'whtshld' 'whttflgs' 'wpenshld' 'wrbi' 'wsvfac' 'wsvol' 'wtblli2o' 'wtbllipb' 'wtgpd'] stellarator_var_names = ['st_f_b' 'denstl' 'intercoil_surface' 'stella_config_coilsurface' 'st_f_r' 'tftort' 'stella_config_coillength' 'st_f_n'] +lpsr_var_names = ['adm_bldg_bldg_vol' 'S' 'bldg_V' 'cont_D_D' 'cont_hatch_ms_bldg_vol' 'cont_H_H' 'cont_V' 'cr_dg_bldg_bldg_vol' 'cr_dg_bldg_sub_S' 'cr_dg_bldg_sub_vol' 'cr_dg_bldg_sup_S' 'cr_dg_bldg_sup_vol' 'elec_P' 'elec_tunnel_bldg_vol' 'frm_flow' 'frm_fuel_cask_cap' 'frm_fuel_crane_cap' 'frm_ht_S' 'frm_prz_M' 'frm_S' 'frm_S_9_71886e_06' 'frm_vsl_M' 'fuel_stor_bldg_bldg_vol' 'fuel_stor_bldg_sub_S' 'fuel_stor_bldg_sub_vol' 'fuel_stor_bldg_sup_S' 'fuel_stor_bldg_sup_vol' 'mc_piping_M' 'non_ess_swgr_bldg_bldg_vol' 'n_crs' 'pri_aux_bldg_bldg_vol' 'pri_aux_bldg_sub_S' 'pri_aux_bldg_sub_vol' 'pri_aux_bldg_sup_S' 'pri_aux_bldg_sup_vol' 'pri_flow' 'rx_D' 'rej_th_P' 'rx_P' 'sfp_V' 'sub_str_S' 'sub_str_V' 'sup_const' 'sup_str_S' 'turb_gen_bldg_sub_vol' 'turb_gen_bldg_sup_S' 'turb_gen_bldg_sup_vol' 'uc_frm_flow' 'uc_frm_fuel_cap' 'uc_frm_ht_S' 'uc_frm_prz_M' 'uc_frm_S' 'uc_frm_S_9_71886e_06' 'uc_frm_vsl_M' 'V_of_212_213_215_216_217' 'waste_bldg_bldg_vol' 'waste_bldg_sub_S' 'waste_bldg_sub_vol' 'waste_bldg_sup_S' 'waste_bldg_sup_vol' 'wwt_bldg_bldg_vol' 'adj_212_14112_lab' 'adj_212_14122_lab' 'adj_cont_mat_1_48' 'adj_half' 'adj_none' 'adj_rx_aux_0_25' 'count_222_11' 'count_222_13' 'exp_lin' 'exp_elec_P' 'exp_P' 'exp_pri_flow' 'exp_rx_D' 'exp_sfp_V' 'exp_tur_plant_equip_elec_P' 'f_elec_P_ctrl_wir' 'f_elec_prot' 'f_elec_st_serv' 'f_elec_str_wir_cont' 'f_elec_switchboards' 'f_elec_swgr' 'f_simp_fuel_hndl' 'f_simp_other_rx_equip' 'f_simp_radw' 'f_simp_sfgd' 'f_ss_cont_fac' 'f_ss_cont_lab' 'f_ss_cont_mat' 'lrn_222_11_fac' 'lrn_222_11_lab' 'lrn_222_11_mat' 'lrn_222_13_fac' 'lrn_222_13_lab' 'lrn_222_13_mat' 'ref_211_1_fac' 'ref_211_1_lab' 'ref_211_1_mat' 'ref_211_4_lab' 'ref_211_4_mat' 'ref_211_711_lab' 'ref_211_711_mat' 'ref_211_712_fac' 'ref_211_712_lab' 'ref_211_712_mat' 'ref_212_13_lab' 'ref_212_13_mat' 'ref_212_140_fac' 'ref_212_140_lab' 'ref_212_140_mat' 'ref_212_14111_lab' 'ref_212_14111_mat' 'ref_212_14112_lab' 'ref_212_14112_mat' 'ref_212_14113_lab' 'ref_212_14113_mat' 'ref_212_14114_lab' 'ref_212_14114_mat' 'ref_212_14115_lab' 'ref_212_14115_mat' 'ref_212_14116_lab' 'ref_212_14116_mat' 'ref_212_14117_lab' 'ref_212_14117_mat' 'ref_212_14118_lab' 'ref_212_14118_mat' 'ref_212_14121_lab' 'ref_212_14121_mat' 'ref_212_14122_lab' 'ref_212_14122_mat' 'ref_212_14123_lab' 'ref_212_14123_mat' 'ref_212_14125_lab' 'ref_212_14125_mat' 'ref_212_14127_lab' 'ref_212_14127_mat' 'ref_212_14128_lab' 'ref_212_14128_mat' 'ref_212_1419_lab' 'ref_212_1419_mat' 'ref_212_142_lab' 'ref_212_142_mat' 'ref_212_149_lab' 'ref_212_149_mat' 'ref_212_15_fac' 'ref_212_15_lab' 'ref_212_15_mat' 'ref_212_21_fac' 'ref_212_21_lab' 'ref_212_21_mat' 'ref_212_22_fac' 'ref_212_22_lab' 'ref_212_22_mat' 'ref_212_23_fac' 'ref_212_23_lab' 'ref_212_23_mat' 'ref_212_24_lab' 'ref_212_24_mat' 'ref_212_25_fac' 'ref_212_25_lab' 'ref_212_25_mat' 'ref_212_3_lab' 'ref_212_3_mat' 'ref_213_13_lab' 'ref_213_13_mat' 'ref_213_141_lab' 'ref_213_141_mat' 'ref_213_142_lab' 'ref_213_142_mat' 'ref_213_143_lab' 'ref_213_143_mat' 'ref_213_144_lab' 'ref_213_144_mat' 'ref_213_145_lab' 'ref_213_145_mat' 'ref_213_146_lab' 'ref_213_146_mat' 'ref_213_147_lab' 'ref_213_147_mat' 'ref_213_149_lab' 'ref_213_149_mat' 'ref_213_21_fac' 'ref_213_21_lab' 'ref_213_21_mat' 'ref_213_22_fac' 'ref_213_22_lab' 'ref_213_22_mat' 'ref_213_24_lab' 'ref_213_24_mat' 'ref_213_25_fac' 'ref_213_25_lab' 'ref_213_25_mat' 'ref_214_fac' 'ref_214_lab' 'ref_214_mat' 'ref_215_13_lab' 'ref_215_13_mat' 'ref_215_141_lab' 'ref_215_141_mat' 'ref_215_142_lab' 'ref_215_142_mat' 'ref_215_145_lab' 'ref_215_145_mat' 'ref_215_146_lab' 'ref_215_146_mat' 'ref_215_147_lab' 'ref_215_147_mat' 'ref_215_149_lab' 'ref_215_149_mat' 'ref_215_21_fac' 'ref_215_21_lab' 'ref_215_21_mat' 'ref_215_221_fac' 'ref_215_221_lab' 'ref_215_221_mat' 'ref_215_222_fac' 'ref_215_222_lab' 'ref_215_222_mat' 'ref_215_223_fac' 'ref_215_223_lab' 'ref_215_223_mat' 'ref_215_224_fac' 'ref_215_224_lab' 'ref_215_224_mat' 'ref_215_225_fac' 'ref_215_225_lab' 'ref_215_225_mat' 'ref_215_226_fac' 'ref_215_226_lab' 'ref_215_226_mat' 'ref_215_227_fac' 'ref_215_228_fac' 'ref_215_228_lab' 'ref_215_228_mat' 'ref_215_23_fac' 'ref_215_23_lab' 'ref_215_23_mat' 'ref_215_24_lab' 'ref_215_24_mat' 'ref_215_25_fac' 'ref_215_25_lab' 'ref_215_25_mat' 'ref_216_13_lab' 'ref_216_13_mat' 'ref_216_141_lab' 'ref_216_141_mat' 'ref_216_142_lab' 'ref_216_142_mat' 'ref_216_143_lab' 'ref_216_143_mat' 'ref_216_144_lab' 'ref_216_144_mat' 'ref_216_145_lab' 'ref_216_145_mat' 'ref_216_146_lab' 'ref_216_146_mat' 'ref_216_147_lab' 'ref_216_147_mat' 'ref_216_148_lab' 'ref_216_148_mat' 'ref_216_149_lab' 'ref_216_149_mat' 'ref_216_21_lab' 'ref_216_21_mat' 'ref_216_22_fac' 'ref_216_22_lab' 'ref_216_22_mat' 'ref_216_24_lab' 'ref_216_24_mat' 'ref_216_25_fac' 'ref_216_25_lab' 'ref_216_25_mat' 'ref_217_13_lab' 'ref_217_13_mat' 'ref_217_141_lab' 'ref_217_141_mat' 'ref_217_142_lab' 'ref_217_142_mat' 'ref_217_145_lab' 'ref_217_145_mat' 'ref_217_147_lab' 'ref_217_147_mat' 'ref_217_149_lab' 'ref_217_149_mat' 'ref_217_21_fac' 'ref_217_21_lab' 'ref_217_21_mat' 'ref_217_22_fac' 'ref_217_22_lab' 'ref_217_22_mat' 'ref_217_23_fac' 'ref_217_23_lab' 'ref_217_23_mat' 'ref_217_24_lab' 'ref_217_24_mat' 'ref_217_3_lab' 'ref_217_3_mat' 'ref_218A_13_lab' 'ref_218A_13_mat' 'ref_218A_141_lab' 'ref_218A_141_mat' 'ref_218A_142_lab' 'ref_218A_142_mat' 'ref_218A_145_lab' 'ref_218A_145_mat' 'ref_218A_146_lab' 'ref_218A_146_mat' 'ref_218A_147_lab' 'ref_218A_147_mat' 'ref_218A_148_lab' 'ref_218A_148_mat' 'ref_218A_149_lab' 'ref_218A_149_mat' 'ref_218A_21_lab' 'ref_218A_21_mat' 'ref_218A_231_fac' 'ref_218A_231_lab' 'ref_218A_231_mat' 'ref_218A_232_fac' 'ref_218A_232_lab' 'ref_218A_232_mat' 'ref_218A_233_fac' 'ref_218A_233_lab' 'ref_218A_233_mat' 'ref_218A_234_fac' 'ref_218A_234_lab' 'ref_218A_234_mat' 'ref_218A_235_fac' 'ref_218A_235_lab' 'ref_218A_235_mat' 'ref_218A_236_fac' 'ref_218A_236_lab' 'ref_218A_236_mat' 'ref_218A_237_fac' 'ref_218A_238_fac' 'ref_218A_238_lab' 'ref_218A_238_mat' 'ref_218A_24_lab' 'ref_218A_24_mat' 'ref_218B_22_fac' 'ref_218B_22_lab' 'ref_218B_22_mat' 'ref_218B_23_fac' 'ref_218B_23_lab' 'ref_218B_23_mat' 'ref_218B_24_lab' 'ref_218B_24_mat' 'ref_218B_25_fac' 'ref_218B_25_lab' 'ref_218B_25_mat' 'ref_218D_fac' 'ref_218D_lab' 'ref_218D_mat' 'ref_218E_fac' 'ref_218E_lab' 'ref_218E_mat' 'ref_218F_lab' 'ref_218F_mat' 'ref_218G_fac' 'ref_218G_lab' 'ref_218G_mat' 'ref_218H_fac' 'ref_218H_lab' 'ref_218H_mat' 'ref_218J_fac' 'ref_218J_lab' 'ref_218J_mat' 'ref_218K_lab' 'ref_218K_mat' 'ref_218L_fac' 'ref_218L_lab' 'ref_218L_mat' 'ref_218P_lab' 'ref_218P_mat' 'ref_218S_fac' 'ref_218S_lab' 'ref_218S_mat' 'ref_218T_fac' 'ref_218T_lab' 'ref_218T_mat' 'ref_218V_lab' 'ref_218V_mat' 'ref_221_1_fac' 'ref_221_1_lab' 'ref_221_1_mat' 'ref_221_2_fac' 'ref_221_2_lab' 'ref_221_2_mat' 'ref_221_3_fac' 'ref_221_3_lab' 'ref_221_3_mat' 'ref_222_111_fac' 'ref_222_111_lab' 'ref_222_111_mat' 'ref_222_119_fac' 'ref_222_119_lab' 'ref_222_119_mat' 'ref_222_12_fac' 'ref_222_12_lab' 'ref_222_12_mat' 'ref_222_132_fac' 'ref_222_132_lab' 'ref_222_132_mat' 'ref_222_139_fac' 'ref_222_139_lab' 'ref_222_139_mat' 'ref_222_14_fac' 'ref_222_14_lab' 'ref_222_14_mat' 'ref_223_1_fac' 'ref_223_1_lab' 'ref_223_1_mat' 'ref_223_3_fac' 'ref_223_3_lab' 'ref_223_3_mat' 'ref_223_4_fac' 'ref_223_4_lab' 'ref_223_4_mat' 'ref_223_5_fac' 'ref_223_5_lab' 'ref_223_5_mat' 'ref_224_1_fac' 'ref_224_1_lab' 'ref_224_1_mat' 'ref_224_2_fac' 'ref_224_2_lab' 'ref_224_2_mat' 'ref_224_3_fac' 'ref_224_3_lab' 'ref_224_3_mat' 'ref_225_111_fac' 'ref_225_111_lab' 'ref_225_111_mat' 'ref_225_112_fac' 'ref_225_112_lab' 'ref_225_112_mat' 'ref_225_113_fac' 'ref_225_113_lab' 'ref_225_113_mat' 'ref_225_114_fac' 'ref_225_114_lab' 'ref_225_114_mat' 'ref_225_12_fac' 'ref_225_12_lab' 'ref_225_12_mat' 'ref_225_13_fac' 'ref_225_13_lab' 'ref_225_13_mat' 'ref_225_3_fac' 'ref_225_3_lab' 'ref_225_3_mat' 'ref_225_4_fac' 'ref_225_4_lab' 'ref_225_4_mat' 'ref_226_1_fac' 'ref_226_1_lab' 'ref_226_1_mat' 'ref_226_3_fac' 'ref_226_3_lab' 'ref_226_3_mat' 'ref_226_4_fac' 'ref_226_4_lab' 'ref_226_4_mat' 'ref_226_6_fac' 'ref_226_6_lab' 'ref_226_6_mat' 'ref_226_71_fac' 'ref_226_71_lab' 'ref_226_71_mat' 'ref_226_72_fac' 'ref_226_72_lab' 'ref_226_72_mat' 'ref_226_8_fac' 'ref_226_8_lab' 'ref_226_8_mat' 'ref_226_9_fac' 'ref_226_9_lab' 'ref_226_9_mat' 'ref_227_11_fac' 'ref_227_11_lab' 'ref_227_11_mat' 'ref_227_15_fac' 'ref_227_15_lab' 'ref_227_15_mat' 'ref_227_16_fac' 'ref_227_16_lab' 'ref_227_16_mat' 'ref_227_17_fac' 'ref_227_17_lab' 'ref_227_17_mat' 'ref_227_18_fac' 'ref_227_18_lab' 'ref_227_18_mat' 'ref_227_19_fac' 'ref_227_19_lab' 'ref_227_19_mat' 'ref_227_2_fac' 'ref_227_2_lab' 'ref_227_2_mat' 'ref_227_3_fac' 'ref_227_3_lab' 'ref_227_3_mat' 'ref_227_4_fac' 'ref_227_4_lab' 'ref_227_4_mat' 'ref_227_5_fac' 'ref_227_5_lab' 'ref_227_5_mat' 'ref_227_9_fac' 'ref_227_9_lab' 'ref_227_9_mat' 'ref_228_lab' 'ref_228_mat' 'ref_23_fac' 'ref_23_lab' 'ref_23_mat' 'ref_241_fac' 'ref_241_lab' 'ref_241_mat' 'ref_242_fac' 'ref_242_lab' 'ref_242_mat' 'ref_243_fac' 'ref_243_lab' 'ref_243_mat' 'ref_244_lab' 'ref_244_mat' 'ref_245_lab' 'ref_245_mat' 'ref_246_fac' 'ref_246_lab' 'ref_246_mat' 'ref_251_11_fac' 'ref_251_11_lab' 'ref_251_11_mat' 'ref_251_12_fac' 'ref_251_12_lab' 'ref_251_12_mat' 'ref_251_16_fac' 'ref_251_16_lab' 'ref_251_16_mat' 'ref_251_17_fac' 'ref_251_17_lab' 'ref_251_17_mat' 'ref_252_1_fac' 'ref_252_1_lab' 'ref_252_1_mat' 'ref_252_2_fac' 'ref_252_2_lab' 'ref_252_2_mat' 'ref_252_3_fac' 'ref_252_3_lab' 'ref_252_3_mat' 'ref_252_4_lab' 'ref_252_4_mat' 'ref_253_fac' 'ref_253_lab' 'ref_253_mat' 'ref_254_fac' 'ref_254_lab' 'ref_254_mat' 'ref_255_fac' 'ref_255_lab' 'ref_255_mat' 'ref_261_fac' 'ref_261_lab' 'ref_261_mat' 'ref_262_11_fac' 'ref_262_11_lab' 'ref_262_11_mat' 'ref_262_12_fac' 'ref_262_12_lab' 'ref_262_12_mat' 'ref_262_13_fac' 'ref_262_13_lab' 'ref_262_13_mat' 'ref_262_14_lab' 'ref_262_14_mat' 'ref_262_15_fac' 'ref_262_15_lab' 'ref_262_15_mat' 'ref_S' 'ref_bldg_V' 'ref_cmn_bldg_vol' 'ref_cr_dg_bldg_bldg_vol' 'ref_cr_dg_bldg_sub_S' 'ref_cr_dg_bldg_sub_vol' 'ref_cr_dg_bldg_sup_S' 'ref_cr_dg_bldg_sup_vol' 'ref_direct_cost_frm_flow' 'ref_direct_cost_frm_fuel_cask_cap' 'ref_direct_cost_frm_fuel_crane_cap' 'ref_direct_cost_frm_ht_S' 'ref_direct_cost_frm_prz_M' 'ref_direct_cost_frm_S' 'ref_direct_cost_frm_S_9_71886e_06' 'ref_direct_cost_frm_vsl_M' 'ref_elec_P' 'ref_fuel_stor_bldg_bldg_vol' 'ref_fuel_stor_bldg_sub_S' 'ref_fuel_stor_bldg_sub_vol' 'ref_fuel_stor_bldg_sup_S' 'ref_fuel_stor_bldg_sup_vol' 'ref_mc_piping_M' 'ref_n_crs' 'ref_pri_aux_bldg_bldg_vol' 'ref_pri_aux_bldg_sub_S' 'ref_pri_aux_bldg_sub_vol' 'ref_pri_aux_bldg_sup_S' 'ref_pri_aux_bldg_sup_vol' 'ref_pri_flow' 'ref_rx_D' 'ref_rej_th_P' 'ref_rx_P' 'ref_sfp_V' 'ref_sub_str_S' 'ref_sub_str_V' 'ref_sup_str_S' 'ref_sup_str_V' 'ref_turb_gen_bldg_sub_vol' 'ref_turb_gen_bldg_sup_S' 'ref_turb_gen_bldg_sup_vol' 'ref_V_of_212_213_215_216_217' 'ref_waste_bldg_bldg_vol' 'ref_waste_bldg_sub_S' 'ref_waste_bldg_sub_vol' 'ref_waste_bldg_sup_S' 'ref_waste_bldg_sup_vol' 'scale_adm_bldg_bldg_vol' 'scale_S' 'scale_bldg_V' 'scale_cont_hatch_ms_bldg_vol' 'scale_cont_V' 'scale_cr_dg_bldg_bldg_vol' 'scale_cr_dg_bldg_sub_S' 'scale_cr_dg_bldg_sub_vol' 'scale_cr_dg_bldg_sup_S' 'scale_cr_dg_bldg_sup_vol' 'scale_elec_P' 'scale_elec_tunnel_bldg_vol' 'scale_frm_flow' 'scale_frm_fuel_cask_cap' 'scale_frm_fuel_crane_cap' 'scale_frm_ht_S' 'scale_frm_prz_M' 'scale_frm_S' 'scale_frm_S_9_71886e_06' 'scale_frm_vsl_M' 'scale_fuel_stor_bldg_bldg_vol' 'scale_fuel_stor_bldg_sub_S' 'scale_fuel_stor_bldg_sub_vol' 'scale_fuel_stor_bldg_sup_S' 'scale_fuel_stor_bldg_sup_vol' 'scale_mc_piping_M' 'scale_non_ess_swgr_bldg_bldg_vol' 'scale_n_crs' 'scale_P' 'scale_pri_aux_bldg_bldg_vol' 'scale_pri_aux_bldg_sub_S' 'scale_pri_aux_bldg_sub_vol' 'scale_pri_aux_bldg_sup_S' 'scale_pri_aux_bldg_sup_vol' 'scale_pri_flow' 'scale_rx_D' 'scale_rej_th_P' 'scale_sfp_V' 'scale_sub_str_S' 'scale_sub_str_V' 'scale_sup_const' 'scale_sup_str_S' 'scale_sup_str_V' 'scale_turb_gen_bldg_sub_vol' 'scale_turb_gen_bldg_sup_S' 'scale_turb_gen_bldg_sup_vol' 'scale_tur_plant_equip_elec_P' 'scale_V_of_212_213_215_216_217' 'scale_waste_bldg_bldg_vol' 'scale_waste_bldg_sub_S' 'scale_waste_bldg_sub_vol' 'scale_waste_bldg_sup_S' 'scale_waste_bldg_sup_vol' 'scale_wwt_bldg_bldg_vol' 'ce_211_711_fac' 'ce_211_711_mat' 'ce_211_711_lab' 'ce_211_712_fac' 'ce_211_712_mat' 'ce_211_712_lab' 'ce_212_141_fac' 'ce_212_141_mat' 'ce_212_141_lab' 'ce_212_1411_fac' 'ce_212_1411_mat' 'ce_212_1411_lab' 'ce_212_14111_fac' 'ce_212_14111_mat' 'ce_212_14111_lab' 'ce_212_14112_fac' 'ce_212_14112_mat' 'ce_212_14112_lab' 'ce_212_14113_fac' 'ce_212_14113_mat' 'ce_212_14113_lab' 'ce_212_14114_fac' 'ce_212_14114_mat' 'ce_212_14114_lab' 'ce_212_14115_fac' 'ce_212_14115_mat' 'ce_212_14115_lab' 'ce_212_14116_fac' 'ce_212_14116_mat' 'ce_212_14116_lab' 'ce_212_14117_fac' 'ce_212_14117_mat' 'ce_212_14117_lab' 'ce_212_14118_fac' 'ce_212_14118_mat' 'ce_212_14118_lab' 'ce_212_1412_fac' 'ce_212_1412_mat' 'ce_212_1412_lab' 'ce_212_14121_fac' 'ce_212_14121_mat' 'ce_212_14121_lab' 'ce_212_14122_fac' 'ce_212_14122_mat' 'ce_212_14122_lab' 'ce_212_14123_fac' 'ce_212_14123_mat' 'ce_212_14123_lab' 'ce_212_14125_fac' 'ce_212_14125_mat' 'ce_212_14125_lab' 'ce_212_14127_fac' 'ce_212_14127_mat' 'ce_212_14127_lab' 'ce_212_14128_fac' 'ce_212_14128_mat' 'ce_212_14128_lab' 'ce_212_140_fac' 'ce_212_140_mat' 'ce_212_140_lab' 'ce_212_1419_fac' 'ce_212_1419_mat' 'ce_212_1419_lab' 'ce_212_142_fac' 'ce_212_142_mat' 'ce_212_142_lab' 'ce_212_149_fac' 'ce_212_149_mat' 'ce_212_149_lab' 'ce_213_141_fac' 'ce_213_141_mat' 'ce_213_141_lab' 'ce_213_142_fac' 'ce_213_142_mat' 'ce_213_142_lab' 'ce_213_143_fac' 'ce_213_143_mat' 'ce_213_143_lab' 'ce_213_144_fac' 'ce_213_144_mat' 'ce_213_144_lab' 'ce_213_145_fac' 'ce_213_145_mat' 'ce_213_145_lab' 'ce_213_146_fac' 'ce_213_146_mat' 'ce_213_146_lab' 'ce_213_147_fac' 'ce_213_147_mat' 'ce_213_147_lab' 'ce_213_149_fac' 'ce_213_149_mat' 'ce_213_149_lab' 'ce_215_141_fac' 'ce_215_141_mat' 'ce_215_141_lab' 'ce_215_142_fac' 'ce_215_142_mat' 'ce_215_142_lab' 'ce_215_145_fac' 'ce_215_145_mat' 'ce_215_145_lab' 'ce_215_146_fac' 'ce_215_146_mat' 'ce_215_146_lab' 'ce_215_147_fac' 'ce_215_147_mat' 'ce_215_147_lab' 'ce_215_149_fac' 'ce_215_149_mat' 'ce_215_149_lab' 'ce_215_221_fac' 'ce_215_221_mat' 'ce_215_221_lab' 'ce_215_222_fac' 'ce_215_222_mat' 'ce_215_222_lab' 'ce_215_223_fac' 'ce_215_223_mat' 'ce_215_223_lab' 'ce_215_224_fac' 'ce_215_224_mat' 'ce_215_224_lab' 'ce_215_225_fac' 'ce_215_225_mat' 'ce_215_225_lab' 'ce_215_226_fac' 'ce_215_226_mat' 'ce_215_226_lab' 'ce_215_227_fac' 'ce_215_227_mat' 'ce_215_227_lab' 'ce_215_228_fac' 'ce_215_228_mat' 'ce_215_228_lab' 'ce_216_141_fac' 'ce_216_141_mat' 'ce_216_141_lab' 'ce_216_142_fac' 'ce_216_142_mat' 'ce_216_142_lab' 'ce_216_143_fac' 'ce_216_143_mat' 'ce_216_143_lab' 'ce_216_144_fac' 'ce_216_144_mat' 'ce_216_144_lab' 'ce_216_145_fac' 'ce_216_145_mat' 'ce_216_145_lab' 'ce_216_146_fac' 'ce_216_146_mat' 'ce_216_146_lab' 'ce_216_147_fac' 'ce_216_147_mat' 'ce_216_147_lab' 'ce_216_148_fac' 'ce_216_148_mat' 'ce_216_148_lab' 'ce_216_149_fac' 'ce_216_149_mat' 'ce_216_149_lab' 'ce_217_141_fac' 'ce_217_141_mat' 'ce_217_141_lab' 'ce_217_142_fac' 'ce_217_142_mat' 'ce_217_142_lab' 'ce_217_145_fac' 'ce_217_145_mat' 'ce_217_145_lab' 'ce_217_147_fac' 'ce_217_147_mat' 'ce_217_147_lab' 'ce_217_149_fac' 'ce_217_149_mat' 'ce_217_149_lab' 'ce_218A_13_fac' 'ce_218A_13_mat' 'ce_218A_13_lab' 'ce_218A_14_fac' 'ce_218A_14_mat' 'ce_218A_14_lab' 'ce_218A_141_fac' 'ce_218A_141_mat' 'ce_218A_141_lab' 'ce_218A_142_fac' 'ce_218A_142_mat' 'ce_218A_142_lab' 'ce_218A_145_fac' 'ce_218A_145_mat' 'ce_218A_145_lab' 'ce_218A_146_fac' 'ce_218A_146_mat' 'ce_218A_146_lab' 'ce_218A_147_fac' 'ce_218A_147_mat' 'ce_218A_147_lab' 'ce_218A_148_fac' 'ce_218A_148_mat' 'ce_218A_148_lab' 'ce_218A_149_fac' 'ce_218A_149_mat' 'ce_218A_149_lab' 'ce_218A_21_fac' 'ce_218A_21_mat' 'ce_218A_21_lab' 'ce_218A_23_fac' 'ce_218A_23_mat' 'ce_218A_23_lab' 'ce_218A_231_fac' 'ce_218A_231_mat' 'ce_218A_231_lab' 'ce_218A_232_fac' 'ce_218A_232_mat' 'ce_218A_232_lab' 'ce_218A_233_fac' 'ce_218A_233_mat' 'ce_218A_233_lab' 'ce_218A_234_fac' 'ce_218A_234_mat' 'ce_218A_234_lab' 'ce_218A_235_fac' 'ce_218A_235_mat' 'ce_218A_235_lab' 'ce_218A_236_fac' 'ce_218A_236_mat' 'ce_218A_236_lab' 'ce_218A_237_fac' 'ce_218A_237_mat' 'ce_218A_237_lab' 'ce_218A_238_fac' 'ce_218A_238_mat' 'ce_218A_238_lab' 'ce_218A_24_fac' 'ce_218A_24_mat' 'ce_218A_24_lab' 'ce_218B_21_fac' 'ce_218B_21_mat' 'ce_218B_21_lab' 'ce_218B_22_fac' 'ce_218B_22_mat' 'ce_218B_22_lab' 'ce_218B_23_fac' 'ce_218B_23_mat' 'ce_218B_23_lab' 'ce_218B_24_fac' 'ce_218B_24_mat' 'ce_218B_24_lab' 'ce_218B_25_fac' 'ce_218B_25_mat' 'ce_218B_25_lab' 'ce_222_111_fac' 'ce_222_111_mat' 'ce_222_111_lab' 'ce_222_119_fac' 'ce_222_119_mat' 'ce_222_119_lab' 'ce_222_132_fac' 'ce_222_132_mat' 'ce_222_132_lab' 'ce_222_139_fac' 'ce_222_139_mat' 'ce_222_139_lab' 'ce_225_111_fac' 'ce_225_111_mat' 'ce_225_111_lab' 'ce_225_112_fac' 'ce_225_112_mat' 'ce_225_112_lab' 'ce_225_113_fac' 'ce_225_113_mat' 'ce_225_113_lab' 'ce_225_114_fac' 'ce_225_114_mat' 'ce_225_114_lab'] user_defined_names = [N/A] -total_cost_unit = ['million' 'dollar'] \ No newline at end of file +total_cost_unit = ['million' 'dollar'] diff --git a/src/etc/necost.sch b/src/etc/necost.sch index ad6f445..4fde301 100644 --- a/src/etc/necost.sch +++ b/src/etc/necost.sch @@ -4,7 +4,7 @@ necost { Description = "Input parameters for LCAE Calculations" MinOccurs = 0 MaxOccurs = 1 - InputTmpl = "necost" + InputTmpl = "necost/necost" construction_interest_rate { Description = "Construction interest rate for the project" @@ -12,7 +12,7 @@ necost { MaxOccurs = 1 MinValInc = 0 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -22,7 +22,7 @@ necost { MaxOccurs = 1 MinValInc = 0 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -32,23 +32,73 @@ necost { MaxOccurs = 1 MinValExc = 0 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } + accert_coupling { + Description = "Optional ACCERT-to-NEcost coupling. Use either an ACCERT SON input or an ACCERT post-process CSV to replace a NEcost capital cost item with ACCERT OCC in $/kWe." + MinOccurs = 0 + MaxOccurs = 1 + InputTmpl = "common/sonobject" + + accert_input { + Description = "ACCERT SON input to run before NEcost. The ACCERT post-process total OCC $/kW is used as NEcost capital_cost." + MinOccurs = 0 + MaxOccurs = 1 + ValType = String + InputTmpl = "common/flagtypes" + } + + accert_post_csv { + Description = "Existing ACCERT post-process CSV. If provided, NEcost reads OCC from this file instead of running ACCERT." + MinOccurs = 0 + MaxOccurs = 1 + ValType = String + InputTmpl = "common/flagtypes" + } + + capital_cost_id { + Description = "NEcost capital cost item id to replace with ACCERT OCC." + MinOccurs = 0 + MaxOccurs = 1 + ValType = String + ExistsIn = [ "/necost/capital_costs/item/id" ] + InputTmpl = "common/flagtypes" + } + + occ_metric { + Description = "ACCERT post-process metric to use as the overnight capital cost." + MinOccurs = 0 + MaxOccurs = 1 + ValType = String + ValEnums = [total_OCC total_cost_without_owner total_direct_cost total_calculated_direct_cost] + InputTmpl = "common/flagtypes" + } + + uncertainty_fraction { + Description = "Symmetric uncertainty fraction around the ACCERT OCC. For example, 0.1 creates low and high values at +/-10%." + MinOccurs = 0 + MaxOccurs = 1 + MinValInc = 0 + ValType = Real + InputTmpl = "common/flagtypes" + } + } + fuel_cycles { Description = "Fuel cycle parameters for the reactors" MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["cycle/id"] - InputTmpl = "fuel_cycles/fuel_cycles" + InputTmpl = "necost/fuel_cycles/fuel_cycles" cycle { Description = "Fuel cycle parameters for the reactors" MinOccurs = 0 MaxOccurs = NoLimit ChildUniqueness = ["reactor/id"] - InputTmpl = "fuel_cycles/cycle" + InputTmpl = "necost/fuel_cycles/cycle" id { MinOccurs = 0 @@ -60,7 +110,7 @@ necost { Description = "Reactor parameters and characteristics" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl="fuel_cycles/cycle_reactor" + InputTmpl = "necost/fuel_cycles/cycle_reactor" id { MinOccurs = 0 @@ -70,14 +120,14 @@ necost { } fleet_capacity { - Description = "Fleet capacity of the reactors unit in MWe" + Description = "Fleet capacity of the reactor island in MWe. This is optional when fleet_energy, energy_fraction, or mass_fraction is supplied for weighting." MinOccurs = 0 MaxOccurs = 1 ValType = Real MinValInc=0 % TODO: Should we allow 0? (if so, change to MinValInc=0) %MaxValInc=1 %SumOver("../..") = 1 - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } fleet_energy { @@ -88,7 +138,27 @@ necost { MinValInc=0 % TODO: Should we allow 0? (if so, change to MinValInc=0) %MaxValInc=1 %SumOver("../..") = 1 - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" + } + + energy_fraction { + Description = "Fractional energy generated by this island in a multi-island LCAE calculation. For example, EG13 uses 0.902 UOX and 0.098 MOX, and EG23 uses 0.954 driver and 0.046 blanket." + MinOccurs = 0 + MaxOccurs = 1 + ValType = Real + MinValInc=0 + MaxValInc=1 + InputTmpl = "common/flagtypes" + } + + mass_fraction { + Description = "Mass fraction for this reactor island in a multi-island fuel-cycle case. For example, EG23 uses 0.8 driver and 0.2 blanket." + MinOccurs = 0 + MaxOccurs = 1 + ValType = Real + MinValInc=0 + MaxValInc=1 + InputTmpl = "common/flagtypes" } } } @@ -99,13 +169,13 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["reactor/id"] - InputTmpl="reactors/reactors" + InputTmpl = "necost/reactors/reactors" reactor { Description = "Reactor parameters and characteristics" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl="reactors/single_reactor" + InputTmpl = "necost/reactors/single_reactor" id { MinOccurs = 0 @@ -117,7 +187,7 @@ necost { Description = "Power level of the reactor" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="reactors/power_level" + InputTmpl = "necost/reactors/power_level" ChildExactlyOne=[reference_net_electrical reference_thermal] reference_net_electrical { @@ -125,7 +195,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -134,7 +204,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -143,7 +213,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -153,7 +223,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -162,7 +232,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -171,7 +241,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -180,14 +250,14 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["scaling_factor/id"] - InputTmpl="reactors/capital_costs" + InputTmpl = "necost/reactors/capital_costs" scaling_factor { Description = "Simple scaling factor for the capital costs item" MinOccurs = 0 MaxOccurs = NoLimit ValType = Real - InputTmpl="reactors/scaling_factor" + InputTmpl = "necost/reactors/scaling_factor" % TODO: What are min-max values for this? id { @@ -204,14 +274,14 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["scaling_factor/id"] - InputTmpl="reactors/om_costs" + InputTmpl = "necost/reactors/om_costs" scaling_factor { Description = "Simple scaling factor for the operating and maintenance costs item" MinOccurs = 0 MaxOccurs = NoLimit ValType = Real - InputTmpl="reactors/scaling_factor" + InputTmpl = "necost/reactors/scaling_factor" % TODO: What are min-max values for this? id { @@ -228,14 +298,14 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["quantity_of_fuel/id"] - InputTmpl="reactors/fuel_reloads" + InputTmpl = "necost/reactors/fuel_reloads" quantity { Description = "Quantity of fuel reloads for the reactors, will select the fuel from fuels section" MinOccurs = 0 MaxOccurs = NoLimit ChildExactlyOne=[heavy_metal_mass thermal_power_fraction] - InputTmpl="reactors/fuel_reloads_quantity" + InputTmpl = "necost/reactors/fuel_reloads_quantity" id { MinOccurs = 0 @@ -249,7 +319,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -258,7 +328,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -267,7 +337,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValInc = 0 MaxValInc = 1 } @@ -281,14 +351,14 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["item/id"] - InputTmpl="capital_costs/capital_costs" + InputTmpl = "necost/capital_costs/capital_costs" item { Description = "Capital costs items for the reactors" MinOccurs = 0 MaxOccurs = NoLimit ChildExactlyOne=[nominal_value distribution] - InputTmpl="capital_costs/cost_item" + InputTmpl = "necost/capital_costs/cost_item" id { MinOccurs = 0 @@ -301,7 +371,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -311,7 +381,7 @@ necost { MaxOccurs = 1 ValType = String ValEnums = [single s_curve] - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } expenditure_time { @@ -319,7 +389,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -327,7 +397,7 @@ necost { Description = "Distribution for the capital costs" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="cost_distribution" + InputTmpl = "necost/cost_distribution" type { Description = "Choose the type of distribution for the capital costs" @@ -335,7 +405,7 @@ necost { MaxOccurs = 1 ValType = String ValEnums = [triangular uniform] - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } low { @@ -343,7 +413,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -352,7 +422,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -361,7 +431,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -373,14 +443,14 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["item/id"] - InputTmpl="om_costs/om_costs" + InputTmpl = "necost/om_costs/om_costs" item { Description = "Operating and maintenance costs items for the reactors" MinOccurs = 0 MaxOccurs = NoLimit ChildAtMostOne=[expenditure_time cost_type=variable cost_type=fixed] - InputTmpl="om_costs/cost_item" + InputTmpl = "necost/om_costs/cost_item" id { MinOccurs = 0 @@ -394,7 +464,7 @@ necost { MaxOccurs = 1 ValType = String ValEnums = [variable fixed single periodic] - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } expenditure_time { @@ -402,7 +472,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -411,7 +481,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -419,7 +489,7 @@ necost { Description = "Distribution for the operating and maintenance costs" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="cost_distribution" + InputTmpl = "necost/cost_distribution" type { Description = "Choose the type of distribution for the operating and maintenance costs" @@ -427,7 +497,7 @@ necost { MaxOccurs = 1 ValType = String ValEnums = [triangular uniform] - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } low { @@ -435,7 +505,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -444,7 +514,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -453,7 +523,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -465,13 +535,13 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["item/id"] - InputTmpl="fuels/fuel_costs" + InputTmpl = "necost/fuels/fuel_costs" item { Description = "Fuel costs items" MinOccurs = 0 MaxOccurs = NoLimit - InputTmpl="fuels/cost_item" + InputTmpl = "necost/fuels/cost_item" id { MinOccurs = 0 @@ -484,7 +554,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -493,7 +563,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -501,7 +571,7 @@ necost { Description = "Distribution for the fuel costs" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="cost_distribution" + InputTmpl = "necost/cost_distribution" type { Description = "Choose the type of distribution for the fuel costs" @@ -509,7 +579,7 @@ necost { MaxOccurs = 1 ValType = String ValEnums = [triangular uniform] - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } low { @@ -517,7 +587,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -526,7 +596,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -535,7 +605,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -547,7 +617,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ChildUniqueness = ["fuel/id"] - InputTmpl="fuels/fuels" + InputTmpl = "necost/fuels/fuels" fuel { Description = "Fuel parameters and characteristics" @@ -555,7 +625,7 @@ necost { MaxOccurs = NoLimit % ChildUniqueness = ["backend_system_parameters/fuel_id"] ChildExactlyOne=[avg_discharge_burnup avg_fuel_residence_time] - InputTmpl="fuels/single_fuel" + InputTmpl = "necost/fuels/single_fuel" id { MinOccurs = 0 @@ -568,7 +638,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -577,7 +647,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -586,7 +656,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -595,7 +665,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -603,20 +673,20 @@ necost { Description = "Fresh fuel parameters and characteristics" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="fuels/fresh_fuel_composition" + InputTmpl = "necost/fuels/fresh_fuel_composition" fabrication { Description = "fabrication parameters and characteristics" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="fuels/fabrication" + InputTmpl = "necost/fuels/fabrication" lead_time { Description = "Lead time for the fresh fuel fabrication in years" MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -625,7 +695,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -634,7 +704,7 @@ necost { Description = "Costs for the fresh fuel fabrication" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the fresh fuel fabrication, choose the cost item from the fuel_costs section" @@ -650,14 +720,14 @@ necost { Description = "Depleted uranium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/fcc_depleted_uranium" + InputTmpl = "necost/fuels/ffc_depleted_uranium" fuel_fraction { Description = "Fuel fraction of the depleted uranium unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -667,7 +737,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -675,7 +745,7 @@ necost { Description = "Costs for the depleted uranium" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the depleted uranium, choose the cost item from the fuel_costs section" @@ -696,7 +766,7 @@ necost { MinOccurs = 0 MaxOccurs = NoLimit ValType = String - InputTmpl="sonarray" + InputTmpl = "common/sonarray" ExistsIn = [ "/necost/fuel_costs/item/id" ] } } @@ -706,14 +776,14 @@ necost { Description = "Natural uranium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_natural_uranium" + InputTmpl = "necost/fuels/ffc_natural_uranium" fuel_fraction { Description = "Fuel fraction of the natural uranium unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -723,7 +793,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -731,7 +801,7 @@ necost { Description = "Costs for the natural uranium" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the natural uranium, choose the cost item from the fuel_costs section" @@ -747,14 +817,14 @@ necost { Description = "Enriched uranium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_enriched_uranium" + InputTmpl = "necost/fuels/ffc_enriched_uranium" fuel_fraction { Description = "Fuel fraction of the enriched uranium unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -764,7 +834,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -772,7 +842,7 @@ necost { Description = "Costs for the enriched uranium" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the enriched uranium, choose the cost item from the fuel_costs section" @@ -788,14 +858,14 @@ necost { Description = "Thorium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_thorium_fraction" + InputTmpl = "necost/fuels/ffc_thorium_fraction" lead_time { Description = "Lead time for the thorium in years" MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -804,7 +874,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -813,7 +883,7 @@ necost { Description = "Costs for the thorium" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the thorium, choose the cost item from the fuel_costs section" @@ -829,14 +899,14 @@ necost { Description = "Recovered thorium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_thorium_fraction" + InputTmpl = "necost/fuels/ffc_recovered_thorium_fraction" lead_time { Description = "Lead time for the recovered thorium in years" MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -845,7 +915,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -854,7 +924,7 @@ necost { Description = "Costs for the recovered thorium" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the recovered thorium, choose the cost item from the fuel_costs section" @@ -874,14 +944,14 @@ necost { ChildCountEqual(EvenNone)=[tails is_reenrichment=yes] ChildCountEqual(EvenNone)=[loss_fraction is_reenrichment=yes] ChildCountEqual(EvenNone)=[losses is_reenrichment=yes] - InputTmpl="fuels/ffc_recovered_uranium_fraction" + InputTmpl = "necost/fuels/ffc_recovered_uranium_fraction" fuel_fraction { Description = "Fuel fraction of the recovered uranium unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } lead_time { @@ -889,7 +959,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -897,7 +967,7 @@ necost { Description = "Costs for the recovered uranium" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the recovered uranium, choose the cost item from the fuel_costs section" @@ -913,14 +983,14 @@ necost { Description = "Transuranic parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_recovered_tru_fraction" + InputTmpl = "necost/fuels/ffc_recovered_tru_fraction" fuel_fraction { Description = "Fuel fraction of the transuranic unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } lead_time { @@ -928,7 +998,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -936,7 +1006,7 @@ necost { Description = "Costs for the transuranic" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the transuranic, choose the cost item from the fuel_costs section" @@ -952,14 +1022,14 @@ necost { Description = "Fission products parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_natural_uranium" + InputTmpl = "necost/fuels/ffc_fission_products" fuel_fraction { Description = "Fuel fraction of the fission products unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -969,7 +1039,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -977,7 +1047,7 @@ necost { Description = "Costs for the fission products" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the fission products, choose the cost item from the fuel_costs section" @@ -994,13 +1064,13 @@ necost { Description = "Spent fuel parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/spent_fuel_composition" + InputTmpl = "necost/fuels/spent_fuel_composition" costs { Description = "Costs for the spent fuel" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the spent fuel, choose the cost item from the fuel_costs section" @@ -1014,14 +1084,14 @@ necost { Description = "Fission products parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_natural_uranium" + InputTmpl = "necost/fuels/ffc_fission_products" fuel_fraction { Description = "Fuel fraction of the fission products unit in 1" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -1031,7 +1101,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1039,7 +1109,7 @@ necost { Description = "Costs for the fission products" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the fission products, choose the cost item from the fuel_costs section" @@ -1056,7 +1126,7 @@ necost { Description = "Enriched uranium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/EU" + InputTmpl = "necost/fuels/ffc_EU" conversion { Description = "Conversion parameters and characteristics" @@ -1069,7 +1139,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1078,7 +1148,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -1087,7 +1157,7 @@ necost { Description = "Costs for the conversion" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the conversion, choose the cost item from the fuel_costs section" @@ -1102,7 +1172,7 @@ necost { Description = "Enrichment parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_enriched_uranium" + InputTmpl = "necost/fuels/ffc_enriched_uranium" ChildCountEqual(EvenNone)=[stage_2 type=two_stage] type { @@ -1111,7 +1181,7 @@ necost { MaxOccurs = 1 ValType = String ValEnums = [one_stage two_stage] - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } loss_fraction { @@ -1119,7 +1189,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -1128,13 +1198,13 @@ necost { Description = "Stage 1 parameters and characteristics" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="fuels/ffc_enriched_uranium_two_stage_params" + InputTmpl = "necost/fuels/ffc_enriched_uranium_two_stage_params" feed { Description = "Feed enrichment" MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1143,7 +1213,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1152,7 +1222,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -1161,13 +1231,13 @@ necost { Description = "Stage 2 parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/ffc_enriched_uranium_two_stage_params" + InputTmpl = "necost/fuels/ffc_enriched_uranium_two_stage_params" feed { Description = "Feed enrichment" MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1176,7 +1246,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1185,7 +1255,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -1194,7 +1264,7 @@ necost { Description = "Enrichment costs" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Enrichment costs, choose the cost item from the fuel_costs section" @@ -1209,7 +1279,7 @@ necost { Description = "Natural uranium costs" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Natural uranium costs, choose the cost item from the fuel_costs section" @@ -1224,7 +1294,7 @@ necost { Description = "Depleted uranium costs" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Depleted uranium costs, choose the cost item from the fuel_costs section" @@ -1241,7 +1311,7 @@ necost { Description = "Recovered uranium parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="fuels/RU" + InputTmpl = "necost/fuels/ffc_RU" reprocess{ Description = "Reprocessing parameters and characteristics" @@ -1253,7 +1323,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -1261,7 +1331,7 @@ necost { Description = "Costs for the reprocessing" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the reprocessing, choose the cost item from the fuel_costs section" @@ -1276,14 +1346,14 @@ necost { Description = "Conversion parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" loss_fraction { Description = "Loss fraction of the recovered uranium during conversion" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" } lead_time { @@ -1291,7 +1361,7 @@ necost { MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1299,7 +1369,7 @@ necost { Description = "Costs for the conversion" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Costs for the conversion, choose the cost item from the fuel_costs section" @@ -1315,14 +1385,14 @@ necost { Description = "Reenrichment parameters and characteristics" MinOccurs = 0 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" loss_fraction { Description = "Loss fraction of the recovered uranium during reenrichment" MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" MinValExc = 0 MaxValInc = 1 } @@ -1331,14 +1401,14 @@ necost { Description = "Stage 1 parameters and characteristics" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="fuels/ffc_enriched_uranium_two_stage_params" + InputTmpl = "necost/fuels/ffc_enriched_uranium_two_stage_params" feed { Description = "Feed enrichment" MinOccurs = 0 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1347,7 +1417,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } @@ -1356,7 +1426,7 @@ necost { MinOccurs = 1 MaxOccurs = 1 ValType = Real - InputTmpl="flagtypes" + InputTmpl = "common/flagtypes" % TODO: What are min-max values for this? } } @@ -1365,7 +1435,7 @@ necost { Description = "Enrichment costs" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Enrichment costs, choose the cost item from the fuel_costs section" @@ -1380,7 +1450,7 @@ necost { Description = "Depleted uranium costs" MinOccurs = 1 MaxOccurs = 1 - InputTmpl="sonarray" + InputTmpl = "common/sonarray" value { Description = "Depleted uranium costs, choose the cost item from the fuel_costs section" diff --git a/src/etc/templates/L1COA.tmpl b/src/etc/templates/L1COA.tmpl deleted file mode 100644 index cb1d206..0000000 --- a/src/etc/templates/L1COA.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -l1coa: l1COA ( ID ) { - % Include total_cost if present - % If TOTAL_COST_VALUE and TOTAL_COST_UNIT are provided - total_cost { - value = TOTAL_COST_VALUE - unit = TOTAL_COST_UNIT - } - % Level 2 COA entries - % For each l2coa in L2COAS - % Include L2COA template -} diff --git a/src/etc/templates/L2COA.tmpl b/src/etc/templates/L2COA.tmpl deleted file mode 100644 index 547fd61..0000000 --- a/src/etc/templates/L2COA.tmpl +++ /dev/null @@ -1,31 +0,0 @@ -l2COA ( ID ) { - % Include total_cost if present - % If TOTAL_COST_VALUE and TOTAL_COST_UNIT are provided - total_cost { - value = TOTAL_COST_VALUE - unit = TOTAL_COST_UNIT - } - % Cost elements (ce) - % For each ce in CES - ce ( ID ) { - % Include algorithm - alg ( ID ) { - % Variables - % For each var in VARS - var ( ID ) { - value = VALUE - unit = UNIT - % If nested algorithm is present - % Include nested alg_var_alg template - } - } - } - % Level 3 COA entries - % For each l3coa in L3COAS - % Include L3COA template - % New COA entries - % For each newcoa in NEWCOAS - newCOA ( ID ) { - descr = "DESCR" - } -} diff --git a/src/etc/templates/L3COA.tmpl b/src/etc/templates/L3COA.tmpl deleted file mode 100644 index 309d3df..0000000 --- a/src/etc/templates/L3COA.tmpl +++ /dev/null @@ -1,17 +0,0 @@ -l3coa: l3COA ( ID ) { - % Include total_cost if present - total_cost { - value = VALUE - unit = UNIT - } - % Cost elements (ce) - % For each ce in CES - ce ( ID ) { - % Include algorithm - } - % New COA entries - % For each newcoa in NEWCOAS - newCOA ( ID ) { - descr = "DESCR" - } -} diff --git a/src/etc/templates/README.md b/src/etc/templates/README.md new file mode 100644 index 0000000..b671d0c --- /dev/null +++ b/src/etc/templates/README.md @@ -0,0 +1,28 @@ +# Workbench Autocomplete Templates + +These templates are used by the SON schemas in `src/etc` for Workbench +autocomplete. Keep template filenames aligned with each schema `InputTmpl` +value, including the namespace folder. + +## ACCERT + +ACCERT templates live under `accert/`. The root `accert/accert.tmpl` starts +from the AP1000 pattern with thermal and electric power, OCC post-processing, +one optional variable, and one editable account block. + +## NEcost + +NEcost templates live under `necost/` and are grouped by input section: + +- `fuel_cycles/` for EG case weighting by reactor island. +- `reactors/` for reactor performance, cost scaling, and reload quantities. +- `capital_costs/`, `om_costs/`, and `fuels/` for reusable cost and fuel data. + +The root `necost/necost.tmpl` is a complete one-island EG-style starter case. +For EG13 or EG23, duplicate the `reactor(...)` entries inside a cycle and set +`energy_fraction`, `mass_fraction`, or `fleet_capacity` for each island. + +## Common + +Shared schema snippets live under `common/`. Use these only for generic helper +templates such as `flagtypes`, `sonarray`, and `sonobject`. diff --git a/src/etc/templates/accert.tmpl b/src/etc/templates/accert.tmpl deleted file mode 100644 index 88bd0dd..0000000 --- a/src/etc/templates/accert.tmpl +++ /dev/null @@ -1,28 +0,0 @@ -accert { - ref_model = REF_MODEL - - % Power entries - % For each power in POWERS - power ( Thermal/Electric ) { - value = VALUE - unit = UNIT - } - % End of power entries - - % Variable entries - % For each var in VARS - var ( ID ) { - value = VALUE - unit = UNIT - } - % End of variable entries - - % Level 0 COA entries - % For each l0coa in L0COAS - l0COA( ID ) { - % Include Level 1 COAs - % For each l1coa in l0coa.L1COAS - % Include L1COA template - } - % End of Level 0 COA entries -} diff --git a/src/etc/templates/accert/L0COA.tmpl b/src/etc/templates/accert/L0COA.tmpl new file mode 100644 index 0000000..a829da2 --- /dev/null +++ b/src/etc/templates/accert/L0COA.tmpl @@ -0,0 +1,5 @@ +l0COA(2) { + l1COA(21) { + l2COA(211) { total_cost { value = 1 unit = million } } + } +} diff --git a/src/etc/templates/accert/L1COA.tmpl b/src/etc/templates/accert/L1COA.tmpl new file mode 100644 index 0000000..f4f5999 --- /dev/null +++ b/src/etc/templates/accert/L1COA.tmpl @@ -0,0 +1,3 @@ +l1COA(21) { + l2COA(211) { total_cost { value = 1 unit = million } } +} diff --git a/src/etc/templates/accert/L2COA.tmpl b/src/etc/templates/accert/L2COA.tmpl new file mode 100644 index 0000000..9f754df --- /dev/null +++ b/src/etc/templates/accert/L2COA.tmpl @@ -0,0 +1 @@ +l2COA(211) { total_cost { value = 1 unit = million } } diff --git a/src/etc/templates/accert/L3COA.tmpl b/src/etc/templates/accert/L3COA.tmpl new file mode 100644 index 0000000..74b93db --- /dev/null +++ b/src/etc/templates/accert/L3COA.tmpl @@ -0,0 +1 @@ +l3COA("221.12") { total_cost { value = 1 unit = million } } diff --git a/src/etc/templates/accert/accert.tmpl b/src/etc/templates/accert/accert.tmpl new file mode 100644 index 0000000..91e0283 --- /dev/null +++ b/src/etc/templates/accert/accert.tmpl @@ -0,0 +1,21 @@ +accert { + ref_model = "AP1000" + use_gncoa = False + + post_process { + occ = true + } + + power(Thermal) { value = 6800 unit = MW } + power(Electric) { value = 2234 unit = MW } + + var(mc_piping_M) { value = 77001 unit = kg } + + l0COA(2) { + l1COA(21) { + l2COA(211) { + total_cost { value = 1 unit = million } + } + } + } +} diff --git a/src/etc/templates/accert/alg.tmpl b/src/etc/templates/accert/alg.tmpl new file mode 100644 index 0000000..bbfd6e3 --- /dev/null +++ b/src/etc/templates/accert/alg.tmpl @@ -0,0 +1,3 @@ +alg("esc_1987") { + var(ref_211_fac) { value = 0.27 unit = million } +} diff --git a/src/etc/templates/accert/alg_var.tmpl b/src/etc/templates/accert/alg_var.tmpl new file mode 100644 index 0000000..17b7caa --- /dev/null +++ b/src/etc/templates/accert/alg_var.tmpl @@ -0,0 +1,5 @@ +var(ref_211_fac) { + alg("esc_1987") { + var(ref_211_mat) { value = 10.3 unit = million } + } +} diff --git a/src/etc/templates/accert/alg_var_alg.tmpl b/src/etc/templates/accert/alg_var_alg.tmpl new file mode 100644 index 0000000..bbfd6e3 --- /dev/null +++ b/src/etc/templates/accert/alg_var_alg.tmpl @@ -0,0 +1,3 @@ +alg("esc_1987") { + var(ref_211_fac) { value = 0.27 unit = million } +} diff --git a/src/etc/templates/accert/alg_var_alg_var.tmpl b/src/etc/templates/accert/alg_var_alg_var.tmpl new file mode 100644 index 0000000..698f858 --- /dev/null +++ b/src/etc/templates/accert/alg_var_alg_var.tmpl @@ -0,0 +1 @@ +var(ref_211_fac) { value = 0.27 unit = million } diff --git a/src/etc/templates/accert/ce.tmpl b/src/etc/templates/accert/ce.tmpl new file mode 100644 index 0000000..8f7afb7 --- /dev/null +++ b/src/etc/templates/accert/ce.tmpl @@ -0,0 +1,5 @@ +ce("211_fac") { + alg("esc_1987") { + var(ref_211_fac) { value = 0.27 unit = million } + } +} diff --git a/src/etc/templates/accert/newCOA.tmpl b/src/etc/templates/accert/newCOA.tmpl new file mode 100644 index 0000000..08c68b7 --- /dev/null +++ b/src/etc/templates/accert/newCOA.tmpl @@ -0,0 +1 @@ +newCOA(user_added_account) { descr = "User-added account" } diff --git a/src/etc/templates/accert/post_process.tmpl b/src/etc/templates/accert/post_process.tmpl new file mode 100644 index 0000000..cd05f6e --- /dev/null +++ b/src/etc/templates/accert/post_process.tmpl @@ -0,0 +1,3 @@ +post_process { + occ = true +} diff --git a/src/etc/templates/accert/power.tmpl b/src/etc/templates/accert/power.tmpl new file mode 100644 index 0000000..6c195b6 --- /dev/null +++ b/src/etc/templates/accert/power.tmpl @@ -0,0 +1 @@ +power(Thermal) { value = 6800 unit = MW } diff --git a/src/etc/templates/accert/ref_model.tmpl b/src/etc/templates/accert/ref_model.tmpl new file mode 100644 index 0000000..7c60249 --- /dev/null +++ b/src/etc/templates/accert/ref_model.tmpl @@ -0,0 +1 @@ +ref_model = "AP1000" diff --git a/src/etc/templates/accert/total_cost.tmpl b/src/etc/templates/accert/total_cost.tmpl new file mode 100644 index 0000000..efa43bf --- /dev/null +++ b/src/etc/templates/accert/total_cost.tmpl @@ -0,0 +1 @@ +total_cost { value = 1 unit = million } diff --git a/src/etc/templates/accert/var.tmpl b/src/etc/templates/accert/var.tmpl new file mode 100644 index 0000000..9dc98bd --- /dev/null +++ b/src/etc/templates/accert/var.tmpl @@ -0,0 +1 @@ +var(mc_piping_M) { value = 77001 unit = kg } diff --git a/src/etc/templates/alg.tmpl b/src/etc/templates/alg.tmpl deleted file mode 100644 index 64a5581..0000000 --- a/src/etc/templates/alg.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -alg ( ID ) { - % Variables - % For each var in VARS - var ( ID ) { - value = VALUE - unit = UNIT - % If nested algorithm is present - % Include alg_var_alg template - } -} diff --git a/src/etc/templates/alg_var.tmpl b/src/etc/templates/alg_var.tmpl deleted file mode 100644 index efff5f1..0000000 --- a/src/etc/templates/alg_var.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -var ( ID ) { - value = VALUE - unit = UNIT - % If nested algorithm is present - alg ( ID ) { - % Variables - % For each var in VARS - var ( ID ) { - value = VALUE - unit = UNIT - } - } -} diff --git a/src/etc/templates/alg_var_alg.tmpl b/src/etc/templates/alg_var_alg.tmpl deleted file mode 100644 index 7d7f888..0000000 --- a/src/etc/templates/alg_var_alg.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -alg ( ID ) { - % Variables - % For each var in VARS - var ( ID ) { - value = VALUE - unit = UNIT - } -} diff --git a/src/etc/templates/alg_var_alg_var.tmpl b/src/etc/templates/alg_var_alg_var.tmpl deleted file mode 100644 index 7924ddb..0000000 --- a/src/etc/templates/alg_var_alg_var.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -var ( ID ) { - value = VALUE - unit = UNIT -} diff --git a/src/etc/templates/capital_costs/capital_costs.tmpl b/src/etc/templates/capital_costs/capital_costs.tmpl deleted file mode 100644 index fcda643..0000000 --- a/src/etc/templates/capital_costs/capital_costs.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -capital_costs { - item( capital_cost_item_id ) { - cost_type = s_curve - cost_value = VALUE - expenditure_time = VALUE - distribution { - type = triangular - low = VALUE - high = VALUE - nominal = VALUE - } - } -} diff --git a/src/etc/templates/capital_costs/cost_item.tmpl b/src/etc/templates/capital_costs/cost_item.tmpl deleted file mode 100644 index 18f4390..0000000 --- a/src/etc/templates/capital_costs/cost_item.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -item( capital_cost_item_id ) { - cost_type = s_curve - cost_value = VALUE - expenditure_time = VALUE - distribution { - type = triangular - low = VALUE - high = VALUE - nominal = VALUE - } -} \ No newline at end of file diff --git a/src/etc/templates/ce.tmpl b/src/etc/templates/ce.tmpl deleted file mode 100644 index bba41b7..0000000 --- a/src/etc/templates/ce.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -ce ( ID ) { - alg ( ID ) { - % Variables - % For each var in VARS - var ( ID ) { - value = VALUE - unit = UNIT - % If nested algorithm is present - % Include alg_var_alg template - } - } -} diff --git a/src/etc/templates/flagtypes.tmpl b/src/etc/templates/common/flagtypes.tmpl similarity index 100% rename from src/etc/templates/flagtypes.tmpl rename to src/etc/templates/common/flagtypes.tmpl diff --git a/src/etc/templates/sonarray.tmpl b/src/etc/templates/common/sonarray.tmpl similarity index 100% rename from src/etc/templates/sonarray.tmpl rename to src/etc/templates/common/sonarray.tmpl diff --git a/src/etc/templates/sonobject.tmpl b/src/etc/templates/common/sonobject.tmpl similarity index 100% rename from src/etc/templates/sonobject.tmpl rename to src/etc/templates/common/sonobject.tmpl diff --git a/src/etc/templates/cost_distribution.tmpl b/src/etc/templates/cost_distribution.tmpl deleted file mode 100644 index fb6b04b..0000000 --- a/src/etc/templates/cost_distribution.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -distribution{ type = triangular - low = VALUE high = VALUE nominal = VALUE } \ No newline at end of file diff --git a/src/etc/templates/fuel_cycles/cycle.tmpl b/src/etc/templates/fuel_cycles/cycle.tmpl deleted file mode 100644 index 2b41068..0000000 --- a/src/etc/templates/fuel_cycles/cycle.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -cycle( cycle_id ) { - reactor( reactor_id ) { fleet_capacity=1 } -} \ No newline at end of file diff --git a/src/etc/templates/fuel_cycles/cycle_reactor.tmpl b/src/etc/templates/fuel_cycles/cycle_reactor.tmpl deleted file mode 100644 index 6eded0d..0000000 --- a/src/etc/templates/fuel_cycles/cycle_reactor.tmpl +++ /dev/null @@ -1 +0,0 @@ -reactor( reactor_id ) { fleet_capacity=1 } diff --git a/src/etc/templates/fuel_cycles/fuel_cycles.tmpl b/src/etc/templates/fuel_cycles/fuel_cycles.tmpl deleted file mode 100644 index 78312ec..0000000 --- a/src/etc/templates/fuel_cycles/fuel_cycles.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -fuel_cycles { - cycle( cycle_id ) { - reactor( reactor_id ) { fleet_capacity=1 } - } -} \ No newline at end of file diff --git a/src/etc/templates/fuels/cost_item.tmpl b/src/etc/templates/fuels/cost_item.tmpl deleted file mode 100644 index 7574193..0000000 --- a/src/etc/templates/fuels/cost_item.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -item( fuel_cost_item_id ) {cost_value = VALUE lead_time = OPTIONAL - distribution{ type = triangular - low = VALUE high = VALUE nominal = VALUE } } \ No newline at end of file diff --git a/src/etc/templates/fuels/fabrication.tmpl b/src/etc/templates/fuels/fabrication.tmpl deleted file mode 100644 index b46d643..0000000 --- a/src/etc/templates/fuels/fabrication.tmpl +++ /dev/null @@ -1 +0,0 @@ -fabrication{ loss_fraction = VALUE costs = [fuel_cost_item_id]} diff --git a/src/etc/templates/fuels/fcc_thorium_fraction.tmpl b/src/etc/templates/fuels/fcc_thorium_fraction.tmpl deleted file mode 100644 index 10f5080..0000000 --- a/src/etc/templates/fuels/fcc_thorium_fraction.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -Th{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} -Rth{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} diff --git a/src/etc/templates/fuels/ffc_EU.tmpl b/src/etc/templates/fuels/ffc_EU.tmpl deleted file mode 100644 index 40b8ef2..0000000 --- a/src/etc/templates/fuels/ffc_EU.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -EU{ - conversion{ loss_fraction = VALUE costs = [FUEL_COST/ITEM/ID]} - enrichment{ type = two_stage/one_stage - loss_fraction = VALUE - stage_1{feed = VALUE product = VALUE tails = VALUE } - stage_2{feed = VALUE product = VALUE tails = VALUE } - SWU_costs = [FUEL_COST/ITEM/ID] - NU_costs = [FUEL_COST/ITEM/ID] - DU_costs=[FUEL_COST/ITEM/ID] - } -} \ No newline at end of file diff --git a/src/etc/templates/fuels/ffc_RU.tmpl b/src/etc/templates/fuels/ffc_RU.tmpl deleted file mode 100644 index 343a71f..0000000 --- a/src/etc/templates/fuels/ffc_RU.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -RU{ - reprocess { loss_fraction = VALUE costs = [FUEL_COST/ITEM/ID]} - conversion{ loss_fraction = VALUE costs = [FUEL_COST/ITEM/ID]} - reenrichment{ type = two_stage/one_stage - loss_fraction = VALUE - stage_1{feed = VALUE product = VALUE tails = VALUE } - SWU_costs = [FUEL_COST/ITEM/ID] - DU_costs=[FUEL_COST/ITEM/ID] - } -} \ No newline at end of file diff --git a/src/etc/templates/fuels/ffc_depleted_uranium.tmpl b/src/etc/templates/fuels/ffc_depleted_uranium.tmpl deleted file mode 100644 index 22879ae..0000000 --- a/src/etc/templates/fuels/ffc_depleted_uranium.tmpl +++ /dev/null @@ -1 +0,0 @@ -DU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} diff --git a/src/etc/templates/fuels/ffc_enriched_uranium.tmpl b/src/etc/templates/fuels/ffc_enriched_uranium.tmpl deleted file mode 100644 index fe125ca..0000000 --- a/src/etc/templates/fuels/ffc_enriched_uranium.tmpl +++ /dev/null @@ -1 +0,0 @@ - EU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} \ No newline at end of file diff --git a/src/etc/templates/fuels/ffc_natural_uranium.tmpl b/src/etc/templates/fuels/ffc_natural_uranium.tmpl deleted file mode 100644 index a57e425..0000000 --- a/src/etc/templates/fuels/ffc_natural_uranium.tmpl +++ /dev/null @@ -1 +0,0 @@ -NU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} \ No newline at end of file diff --git a/src/etc/templates/fuels/ffc_recovered_tru_fraction.tmpl b/src/etc/templates/fuels/ffc_recovered_tru_fraction.tmpl deleted file mode 100644 index 651fd54..0000000 --- a/src/etc/templates/fuels/ffc_recovered_tru_fraction.tmpl +++ /dev/null @@ -1 +0,0 @@ -TRU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} \ No newline at end of file diff --git a/src/etc/templates/fuels/ffc_recovered_uranium_fraction.tmpl b/src/etc/templates/fuels/ffc_recovered_uranium_fraction.tmpl deleted file mode 100644 index c310458..0000000 --- a/src/etc/templates/fuels/ffc_recovered_uranium_fraction.tmpl +++ /dev/null @@ -1 +0,0 @@ -RU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} \ No newline at end of file diff --git a/src/etc/templates/fuels/fresh_fuel_composition.tmpl b/src/etc/templates/fuels/fresh_fuel_composition.tmpl deleted file mode 100644 index 5a368ce..0000000 --- a/src/etc/templates/fuels/fresh_fuel_composition.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -fresh_fuel{ - fabrication{ loss_fraction = VALUE costs = [fuel_cost_item_id]} - DU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} - NU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} - EU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} - RU{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} - Th{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} - TRU{fuel_fraction = VALUE costs = [fuel_cost_item_id]} - FP{ fuel_fraction = VALUE costs = [fuel_cost_item_id]} -} \ No newline at end of file diff --git a/src/etc/templates/fuels/fuel_costs.tmpl b/src/etc/templates/fuels/fuel_costs.tmpl deleted file mode 100644 index 9d640eb..0000000 --- a/src/etc/templates/fuels/fuel_costs.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -fuel_costs { - item( fuel_cost_item_id ) {cost_value = VALUE lead_time = OPTIONAL - distribution{ type = triangular - low = VALUE high = VALUE nominal = VALUE } } - } diff --git a/src/etc/templates/fuels/fuels.tmpl b/src/etc/templates/fuels/fuels.tmpl deleted file mode 100644 index 7afbc87..0000000 --- a/src/etc/templates/fuels/fuels.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -fuels { - fuel( fuel_id ) { - % Add the fuel parameters - } - fuel( fuel_id ) { - % Add the fuel parameters - } -} diff --git a/src/etc/templates/fuels/single_fuel.tmpl b/src/etc/templates/fuels/single_fuel.tmpl deleted file mode 100644 index 28aa70c..0000000 --- a/src/etc/templates/fuels/single_fuel.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -fuel(fuel_id) { - avg_discharge_burnup = VALUE - num_batches = VALUE - avg_specific_power = VALUE - - fresh_fuel{ - % Add fresh fuel composition parameters - } - spent_fuel{ - % Add spent fuel composition parameters - } - EU{ - % Add enrichment and conversion parameters - } - RU{ - % Add reprocessing and conversion and reenrichment parameters - } -} \ No newline at end of file diff --git a/src/etc/templates/l0COA.tmpl b/src/etc/templates/l0COA.tmpl deleted file mode 100644 index 85894f7..0000000 --- a/src/etc/templates/l0COA.tmpl +++ /dev/null @@ -1,15 +0,0 @@ -l0COA ( ID ) { - % Level 1 COA entries - % For each l1coa in L1COAS - l1COA ( ID ) { - % Include total_cost if present - % If TOTAL_COST_VALUE and TOTAL_COST_UNIT are provided - total_cost { - value = TOTAL_COST_VALUE - unit = TOTAL_COST_UNIT - } - % Level 2 COA entries - % For each l2coa in L2COAS - % Include L2COA template - } -} diff --git a/src/etc/templates/necost.tmpl b/src/etc/templates/necost.tmpl deleted file mode 100644 index 247cda0..0000000 --- a/src/etc/templates/necost.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -necost { - construction_interest_rate = 0 - operations_interest_rate = 0 - - fuel_cycles { } - reactors { } - capital_costs { } - om_costs { } - fuels { } -} diff --git a/src/etc/templates/necost/capital_costs/capital_costs.tmpl b/src/etc/templates/necost/capital_costs/capital_costs.tmpl new file mode 100644 index 0000000..bad8a44 --- /dev/null +++ b/src/etc/templates/necost/capital_costs/capital_costs.tmpl @@ -0,0 +1,4 @@ +capital_costs { + item(capital_cost) { cost_type = s_curve cost_value = 4000 expenditure_time = 5 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } } +} diff --git a/src/etc/templates/necost/capital_costs/cost_item.tmpl b/src/etc/templates/necost/capital_costs/cost_item.tmpl new file mode 100644 index 0000000..4059485 --- /dev/null +++ b/src/etc/templates/necost/capital_costs/cost_item.tmpl @@ -0,0 +1,2 @@ +item(capital_cost) { cost_type = s_curve cost_value = 4000 expenditure_time = 5 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } } diff --git a/src/etc/templates/necost/cost_distribution.tmpl b/src/etc/templates/necost/cost_distribution.tmpl new file mode 100644 index 0000000..4bdabd5 --- /dev/null +++ b/src/etc/templates/necost/cost_distribution.tmpl @@ -0,0 +1 @@ +distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } diff --git a/src/etc/templates/necost/fuel_cycles/cycle.tmpl b/src/etc/templates/necost/fuel_cycles/cycle.tmpl new file mode 100644 index 0000000..85dfc71 --- /dev/null +++ b/src/etc/templates/necost/fuel_cycles/cycle.tmpl @@ -0,0 +1,3 @@ +cycle(EG_TEMPLATE) { + reactor(PWR_UOX) { energy_fraction = 1 } +} diff --git a/src/etc/templates/necost/fuel_cycles/cycle_reactor.tmpl b/src/etc/templates/necost/fuel_cycles/cycle_reactor.tmpl new file mode 100644 index 0000000..e05123c --- /dev/null +++ b/src/etc/templates/necost/fuel_cycles/cycle_reactor.tmpl @@ -0,0 +1 @@ +reactor(PWR_UOX) { energy_fraction = 1 } diff --git a/src/etc/templates/necost/fuel_cycles/fuel_cycles.tmpl b/src/etc/templates/necost/fuel_cycles/fuel_cycles.tmpl new file mode 100644 index 0000000..6ac23cc --- /dev/null +++ b/src/etc/templates/necost/fuel_cycles/fuel_cycles.tmpl @@ -0,0 +1,5 @@ +fuel_cycles { + cycle(EG_TEMPLATE) { + reactor(PWR_UOX) { energy_fraction = 1 } + } +} diff --git a/src/etc/templates/necost/fuels/cost_item.tmpl b/src/etc/templates/necost/fuels/cost_item.tmpl new file mode 100644 index 0000000..89a2aaf --- /dev/null +++ b/src/etc/templates/necost/fuels/cost_item.tmpl @@ -0,0 +1,2 @@ +item(cost_U) { cost_value = 110 lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } } diff --git a/src/etc/templates/necost/fuels/fabrication.tmpl b/src/etc/templates/necost/fuels/fabrication.tmpl new file mode 100644 index 0000000..0942d0e --- /dev/null +++ b/src/etc/templates/necost/fuels/fabrication.tmpl @@ -0,0 +1 @@ +fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } diff --git a/src/etc/templates/necost/fuels/ffc_EU.tmpl b/src/etc/templates/necost/fuels/ffc_EU.tmpl new file mode 100644 index 0000000..96e41be --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_EU.tmpl @@ -0,0 +1,8 @@ +EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] NU_costs = [cost_U] DU_costs = [cost_DU_disposal] + } +} diff --git a/src/etc/templates/necost/fuels/ffc_RU.tmpl b/src/etc/templates/necost/fuels/ffc_RU.tmpl new file mode 100644 index 0000000..ed4de86 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_RU.tmpl @@ -0,0 +1,8 @@ +RU { + reprocess { loss_fraction = 0.01 costs = [cost_reprocessing] } + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + reenrichment { + loss_fraction = 0.01 stage_1 { feed = 0.9 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] DU_costs = [cost_DU_disposal] + } +} diff --git a/src/etc/templates/necost/fuels/ffc_depleted_uranium.tmpl b/src/etc/templates/necost/fuels/ffc_depleted_uranium.tmpl new file mode 100644 index 0000000..0a536f6 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_depleted_uranium.tmpl @@ -0,0 +1 @@ +DU { fuel_fraction = 1 costs = [cost_DU_disposal] } diff --git a/src/etc/templates/necost/fuels/ffc_enriched_uranium.tmpl b/src/etc/templates/necost/fuels/ffc_enriched_uranium.tmpl new file mode 100644 index 0000000..902321a --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_enriched_uranium.tmpl @@ -0,0 +1 @@ +EU { fuel_fraction = 1 costs = [cost_U] } diff --git a/src/etc/templates/necost/fuels/ffc_enriched_uranium_two_stage_params.tmpl b/src/etc/templates/necost/fuels/ffc_enriched_uranium_two_stage_params.tmpl new file mode 100644 index 0000000..02a5f58 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_enriched_uranium_two_stage_params.tmpl @@ -0,0 +1 @@ +stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } diff --git a/src/etc/templates/necost/fuels/ffc_fission_products.tmpl b/src/etc/templates/necost/fuels/ffc_fission_products.tmpl new file mode 100644 index 0000000..eaa95d0 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_fission_products.tmpl @@ -0,0 +1 @@ +FP { fuel_fraction = 1 costs = [cost_waste] } diff --git a/src/etc/templates/necost/fuels/ffc_natural_uranium.tmpl b/src/etc/templates/necost/fuels/ffc_natural_uranium.tmpl new file mode 100644 index 0000000..fae4f8f --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_natural_uranium.tmpl @@ -0,0 +1 @@ +NU { fuel_fraction = 1 costs = [cost_U] } diff --git a/src/etc/templates/necost/fuels/ffc_recovered_thorium_fraction.tmpl b/src/etc/templates/necost/fuels/ffc_recovered_thorium_fraction.tmpl new file mode 100644 index 0000000..178ae34 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_recovered_thorium_fraction.tmpl @@ -0,0 +1 @@ +RTh { loss_fraction = 0.01 costs = [cost_reprocessing] } diff --git a/src/etc/templates/necost/fuels/ffc_recovered_tru_fraction.tmpl b/src/etc/templates/necost/fuels/ffc_recovered_tru_fraction.tmpl new file mode 100644 index 0000000..7c0a8a5 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_recovered_tru_fraction.tmpl @@ -0,0 +1 @@ +TRU { fuel_fraction = 1 costs = [cost_reprocessing] } diff --git a/src/etc/templates/necost/fuels/ffc_recovered_uranium_fraction.tmpl b/src/etc/templates/necost/fuels/ffc_recovered_uranium_fraction.tmpl new file mode 100644 index 0000000..2ad0894 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_recovered_uranium_fraction.tmpl @@ -0,0 +1 @@ +RU { fuel_fraction = 1 costs = [cost_U] } diff --git a/src/etc/templates/necost/fuels/ffc_thorium_fraction.tmpl b/src/etc/templates/necost/fuels/ffc_thorium_fraction.tmpl new file mode 100644 index 0000000..9db9c13 --- /dev/null +++ b/src/etc/templates/necost/fuels/ffc_thorium_fraction.tmpl @@ -0,0 +1 @@ +Th { fuel_fraction = 1 costs = [cost_thorium] } diff --git a/src/etc/templates/necost/fuels/fresh_fuel_composition.tmpl b/src/etc/templates/necost/fuels/fresh_fuel_composition.tmpl new file mode 100644 index 0000000..20dd786 --- /dev/null +++ b/src/etc/templates/necost/fuels/fresh_fuel_composition.tmpl @@ -0,0 +1 @@ +fresh_fuel { fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } EU { fuel_fraction = 1 costs = [cost_U] } } diff --git a/src/etc/templates/necost/fuels/fuel_costs.tmpl b/src/etc/templates/necost/fuels/fuel_costs.tmpl new file mode 100644 index 0000000..4a7d6fd --- /dev/null +++ b/src/etc/templates/necost/fuels/fuel_costs.tmpl @@ -0,0 +1,7 @@ +fuel_costs { + item(cost_U) { cost_value = 110 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = triangular low = 70 high = 120 nominal = 100 } } + item(cost_fuel_fab) { cost_value = 350 lead_time = 0.5 distribution { type = triangular low = 200 high = 500 nominal = 350 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = triangular low = 6 high = 18 nominal = 12 } } + item(cost_DU_disposal) { cost_value = 4 distribution { type = triangular low = 2 high = 22 nominal = 4 } } +} diff --git a/src/etc/templates/necost/fuels/fuels.tmpl b/src/etc/templates/necost/fuels/fuels.tmpl new file mode 100644 index 0000000..227cdfa --- /dev/null +++ b/src/etc/templates/necost/fuels/fuels.tmpl @@ -0,0 +1,15 @@ +fuels { + fuel(UOX) { + avg_discharge_burnup = 50 num_batches = 3 avg_specific_power = 1 + fresh_fuel { fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } EU { fuel_fraction = 1 costs = [cost_U] } } + spent_fuel { costs = [cost_SNF_cond cost_geologic_disposal] } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] NU_costs = [cost_U] DU_costs = [cost_DU_disposal] + } + } + } +} diff --git a/src/etc/templates/necost/fuels/single_fuel.tmpl b/src/etc/templates/necost/fuels/single_fuel.tmpl new file mode 100644 index 0000000..7a21eca --- /dev/null +++ b/src/etc/templates/necost/fuels/single_fuel.tmpl @@ -0,0 +1,13 @@ +fuel(UOX) { + avg_discharge_burnup = 50 num_batches = 3 avg_specific_power = 1 + fresh_fuel { fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } EU { fuel_fraction = 1 costs = [cost_U] } } + spent_fuel { costs = [cost_SNF_cond cost_geologic_disposal] } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] NU_costs = [cost_U] DU_costs = [cost_DU_disposal] + } + } +} diff --git a/src/etc/templates/necost/fuels/spent_fuel_composition.tmpl b/src/etc/templates/necost/fuels/spent_fuel_composition.tmpl new file mode 100644 index 0000000..fb5261b --- /dev/null +++ b/src/etc/templates/necost/fuels/spent_fuel_composition.tmpl @@ -0,0 +1 @@ +spent_fuel { costs = [cost_SNF_cond cost_geologic_disposal] } diff --git a/src/etc/templates/necost/necost.tmpl b/src/etc/templates/necost/necost.tmpl new file mode 100644 index 0000000..242e6f8 --- /dev/null +++ b/src/etc/templates/necost/necost.tmpl @@ -0,0 +1,60 @@ +necost { + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG_TEMPLATE) { + reactor(PWR_UOX) { energy_fraction = 1 } + } + } + + reactors { + reactor(PWR_UOX) { + capacity_factor = 0.9 cycle_length = 1.5 lifetime_years = 60 + power_level { reference_thermal = 3.0E9 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { scaling_factor(OM_per_year) = 1 scaling_factor(OM_per_MWh) = 1 } + fuel_reloads { quantity(UOX) { heavy_metal_mass = 88.23 fuel_fraction = 1 } } + } + } + + capital_costs { + item(capital_cost) { cost_type = s_curve expenditure_time = 5 cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } } + } + + om_costs { + item(OM_per_year) { cost_type = fixed nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } } + item(OM_per_MWh) { cost_type = variable nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } } + } + + fuel_costs { + item(cost_U) { cost_value = 110 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = triangular low = 70 high = 120 nominal = 100 } } + item(cost_fuel_fab) { cost_value = 350 lead_time = 0.5 distribution { type = triangular low = 200 high = 500 nominal = 350 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = triangular low = 6 high = 18 nominal = 12 } } + item(cost_deconv) { cost_value = 6 distribution { type = triangular low = 4 high = 8 nominal = 6 } } + item(cost_DU_disposal) { cost_value = 4 distribution { type = triangular low = 2 high = 22 nominal = 4 } } + item(cost_SNF_cond) { cost_value = 100 distribution { type = triangular low = 50 high = 130 nominal = 100 } } + item(cost_geologic_disposal) { cost_value = 550 distribution { type = triangular low = 265 high = 801 nominal = 550 } } + } + + fuels { + fuel(UOX) { + avg_discharge_burnup = 50 num_batches = 3 avg_specific_power = 1 + fresh_fuel { fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } EU { fuel_fraction = 1 costs = [cost_U] } } + spent_fuel { costs = [cost_SNF_cond cost_geologic_disposal] } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] NU_costs = [cost_U] DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/src/etc/templates/necost/om_costs/cost_item.tmpl b/src/etc/templates/necost/om_costs/cost_item.tmpl new file mode 100644 index 0000000..271fdf7 --- /dev/null +++ b/src/etc/templates/necost/om_costs/cost_item.tmpl @@ -0,0 +1,2 @@ +item(OM_per_year) { cost_type = fixed nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } } diff --git a/src/etc/templates/necost/om_costs/om_costs.tmpl b/src/etc/templates/necost/om_costs/om_costs.tmpl new file mode 100644 index 0000000..38ed83b --- /dev/null +++ b/src/etc/templates/necost/om_costs/om_costs.tmpl @@ -0,0 +1,6 @@ +om_costs { + item(OM_per_year) { cost_type = fixed nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } } + item(OM_per_MWh) { cost_type = variable nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } } +} diff --git a/src/etc/templates/necost/reactors/capital_costs.tmpl b/src/etc/templates/necost/reactors/capital_costs.tmpl new file mode 100644 index 0000000..fc3c3dd --- /dev/null +++ b/src/etc/templates/necost/reactors/capital_costs.tmpl @@ -0,0 +1,3 @@ +capital_costs { + scaling_factor(capital_cost) = 1 +} diff --git a/src/etc/templates/necost/reactors/fuel_reloads.tmpl b/src/etc/templates/necost/reactors/fuel_reloads.tmpl new file mode 100644 index 0000000..1e2bf59 --- /dev/null +++ b/src/etc/templates/necost/reactors/fuel_reloads.tmpl @@ -0,0 +1 @@ +fuel_reloads { quantity(UOX) { heavy_metal_mass = 88.23 fuel_fraction = 1 } } diff --git a/src/etc/templates/necost/reactors/fuel_reloads_quantity.tmpl b/src/etc/templates/necost/reactors/fuel_reloads_quantity.tmpl new file mode 100644 index 0000000..3385279 --- /dev/null +++ b/src/etc/templates/necost/reactors/fuel_reloads_quantity.tmpl @@ -0,0 +1 @@ +quantity(UOX) { heavy_metal_mass = 88.23 fuel_fraction = 1 } diff --git a/src/etc/templates/necost/reactors/om_costs.tmpl b/src/etc/templates/necost/reactors/om_costs.tmpl new file mode 100644 index 0000000..2a8daf9 --- /dev/null +++ b/src/etc/templates/necost/reactors/om_costs.tmpl @@ -0,0 +1 @@ +om_costs { scaling_factor(OM_per_year) = 1 scaling_factor(OM_per_MWh) = 1 } diff --git a/src/etc/templates/necost/reactors/power_level.tmpl b/src/etc/templates/necost/reactors/power_level.tmpl new file mode 100644 index 0000000..dd8c049 --- /dev/null +++ b/src/etc/templates/necost/reactors/power_level.tmpl @@ -0,0 +1 @@ +power_level { reference_thermal = 3.0E9 net_thermal_efficiency = 33 } diff --git a/src/etc/templates/necost/reactors/reactors.tmpl b/src/etc/templates/necost/reactors/reactors.tmpl new file mode 100644 index 0000000..9fd18b8 --- /dev/null +++ b/src/etc/templates/necost/reactors/reactors.tmpl @@ -0,0 +1,9 @@ +reactors { + reactor(PWR_UOX) { + capacity_factor = 0.9 cycle_length = 1.5 lifetime_years = 60 + power_level { reference_thermal = 3.0E9 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { scaling_factor(OM_per_year) = 1 scaling_factor(OM_per_MWh) = 1 } + fuel_reloads { quantity(UOX) { heavy_metal_mass = 88.23 fuel_fraction = 1 } } + } +} diff --git a/src/etc/templates/necost/reactors/scaling_factor.tmpl b/src/etc/templates/necost/reactors/scaling_factor.tmpl new file mode 100644 index 0000000..9029680 --- /dev/null +++ b/src/etc/templates/necost/reactors/scaling_factor.tmpl @@ -0,0 +1 @@ +scaling_factor(capital_cost) = 1 diff --git a/src/etc/templates/necost/reactors/single_reactor.tmpl b/src/etc/templates/necost/reactors/single_reactor.tmpl new file mode 100644 index 0000000..aca8814 --- /dev/null +++ b/src/etc/templates/necost/reactors/single_reactor.tmpl @@ -0,0 +1,7 @@ +reactor(PWR_UOX) { + capacity_factor = 0.9 cycle_length = 1.5 lifetime_years = 60 + power_level { reference_thermal = 3.0E9 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { scaling_factor(OM_per_year) = 1 scaling_factor(OM_per_MWh) = 1 } + fuel_reloads { quantity(UOX) { heavy_metal_mass = 88.23 fuel_fraction = 1 } } +} diff --git a/src/etc/templates/newCOA.tmpl b/src/etc/templates/newCOA.tmpl deleted file mode 100644 index d139712..0000000 --- a/src/etc/templates/newCOA.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -newCOA ( ID ) { - descr = "DESCR" -} diff --git a/src/etc/templates/om_costs/cost_item.tmpl b/src/etc/templates/om_costs/cost_item.tmpl deleted file mode 100644 index f7c5072..0000000 --- a/src/etc/templates/om_costs/cost_item.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -item( om_cost_item_id ) { - cost_type = single - expenditure_time = 1 - nominal_value = 1 -} diff --git a/src/etc/templates/om_costs/om_costs.tmpl b/src/etc/templates/om_costs/om_costs.tmpl deleted file mode 100644 index f646205..0000000 --- a/src/etc/templates/om_costs/om_costs.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -om_costs { - item( om_cost_item_id ) { - cost_type = single - expenditure_time = 1 - nominal_value = 1 - } - } -} diff --git a/src/etc/templates/power.tmpl b/src/etc/templates/power.tmpl deleted file mode 100644 index 354a758..0000000 --- a/src/etc/templates/power.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -power ( ID ) { - value = VALUE - unit = UNIT -} diff --git a/src/etc/templates/reactors/capital_costs.tmpl b/src/etc/templates/reactors/capital_costs.tmpl deleted file mode 100644 index c53fecb..0000000 --- a/src/etc/templates/reactors/capital_costs.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -capital_costs { - scaling_factor( capital_cost_item_id ) = 1 -} diff --git a/src/etc/templates/reactors/fuel_reloads.tmpl b/src/etc/templates/reactors/fuel_reloads.tmpl deleted file mode 100644 index 8a31637..0000000 --- a/src/etc/templates/reactors/fuel_reloads.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -fuel_reloads { - quantity( fuel_id ) { heavy_metal_mass = 1 } -} diff --git a/src/etc/templates/reactors/fuel_reloads_quantity.tmpl b/src/etc/templates/reactors/fuel_reloads_quantity.tmpl deleted file mode 100644 index 94f3bf0..0000000 --- a/src/etc/templates/reactors/fuel_reloads_quantity.tmpl +++ /dev/null @@ -1 +0,0 @@ -quantity( fuel_id ) { heavy_metal_mass = 1 } diff --git a/src/etc/templates/reactors/om_costs.tmpl b/src/etc/templates/reactors/om_costs.tmpl deleted file mode 100644 index 136c168..0000000 --- a/src/etc/templates/reactors/om_costs.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -om_costs { - scaling_factor( om_cost_item_id ) = 1 -} diff --git a/src/etc/templates/reactors/power_level.tmpl b/src/etc/templates/reactors/power_level.tmpl deleted file mode 100644 index 2f857fd..0000000 --- a/src/etc/templates/reactors/power_level.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -power_level { - reference_net_electrical = 1 - net_thermal_efficiency = 1 -} \ No newline at end of file diff --git a/src/etc/templates/reactors/reactors.tmpl b/src/etc/templates/reactors/reactors.tmpl deleted file mode 100644 index 9e73d2a..0000000 --- a/src/etc/templates/reactors/reactors.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -reactors { - reactor( reactor_id) { - capacity_factor = 1 - cycle_length = 1 - lifetime_years = 1 - - power_level { - reference_net_electrical = 1 - net_thermal_efficiency = 1 - } - - capital_costs { - scaling_factor( capital_cost_item_id ) = 1 - } - - om_costs { - scaling_factor( om_cost_item_id ) = 1 - } - - fuel_reloads { - quantity( fuel_id ) { heavy_metal_mass = 1 } - } - } -} diff --git a/src/etc/templates/reactors/scaling_factor.tmpl b/src/etc/templates/reactors/scaling_factor.tmpl deleted file mode 100644 index c50abbb..0000000 --- a/src/etc/templates/reactors/scaling_factor.tmpl +++ /dev/null @@ -1 +0,0 @@ -scaling_factor( cost_item_id ) = 1 diff --git a/src/etc/templates/reactors/single_reactor.tmpl b/src/etc/templates/reactors/single_reactor.tmpl deleted file mode 100644 index 644283e..0000000 --- a/src/etc/templates/reactors/single_reactor.tmpl +++ /dev/null @@ -1,22 +0,0 @@ -reactor( reactor_id) { - capacity_factor = 1 - cycle_length = 1 - lifetime_years = 1 - - power_level { - reference_net_electrical = 1 - net_thermal_efficiency = 1 - } - - capital_costs { - scaling_factor( capital_cost_item_id ) = 1 - } - - om_costs { - scaling_factor( om_cost_item_id ) = 1 - } - - fuel_reloads { - quantity( fuel_id ) { heavy_metal_mass = 1 } - } -} diff --git a/src/etc/templates/ref_model.tmpl b/src/etc/templates/ref_model.tmpl deleted file mode 100644 index f670028..0000000 --- a/src/etc/templates/ref_model.tmpl +++ /dev/null @@ -1 +0,0 @@ -ref_model = REF_MODEL diff --git a/src/etc/templates/total_cost.tmpl b/src/etc/templates/total_cost.tmpl deleted file mode 100644 index 5f67cb3..0000000 --- a/src/etc/templates/total_cost.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -total_cost { - value = VALUE - unit = UNIT -} diff --git a/src/etc/templates/var.tmpl b/src/etc/templates/var.tmpl deleted file mode 100644 index 7924ddb..0000000 --- a/src/etc/templates/var.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -var ( ID ) { - value = VALUE - unit = UNIT -} diff --git a/src/iat/api.py b/src/iat/api.py index 7c2b271..b96440c 100644 --- a/src/iat/api.py +++ b/src/iat/api.py @@ -479,7 +479,17 @@ def _summary_row(code: str, title: str, level: int, df: pd.DataFrame) -> dict[st "COA": code, "Level": level, "Title": title, + "Original Equipment Cost": float(df["Original Equipment Cost"].sum()), + "Original Material Cost": float(df["Original Material Cost"].sum()), + "Original Labor Cost": float(df["Original Labor Cost"].sum()), + "Original Land Cost": float(df["Original Land Cost"].sum()), + "Original Catch-All Cost": float(df["Original Catch-All Cost"].sum()), "Original Total Cost": original, + "Adjusted Equipment Cost": float(df["Adjusted Factory Equipment Cost"].sum()), + "Adjusted Material Cost": float(df["Adjusted Site Material Cost"].sum()), + "Adjusted Labor Cost": float(df["Adjusted Site Labor Cost"].sum()), + "Adjusted Land Cost": float(df["Adjusted Land Cost"].sum()), + "Adjusted Catch-All Cost": float(df["Adjusted Catch-All Cost"].sum()), "Adjusted Total Cost": adjusted, "Difference": adjusted - original, "Adjustment Ratio": adjusted / original if original else 0.0, diff --git a/src/input_processor.py b/src/input_processor.py index 485d28c..2315681 100644 --- a/src/input_processor.py +++ b/src/input_processor.py @@ -132,15 +132,22 @@ def parse_son_input(input_path: str, necost_path: str) -> Dict: xml_dict = xml_tree_to_dict(ElementTree.fromstring(xml_str)) result = xml_dict["document"]["necost"] return { - "construction_interest_rate": float(getval(result["construction_interest_rate"])), - "operations_interest_rate": float(getval(result["operations_interest_rate"])), - "sample_size": int(getval(result["sample_size"])), - "fuel_cycles": parse_list_of_items(result["fuel_cycles"]["cycle"], parse_fuel_cycles), - "reactors": parse_list_of_items(result["reactors"]["reactor"], parse_reactor), - "capital_costs": parse_list_of_items(result["capital_costs"]["item"], parse_capital_cost_items), - "om_costs": parse_list_of_items(result["om_costs"]["item"], parse_om_cost_items), - "fuel_costs": parse_list_of_items(result["fuel_costs"]["item"], parse_fuel_cost_items), - "fuels": parse_list_of_items(result["fuels"]["fuel"], parse_fuels), + "construction_interest_rate": float(get_optional_val(result, "construction_interest_rate", 0.05)), + "operations_interest_rate": float(get_optional_val(result, "operations_interest_rate", 0.05)), + "sample_size": int(float(get_optional_val(result, "sample_size", 40000))), + "accert_coupling": parse_accert_coupling(result.get("accert_coupling")), + "fuel_cycles": parse_list_of_items(result["fuel_cycles"]["cycle"], parse_fuel_cycles) + if result.get("fuel_cycles") and result["fuel_cycles"].get("cycle") else [], + "reactors": parse_list_of_items(result["reactors"]["reactor"], parse_reactor) + if result.get("reactors") and result["reactors"].get("reactor") else [], + "capital_costs": parse_list_of_items(result["capital_costs"]["item"], parse_capital_cost_items) + if result.get("capital_costs") and result["capital_costs"].get("item") else [], + "om_costs": parse_list_of_items(result["om_costs"]["item"], parse_om_cost_items) + if result.get("om_costs") and result["om_costs"].get("item") else [], + "fuel_costs": parse_list_of_items(result["fuel_costs"]["item"], parse_fuel_cost_items) + if result.get("fuel_costs") and result["fuel_costs"].get("item") else [], + "fuels": parse_list_of_items(result["fuels"]["fuel"], parse_fuels) + if result.get("fuels") and result["fuels"].get("fuel") else [], } @@ -187,6 +194,27 @@ def getval(x: Dict) -> str: return x["value"]["#text"] +def get_optional_val(parent: Dict, key: str, default=None): + if not parent or key not in parent: + return default + value = getval(parent[key]) + if isinstance(value, str) and len(value) >= 2 and value[0] == value[-1] == '"': + return value[1:-1] + return value + + +def parse_accert_coupling(coupling: Dict): + if not coupling: + return None + return { + "accert_input": get_optional_val(coupling, "accert_input"), + "accert_post_csv": get_optional_val(coupling, "accert_post_csv"), + "capital_cost_id": get_optional_val(coupling, "capital_cost_id", "capital_cost"), + "occ_metric": get_optional_val(coupling, "occ_metric", "total_OCC"), + "uncertainty_fraction": float(get_optional_val(coupling, "uncertainty_fraction", 0.0)), + } + + def parse_fuel_cycles(cycle: Dict): """ Parse fuel cycles data from a dictionary representation. @@ -209,8 +237,12 @@ def parse_fuel_cycles(cycle: Dict): "reactors": parse_list_of_items( cycle["reactor"], lambda x: { "reactor": x["id"]["#text"], - "fleet_capacity": float(getval(x["fleet_capacity"])), - "fleet_energy": None if "fleet_energy" not in x else float(getval(x["fleet_energy"])) + "fleet_capacity": None + if "fleet_capacity" not in x + else float(getval(x["fleet_capacity"])), + "fleet_energy": None if "fleet_energy" not in x else float(getval(x["fleet_energy"])), + "energy_fraction": None if "energy_fraction" not in x else float(getval(x["energy_fraction"])), + "mass_fraction": None if "mass_fraction" not in x else float(getval(x["mass_fraction"])), } ) } @@ -273,8 +305,8 @@ def parse_reactor(reactor: Dict): "reference_thermal": reference_thermal, }, "capacity_factor": float(getval(reactor["capacity_factor"])), - "cycle_length": float(getval(reactor["capacity_factor"])), - "lifetime_years": float(getval(reactor["capacity_factor"])), + "cycle_length": float(getval(reactor["cycle_length"])), + "lifetime_years": float(getval(reactor["lifetime_years"])), "capital_costs": capital_costs, "om_costs": om_costs, "fuel_reloads": fuel_reloads diff --git a/src/necost/__init__.py b/src/necost/__init__.py index 49867b8..a209895 100644 --- a/src/necost/__init__.py +++ b/src/necost/__init__.py @@ -77,11 +77,10 @@ def __init__( self.data["outage_duration_uprates"] *= 30.48 def run(self): - self.data["HM_mass_direct_spec"].mask( - cond=self.data["HM_mass_direct_spec"] <= 0, - other=self.nrods_core * self.data["ass_length"] * np.pi * (self.data["fuel_D"] / 2) ** 2 * ( - self.data["fuel_density"] * self.data["HM_weight_percent"]), - inplace=True + self.data["HM_mass_direct_spec"] = self.data["HM_mass_direct_spec"].mask( + self.data["HM_mass_direct_spec"] <= 0, + self.nrods_core * self.data["ass_length"] * np.pi * (self.data["fuel_D"] / 2) ** 2 * ( + self.data["fuel_density"] * self.data["HM_weight_percent"]) ) # reference core specific power W/gHM. mass_hm_core_ref = self.number_rods_ref * self.l_h_ref * np.pi * ( diff --git a/src/necost/monte_carlo_sampler.py b/src/necost/monte_carlo_sampler.py index fdb9742..4f3a1df 100644 --- a/src/necost/monte_carlo_sampler.py +++ b/src/necost/monte_carlo_sampler.py @@ -45,6 +45,9 @@ def generate_monte_carlo_samples( # https://en.wikipedia.org/wiki/Triangular_distribution#Generating_triangular-distributed_random_variates elif values["distribution"] == 1: low, mode, high = values["low"], values["nominal"], values["high"] + if high == low: + monte_carlo_results[idx, :] = mode + continue u = np.random.rand(sampling_amount) # The left area of the triangular distribution area1 = low + np.sqrt(u * (high - low) * (mode - low)) diff --git a/src/necostmain.py b/src/necostmain.py index 7cbb129..ab756e5 100755 --- a/src/necostmain.py +++ b/src/necostmain.py @@ -1,6 +1,9 @@ import os import sys import json +import argparse +import subprocess +from pathlib import Path import pandas as pd from input_processor import parse_son_input @@ -35,6 +38,22 @@ } # Adjust the function to update named rows +def _distribution_code(distribution): + if distribution == "triangular": + return 1 + if distribution == "uniform": + return 2 + return 0 + + +def _apply_distribution(default_inputs, column, item): + dist_code = _distribution_code(item.get("distribution")) + default_inputs.loc["low", column] = float(item.get("min", item.get("cost_value", 0))) + default_inputs.loc["nominal", column] = float(item.get("nominal", item.get("cost_value", 0))) + default_inputs.loc["high", column] = float(item.get("max", item.get("cost_value", 0))) + default_inputs.loc["distribution", column] = dist_code + + def update_default_inputs_reactor(default_inputs, res, mapping): for reactor in res.get("reactors", []): for key, column in mapping.items(): @@ -67,20 +86,10 @@ def update_default_inputs_reactor(default_inputs, res, mapping): if isinstance(column, dict): for key, sub_column in column.items(): if matched_entry and key == matched_entry["id"]: - dist = matched_entry["distribution"] - if dist == "triangular": - default_inputs.loc["low",sub_column] = float(matched_entry.get("min", 0)) - default_inputs.loc["nominal",sub_column] = float(matched_entry.get("nominal", 0)) - default_inputs.loc["high",sub_column] = float(matched_entry.get("max", 0)) - default_inputs.loc["distribution",sub_column] = 1 + _apply_distribution(default_inputs, sub_column, matched_entry) elif matched_entry and "distribution" in matched_entry: - dist = matched_entry["distribution"] - if dist == "triangular": - default_inputs.loc["low",column] = float(matched_entry.get("min", 0)) # Low - default_inputs.loc["nominal",column] = float(matched_entry.get("nominal", 0)) # Nominal - default_inputs.loc["high",column] = float(matched_entry.get("max", 0)) # High - default_inputs.loc["distribution",column] = 1 # Triangular Distribution + _apply_distribution(default_inputs, column, matched_entry) elif value is not None: # Handle standard fields without distribution default_inputs.loc["low",column] = value # Low default_inputs.loc["nominal",column] = value # Nominal @@ -89,12 +98,8 @@ def update_default_inputs_reactor(default_inputs, res, mapping): for fuel_cost in res.get("fuel_costs", []): fuel_cost_id = fuel_cost["id"] - dist = fuel_cost["distribution"] - if dist == "triangular": - default_inputs.loc["low", fuel_cost_id] = float(fuel_cost.get("min", 0)) - default_inputs.loc["nominal", fuel_cost_id] = float(fuel_cost.get("nominal", 0)) - default_inputs.loc["high", fuel_cost_id] = float(fuel_cost.get("max", 0)) - default_inputs.loc["distribution", fuel_cost_id] = 1 + if fuel_cost_id in default_inputs.columns: + _apply_distribution(default_inputs, fuel_cost_id, fuel_cost) lead_time_id = mapping["fuel_costs_lead_time"].get(fuel_cost_id) if lead_time_id: lead_time = float(fuel_cost.get("lead_time", 0)) @@ -163,60 +168,267 @@ def update_default_inputs_reactor(default_inputs, res, mapping): -# Apply the enhanced update function +def _input_dir(input_path): + return Path(input_path).resolve().parent +def _resolve_path(path, base_dir): + if not path: + return None + candidate = Path(path) + if candidate.is_absolute(): + return candidate + return Path(base_dir, candidate).resolve() -if __name__ == "__main__": + +def _read_accert_occ_per_kw(post_csv, metric="total_OCC"): + post = pd.read_csv(post_csv) + row = post.loc[post["metric"].astype(str).eq(metric)] + if row.empty: + raise ValueError(f"Could not find ACCERT post-process metric '{metric}' in {post_csv}") + if "value_2024_dollar_per_kw" in row.columns and pd.notna(row["value_2024_dollar_per_kw"].iloc[0]): + return float(row["value_2024_dollar_per_kw"].iloc[0]) + if "value_dollar_per_kw" in row.columns and pd.notna(row["value_dollar_per_kw"].iloc[0]): + return float(row["value_dollar_per_kw"].iloc[0]) + raise ValueError(f"ACCERT post-process file {post_csv} does not include an OCC $/kW column") + + +def _run_accert(input_path, output_dir): + main_path = Path(__file__).resolve().parent / "Main.py" + before = {p.resolve() for p in Path(output_dir).glob("*_post_*.csv")} + subprocess.run( + [sys.executable, str(main_path), "-i", str(input_path)], + cwd=output_dir, + check=True, + ) + candidates = [p for p in Path(output_dir).glob("*_post_*.csv") if p.resolve() not in before] + if not candidates: + candidates = list(Path(output_dir).glob("*_post_*.csv")) + if not candidates: + raise FileNotFoundError("ACCERT run did not produce a *_post_*.csv file") + return max(candidates, key=lambda p: p.stat().st_mtime) + + +def _apply_accert_coupling(res, input_path, output_dir): + coupling = res.get("accert_coupling") + if not coupling: + return None + + base_dir = _input_dir(input_path) + post_csv = _resolve_path(coupling.get("accert_post_csv"), base_dir) + if post_csv is None: + accert_input = _resolve_path(coupling.get("accert_input"), base_dir) + if accert_input is None: + raise ValueError("accert_coupling requires either accert_input or accert_post_csv") + post_csv = _run_accert(accert_input, output_dir) + + occ_metric = coupling.get("occ_metric", "total_OCC") + occ_per_kw = _read_accert_occ_per_kw(post_csv, metric=occ_metric) + uncertainty = float(coupling.get("uncertainty_fraction", 0.0) or 0.0) + cost_id = coupling.get("capital_cost_id", "capital_cost") + low = occ_per_kw * (1 - uncertainty) + high = occ_per_kw * (1 + uncertainty) + + matched = False + for item in res.get("capital_costs", []): + if item.get("id") == cost_id: + item.update({ + "distribution": "triangular", + "min": low, + "nominal": occ_per_kw, + "max": high, + }) + matched = True + if not matched: + res.setdefault("capital_costs", []).append({ + "id": cost_id, + "cost_type": "s_curve", + "expenditure_time": 5, + "distribution": "triangular", + "min": low, + "nominal": occ_per_kw, + "max": high, + }) + + return { + "accert_post_csv": str(post_csv), + "capital_cost_id": cost_id, + "occ_metric": occ_metric, + "occ_2024_dollar_per_kw": occ_per_kw, + } + + +def _reactor_weight_map(res): + weights = {} + for cycle in res.get("fuel_cycles", []): + for reactor in cycle.get("reactors", []): + reactor_id = reactor["reactor"] + if reactor.get("fleet_energy") is not None: + weights[reactor_id] = float(reactor["fleet_energy"]) + elif reactor.get("energy_fraction") is not None: + weights[reactor_id] = float(reactor["energy_fraction"]) + elif reactor.get("mass_fraction") is not None: + weights[reactor_id] = float(reactor["mass_fraction"]) + else: + weights[reactor_id] = float(reactor.get("fleet_capacity") or 1.0) + return weights + + +def _reference_capacity_mwe(reactor): + power_level = reactor.get("power_level") or {} + if power_level.get("reference_net_electrical") is not None: + return float(power_level["reference_net_electrical"]) / 1e6 + if power_level.get("reference_thermal") is None: + return None + efficiency = float(power_level.get("net_thermal_efficiency") or 0.0) + return float(power_level["reference_thermal"]) * efficiency / 100.0 / 1e6 + + +def _validate_cycle_weight_inputs(res, tolerance=1e-3): + reactors_by_id = {reactor["id"]: reactor for reactor in res.get("reactors", [])} + for cycle in res.get("fuel_cycles", []): + for cycle_reactor in cycle.get("reactors", []): + if ( + cycle_reactor.get("fleet_capacity") is None + or ( + cycle_reactor.get("energy_fraction") is None + and cycle_reactor.get("mass_fraction") is None + ) + ): + continue + + reactor_id = cycle_reactor["reactor"] + expected = _reference_capacity_mwe(reactors_by_id.get(reactor_id, {})) + if expected is None or expected == 0: + continue + + supplied = float(cycle_reactor["fleet_capacity"]) + rel_error = abs(supplied - expected) / expected + if rel_error > tolerance: + raise ValueError( + f"fleet_capacity for {reactor_id} is {supplied:g} MWe, but the " + f"reactor power block implies {expected:g} MWe. If an " + "energy_fraction or mass_fraction is provided, fleet_capacity is " + "optional; omit it unless it is the physical MWe capacity." + ) + + +def _default_inputs(code_folder): + return pd.read_csv(f"{code_folder}/necost/default_input.csv").set_index("var_name").transpose() + + +def _run_single_reactor(res, reactor, code_folder, discount_rate, sample_size): + default_inputs = _default_inputs(code_folder) + fuel_ids = {reload["id"] for reload in (reactor.get("fuel_reloads") or [])} + fuels = [fuel for fuel in res.get("fuels", []) if not fuel_ids or fuel.get("id") in fuel_ids] + reactor_res = {**res, "reactors": [reactor], "fuels": fuels} + default_inputs = update_default_inputs_reactor(default_inputs, reactor_res, mapping_with_distribution) + monte_carlo_data = generate_monte_carlo_samples( + params_data=default_inputs, + sampling_amount=sample_size, + discount_rate=discount_rate * 100, + ) + results = NECost(data=monte_carlo_data, **default_params).run() + return results.drop(columns=["HM_mass_direct_spec", "t_cyc", "L_direct_spec"], errors="ignore") + + +def _weighted_cycle_results(reactor_results, weights): + if len(reactor_results) == 1: + reactor_id, results = next(iter(reactor_results.items())) + out = results.copy() + out.insert(0, "reactor_id", reactor_id) + return out + + weight_sum = sum(weights.get(reactor_id, 1.0) for reactor_id in reactor_results) + if weight_sum <= 0: + weight_sum = float(len(reactor_results)) + combined = None + for reactor_id, results in reactor_results.items(): + frac = weights.get(reactor_id, 1.0) / weight_sum + numeric = results[["Capital", "LCOE", "O&M", "FCC"]] * frac + combined = numeric if combined is None else combined.add(numeric, fill_value=0) + combined.insert(0, "reactor_id", "weighted_cycle") + return combined + + +def run_necost(input_path, output_dir=None, make_plot=True): code_folder = os.path.dirname(os.path.abspath(__file__)) necost_path = os.path.abspath(os.path.join(code_folder, os.pardir)) - user_input = sys.argv[2] - - if os.path.exists(user_input): - input_path = os.path.abspath(user_input) - else: - print('NE-COST did not find the input file {}'.format(user_input)) - raise SystemExit + input_path = Path(input_path).resolve() + output_dir = Path(output_dir or os.getcwd()).resolve() + output_dir.mkdir(parents=True, exist_ok=True) - # Parse the input (str->dict) - res = parse_son_input(input_path, necost_path) - # read the default input file - default_inputs = pd.read_csv(f"{code_folder}/necost/default_input.csv").set_index("var_name").transpose() - # default_inputs= update_transposed_dataframe(default_inputs, res, key_to_var_name) - default_inputs = update_default_inputs_reactor(default_inputs, res, mapping_with_distribution) - # save new default inputs to a file - default_inputs.to_csv("default_inputs_new.csv") + res = parse_son_input(str(input_path), necost_path) + _validate_cycle_weight_inputs(res) + coupling_summary = _apply_accert_coupling(res, input_path, output_dir) discount_rate = res.get("operations_interest_rate", 0.05) sample_size = res.get("sample_size", 40000) print(f"Discount rate: {discount_rate}") print(f"Sample size: {sample_size}") - monte_carlo_data = generate_monte_carlo_samples( - params_data=default_inputs, - sampling_amount=sample_size, - discount_rate=discount_rate*100 + + reactor_results = {} + for reactor in res.get("reactors", []): + reactor_results[reactor["id"]] = _run_single_reactor( + res, + reactor, + code_folder, + discount_rate, + sample_size, + ) + weights = _reactor_weight_map(res) + results = _weighted_cycle_results(reactor_results, weights) + reactor_detail = pd.concat( + [df.assign(reactor_id=reactor_id) for reactor_id, df in reactor_results.items()], + ignore_index=True, ) - necost_cal = NECost(data=monte_carlo_data, **default_params) - # save the results to a file - results = necost_cal.run() - # plot the results the results is a dataframe, plot it - # remove HM_mass_direct_spec t_cyc L_direct_spec in results - results = results.drop(columns=['HM_mass_direct_spec','t_cyc','L_direct_spec']) - import matplotlib.pyplot as plt - # plot is like a KDE plot fill in the gaps - bin_num = int(sample_size/10) - - results.plot(kind='hist', bins=bin_num, alpha=0.5) - plt.title("NECOST Results") - plt.xlabel("levelized cost ($/MWh)") - plt.show() - # save the plot to a file - plt.savefig("NECOST_results.png") - - # print the results and save them to a file - # the results is a dataframe, save it to a file - results.to_csv("NECOST_results.csv") - # Save output to file (for verification only) - json_formatted_str = json.dumps(res, indent=4) - with open("output.json", "w") as f: - f.write(json_formatted_str) - + + results_csv = output_dir / "NECOST_results.csv" + detail_csv = output_dir / "NECOST_reactor_results.csv" + results.to_csv(results_csv, index=False) + reactor_detail.to_csv(detail_csv, index=False) + + if make_plot: + mpl_config = output_dir / ".mplconfig" + mpl_config.mkdir(exist_ok=True) + os.environ.setdefault("MPLCONFIGDIR", str(mpl_config)) + import matplotlib + matplotlib.use("Agg") + import matplotlib.pyplot as plt + + plot_data = results.drop(columns=["reactor_id"], errors="ignore") + bin_num = max(10, int(sample_size / 10)) + plot_data.plot(kind="hist", bins=bin_num, alpha=0.5) + plt.title("NECOST Results") + plt.xlabel("levelized cost ($/MWh)") + plt.tight_layout() + plt.savefig(output_dir / "NECOST_results.png") + plt.close() + + with open(output_dir / "output.json", "w") as f: + json.dump({"input": res, "accert_coupling": coupling_summary}, f, indent=4) + + print(f"Saved NEcost results to {results_csv}") + if len(reactor_results) > 1: + print(f"Saved per-reactor NEcost details to {detail_csv}") + if coupling_summary: + print( + "ACCERT OCC coupling: " + f"{coupling_summary['occ_2024_dollar_per_kw']:.2f} $/kWe " + f"from {coupling_summary['accert_post_csv']}" + ) + return results + + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Run NEcost from a SON input file.") + parser.add_argument("-i", "--input", required=True, help="NEcost SON input file") + parser.add_argument("-o", "--output-dir", default=os.getcwd(), help="Directory for NEcost outputs") + parser.add_argument("--no-plot", action="store_true", help="Skip NECOST_results.png generation") + args = parser.parse_args() + + if os.path.exists(args.input): + run_necost(args.input, output_dir=args.output_dir, make_plot=not args.no_plot) + else: + print('NE-COST did not find the input file {}'.format(args.input)) + raise SystemExit diff --git a/src/post_process_accert.py b/src/post_process_accert.py new file mode 100644 index 0000000..e6b507e --- /dev/null +++ b/src/post_process_accert.py @@ -0,0 +1,147 @@ +from dataclasses import dataclass +from typing import Dict, List, Optional + +import pandas as pd +from prettytable import PrettyTable + +from cost_escalation import TARGET_DOLLAR_YEAR + + +@dataclass(frozen=True) +class AccertOCCResults: + total_calculated_direct_cost: float + electric_power_mw: Optional[float] = None + escalation_factor: float = 1.0 + direct_cost_fraction: float = 1.0 + indirect_cost_factor: float = 0.609 + owner_cost_fraction: float = 0.2 + + @property + def total_direct_cost(self) -> float: + return self.total_calculated_direct_cost / self.direct_cost_fraction + + @property + def total_indirect_costs(self) -> float: + return self.total_calculated_direct_cost * self.indirect_cost_factor / self.direct_cost_fraction + + @property + def total_cost_without_owner(self) -> float: + return self.total_calculated_direct_cost * (1 + self.indirect_cost_factor) / self.direct_cost_fraction + + @property + def owner_cost(self) -> float: + return self.total_cost_without_owner * self.owner_cost_fraction + + @property + def total_OCC(self) -> float: + return self.total_cost_without_owner * (1 + self.owner_cost_fraction) + + def _per_kw(self, value: float) -> float: + if self.electric_power_mw is None or self.electric_power_mw <= 0: + return None + return value / (self.electric_power_mw * 1000) + + def _target_year_value(self, value: float) -> float: + return value * self.escalation_factor + + def as_dict(self) -> Dict[str, float]: + return { + "total_calculated_direct_cost": self.total_calculated_direct_cost, + "total_direct_cost": self.total_direct_cost, + "total_indirect_costs": self.total_indirect_costs, + "total_cost_without_owner": self.total_cost_without_owner, + "owner_cost": self.owner_cost, + "total_OCC": self.total_OCC, + } + + def as_rows(self) -> List[Dict[str, float]]: + return [ + { + "metric": metric, + "value_dollar": value, + "value_million_dollar": value / 1_000_000, + "value_2024_dollar": self._target_year_value(value), + "value_2024_million_dollar": self._target_year_value(value) / 1_000_000, + "value_2024_dollar_per_kw": self._per_kw(self._target_year_value(value)), + } + for metric, value in self.as_dict().items() + ] + + +class AccertPostProcessor: + DIRECT_COST_FRACTIONS = { + "abr1000": 0.834, + "ap1000": 1.0, + "heatpipe": 0.834, + "lfr": 0.834, + "fusion": 1.0, + "lpsr": 1.0, + "pwr12-be": 1.0, + "stellarator": 1.0, + } + + def calculate_occ( + self, + c, + account_table: str, + electric_power_mw: float = None, + ref_model: str = "", + escalation_factor: float = 1.0, + ) -> AccertOCCResults: + account_table = self._validate_table_name(account_table) + c.execute("""SELECT total_cost + FROM {} + WHERE code_of_account = ? + ORDER BY ind + LIMIT 1;""".format(account_table), ("2",)) + row = c.fetchone() + if row is None: + c.execute("""SELECT total_cost + FROM {} + ORDER BY ind + LIMIT 1;""".format(account_table)) + row = c.fetchone() + if row is None: + raise ValueError("Cannot calculate ACCERT OCC because the account table is empty") + return AccertOCCResults( + total_calculated_direct_cost=float(row[0]), + electric_power_mw=float(electric_power_mw) if electric_power_mw is not None else None, + escalation_factor=escalation_factor, + direct_cost_fraction=self.DIRECT_COST_FRACTIONS.get(str(ref_model).lower(), 1.0), + ) + + def print_occ_summary(self, results: AccertOCCResults) -> None: + print(' ACCERT post processing '.center(100, '=')) + print('\n') + table = PrettyTable() + table.field_names = ["Metric", "Reference year ($)", f"{TARGET_DOLLAR_YEAR} ($)", f"{TARGET_DOLLAR_YEAR} ($/kW)"] + for label, key in ( + ("Total calculated direct cost", "total_calculated_direct_cost"), + ("Total direct cost", "total_direct_cost"), + ("Total indirect costs", "total_indirect_costs"), + ("Total cost without owner", "total_cost_without_owner"), + ("Owner cost", "owner_cost"), + ("Total OCC", "total_OCC"), + ): + value = results.as_dict()[key] + target_value = results._target_year_value(value) + per_kw = results._per_kw(target_value) + table.add_row([ + label, + f"{value:,.2f}", + f"{target_value:,.2f}", + f"{per_kw:,.2f}" if per_kw is not None else "N/A", + ]) + print(table) + print('\n') + + def write_occ_csv(self, results: AccertOCCResults, ref_model: str, timestamp: str) -> str: + filename = "{}_post_{}.csv".format(ref_model, timestamp) + pd.DataFrame(results.as_rows()).to_csv(filename, index=False) + print(f"Successfully created CSV file {filename}") + return filename + + def _validate_table_name(self, table_name: str) -> str: + if not table_name or not str(table_name).replace("_", "").isalnum(): + raise ValueError(f"Invalid account table name: {table_name}") + return str(table_name) diff --git a/src/scripts/build_ap1000_from_lpsr.py b/src/scripts/build_ap1000_from_lpsr.py new file mode 100644 index 0000000..d9f3481 --- /dev/null +++ b/src/scripts/build_ap1000_from_lpsr.py @@ -0,0 +1,193 @@ +"""Create AP1000 ACCERT reference tables from the TIMCAT direct-cost structure.""" +from __future__ import annotations + +import argparse +import csv +import sqlite3 +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[2] +DEFAULT_DB = ROOT / "src" / "accertdb.sqlite" +DEFAULT_REF_DIR = ROOT / "tutorial" / "accert" / "ref_tables" + +TARGET_DIRECT_COST = 6673722963.402768347 +REFERENCE_ELECTRIC_POWER = 2234.0 +REFERENCE_THERMAL_POWER = 6800.0 +REFERENCE_REJECTED_POWER = REFERENCE_THERMAL_POWER - REFERENCE_ELECTRIC_POWER +SCALING_REFERENCE_ELECTRIC_POWER = 2288.0 +SCALING_REFERENCE_THERMAL_POWER = 6834.0 +SCALING_REFERENCE_REJECTED_POWER = ( + SCALING_REFERENCE_THERMAL_POWER - SCALING_REFERENCE_ELECTRIC_POWER +) +AP1000_SCALE_VARIABLE = "scale_ap1000" + + +TABLES = { + "account": ("lpsr_account", "ap1000_account", "ap1000_direct_account.csv"), + "cost_element": ("lpsr_cost_element", "ap1000_cost_element", "ap1000_direct_cost_elements.csv"), + "variable": ("lpsr_variable", "ap1000_variable", "ap1000_direct_variables.csv"), + "algorithm": ("lpsr_algorithm", "ap1000_algorithm", "ap1000_direct_algorithms.csv"), +} + + +def _columns(conn: sqlite3.Connection, table_name: str) -> list[str]: + return [row[1] for row in conn.execute(f"PRAGMA table_info({table_name})")] + + +def _scale_factor(conn: sqlite3.Connection) -> float: + row = conn.execute( + "SELECT total_cost FROM lpsr_account WHERE code_of_account = '2'" + ).fetchone() + if row is None or row[0] in (None, 0): + raise ValueError("Could not find a nonzero source account 2 total_cost") + return TARGET_DIRECT_COST / float(row[0]) + + +def _copy_schema(conn: sqlite3.Connection, source_table: str, target_table: str) -> None: + sql = conn.execute( + "SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ?", + (source_table,), + ).fetchone()[0] + conn.execute(f"DROP TABLE IF EXISTS {target_table}") + conn.execute(sql.replace(source_table, target_table, 1)) + + +def _clone_table(conn: sqlite3.Connection, source_table: str, target_table: str) -> None: + columns = _columns(conn, source_table) + column_list = ", ".join(columns) + conn.execute(f"INSERT INTO {target_table} ({column_list}) SELECT {column_list} FROM {source_table}") + + +def _scale_ap1000_tables(conn: sqlite3.Connection, scale: float) -> None: + conn.execute("UPDATE ap1000_account SET total_cost = total_cost * ? WHERE total_cost IS NOT NULL", (scale,)) + conn.execute("UPDATE ap1000_cost_element SET cost_2018 = cost_2018 * ? WHERE cost_2018 IS NOT NULL", (scale,)) + conn.execute( + """ + UPDATE ap1000_cost_element + SET variables = CASE + WHEN variables IS NULL OR TRIM(variables) = '' THEN ? + WHEN INSTR(',' || REPLACE(variables, ' ', '') || ',', ',' || ? || ',') > 0 THEN variables + ELSE variables || ', ' || ? + END + WHERE alg_name = 'category_scale' + AND variables IS NOT NULL + AND TRIM(variables) != '' + """, + (AP1000_SCALE_VARIABLE, AP1000_SCALE_VARIABLE, AP1000_SCALE_VARIABLE), + ) + conn.execute("UPDATE ap1000_account SET review_status = 'Unchanged'") + conn.execute("UPDATE ap1000_cost_element SET updated = 0") + conn.execute("UPDATE ap1000_cost_element SET algno = REPLACE(algno, 'LPSR', 'AP1000') WHERE algno IS NOT NULL") + conn.execute("UPDATE ap1000_cost_element SET source_row_type = REPLACE(source_row_type, 'lpsr', 'ap1000') WHERE source_row_type IS NOT NULL") + conn.execute("UPDATE ap1000_cost_element SET source_row_type = REPLACE(source_row_type, 'LPSR', 'AP1000') WHERE source_row_type IS NOT NULL") + conn.execute("UPDATE ap1000_algorithm SET alg_python = 'AP1000DirectCostFunc' WHERE alg_python = 'LPSRDirectCostFunc'") + conn.execute("UPDATE ap1000_variable SET var_description = REPLACE(var_description, 'LPSR', 'AP1000') WHERE var_description IS NOT NULL") + conn.execute("UPDATE ap1000_variable SET user_input = 0") + conn.execute( + """ + UPDATE ap1000_variable + SET var_need = CASE + WHEN var_need IS NULL OR TRIM(var_need) = '' THEN ? + WHEN INSTR(',' || REPLACE(var_need, ' ', '') || ',', ',' || ? || ',') > 0 THEN var_need + ELSE var_need || ', ' || ? + END + WHERE var_alg = 'category_scale' + AND var_need IS NOT NULL + AND TRIM(var_need) != '' + """, + (AP1000_SCALE_VARIABLE, AP1000_SCALE_VARIABLE, AP1000_SCALE_VARIABLE), + ) + next_ind = conn.execute("SELECT COALESCE(MAX(ind), 0) + 1 FROM ap1000_variable").fetchone()[0] + linked_rows = conn.execute( + """ + SELECT var_name + FROM ap1000_variable + WHERE var_alg = 'category_scale' + AND var_need IS NOT NULL + AND TRIM(var_need) != '' + ORDER BY ind + """ + ).fetchall() + linked_variables = ", ".join(row[0] for row in linked_rows) + conn.execute( + """ + INSERT INTO ap1000_variable + (ind, var_name, var_description, var_value, var_unit, var_alg, var_need, v_linked, user_input) + VALUES (?, ?, ?, ?, ?, NULL, NULL, ?, 0) + """, + ( + next_ind, + AP1000_SCALE_VARIABLE, + "AP1000 reference calibration factor applied to calculated direct cost elements", + scale, + "1", + linked_variables, + ), + ) + conn.execute( + "UPDATE ap1000_variable SET var_value = ? WHERE var_name = 'elec_P'", + (REFERENCE_ELECTRIC_POWER,), + ) + conn.execute( + "UPDATE ap1000_variable SET var_value = ? WHERE var_name = 'rx_P'", + (REFERENCE_THERMAL_POWER,), + ) + conn.execute( + "UPDATE ap1000_variable SET var_value = ? WHERE var_name = 'rej_th_P'", + (REFERENCE_REJECTED_POWER,), + ) + conn.execute( + "UPDATE ap1000_variable SET var_value = ? WHERE var_name = 'ref_elec_P'", + (SCALING_REFERENCE_ELECTRIC_POWER,), + ) + conn.execute( + "UPDATE ap1000_variable SET var_value = ? WHERE var_name = 'ref_rx_P'", + (SCALING_REFERENCE_THERMAL_POWER,), + ) + conn.execute( + "UPDATE ap1000_variable SET var_value = ? WHERE var_name = 'ref_rej_th_P'", + (SCALING_REFERENCE_REJECTED_POWER,), + ) + + +def _write_csv(conn: sqlite3.Connection, table_name: str, path: Path) -> int: + rows = conn.execute(f"SELECT * FROM {table_name} ORDER BY 1").fetchall() + columns = _columns(conn, table_name) + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", newline="", encoding="utf-8") as handle: + writer = csv.writer(handle) + writer.writerow(columns) + writer.writerows(rows) + return len(rows) + + +def build_ap1000_tables(db_path: Path, ref_dir: Path) -> None: + conn = sqlite3.connect(db_path) + try: + scale = _scale_factor(conn) + for _, (source_table, target_table, _) in TABLES.items(): + _copy_schema(conn, source_table, target_table) + _clone_table(conn, source_table, target_table) + _scale_ap1000_tables(conn, scale) + conn.commit() + + for _, (_, target_table, file_name) in TABLES.items(): + count = _write_csv(conn, target_table, ref_dir / file_name) + print(f"Wrote {count} {target_table} rows.") + print(f"AP1000 account 2 direct cost target: {TARGET_DIRECT_COST:.12f}") + print(f"TIMCAT-to-AP1000 scale factor: {scale:.12f}") + finally: + conn.close() + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--db", default=str(DEFAULT_DB)) + parser.add_argument("--ref-dir", default=str(DEFAULT_REF_DIR)) + args = parser.parse_args() + build_ap1000_tables(Path(args.db).resolve(), Path(args.ref_dir).resolve()) + + +if __name__ == "__main__": + main() diff --git a/src/scripts/build_lpsr_accert_tables.py b/src/scripts/build_lpsr_accert_tables.py new file mode 100644 index 0000000..ea55e2b --- /dev/null +++ b/src/scripts/build_lpsr_accert_tables.py @@ -0,0 +1,221 @@ +"""Load LPSR ACCERT reference tables from tutorial/accert/ref_tables.""" +from __future__ import annotations + +import argparse +import csv +import shutil +import sqlite3 +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[2] +DEFAULT_DB = ROOT / "src" / "accertdb.sqlite" +DEFAULT_REF_DIR = ROOT / "tutorial" / "accert" / "ref_tables" +DEFAULT_ALG_SRC = DEFAULT_REF_DIR / "LPSRDirectCostFunc.py" +DEFAULT_ALG_DST = ROOT / "src" / "Algorithm" / "LPSRDirectCostFunc.py" + + +TABLE_SPECS = { + "lpsr_account": { + "file": "lpsr_direct_account.csv", + "columns": [ + ("ind", "INTEGER"), + ("code_of_account", "TEXT NOT NULL"), + ("account_description", "TEXT"), + ("total_cost", "REAL"), + ("level", "INTEGER"), + ("supaccount", "TEXT"), + ("review_status", "TEXT"), + ("prn", "REAL"), + ("gncoa", "TEXT"), + ("gn_level", "INTEGER"), + ("gn_supaccount", "TEXT"), + ("gn_ind", "INTEGER"), + ], + "primary_key": "code_of_account", + }, + "lpsr_cost_element": { + "file": "lpsr_direct_cost_elements.csv", + "columns": [ + ("ind", "INTEGER NOT NULL"), + ("cost_element", "TEXT"), + ("cost_2018", "REAL"), + ("sup_cost_ele", "TEXT"), + ("alg_name", "TEXT"), + ("fun_unit", "TEXT"), + ("variables", "TEXT"), + ("account", "TEXT"), + ("algno", "TEXT"), + ("updated", "INTEGER"), + ("source_row_type", "TEXT"), + ], + "primary_key": "ind", + }, + "lpsr_variable": { + "file": "lpsr_direct_variables.csv", + "columns": [ + ("ind", "INTEGER NOT NULL"), + ("var_name", "TEXT"), + ("var_description", "TEXT"), + ("var_value", "REAL"), + ("var_unit", "TEXT"), + ("var_alg", "TEXT"), + ("var_need", "TEXT"), + ("v_linked", "TEXT"), + ("user_input", "INTEGER"), + ], + "primary_key": "ind", + }, +} + +ALGORITHM_FILE = "lpsr_direct_algorithms.csv" +ALGORITHM_TABLE = "lpsr_algorithm" +ALGORITHM_COLUMNS = [ + ("ind", "INTEGER"), + ("alg_name", "TEXT"), + ("alg_for", "TEXT"), + ("alg_description", "TEXT"), + ("alg_python", "TEXT"), + ("alg_formulation", "TEXT"), + ("alg_units", "TEXT"), + ("variables", "TEXT"), + ("constants", "TEXT"), +] + +INTEGER_COLUMNS = {"ind", "level", "gn_level", "gn_ind", "updated", "user_input"} +REAL_COLUMNS = {"total_cost", "prn", "cost_2017", "cost_2018", "var_value"} + + +def _read_csv(path: Path) -> list[dict[str, str]]: + with path.open(newline="", encoding="utf-8-sig") as handle: + return list(csv.DictReader(handle)) + + +def _coerce(column: str, value: str): + if value is None or value == "": + return None + if column in INTEGER_COLUMNS: + return int(float(value)) + if column in REAL_COLUMNS: + return float(value) + return value + + +def _normalize_row(table_name: str, row: dict[str, str]) -> dict[str, str]: + normalized = dict(row) + if table_name == "lpsr_variable": + # In ACCERT, user_input is a run-time dirty flag. The reference database + # should always start clean; SON inputs set this flag during a run. + normalized["user_input"] = "0" + if table_name == "lpsr_cost_element": + # In ACCERT, updated is a run-time dirty flag. The reference database + # should start clean so only recalculated cost elements are reported. + normalized["updated"] = "0" + return normalized + + +def _create_table_sql(table_name: str, columns: list[tuple[str, str]], primary_key: str) -> str: + column_defs = [f"{name} {kind}" for name, kind in columns] + column_defs.append(f"PRIMARY KEY ({primary_key})") + return f"CREATE TABLE {table_name} ({', '.join(column_defs)})" + + +def _replace_table( + conn: sqlite3.Connection, + table_name: str, + csv_path: Path, + columns: list[tuple[str, str]], + primary_key: str, +) -> int: + conn.execute(f"DROP TABLE IF EXISTS {table_name}") + conn.execute(_create_table_sql(table_name, columns, primary_key)) + + rows = [_normalize_row(table_name, row) for row in _read_csv(csv_path)] + column_names = [name for name, _ in columns] + placeholders = ", ".join("?" for _ in column_names) + conn.executemany( + f"INSERT INTO {table_name} ({', '.join(column_names)}) VALUES ({placeholders})", + [ + tuple(_coerce(column, row.get(column, "")) for column in column_names) + for row in rows + ], + ) + return len(rows) + + +def _replace_algorithms(conn: sqlite3.Connection, ref_dir: Path) -> int: + rows = _read_csv(ref_dir / ALGORITHM_FILE) + conn.execute("DELETE FROM algorithm WHERE alg_python IN ('LPSRFunc', 'LPSRDirectCostFunc')") + conn.execute(f"DROP TABLE IF EXISTS {ALGORITHM_TABLE}") + conn.execute( + f""" + CREATE TABLE {ALGORITHM_TABLE} ( + ind INTEGER, + alg_name TEXT, + alg_for TEXT, + alg_description TEXT, + alg_python TEXT, + alg_formulation TEXT, + alg_units TEXT, + variables TEXT, + constants TEXT, + PRIMARY KEY (ind) + ) + """ + ) + conn.executemany( + f""" + INSERT INTO {ALGORITHM_TABLE} + (ind, alg_name, alg_for, alg_description, alg_python, alg_formulation, alg_units, variables, constants) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + [ + tuple(_coerce(column, row.get(column, "")) for column, _ in ALGORITHM_COLUMNS) + for row in rows + ], + ) + return len(rows) + + +def load_lpsr_tables(db_path: Path, ref_dir: Path, algorithm_source: Path, algorithm_dest: Path) -> None: + conn = sqlite3.connect(db_path) + try: + counts = {} + for table_name, spec in TABLE_SPECS.items(): + counts[table_name] = _replace_table( + conn, + table_name, + ref_dir / spec["file"], + spec["columns"], + spec["primary_key"], + ) + counts[ALGORITHM_TABLE] = _replace_algorithms(conn, ref_dir) + conn.commit() + finally: + conn.close() + + algorithm_dest.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(algorithm_source, algorithm_dest) + for table_name, count in counts.items(): + print(f"Wrote {count} {table_name} rows.") + print(f"Copied {algorithm_source} to {algorithm_dest}.") + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--db", default=str(DEFAULT_DB)) + parser.add_argument("--ref-dir", default=str(DEFAULT_REF_DIR)) + parser.add_argument("--algorithm-source", default=str(DEFAULT_ALG_SRC)) + parser.add_argument("--algorithm-dest", default=str(DEFAULT_ALG_DST)) + args = parser.parse_args() + + load_lpsr_tables( + Path(args.db).resolve(), + Path(args.ref_dir).resolve(), + Path(args.algorithm_source).resolve(), + Path(args.algorithm_dest).resolve(), + ) + + +if __name__ == "__main__": + main() diff --git a/src/scripts/gen_user_defined.py b/src/scripts/gen_user_defined.py index 3a0caf4..33d3866 100644 --- a/src/scripts/gen_user_defined.py +++ b/src/scripts/gen_user_defined.py @@ -573,7 +573,7 @@ def generate_create_table_statement(table_name, columns, primary_key): column_defs.append(column_def) create_stmt += ",\n".join(column_defs) create_stmt += f",\n PRIMARY KEY (`{primary_key}`)\n" - create_stmt += ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;\n" + create_stmt += ");\n" return create_stmt def generate_insert_statement(table_name, df, columns, dtypes): @@ -589,8 +589,7 @@ def generate_insert_statement(table_name, df, columns, dtypes): Returns: - A string containing the INSERT INTO SQL statement. """ - insert_stmt = f"LOCK TABLES `{table_name}` WRITE;\n" - insert_stmt += f"INSERT INTO `{table_name}` ({', '.join([f'`{col}`' for col in columns])}) VALUES \n" + insert_stmt = f"INSERT INTO `{table_name}` ({', '.join([f'`{col}`' for col in columns])}) VALUES \n" values_list = [] for _, row in df.iterrows(): formatted_values = [] @@ -603,7 +602,7 @@ def generate_insert_statement(table_name, df, columns, dtypes): values_list.append(values_str) insert_stmt += ",\n".join(values_list) insert_stmt += ";\n" - insert_stmt += f"UNLOCK TABLES;\n\n" + insert_stmt += "\n" return insert_stmt def generate_user_defined_sql(user_defined_algorithm_path, @@ -699,8 +698,6 @@ def generate_user_defined_sql(user_defined_algorithm_path, # Begin constructing the SQL script sql_script = "" - sql_script += "CREATE DATABASE IF NOT EXISTS `accert_db`;\n" - sql_script += "USE `accert_db`;\n\n" for table_name, table_info in tables.items(): columns, primary_key, df = table_info['columns'], table_info['primary_key'], table_info['data'] @@ -805,4 +802,3 @@ def main(): - diff --git a/src/scripts/run_sql.py b/src/scripts/run_sql.py index 4d83d93..487de52 100644 --- a/src/scripts/run_sql.py +++ b/src/scripts/run_sql.py @@ -1,88 +1,35 @@ -# if user_defined.sql is present -# then connect to the database and execute the sql +"""Execute a SQL script against the ACCERT SQLite database.""" -import os -import sys -import mysql.connector -import configparser +from __future__ import annotations +import argparse +import os +import sqlite3 +from pathlib import Path +def execute_sql_file(db_file: str | os.PathLike[str], sql_file_path: str | os.PathLike[str]) -> None: + sql_path = Path(sql_file_path) + if not sql_path.exists(): + raise FileNotFoundError(f"SQL file not found: {sql_path}") -def execute_sql_file(conn, sql_file_path): - """ - Connects to the MySQL database - """ + conn = sqlite3.connect(db_file) try: - # Establish the connection - connection = conn - - if connection.is_connected(): - print("Connected to MySQL Server") - cursor = connection.cursor() - - # Read the SQL file - with open(sql_file_path, 'r', encoding='utf-8') as sql_file: - sql_commands = sql_file.read() - - # Split the SQL commands by ';' to handle multiple statements - # Note: This simple split may not work for complex SQL files with stored procedures, etc. - sql_commands = sql_commands.strip().split(';') - - for command in sql_commands: - command = command.strip() - if command: - try: - cursor.execute(command) - # If the command is a CREATE or INSERT, commit the changes - if command.upper().startswith('CREATE') or command.upper().startswith('INSERT') or command.upper().startswith('DROP'): - connection.commit() - print(f"Executed: {command.splitlines()[0]}...") - except Error as e: - print(f"Error executing command: {command.splitlines()[0]}...\nError: {e}") - - print("All commands executed successfully.") - - except Error as e: - print(f"Error while connecting to MySQL: {e}") - + conn.executescript(sql_path.read_text(encoding="utf-8")) + conn.commit() + print(f"Executed {sql_path} against {db_file}") finally: - if 'cursor' in locals() and cursor: - cursor.close() - if 'connection' in locals() and connection.is_connected(): - connection.close() - print("MySQL connection is closed.") - + conn.close() -def main(): - - sql_file = "user_defined.sql" - sql_file_path = os.path.join(os.getcwd(), sql_file) - print(f"SQL file path: {sql_file_path}") - # current folder is the folder where this script is located - current_folder = os.path.dirname(os.path.abspath(__file__)) - code_src_folder = os.path.dirname(current_folder) - initfile = os.path.join(code_src_folder, 'install.conf') - ins = configparser.ConfigParser() - ins.read(initfile) - passwd = ins.get("INSTALL","PASSWD") - conn = mysql.connector.connect( - host="localhost", - user="root", - password=passwd, - database="accert_db", - auth_plugin="mysql_native_password" - ) - # conn.commit() - # NOTE: cursor is a class that instantiates objects that can execute MySQL statements - # only commit when you are sure that the transaction is complete - # c = conn.cursor() - execute_sql_file(conn, sql_file_path) +def main() -> None: + code_src_folder = Path(__file__).resolve().parents[1] + parser = argparse.ArgumentParser() + parser.add_argument("sql_file", nargs="?", default="user_defined.sql") + parser.add_argument("--db", default=os.environ.get("ACCERT_SQLITE_DB", str(code_src_folder / "accertdb.sqlite"))) + args = parser.parse_args() + execute_sql_file(args.db, Path.cwd() / args.sql_file) - -if __name__ == '__main__': +if __name__ == "__main__": main() - - diff --git a/src/setup_accert.sh b/src/setup_accert.sh index 0556548..93ef9b0 100755 --- a/src/setup_accert.sh +++ b/src/setup_accert.sh @@ -39,31 +39,28 @@ fi ACCERT_DIR=$(pwd) echo -e "${GREEN}ACCERT_DIR set to: $ACCERT_DIR${NC}" -# 6) Use the pip in conda/bin to install requirement.txt located in the parent folder of this shell script -echo -e "${GREEN}Installing requirements from $ACCERT_DIR/../requirement.txt...${NC}" +# 6) Use the pip in conda/bin to install requirements.txt located in the parent folder of this shell script +echo -e "${GREEN}Installing requirements from $ACCERT_DIR/../requirements.txt...${NC}" if [ -x "$conda_path/bin/pip" ]; then "$conda_path/bin/pip" install -r "$ACCERT_DIR/../requirements.txt" elif [ -x "$conda_path/Scripts/pip" ]; then "$conda_path/Scripts/pip" install -r "$ACCERT_DIR/../requirements.txt" else - print_color "$RED" "Error: pip executable not found in conda directory" + echo -e "${RED}Error: pip executable not found in conda directory${NC}" fi -echo -e "${GREEN}Installing requirements from $ACCERT_DIR/../requirement.txt...${NC} using system pip" +echo -e "${GREEN}Installing requirements from $ACCERT_DIR/../requirements.txt using system pip...${NC}" pip install -r "$ACCERT_DIR/../requirements.txt" -# 7) Create another file called 'install.conf' in current folder -echo -e "${GREEN}Creating install.conf...${NC}" -cat > install.conf << EOL -[INSTALL] -PASSWD = yourpassword - -# NOTE: ALL OTHER information should be set up later -# INSTALL_PATH = /usr/local -# DATADIR =/mysql/data -# INSTALL_PACKAGE = -# EXP_DIR = -EOL +# 7) Install or refresh the bundled SQLite database. +echo -e "${GREEN}Installing SQLite database...${NC}" +if [ -x "$conda_path/bin/python" ]; then + "$conda_path/bin/python" database_install.py +elif [ -x "$conda_path/Scripts/python" ]; then + "$conda_path/Scripts/python" database_install.py +else + python database_install.py +fi # 8) cd into the parent folder of ACCERT_DIR cd "$(dirname "$ACCERT_DIR")" @@ -84,6 +81,4 @@ ln -sf "${workbench_path}/bin/sonvalidxml" "$ACCERT_DIR/../bin/sonvalidxml" # 10) Confirm installation is finished echo -e "${GREEN}ACCERT has been set up.${NC}" - -echo -e "${YELLOW}Please change the 'yourpassword' of 'install.conf' to your MySQL root password.${NC}" - +echo -e "${YELLOW}ACCERT uses the bundled SQLite database in src/accertdb.sqlite.${NC}" diff --git a/src/sqlite_accert_connection.py b/src/sqlite_accert_connection.py new file mode 100644 index 0000000..c928e75 --- /dev/null +++ b/src/sqlite_accert_connection.py @@ -0,0 +1,107 @@ +"""SQLite connection layer for ACCERT. + +This module provides two entry points: + +1. connect_sqlite(db_path) -> (SQLite connection adapter, ACCERT cursor adapter) +2. connect(...) -> SQLite connection adapter + +The second form accepts legacy keyword arguments so older ACCERT call sites can +open the bundled SQLite database without carrying server configuration around. +The returned cursor supports the procedure-style API used by ACCERT: + + c.callproc(...) + c.stored_results() + c.execute(...) + c.fetchall() + c.fetchone() + +Procedure names are implemented in accert_sqlite_procedures.py. +""" +from __future__ import annotations + +import os +import sqlite3 +from pathlib import Path +from typing import Any, Optional + +from accert_sqlite_procedures import SQLiteCursorAdapter + + +def get_default_db_path(code_folder: str | os.PathLike[str] | None = None) -> str: + """Return the default SQLite database path. + + If code_folder is omitted, this assumes this file lives in ACCERT/src and + uses ACCERT/src/accertdb.sqlite. + """ + if code_folder is None: + code_folder = Path(__file__).resolve().parent + return str(Path(code_folder) / "accertdb.sqlite") + + +class SQLiteConnectionAdapter: + """Small wrapper around sqlite3 with the connection methods ACCERT uses.""" + + def __init__(self, db_path: str | os.PathLike[str] | None = None): + self.db_path = str(db_path or get_default_db_path()) + self._conn = sqlite3.connect(self.db_path) + self._conn.execute("PRAGMA foreign_keys = ON") + + @property + def raw_connection(self) -> sqlite3.Connection: + return self._conn + + def cursor(self, *args: Any, **kwargs: Any) -> SQLiteCursorAdapter: + return SQLiteCursorAdapter(self._conn) + + def commit(self) -> None: + self._conn.commit() + + def rollback(self) -> None: + self._conn.rollback() + + def close(self) -> None: + self._conn.close() + + def is_connected(self) -> bool: + try: + self._conn.execute("SELECT 1") + except sqlite3.Error: + return False + return True + + def execute(self, *args: Any, **kwargs: Any): + # Convenience passthrough; most ACCERT code uses conn.cursor().execute(). + return self._conn.execute(*args, **kwargs) + + +class _ConnectorShim: + """Connector-like object for tests and legacy monkeypatching.""" + + @staticmethod + def connect(*args: Any, **kwargs: Any) -> SQLiteConnectionAdapter: + return connect(*args, **kwargs) + + +def connect_sqlite(db_path: str | os.PathLike[str] | None = None) -> tuple[SQLiteConnectionAdapter, SQLiteCursorAdapter]: + """Open SQLite and return (connection_adapter, cursor_adapter).""" + conn = SQLiteConnectionAdapter(db_path) + return conn, conn.cursor() + + +def connect(*args: Any, **kwargs: Any) -> SQLiteConnectionAdapter: + """Open the ACCERT SQLite database. + + Accepts legacy connection keyword arguments and ignores fields that are not + needed by SQLite. The database path is selected in this order: + + 1. explicit db_path=... or sqlite_path=... + 2. environment variable ACCERT_SQLITE_DB + 3. ACCERT/src/accertdb.sqlite + """ + db_path: Optional[str] = kwargs.pop("db_path", None) or kwargs.pop("sqlite_path", None) + db_path = db_path or os.environ.get("ACCERT_SQLITE_DB") + return SQLiteConnectionAdapter(db_path) + + +# Expose a connector-like object for direct monkeypatching. +connector = _ConnectorShim() diff --git a/src/utility_accert.py b/src/utility_accert.py index 9dcac49..e0aebaf 100644 --- a/src/utility_accert.py +++ b/src/utility_accert.py @@ -14,7 +14,23 @@ def __init__(self): self.alg_tabl = None self.esc_tabl = None self.fac_tabl = None - pass + self.reference_dollar_year = None + self.target_dollar_year = None + self.cost_escalation_factor = 1.0 + + def setup_cost_escalation(self, reference_dollar_year, target_dollar_year, escalation_factor): + self.reference_dollar_year = reference_dollar_year + self.target_dollar_year = target_dollar_year + self.cost_escalation_factor = escalation_factor + return None + + def _cost_header_suffix(self): + if self.target_dollar_year: + return f" ({self.target_dollar_year} million $)" + return " (million $)" + + def _format_million_cost(self, value): + return '{:,.2f}'.format((value or 0) * self.cost_escalation_factor / 1000000) def setup_table_names(self,c,Accert): self.acc_tabl = Accert.acc_tabl @@ -32,8 +48,8 @@ def print_table(self, c, align_key=None,align=None,format_col=None): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. align_key : list[str], optional List of column names to align. (By default none) align : list[str], optional @@ -68,8 +84,8 @@ def print_account(self, c, all=False, cost_unit='dollar',level=3): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. all : bool, optional If True, print all the accounts columns. (By default False) cost_unit : str, optional @@ -78,17 +94,6 @@ def print_account(self, c, all=False, cost_unit='dollar',level=3): Level of account. (By default 3) """ if all: - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_account_all`(IN table_name varchar(50), - # IN level int) - # BEGIN - # SET @stmt=CONCAT('SELECT * FROM ',table_name,' WHERE level <= ?'); - # PREPARE stmt FROM @stmt; - # SET @level=level; - # EXECUTE stmt USING @level; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('print_account_all', (self.acc_tabl,level)) @@ -96,24 +101,6 @@ def print_account(self, c, all=False, cost_unit='dollar',level=3): # FROM account # WHERE level <= %(u_i_level)s;""",{'u_i_level': str(level)}) else: - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_account_simple`(IN table_name varchar(50), - # IN level int) - # BEGIN - # SET @stmt=CONCAT('SELECT ind, - # code_of_account, - # account_description, - # total_cost, - # unit, - # level, - # review_status - # FROM ',table_name,' WHERE level <= ?'); - # PREPARE stmt FROM @stmt; - # SET @level=level; - # EXECUTE stmt USING @level; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('print_account_simple', (self.acc_tabl,level)) # c.execute("""SELECT ind, @@ -132,6 +119,7 @@ def print_account(self, c, all=False, cost_unit='dollar',level=3): for row in c.stored_results(): results = row.fetchall() field_names = [i[0] for i in row.description] + field_names = [f"{name}{self._cost_header_suffix()}" if name in ("total_cost", "fac_cost", "lab_cost", "mat_cost") else name for name in field_names] # results = c.fetchall() # columns = c.description # field_names = [i[0] for i in c.description] @@ -139,8 +127,8 @@ def print_account(self, c, all=False, cost_unit='dollar',level=3): for row in results: row = list(row) # NOTE the index of the row need to have a function - row[3]= '{:,.3f}'.format(row[3]/1000000) - row[4]= 'million' + row[3]= self._format_million_cost(row[3]) + row[4]= f"{self.target_dollar_year} million $" x.add_row(row) if align_key: for i,k in enumerate(align_key): @@ -156,8 +144,8 @@ def print_leveled_accounts(self, c, all=False,tol_fac=None,tol_lab= None,tol_mat Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. all : bool, optional If True, print all the accounts columns. (By default False) cost_unit : str, optional @@ -166,83 +154,11 @@ def print_leveled_accounts(self, c, all=False,tol_fac=None,tol_lab= None,tol_mat Level of account. (By default 3) """ if all: - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_leveled_accounts_all`(IN acc_table varchar(50), - # IN cel_table varchar(50), - # IN level int) - # BEGIN - # SET @stmt=CONCAT('SELECT acc.level, - # rankedcoa.COA as code_of_account, - # acc.account_description, - # sorted_ce.fac_cost, - # sorted_ce.lab_cost, - # sorted_ce.mat_cost, - # acc.total_cost, - # acc.unit, - # acc.review_status - # FROM ',acc_table,' as acc - # JOIN - # (SELECT node.code_of_account, - # CONCAT( REPEAT(" ", COUNT(parent.code_of_account) - 1), node.code_of_account) AS COA - # FROM ',acc_table,' AS node, - # ',acc_table,' AS parent - # WHERE node.lft BETWEEN parent.lft AND parent.rgt - # GROUP BY node.code_of_account) as rankedcoa - # ON acc.code_of_account=rankedcoa.code_of_account - # JOIN (SELECT splt_act.code_of_account, - # cef.cost_2017 as fac_cost, - # cel.cost_2017 as lab_cost, - # cem.cost_2017 as mat_cost - # FROM - # (SELECT code_of_account,total_cost, - # SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ",", 1), ",", -1) AS fac_name, - # SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ",", 2), ",", -1) AS lab_name, - # SUBSTRING_INDEX(SUBSTRING_INDEX(cost_elements, ",", 3), ",", -1) AS mat_name - # FROM ',acc_table,') as splt_act - # LEFT JOIN ',cel_table,' as cef - # ON cef.cost_element= splt_act.fac_name - # LEFT JOIN ',cel_table,' as cel - # ON cel.cost_element= splt_act.lab_name - # LEFT JOIN ',cel_table,' as cem - # ON cem.cost_element= splt_act.mat_name) as sorted_ce - # ON sorted_ce.code_of_account=acc.code_of_account - # WHERE acc.level <= ? - # ORDER BY acc.lft;'); - # PREPARE stmt FROM @stmt; - # SET @level=level; - # EXECUTE stmt USING @level; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('print_leveled_accounts_all', (self.acc_tabl,self.cel_tabl,level)) align_key=["code_of_account", "account_description", "fac_cost", "lab_cost", "mat_cost", "total_cost"] align=[ "l", "l", "r", "r", "r", "r"] else: - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_leveled_accounts_simple`(IN acc_table VARCHAR(255), IN level INT) - # BEGIN - # SET @stmt = CONCAT('SELECT rankedcoa.code_of_account, - # acc.account_description, - # acc.total_cost, - # acc.unit, - # acc.level, - # acc.review_status - # FROM ',acc_table,' as acc - # JOIN - # (SELECT node.code_of_account AS COA , CONCAT( REPEAT(" ", COUNT(parent.code_of_account) - 1), node.code_of_account) AS code_of_account - # FROM ',acc_table,' AS node, - # ',acc_table,' AS parent - # WHERE node.lft BETWEEN parent.lft AND parent.rgt - # GROUP BY node.code_of_account) as rankedcoa - # ON acc.code_of_account=rankedcoa.COA - # WHERE acc.level <= ?'); - # PREPARE stmt FROM @stmt; - # SET @level=level; - # EXECUTE stmt USING @level; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('print_leveled_accounts_simple', (self.acc_tabl,level)) # c.execute("""SELECT rankedcoa.code_of_account, # account.account_description, @@ -268,6 +184,7 @@ def print_leveled_accounts(self, c, all=False,tol_fac=None,tol_lab= None,tol_mat for row in c.stored_results(): results = row.fetchall() field_names = [i[0] for i in row.description] + field_names = [f"{name}{self._cost_header_suffix()}" if name in ("total_cost", "fac_cost", "lab_cost", "mat_cost") else name for name in field_names] # results = c.fetchall() # columns = c.description # field_names = [i[0] for i in c.description] @@ -278,16 +195,16 @@ def print_leveled_accounts(self, c, all=False,tol_fac=None,tol_lab= None,tol_mat # if index is 0, and tol_fac, tol_lab, tol_mat are not None, format the values if idx == 0 and tol_fac and tol_lab and tol_mat: # First row special formatting - row[3] = "{:,.2f}".format(tol_fac / 1000000) - row[4] = "{:,.2f}".format(tol_lab / 1000000) - row[5] = "{:,.2f}".format(tol_mat / 1000000) - row[6] = "{:,.2f}".format(row[6] / 1000000) + row[3] = self._format_million_cost(tol_fac) + row[4] = self._format_million_cost(tol_lab) + row[5] = self._format_million_cost(tol_mat) + row[6] = self._format_million_cost(row[6]) else: # Format other rows or print 0 if value is None - row[3:7] = ['{:,.2f}'.format(x / 1000000) if x else '0' for x in row[3:7]] + row[3:7] = [self._format_million_cost(x) if x else '0' for x in row[3:7]] else: # Format only the third column for other cases - row[2] = '{:,.2f}'.format(row[2] / 1000000) + row[2] = self._format_million_cost(row[2]) x.add_row(row) @@ -304,8 +221,8 @@ def print_leveled_accounts_gncoa(self, c, all=False, cost_unit='dollar',level=3) Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. all : bool, optional If True, print all the accounts columns. (By default False) cost_unit : str, optional @@ -329,6 +246,7 @@ def print_leveled_accounts_gncoa(self, c, all=False, cost_unit='dollar',level=3) for row in c.stored_results(): results = row.fetchall() field_names = [i[0] for i in row.description] + field_names = [f"{name}{self._cost_header_suffix()}" if name == "total_cost" else name for name in field_names] x = PrettyTable(field_names) for idx, row in enumerate(results): row = list(row) @@ -346,7 +264,7 @@ def print_leveled_accounts_gncoa(self, c, all=False, cost_unit='dollar',level=3) else: # Format only the third column for other cases if row[2]: - row[2] = '{:,.2f}'.format(row[2] / 1000000) + row[2] = self._format_million_cost(row[2]) else: row[2] = 0 @@ -364,18 +282,9 @@ def print_algorithm(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_table`(IN table_name VARCHAR(255)) - # BEGIN - # SET @stmt = CONCAT('SELECT * FROM ',table_name); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('print_table', (self.alg_tabl,)) self.print_table(c) return None @@ -385,8 +294,8 @@ def print_cost_element(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ c.callproc('print_table', (self.cel_tabl,)) self.print_table(c) @@ -397,8 +306,8 @@ def print_facility(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ c.callproc('print_table', (self.fac_tabl,)) # c.execute("""SELECT * @@ -412,8 +321,8 @@ def print_escalation(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ c.callproc('print_table', (self.esc_tabl,)) # c.execute("""SELECT * @@ -427,8 +336,8 @@ def print_variable(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ c.callproc('print_table', (self.var_tabl,)) # c.execute("""SELECT * @@ -442,36 +351,11 @@ def print_user_request_parameter(self,c, all=False): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. all : bool, optional If True, prints all columns. (By default False) """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_user_request_parameter`(IN all_col BOOLEAN, - # IN var_table VARCHAR(50), - # IN vlk_table VARCHAR(50)) - # BEGIN - # IF all_col THEN - # SET @stmt = CONCAT('SELECT va.ind, va.var_name, affectv.ce_affected FROM ',var_table,' as va JOIN - # (SELECT variable, group_concat(ce) as ce_affected - # FROM ',vlk_table,' as vlk - # group by variable) as affectv on va.var_name = affectv.variable - # where va.var_value IS NULL - # order by va.ind'); - # ELSE - # SET @stmt = CONCAT('SELECT va.var_name, affectv.ce_affected FROM ',var_table,' as va JOIN - # (SELECT variable, group_concat(ce) as ce_affected - # FROM ',vlk_table,' as vlk - # group by variable) as affectv on va.var_name = affectv.variable - # where va.var_value IS NULL - # order by va.ind;'); - # END IF; - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; if all: c.callproc('print_user_request_parameter', (True, self.var_tabl, self.cel_tabl)) self.print_table(c) @@ -500,25 +384,9 @@ def print_updated_cost_elements(self, c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `print_updated_cost_elements`(IN cel_table VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT ind, - # cost_element, - # cost_2017, - # sup_cost_ele, - # account, - # updated - # FROM ',cel_table,' - # WHERE updated = 1'); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('print_updated_cost_elements', (self.cel_tabl,)) self.print_table(c) @@ -528,30 +396,11 @@ def extract_affected_cost_elements(self,c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print(' Extracting affected cost elements '.center(100,'=')) print('\n') - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_affected_cost_elements`(IN cel_table varchar(50), - # IN var_table varchar(50)) - # BEGIN - # SET @stmt = CONCAT("SELECT va.var_name, (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - # FROM ", cel_table, " ce - # WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) AS ce_affected - # FROM - # (SELECT * FROM ",var_table," - # WHERE user_input = 1) as va - # WHERE (SELECT GROUP_CONCAT(ce.cost_element SEPARATOR ', ') - # FROM ", cel_table, " ce - # WHERE FIND_IN_SET(va.var_name, REPLACE(ce.variables, ' ', '')) > 0) IS NOT NULL - # "); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END - # DELIMITER ; c.callproc('extract_affected_cost_elements',(self.cel_tabl,self.var_tabl)) for row in c.stored_results(): @@ -566,29 +415,10 @@ def extract_affected_accounts(self,c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print('Extracting affected accounts'.center(100,'=')) - # DELIMITER $$ - # CREATE DEFINER=`root@`localhost` PROCEDURE `extract_affected_accounts`(IN acc_table VARCHAR(50), - # IN var_table VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT va.var_name, - # (SELECT GROUP_CONCAT(ac.code_of_account SEPARATOR ", ") - # FROM ',acc_table,' ac - # WHERE FIND_IN_SET(va.var_name, REPLACE(ac.variables, " ", "")) > 0) AS ac_affected - # FROM - # (SELECT * FROM ',var_table,' - # WHERE user_input = 1) as va - # WHERE (SELECT GROUP_CONCAT(ac.code_of_account SEPARATOR ", ") - # FROM ',acc_table,' ac - # WHERE FIND_IN_SET(va.var_name, REPLACE(ac.variables, " ", "")) > 0) IS NOT NULL;'); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('extract_affected_accounts',(self.acc_tabl,self.var_tabl)) for row in c.stored_results(): results = row.fetchall() @@ -602,20 +432,10 @@ def extract_user_changed_variables(self,c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ print('Extracting user changed variables'.center(100,'=')) - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_user_changed_variables`(IN table_name VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT var_name,var_description, var_value, var_unit - # FROM ', table_name, ' WHERE user_input = 1 ORDER BY var_name;'); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; c.callproc('extract_user_changed_variables',(self.var_tabl,)) # c.execute("""SELECT var_name,var_description, var_value, var_unit # FROM `accert_db_test`.`variable` @@ -629,21 +449,9 @@ def extract_changed_cost_elements(self,c): Parameters ---------- - c : MySQLCursor - MySQLCursor class instantiates objects that can execute MySQL statements. + c : SQLiteCursorAdapter + SQLiteCursorAdapter class instantiates objects that can execute SQLite statements. """ - # DELIMITER $$ - # CREATE DEFINER=`root`@`localhost` PROCEDURE `extract_changed_cost_elements`(IN cel_table VARCHAR(50)) - # BEGIN - # SET @stmt = CONCAT('SELECT cost_element, cost_2017 - # FROM ',cel_table,' - # WHERE updated != 0 - # ORDER BY account, cost_element;'); - # PREPARE stmt FROM @stmt; - # EXECUTE stmt; - # DEALLOCATE PREPARE stmt; - # END$$ - # DELIMITER ; print('Extracting changed cost elements'.center(100,'=')) c.callproc('extract_changed_cost_elements',(self.cel_tabl,)) diff --git a/test/conftest.py b/test/conftest.py index d9b8040..b24cd55 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -1,9 +1,8 @@ import pytest -import mysql.connector import os import sys -import configparser import glob +import shutil import pandas as pd PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) @@ -14,26 +13,20 @@ @pytest.fixture def input_params_data(): - input_params_file = "./OT01A_i1_r5_rev6.csv" + input_params_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "OT01A_i1_r5_rev6.csv") return pd.read_csv(input_params_file).set_index("var_name").transpose() @pytest.fixture -def conn(): - test_folder = os.path.dirname(os.path.abspath(__file__)) - code_folder = os.path.join(test_folder, os.pardir) - initfile = os.path.join(code_folder, 'src/install.conf') - ins = configparser.ConfigParser() - ins.read(initfile) - passwd = ins.get("INSTALL","PASSWD") - conn = mysql.connector.connect( - host="localhost", - user="root", - password=passwd, - database="accert_db", - auth_plugin="mysql_native_password" - ) - return conn +def conn(tmp_path): + from sqlite_accert_connection import connect + + source_db = os.path.join(SRC_PATH, "accertdb.sqlite") + test_db = tmp_path / "accertdb.sqlite" + shutil.copy2(source_db, test_db) + conn = connect(db_path=test_db) + yield conn + conn.close() @pytest.fixture def cursor(conn): @@ -41,16 +34,26 @@ def cursor(conn): @pytest.fixture def prepare_environment(): - """Clean up 'output.out' and any relevant Excel files before running the test.""" - # Patterns for files to clean up - cleanup_patterns = ["output.out", "*_updated_account.xlsx", "*_updated_cost_element.xlsx", "*_variable_affected_cost_elements.xlsx"] + """Clean up ACCERT output files before running the test.""" + cleanup_patterns = [ + "output.out", + "*_upd_acc_*.csv", + "*_upd_ce_*.csv", + "*_aff_ce_*.csv", + "*_post_*.csv", + "*_updated_account.xlsx", + "*_updated_cost_element.xlsx", + "*_variable_affected_cost_elements.xlsx", + ] + cleanup_dirs = [os.getcwd(), os.path.dirname(os.path.abspath(__file__))] # Remove files matching the patterns - for pattern in cleanup_patterns: - for filename in glob.glob(pattern): - os.remove(filename) + for cleanup_dir in cleanup_dirs: + for pattern in cleanup_patterns: + for filename in glob.glob(os.path.join(cleanup_dir, pattern)): + os.remove(filename) yield @pytest.fixture -def excel_patterns(): - return ["*_updated_account.xlsx", "*_updated_cost_element.xlsx", "*_variable_affected_cost_elements.xlsx"] +def csv_patterns(): + return ["*_upd_acc_*.csv", "*_upd_ce_*.csv", "*_aff_ce_*.csv"] diff --git a/test/gold/output.abr1000.out b/test/gold/output.abr1000.out index 99a80f3..da0043c 100644 --- a/test/gold/output.abr1000.out +++ b/test/gold/output.abr1000.out @@ -910,93 +910,93 @@ Parameter "mwth" is required for cost elements: +------------------------------------------+-----------------------------------------------------------------------------------+---------------+----------+ | var_name | var_description | var_value | var_unit | +------------------------------------------+-----------------------------------------------------------------------------------+---------------+----------+ +| mwth | user_input mwth | 1,000.00 | MW | | Cont_H_wall_m | Containment wall height | 20.00 | m | -| Inside_liner_s | Inside liner surface | 3,609.15 | m^2 | +| Walls_s_m2 | Walls surface | 3,657.87 | m^2 | +| Walls_v_m3 | Walls volume | 2,508.57 | m^3 | | Intern_tot_v_m3 | Tot intenal Volume | 18,047.57 | m^3 | -| Internal_s_m2 | Building internal surface | 2,457.26 | m^2 | | Internal_v_m3 | Building internal volume | 1,497.95 | m^3 | -| Liner_s_m2 | Liner Surface | 3,609.15 | m^2 | -| mwth | user_input mwth | 1,000.00 | MW | +| Internal_s_m2 | Building internal surface | 2,457.26 | m^2 | | Struct_v_m3 | volume of the structures | 7,680.88 | m^3 | -| Sum_Labor_Cadweld | Total cost of Labor Cadweld | 2,540,293.16 | dollar | -| Sum_Labor_Concrete | Total cost of Labor Concrete | 1,836,590.78 | dollar | -| Sum_Labor_Constr_joints | Total cost of Labor Constr joints | 212,569.30 | dollar | -| Sum_Labor_Embedded_steel | Total cost of Labor Embedded steel | 1,590,131.11 | dollar | -| Sum_Labor_Formwork | Total cost of Labor Formwork | 3,439,536.04 | dollar | -| Sum_Labor_Maj_supp_embedments | Total cost of Labor Maj supp embedments | 660,160.98 | dollar | -| Sum_Labor_Reinforc_steel | Total cost of Labor Reinforc steel | 6,977,746.37 | dollar | -| Sum_Labor_Rubbing_surfaces | Total cost of Labor Rubbing surfaces | 202,100.07 | dollar | -| Sum_Labor_Waterproofing | Total cost of Labor Waterproofing | 18,408.22 | dollar | -| Sum_Mat_Cadweld | Total cost of Material Cadweld | 1,317,412.11 | dollar | -| Sum_Mat_Concrete | Total cost of Material Concrete | 1,328,470.40 | dollar | -| Sum_Mat_Constr_joints | Total cost of Material Constr joints | 130,376.53 | dollar | -| Sum_Mat_Embedded_steel | Total cost of Material Embedded steel | 753,337.54 | dollar | -| Sum_Mat_Formwork | Total cost of Material Formwork | 385,042.24 | dollar | -| Sum_Mat_Maj_supp_embedments | Total cost of Material Maj supp embedments | 968,978.09 | dollar | -| Sum_Mat_Reinforc_steel | Total cost of Material Reinforc steel | 6,070,982.65 | dollar | -| Sum_Mat_Rubbing_surfaces | Total cost of Material Rubbing surfaces | 16,579.07 | dollar | -| Sum_Mat_Waterproofing | Total cost of Material Waterproofing | 9,808.25 | dollar | +| Inside_liner_s | Inside liner surface | 3,609.15 | m^2 | +| Liner_s_m2 | Liner Surface | 3,609.15 | m^2 | | Surf_paint_m2 | painted surface | 9,440.85 | m^2 | -| Tot_Labor_concr | Total cost of labor of containment construction | 17,498,627.52 | dollar | -| Tot_Labor_containment | Total cost of labor of containment | 32,009,001.02 | dollar | -| Tot_Labor_equipment | Total cost of labor of containment equipments | 1,267,661.66 | dollar | -| Tot_Labor_others | Total cost of labor of other non-concrete related items | 13,242,711.84 | dollar | -| Tot_Mat_concr | Total cost of material of containment construction | 10,991,857.25 | dollar | -| Tot_Mat_containment | Total cost of material of containment | 27,872,929.22 | dollar | -| Tot_Mat_equipment | Total cost of material of containment equipments | 893,715.91 | dollar | -| Tot_Mat_others | Total cost of material of other non-concrete related items | 15,987,356.06 | dollar | +| Total_Labor_Cadweld_Superstr | Total cost of Labor Cadweld Superstructure (shell) in 2017 | 825,368.67 | dollar | | Total_Labor_Cadweld_Interior | Total cost of Labor Cadweld Interior structure in 2017 | 207,256.18 | dollar | -| Total_Labor_Cadweld_Superstr | Total cost of Labor Cadweld Superstructure (shell) in 2017 | 825,368.66 | dollar | -| Total_Labor_Concrete_Interior | Total cost of Labor Concrete Interior structure in 2017 | 419,530.50 | dollar | | Total_Labor_Concrete_Superstr | Total cost of Labor Concrete Superstructure (shell) in 2017 | 629,273.99 | dollar | -| Total_Labor_Constr_joints_Interior | Total cost of Labor Construction joints Interior structure in 2017 | 14,448.72 | dollar | +| Total_Labor_Concrete_Interior | Total cost of Labor Concrete Interior structure in 2017 | 419,530.50 | dollar | | Total_Labor_Constr_joints_Superstr | Total cost of Labor Construction joints Superstructure (shell) in 2017 | 130,622.52 | dollar | -| Total_Labor_cont_liner | Total cost of Labor Containment liner in 2017 | 8,084,276.56 | dollar | -| Total_Labor_Embedded_steel_Interior | Total cost of Labor Embedded steel Interior structure in 2017 | 1,449,654.85 | dollar | +| Total_Labor_Constr_joints_Interior | Total cost of Labor Construction joints Interior structure in 2017 | 14,448.72 | dollar | | Total_Labor_Embedded_steel_Superstr | Total cost of Labor Embedded steel Superstructure (shell) in 2017 | 115,067.96 | dollar | -| Total_Labor_fl_grate_handrail_stairs | Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017 | 90,598.83 | dollar | -| Total_Labor_Formwork_Interior | Total cost of Labor Formwork Interior structure in 2017 | 1,633,049.15 | dollar | +| Total_Labor_Embedded_steel_Interior | Total cost of Labor Embedded steel Interior structure in 2017 | 1,449,654.85 | dollar | | Total_Labor_Formwork_Superstr | Total cost of Labor Formwork Superstructure (shell) in 2017 | 1,153,216.49 | dollar | -| Total_Labor_Lighting_Power | Total cost of Labor Lighting Power in 2017 | 509,302.56 | dollar | +| Total_Labor_Formwork_Interior | Total cost of Labor Formwork Interior structure in 2017 | 1,633,049.15 | dollar | | Total_Labor_Maj_supp_embedments_Interior | Total cost of Labor Major Support Embedments Interior structure in 2017 | 660,160.98 | dollar | -| Total_Labor_Misc_steel_frames | Total cost of Labor miscellaneous steel frames in 2017 | 219,135.57 | dollar | -| Total_Labor_other | Total cost of Labor other in 2017 | 27,432.31 | dollar | -| Total_Labor_painting | Total cost of Labor painting in 2017 | 2,352,281.21 | dollar | -| Total_Labor_Plumb_drains | Total cost of Labor Plumb drains in 2017 | 156,472.47 | dollar | -| Total_Labor_Reinforc_steel_Interior | Total cost of Labor Reinforc steel Interior structure in 2017 | 1,318,853.97 | dollar | | Total_Labor_Reinforc_steel_Superstr | Total cost of Labor Reinforc steel Superstructure (shell) in 2017 | 2,348,419.94 | dollar | -| Total_Labor_Rubbing_surfaces_Interior | Total cost of Labor Rubbing surfaces Interior structure in 2017 | 69,909.19 | dollar | +| Total_Labor_Reinforc_steel_Interior | Total cost of Labor Reinforc steel Interior structure in 2017 | 1,318,853.97 | dollar | | Total_Labor_Rubbing_surfaces_Superstr | Total cost of Labor Rubbing surfaces Superstructure (shell) in 2017 | 87,349.92 | dollar | +| Total_Labor_Rubbing_surfaces_Interior | Total cost of Labor Rubbing surfaces Interior structure in 2017 | 69,909.19 | dollar | +| Total_Labor_Waterproofing_Superstr | Total cost of Labor Waterproofing Superstructure (shell) in 2017 | 8,815.47 | dollar | +| Total_Labor_Lighting_Power | Total cost of Labor Lighting Power in 2017 | 509,302.56 | dollar | +| Total_Labor_Plumb_drains | Total cost of Labor Plumb drains in 2017 | 156,472.47 | dollar | | Total_Labor_Special_HVAC | Total cost of Labor Special HVAC in 2017 | 574,454.31 | dollar | +| Total_Labor_other | Total cost of Labor other in 2017 | 27,432.31 | dollar | +| Total_Labor_Misc_steel_frames | Total cost of Labor miscellaneous steel frames in 2017 | 219,135.57 | dollar | | Total_Labor_Struct_steel | Total cost of Labor Struct steel in 2017 | 308,233.80 | dollar | -| Total_Labor_Waterproofing_Superstr | Total cost of Labor Waterproofing Superstructure (shell) in 2017 | 8,815.47 | dollar | -| Total_Mat_Cadweld_Interior | Total cost of Material Cadweld Interior structure in 2017 | 107,492.80 | dollar | +| Total_Labor_cont_liner | Total cost of Labor Containment liner in 2017 | 8,084,276.56 | dollar | +| Total_Labor_fl_grate_handrail_stairs | Total cost of Labor Floor grating (galvanized), Handrail, Stair treads in 2017 | 90,598.83 | dollar | +| Total_Labor_painting | Total cost of Labor painting in 2017 | 2,352,281.21 | dollar | | Total_Mat_Cadweld_Superstr | Total cost of Material Cadweld Superstructure (shell) in 2017 | 428,011.68 | dollar | -| Total_Mat_Concrete_Interior | Total cost of Material Concrete Interior structure in 2017 | 228,796.69 | dollar | +| Total_Mat_Cadweld_Interior | Total cost of Material Cadweld Interior structure in 2017 | 107,492.80 | dollar | | Total_Mat_Concrete_Superstr | Total cost of Material Concrete Superstructure (shell) in 2017 | 392,239.51 | dollar | -| Total_Mat_Constr_joints_Interior | Total cost of Material Construction joints Interior structure in 2017 | 8,895.30 | dollar | +| Total_Mat_Concrete_Interior | Total cost of Material Concrete Interior structure in 2017 | 228,796.69 | dollar | | Total_Mat_Constr_joints_Superstr | Total cost of Material Construction joints Superstructure (shell) in 2017 | 80,107.34 | dollar | -| Total_Mat_cont_liner | Total cost of Material Containment liner in 2017 | 12,463,148.42 | dollar | -| Total_Mat_Embedded_steel_Interior | Total cost of Material Embedded steel Interior structure in 2017 | 686,824.47 | dollar | +| Total_Mat_Constr_joints_Interior | Total cost of Material Construction joints Interior structure in 2017 | 8,895.30 | dollar | | Total_Mat_Embedded_steel_Superstr | Total cost of Material Embedded steel Superstructure (shell) in 2017 | 54,511.16 | dollar | -| Total_Mat_fl_grate_handrail_stairs | Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017 | 102,510.23 | dollar | -| Total_Mat_Formwork_Interior | Total cost of Material Formwork Interior structure in 2017 | 154,119.66 | dollar | +| Total_Mat_Embedded_steel_Interior | Total cost of Material Embedded steel Interior structure in 2017 | 686,824.47 | dollar | | Total_Mat_Formwork_Superstr | Total cost of Material Formwork Superstructure (shell) in 2017 | 143,315.32 | dollar | -| Total_Mat_Lighting_Power | Total cost of Material Lighting Power in 2017 | 256,997.47 | dollar | +| Total_Mat_Formwork_Interior | Total cost of Material Formwork Interior structure in 2017 | 154,119.66 | dollar | | Total_Mat_Maj_supp_embedments_Interior | Total cost of Material Major Support Embedments Interior structure in 2017 | 968,978.09 | dollar | -| Total_Mat_Misc_steel_frames | Total cost of Material miscellaneous steel frames in 2017 | 365,149.14 | dollar | -| Total_Mat_other | Total cost of Material other in 2017 | 101,607.85 | dollar | -| Total_Mat_painting | Total cost of Material painting in 2017 | 668,789.54 | dollar | -| Total_Mat_Plumb_drains | Total cost of Material Plumb drains in 2017 | 79,770.28 | dollar | -| Total_Mat_Reinforc_steel_Interior | Total cost of Material Reinforc steel Interior structure in 2017 | 884,314.03 | dollar | | Total_Mat_Reinforc_steel_Superstr | Total cost of Material Reinforc steel Superstructure (shell) in 2017 | 1,864,667.91 | dollar | -| Total_Mat_Rubbing_surfaces_Interior | Total cost of Material Rubbing surfaces Interior structure in 2017 | 5,774.57 | dollar | +| Total_Mat_Reinforc_steel_Interior | Total cost of Material Reinforc steel Interior structure in 2017 | 884,314.03 | dollar | | Total_Mat_Rubbing_surfaces_Superstr | Total cost of Material Rubbing surfaces Superstructure (shell) in 2017 | 7,132.85 | dollar | +| Total_Mat_Rubbing_surfaces_Interior | Total cost of Material Rubbing surfaces Interior structure in 2017 | 5,774.57 | dollar | +| Total_Mat_Waterproofing_Superstr | Total cost of Material Waterproofing Superstructure (shell) in 2017 | 4,718.65 | dollar | +| Total_Mat_Lighting_Power | Total cost of Material Lighting Power in 2017 | 256,997.47 | dollar | +| Total_Mat_Plumb_drains | Total cost of Material Plumb drains in 2017 | 79,770.28 | dollar | | Total_Mat_Special_HVAC | Total cost of Material Special HVAC in 2017 | 455,340.32 | dollar | +| Total_Mat_other | Total cost of Material other in 2017 | 101,607.85 | dollar | +| Total_Mat_Misc_steel_frames | Total cost of Material miscellaneous steel frames in 2017 | 365,149.14 | dollar | | Total_Mat_Struct_steel | Total cost of Material Struct steel in 2017 | 604,331.81 | dollar | -| Total_Mat_Waterproofing_Superstr | Total cost of Material Waterproofing Superstructure (shell) in 2017 | 4,718.65 | dollar | -| Walls_s_m2 | Walls surface | 3,657.87 | m^2 | -| Walls_v_m3 | Walls volume | 2,508.57 | m^3 | +| Total_Mat_cont_liner | Total cost of Material Containment liner in 2017 | 12,463,148.42 | dollar | +| Total_Mat_fl_grate_handrail_stairs | Total cost of Material Floor grating (galvanized), Handrail, Stair treads in 2017 | 102,510.23 | dollar | +| Total_Mat_painting | Total cost of Material painting in 2017 | 668,789.54 | dollar | +| Sum_Labor_Cadweld | Total cost of Labor Cadweld | 2,540,293.16 | dollar | +| Sum_Labor_Concrete | Total cost of Labor Concrete | 1,836,590.78 | dollar | +| Sum_Labor_Constr_joints | Total cost of Labor Constr joints | 212,569.31 | dollar | +| Sum_Labor_Embedded_steel | Total cost of Labor Embedded steel | 1,590,131.11 | dollar | +| Sum_Labor_Formwork | Total cost of Labor Formwork | 3,439,536.04 | dollar | +| Sum_Labor_Maj_supp_embedments | Total cost of Labor Maj supp embedments | 660,160.98 | dollar | +| Sum_Labor_Reinforc_steel | Total cost of Labor Reinforc steel | 6,977,746.37 | dollar | +| Sum_Labor_Rubbing_surfaces | Total cost of Labor Rubbing surfaces | 202,100.07 | dollar | +| Sum_Labor_Waterproofing | Total cost of Labor Waterproofing | 18,408.22 | dollar | +| Sum_Mat_Cadweld | Total cost of Material Cadweld | 1,317,412.11 | dollar | +| Sum_Mat_Concrete | Total cost of Material Concrete | 1,328,470.40 | dollar | +| Sum_Mat_Constr_joints | Total cost of Material Constr joints | 130,376.53 | dollar | +| Sum_Mat_Embedded_steel | Total cost of Material Embedded steel | 753,337.53 | dollar | +| Sum_Mat_Formwork | Total cost of Material Formwork | 385,042.24 | dollar | +| Sum_Mat_Maj_supp_embedments | Total cost of Material Maj supp embedments | 968,978.09 | dollar | +| Sum_Mat_Reinforc_steel | Total cost of Material Reinforc steel | 6,070,982.65 | dollar | +| Sum_Mat_Rubbing_surfaces | Total cost of Material Rubbing surfaces | 16,579.07 | dollar | +| Sum_Mat_Waterproofing | Total cost of Material Waterproofing | 9,808.25 | dollar | +| Tot_Labor_concr | Total cost of labor of containment construction | 17,498,627.51 | dollar | +| Tot_Labor_equipment | Total cost of labor of containment equipments | 1,267,661.66 | dollar | +| Tot_Labor_others | Total cost of labor of other non-concrete related items | 13,242,711.84 | dollar | +| Tot_Mat_concr | Total cost of material of containment construction | 10,991,857.25 | dollar | +| Tot_Mat_equipment | Total cost of material of containment equipments | 893,715.91 | dollar | +| Tot_Mat_others | Total cost of material of other non-concrete related items | 15,987,356.06 | dollar | +| Tot_Labor_containment | Total cost of labor of containment | 32,009,001.02 | dollar | +| Tot_Mat_containment | Total cost of material of containment | 27,872,929.22 | dollar | +------------------------------------------+-----------------------------------------------------------------------------------+---------------+----------+ @@ -1017,93 +1017,93 @@ variable "Tot_Mat_containment" affects cost element(s): ====================================== Updating cost elements ====================================== -[Updating] Cost element [212_mat], running algorithm: [containment], -[Updating] with formulation: containment structure + equipment + others -[Updated] Reference value is : $37,484,659 , calculated value is: $27,872,929 +[Updating] Cost element [213_fac], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $660,389 , calculated value is: $660,389 -[Updating] Cost element [212_lab], running algorithm: [containment], -[Updating] with formulation: containment structure + equipment + others -[Updated] Reference value is : $43,940,776 , calculated value is: $32,009,001 +[Updating] Cost element [220A.224_fac], running algorithm: [MWth_lmfbrscale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_LMFBR)^thermal_power_scale +[Updated] Reference value is : $1,379,368 , calculated value is: $2,291,911 -[Updating] Cost element [222_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.11_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $523,270 , calculated value is: $523,270 +[Updated] Reference value is : $1,101,964 , calculated value is: $1,101,964 -[Updating] Cost element [222.14_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.12_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $8,217 , calculated value is: $8,217 +[Updated] Reference value is : $1,280,778 , calculated value is: $1,280,778 -[Updating] Cost element [222.13_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.13_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $61,390 , calculated value is: $61,390 +[Updated] Reference value is : $21,901 , calculated value is: $219,007 -[Updating] Cost element [222.12_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.14_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $326,175 , calculated value is: $326,175 +[Updated] Reference value is : $4,380 , calculated value is: $4,380 -[Updating] Cost element [222.11_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $127,488 , calculated value is: $127,488 +[Updated] Reference value is : $2,409,023 , calculated value is: $2,409,023 -[Updating] Cost element [213_mat], running algorithm: [MWth_scale], +[Updating] Cost element [226.4_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $12,070,728 , calculated value is: $12,070,728 +[Updated] Reference value is : $34,304,867 , calculated value is: $34,304,867 -[Updating] Cost element [222_lab], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $5,288,233 , calculated value is: $5,288,233 +[Updating] Cost element [212_lab], running algorithm: [containment], +[Updating] with formulation: containment structure + equipment + others +[Updated] Reference value is : $43,940,776 , calculated value is: $32,009,001 -[Updating] Cost element [222.14_lab], running algorithm: [MWth_scale], +[Updating] Cost element [213_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $82,173 , calculated value is: $82,173 +[Updated] Reference value is : $11,873,274 , calculated value is: $11,873,274 -[Updating] Cost element [222.13_lab], running algorithm: [MWth_scale], +[Updating] Cost element [222.11_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $613,897 , calculated value is: $613,897 +[Updated] Reference value is : $1,274,883 , calculated value is: $1,274,883 [Updating] Cost element [222.12_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale [Updated] Reference value is : $3,317,279 , calculated value is: $3,317,279 -[Updating] Cost element [222.11_lab], running algorithm: [MWth_scale], +[Updating] Cost element [222.13_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $1,274,883 , calculated value is: $1,274,883 +[Updated] Reference value is : $613,897 , calculated value is: $613,897 -[Updating] Cost element [213_lab], running algorithm: [MWth_scale], +[Updating] Cost element [222.14_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $11,873,274 , calculated value is: $11,873,274 +[Updated] Reference value is : $82,173 , calculated value is: $82,173 -[Updating] Cost element [226.4_fac], running algorithm: [MWth_scale], +[Updating] Cost element [222_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $34,304,867 , calculated value is: $34,304,867 +[Updated] Reference value is : $5,288,233 , calculated value is: $5,288,233 -[Updating] Cost element [222_fac], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $2,409,023 , calculated value is: $2,409,023 +[Updating] Cost element [212_mat], running algorithm: [containment], +[Updating] with formulation: containment structure + equipment + others +[Updated] Reference value is : $37,484,659 , calculated value is: $27,872,929 -[Updating] Cost element [222.14_fac], running algorithm: [MWth_scale], +[Updating] Cost element [213_mat], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $4,380 , calculated value is: $4,380 +[Updated] Reference value is : $12,070,728 , calculated value is: $12,070,728 -[Updating] Cost element [222.13_fac], running algorithm: [MWth_scale], +[Updating] Cost element [222.11_mat], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $21,901 , calculated value is: $219,007 +[Updated] Reference value is : $127,488 , calculated value is: $127,488 -[Updating] Cost element [222.12_fac], running algorithm: [MWth_scale], +[Updating] Cost element [222.12_mat], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $1,280,778 , calculated value is: $1,280,778 +[Updated] Reference value is : $326,175 , calculated value is: $326,175 -[Updating] Cost element [222.11_fac], running algorithm: [MWth_scale], +[Updating] Cost element [222.13_mat], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $1,101,964 , calculated value is: $1,101,964 +[Updated] Reference value is : $61,390 , calculated value is: $61,390 -[Updating] Cost element [213_fac], running algorithm: [MWth_scale], +[Updating] Cost element [222.14_mat], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $660,389 , calculated value is: $660,389 +[Updated] Reference value is : $8,217 , calculated value is: $8,217 -[Updating] Cost element [220A.224_fac], running algorithm: [MWth_lmfbrscale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_LMFBR)^thermal_power_scale -[Updated] Reference value is : $1,379,368 , calculated value is: $2,291,911 +[Updating] Cost element [222_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $523,270 , calculated value is: $523,270 @@ -1118,14 +1118,14 @@ variable "Tot_Mat_containment" affects cost element(s): | 20 | 222.14_fac | 4380.13611 | 222_fac | 222.14 | 1 | | 21 | 222_fac | 2409022.67706 | 22_fac | 222 | 1 | | 23 | 226.4_fac | 34304867.3856 | 226_fac | 226.4 | 1 | -| 38 | 212_lab | 32009001.02191 | 21_lab | 212 | 1 | +| 38 | 212_lab | 32009001.0187 | 21_lab | 212 | 1 | | 39 | 213_lab | 11873273.98938 | 21_lab | 213 | 1 | | 53 | 222.11_lab | 1274883.3244 | 222_lab | 222.11 | 1 | | 54 | 222.12_lab | 3317279.46371 | 222_lab | 222.12 | 1 | | 55 | 222.13_lab | 613896.82308 | 222_lab | 222.13 | 1 | | 56 | 222.14_lab | 82172.71233 | 222_lab | 222.14 | 1 | | 57 | 222_lab | 5288232.80385 | 22_mat | 222 | 1 | -| 74 | 212_mat | 27872929.22357 | 21_mat | 212 | 1 | +| 74 | 212_mat | 27872929.22085 | 21_mat | 212 | 1 | | 75 | 213_mat | 12070728.12312 | 21_mat | 213 | 1 | | 89 | 222.11_mat | 127488.33256 | 222_mat | 222.11 | 1 | | 90 | 222.12_mat | 326175.16001 | 222_mat | 222.12 | 1 | diff --git a/test/gold/output.fusion.out b/test/gold/output.fusion.out index ee0fe3c..2a98b06 100644 --- a/test/gold/output.fusion.out +++ b/test/gold/output.fusion.out @@ -22,7 +22,6 @@ WARNING: No power input found in the user input file [Updated] Changed from 16.0 million to 16.0 million [Updating] Variable lsa -[Note] Original unit is not available, no conversion needed [Updated] Changed from 4.0 to 4.0 =================================Extracting user changed variables================================== @@ -474,5 +473,5 @@ variable "lsa" affects account(s): | 25 | Miscellaneous plant equipment cost | 25.00 | 1 | User Input | | 26 | Heat rejection system cost | 50.52 | 1 | User Input | +-----------------+--------------------------------------------------+------------+-------+---------------+ -Successfully created excel file fusion_updated_account.xlsx +Successfully created CSV file fusion_upd_acc_20260515_234601.csv Successfully created excel file fusion_LCOE_results.xlsx diff --git a/test/gold/output.heatpipe.out b/test/gold/output.heatpipe.out index a7d6313..1539711 100644 --- a/test/gold/output.heatpipe.out +++ b/test/gold/output.heatpipe.out @@ -93,30 +93,30 @@ +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+-------------+ | var_name | var_description | var_value | var_unit | +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+-------------+ -| Al2O3_reflector_mass | Al2O3 reflector mass | 4.00 | ton | -| B4C_total_neutron_poison_mass_Kg | B4C total neutron poison mass (Kg) | 600.00 | kg | -| Battery_capacity_required | Battery capacity required | 150.00 | kW | -| BeO_reflector_mass | BeO reflector mass | 4.00 | ton | -| Containment_hole_volume | Containment hole volume = (2 concrete thickness * ISO width) * (2 concrete thickness * ISO length) * (2 concrete thickness * ISO sub_height) - ISO width *ISO length* ISO subheight | 480.40 | cubeMeter | +| land_surface_area | land surface area | 40,000.00 | squareMeter | | containment_subVolume | containment subVolume = ISO width* ISO length *ISO subheight | 94.80 | cubeMeter | +| Containment_hole_volume | Containment hole volume = (2 concrete thickness * ISO width) * (2 concrete thickness * ISO length) * (2 concrete thickness * ISO sub_height) - ISO width *ISO length* ISO subheight | 480.40 | cubeMeter | +| Turbine_building_surface_area | Turbine building surface area | 2,000.00 | squareMeter | | Distance_to_utilities | Distance to utilities | 20,000.00 | m | -| heat_exchangers_mass | heat exchangers mass | 0.60 | ton | -| land_surface_area | land surface area | 40,000.00 | squareMeter | -| mass_production_cost_reduction_factor | mass production cost reduction factor | 0.50 | | -| moderator_ZrH_mass | moderator ZrH mass | 0.20 | ton | -| mwe | user_input MWE | 2.00 | MW | -| mwth | user_input mwth | 6.00 | MW | +| Number_of_shipping_containers | Number of shipping containers | 2.00 | | +| Battery_capacity_required | Battery capacity required | 150.00 | kW | +| primary_outer_vessel_SS_mass | primary outer vessel SS mass | 100.00 | ton | +| primary_inner_vessel_SS_mass | primary inner vessel SS mass | 0.50 | ton | +| B4C_total_neutron_poison_mass_Kg | B4C total neutron poison mass (Kg) | 600.00 | kg | | Number_of_control_rod_drums | Number of control rod drums | 15.00 | | -| number_of_core_cooling_heat_pipes | number of core cooling heat pipes | 1,500.00 | | | number_of_emergency_control_rods | number of emergency control rods | 4.00 | | +| stainless_steel_316_reflector_mass | stainless steel 316 reflector mass | 4.00 | ton | +| Al2O3_reflector_mass | Al2O3 reflector mass | 4.00 | ton | +| BeO_reflector_mass | BeO reflector mass | 4.00 | ton | +| shield_B4C_mass | shield B4C mass | 7,000.00 | kg | +| moderator_ZrH_mass | moderator ZrH mass | 0.20 | ton | +| mass_production_cost_reduction_factor | mass production cost reduction factor | 0.50 | | +| number_of_core_cooling_heat_pipes | number of core cooling heat pipes | 1,500.00 | | | number_of_heat_exchangers | number of heat exchangers | 4.00 | | +| heat_exchangers_mass | heat exchangers mass | 0.60 | ton | | number_of_IO_sensors | number of IO sensors | 800.00 | | -| Number_of_shipping_containers | Number of shipping containers | 2.00 | | -| primary_inner_vessel_SS_mass | primary inner vessel SS mass | 0.50 | ton | -| primary_outer_vessel_SS_mass | primary outer vessel SS mass | 100.00 | ton | -| shield_B4C_mass | shield B4C mass | 7,000.00 | kg | -| stainless_steel_316_reflector_mass | stainless steel 316 reflector mass | 4.00 | ton | -| Turbine_building_surface_area | Turbine building surface area | 2,000.00 | squareMeter | +| mwth | user_input mwth | 6.00 | MW | +| mwe | user_input MWE | 2.00 | MW | +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+-------------+ diff --git a/test/gold/output.pwr12be.out b/test/gold/output.pwr12be.out index e0bb5cd..f0a140a 100644 --- a/test/gold/output.pwr12be.out +++ b/test/gold/output.pwr12be.out @@ -75,16 +75,16 @@ Parameter "mwe" is required for cost elements: +---------------------+------------------------------------------------------+-----------+----------+ | var_name | var_description | var_value | var_unit | +---------------------+------------------------------------------------------+-----------+----------+ -| c_213_fac | Turbine building structure factory cost | 1.79 | million | +| n_231 | Scaling exponent law | 1.03 | | +| p_in | Inlet turbine pressure | 68.00 | bar | +| mwth | user_input mwth | 3,000.00 | MW | | c_221.12_cs_weight | weight of the carbon steel parts of the vessel | 538.00 | ton | | c_221.12_ss_weight | weight of the stainless steel cladding of the vessel | 18.30 | ton | | c_221.12_tol_weight | weight of the reactor primary vessel | 556.30 | ton | -| mwe | user_input MWE | 1,000.00 | MW | -| mwth | user_input mwth | 3,000.00 | MW | -| n_231 | Scaling exponent law | 1.03 | | -| p_in | Inlet turbine pressure | 68.00 | bar | | ref_211_fac | yardwork factory cost | 0.27 | million | | ref_211_mat | yardwork material cost | 10.30 | million | +| c_213_fac | Turbine building structure factory cost | 1.79 | million | +| mwe | user_input MWE | 1,000.00 | MW | +---------------------+------------------------------------------------------+-----------+----------+ @@ -124,201 +124,201 @@ variable "mwe" affects cost element(s): ====================================== Updating cost elements ====================================== -[Updating] Cost element [220A.211_fac], running algorithm: [unit_weights], -[Updating] with formulation: weight_of_carbon_steel*0.14+weight_of_stainless_steel*0.31 -[Updated] Reference value is : $70,000,000 , calculated value is: $80,992,349 - -[Updating] Cost element [262_mat], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $4,510,480 , calculated value is: $4,051,196 +[Updating] Cost element [211_fac], running algorithm: [esc_1987], +[Updating] with formulation: escalator*cost_in_1987 +[Updated] Reference value is : $810,015 , calculated value is: $769,340 -[Updating] Cost element [237_mat], running algorithm: [MWth_scale], +[Updating] Cost element [213_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $9,795,180 , calculated value is: $8,797,774 +[Updated] Reference value is : $1,770,660 , calculated value is: $1,607,731 -[Updating] Cost element [234_mat], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $2,022,430 , calculated value is: $1,816,496 +[Updating] Cost element [220A.211_fac], running algorithm: [unit_weights], +[Updating] with formulation: weight_of_carbon_steel*0.14+weight_of_stainless_steel*0.31 +[Updated] Reference value is : $70,000,000 , calculated value is: $80,992,349 -[Updating] Cost element [233_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.11_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $3,277,750 , calculated value is: $2,943,986 +[Updated] Reference value is : $3,780,840 , calculated value is: $3,305,891 -[Updating] Cost element [226.7_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.12_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $2,393,290 , calculated value is: $2,092,649 +[Updated] Reference value is : $4,394,350 , calculated value is: $3,842,334 -[Updating] Cost element [226.4_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222.14_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $2,705,780 , calculated value is: $2,365,884 +[Updated] Reference value is : $15,028 , calculated value is: $13,140 -[Updating] Cost element [222_mat], running algorithm: [MWth_scale], +[Updating] Cost element [222_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $1,795,340 , calculated value is: $1,569,811 +[Updated] Reference value is : $8,265,360 , calculated value is: $7,227,068 -[Updating] Cost element [222.14_mat], running algorithm: [MWth_scale], +[Updating] Cost element [226.4_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $28,193 , calculated value is: $24,651 +[Updated] Reference value is : $19,443,300 , calculated value is: $17,000,820 -[Updating] Cost element [222.12_mat], running algorithm: [MWth_scale], +[Updating] Cost element [226.7_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $1,119,110 , calculated value is: $978,525 +[Updated] Reference value is : $28,179,300 , calculated value is: $24,639,456 -[Updating] Cost element [222.11_mat], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $437,412 , calculated value is: $382,465 +[Updating] Cost element [231_fac], running algorithm: [dev_factor_ref], +[Updating] with formulation: cost_of_ref*scale/factor +[Updated] Reference value is : $356,031,000, calculated value is: $357,314,737 -[Updating] Cost element [213_mat], running algorithm: [MWth_scale], +[Updating] Cost element [233_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $32,364,600 , calculated value is: $29,069,025 +[Updated] Reference value is : $56,339,400 , calculated value is: $50,602,616 -[Updating] Cost element [262_lab], running algorithm: [MWth_scale], +[Updating] Cost element [234_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $35,896,600 , calculated value is: $32,241,396 +[Updated] Reference value is : $44,874,300 , calculated value is: $40,304,926 -[Updating] Cost element [237_lab], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $13,130,900 , calculated value is: $11,793,800 +[Updating] Cost element [241_fac], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $32,067,500 , calculated value is: $30,387,462 -[Updating] Cost element [234_lab], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $20,317,400 , calculated value is: $18,248,523 +[Updating] Cost element [242_fac], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $52,157,800 , calculated value is: $49,425,260 -[Updating] Cost element [233_lab], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $22,964,300 , calculated value is: $20,625,921 +[Updating] Cost element [246_fac], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $4,510,910 , calculated value is: $4,274,583 -[Updating] Cost element [226.7_lab], running algorithm: [MWth_scale], +[Updating] Cost element [262_fac], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $24,625,600 , calculated value is: $21,532,141 +[Updated] Reference value is : $86,813,900 , calculated value is: $77,974,010 -[Updating] Cost element [226.4_lab], running algorithm: [MWth_scale], +[Updating] Cost element [213_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $18,621,600 , calculated value is: $16,282,395 +[Updated] Reference value is : $31,835,200 , calculated value is: $28,593,512 -[Updating] Cost element [222_lab], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $18,143,900 , calculated value is: $15,864,698 +[Updating] Cost element [221.12_lab], running algorithm: [cost_by_weight], +[Updating] with formulation: tol_weight*coat_per_unit +[Updated] Reference value is : $6,397,710 , calculated value is: $7,120,613 -[Updating] Cost element [222.14_lab], running algorithm: [MWth_scale], +[Updating] Cost element [222.11_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $281,935 , calculated value is: $246,518 +[Updated] Reference value is : $4,374,120 , calculated value is: $3,824,650 [Updating] Cost element [222.12_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale [Updated] Reference value is : $11,381,600 , calculated value is: $9,951,838 -[Updating] Cost element [222.11_lab], running algorithm: [MWth_scale], +[Updating] Cost element [222.14_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $4,374,120 , calculated value is: $3,824,650 +[Updated] Reference value is : $281,935 , calculated value is: $246,518 -[Updating] Cost element [213_lab], running algorithm: [MWth_scale], +[Updating] Cost element [222_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $31,835,200 , calculated value is: $28,593,512 +[Updated] Reference value is : $18,143,900 , calculated value is: $15,864,698 -[Updating] Cost element [262_fac], running algorithm: [MWth_scale], +[Updating] Cost element [226.4_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $86,813,900 , calculated value is: $77,974,010 +[Updated] Reference value is : $18,621,600 , calculated value is: $16,282,395 -[Updating] Cost element [234_fac], running algorithm: [MWth_scale], +[Updating] Cost element [226.7_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $44,874,300 , calculated value is: $40,304,926 +[Updated] Reference value is : $24,625,600 , calculated value is: $21,532,141 -[Updating] Cost element [233_fac], running algorithm: [MWth_scale], +[Updating] Cost element [233_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $56,339,400 , calculated value is: $50,602,616 +[Updated] Reference value is : $22,964,300 , calculated value is: $20,625,921 -[Updating] Cost element [226.7_fac], running algorithm: [MWth_scale], +[Updating] Cost element [234_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $28,179,300 , calculated value is: $24,639,456 +[Updated] Reference value is : $20,317,400 , calculated value is: $18,248,523 -[Updating] Cost element [226.4_fac], running algorithm: [MWth_scale], +[Updating] Cost element [237_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $19,443,300 , calculated value is: $17,000,820 +[Updated] Reference value is : $13,130,900 , calculated value is: $11,793,800 -[Updating] Cost element [222_fac], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $8,265,360 , calculated value is: $7,227,068 +[Updating] Cost element [241_lab], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $1,720,620 , calculated value is: $1,630,477 -[Updating] Cost element [222.14_fac], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $15,028 , calculated value is: $13,140 +[Updating] Cost element [242_lab], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $4,446,170 , calculated value is: $4,213,231 -[Updating] Cost element [222.12_fac], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $4,394,350 , calculated value is: $3,842,334 +[Updating] Cost element [245_lab], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $51,236,700 , calculated value is: $48,552,394 -[Updating] Cost element [222.11_fac], running algorithm: [MWth_scale], -[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $3,780,840 , calculated value is: $3,305,891 +[Updating] Cost element [246_lab], running algorithm: [MWe_scale], +[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale +[Updated] Reference value is : $33,434,500 , calculated value is: $31,682,879 -[Updating] Cost element [213_fac], running algorithm: [MWth_scale], +[Updating] Cost element [262_lab], running algorithm: [MWth_scale], [Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale -[Updated] Reference value is : $1,770,660 , calculated value is: $1,607,731 - -[Updating] Cost element [231_fac], running algorithm: [dev_factor_ref], -[Updating] with formulation: cost_of_ref*scale/factor -[Updated] Reference value is : $356,031,000, calculated value is: $357,314,737 +[Updated] Reference value is : $35,896,600 , calculated value is: $32,241,396 [Updating] Cost element [211_mat], running algorithm: [esc_1987], [Updating] with formulation: escalator*cost_in_1987 [Updated] Reference value is : $29,075,000 , calculated value is: $29,348,892 -[Updating] Cost element [211_fac], running algorithm: [esc_1987], -[Updating] with formulation: escalator*cost_in_1987 -[Updated] Reference value is : $810,015 , calculated value is: $769,340 +[Updating] Cost element [213_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $32,364,600 , calculated value is: $29,069,025 [Updating] Cost element [221.12_mat], running algorithm: [cost_by_weight], [Updating] with formulation: tol_weight*coat_per_unit [Updated] Reference value is : $639,771 , calculated value is: $712,061 -[Updating] Cost element [221.12_lab], running algorithm: [cost_by_weight], -[Updating] with formulation: tol_weight*coat_per_unit -[Updated] Reference value is : $6,397,710 , calculated value is: $7,120,613 +[Updating] Cost element [222.11_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $437,412 , calculated value is: $382,465 -[Updating] Cost element [246_mat], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $20,755,500 , calculated value is: $19,668,071 +[Updating] Cost element [222.12_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $1,119,110 , calculated value is: $978,525 -[Updating] Cost element [245_mat], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $12,309,900 , calculated value is: $11,664,966 +[Updating] Cost element [222.14_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $28,193 , calculated value is: $24,651 -[Updating] Cost element [242_mat], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $849,719 , calculated value is: $805,202 +[Updating] Cost element [222_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $1,795,340 , calculated value is: $1,569,811 -[Updating] Cost element [241_mat], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $251,723 , calculated value is: $238,535 +[Updating] Cost element [226.4_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $2,705,780 , calculated value is: $2,365,884 -[Updating] Cost element [246_lab], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $33,434,500 , calculated value is: $31,682,879 +[Updating] Cost element [226.7_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $2,393,290 , calculated value is: $2,092,649 -[Updating] Cost element [245_lab], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $51,236,700 , calculated value is: $48,552,394 +[Updating] Cost element [233_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $3,277,750 , calculated value is: $2,943,986 -[Updating] Cost element [242_lab], running algorithm: [MWe_scale], -[Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $4,446,170 , calculated value is: $4,213,231 +[Updating] Cost element [234_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $2,022,430 , calculated value is: $1,816,496 -[Updating] Cost element [241_lab], running algorithm: [MWe_scale], +[Updating] Cost element [237_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $9,795,180 , calculated value is: $8,797,774 + +[Updating] Cost element [241_mat], running algorithm: [MWe_scale], [Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $1,720,620 , calculated value is: $1,630,477 +[Updated] Reference value is : $251,723 , calculated value is: $238,535 -[Updating] Cost element [246_fac], running algorithm: [MWe_scale], +[Updating] Cost element [242_mat], running algorithm: [MWe_scale], [Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $4,510,910 , calculated value is: $4,274,583 +[Updated] Reference value is : $849,719 , calculated value is: $805,202 -[Updating] Cost element [242_fac], running algorithm: [MWe_scale], +[Updating] Cost element [245_mat], running algorithm: [MWe_scale], [Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $52,157,800 , calculated value is: $49,425,260 +[Updated] Reference value is : $12,309,900 , calculated value is: $11,664,966 -[Updating] Cost element [241_fac], running algorithm: [MWe_scale], +[Updating] Cost element [246_mat], running algorithm: [MWe_scale], [Updating] with formulation: cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale -[Updated] Reference value is : $32,067,500 , calculated value is: $30,387,462 +[Updated] Reference value is : $20,755,500 , calculated value is: $19,668,071 + +[Updating] Cost element [262_mat], running algorithm: [MWth_scale], +[Updating] with formulation: cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale +[Updated] Reference value is : $4,510,480 , calculated value is: $4,051,196 @@ -327,7 +327,7 @@ variable "mwe" affects cost element(s): +-----+--------------+-----------------+--------------+----------+---------+ | 1 | 211_fac | 769339.89 | 21_fac | 211 | 1 | | 3 | 213_fac | 1607731.2757 | 21_fac | 213 | 1 | -| 24 | 220A.211_fac | 80992349.0 | 220A_fac | 220A.211 | 1 | +| 24 | 220A.211_fac | 80992349.3968 | 220A_fac | 220A.211 | 1 | | 56 | 222.11_fac | 3305891.38618 | 222_fac | 222.11 | 1 | | 57 | 222.12_fac | 3842334.19324 | 222_fac | 222.12 | 1 | | 59 | 222.14_fac | 13140.40834 | 222_fac | 222.14 | 1 | @@ -342,7 +342,7 @@ variable "mwe" affects cost element(s): | 91 | 246_fac | 4274583.42751 | 24_fac | 246 | 1 | | 100 | 262_fac | 77974010.29805 | 26_fac | 262 | 1 | | 105 | 213_lab | 28593511.51632 | 21_lab | 213 | 1 | -| 153 | 221.12_lab | 7120613.12 | 221_lab | 221.12 | 1 | +| 153 | 221.12_lab | 7120613.13638 | 221_lab | 221.12 | 1 | | 158 | 222.11_lab | 3824649.97319 | 222_lab | 222.11 | 1 | | 159 | 222.12_lab | 9951838.39114 | 222_lab | 222.12 | 1 | | 161 | 222.14_lab | 246518.13699 | 222_lab | 222.14 | 1 | @@ -359,7 +359,7 @@ variable "mwe" affects cost element(s): | 202 | 262_lab | 32241395.7319 | 26_lab | 262 | 1 | | 205 | 211_mat | 29348892.1 | 21_mat | 211 | 1 | | 207 | 213_mat | 29069025.43541 | 21_mat | 213 | 1 | -| 255 | 221.12_mat | 712061.312 | 221_mat | 221.12 | 1 | +| 255 | 221.12_mat | 712061.31364 | 221_mat | 221.12 | 1 | | 260 | 222.11_mat | 382464.99767 | 222_mat | 222.11 | 1 | | 261 | 222.12_mat | 978525.48003 | 222_mat | 222.12 | 1 | | 263 | 222.14_mat | 24650.98339 | 222_mat | 222.14 | 1 | diff --git a/test/test_crf_api.py b/test/test_crf_api.py index 4c3efcb..a7cb3ae 100644 --- a/test/test_crf_api.py +++ b/test/test_crf_api.py @@ -8,6 +8,7 @@ REPO_ROOT = Path(__file__).resolve().parents[1] from crf import ( + accert_output_to_crf_baseline, levers_to_dataframe, occ_reduction_from_foak_to_noak, results_to_dataframe, @@ -18,6 +19,7 @@ waterfall_to_dataframe, ) from crf.api import normalize_levers +from crf.io.excel_inputs import InputStore from crf.model.schedule import build_schedule_timeline from crf.sampling.lever_schema import EXCEL_NAME_TO_ID_ORDERED @@ -28,6 +30,7 @@ def _config(): "f_22": 250_000_000, "f_2321": 150_000_000, "land_cost_per_acre_0": 22_000, + "construction_duration_0": 76, "startup_0": 28, "staggering_ratio": 0.75, } @@ -156,7 +159,7 @@ def test_run_one_scenario_returns_static_inputs_and_unit_results(): def test_run_one_scenario_can_use_iat_adjusted_baseline_csv(tmp_path): - baseline = pd.read_csv(REPO_ROOT / "src" / "crf" / "data" / "AP1000_baseline.csv") + baseline, _ = InputStore().get_baseline("AP1000") adjusted = baseline.copy() adjusted["Adjusted Total Cost"] = adjusted["Total Cost (USD)"] * 0.5 adjusted["Adjusted Factory Equipment Cost"] = adjusted["Factory Equipment Cost"] * 0.5 @@ -175,6 +178,60 @@ def test_run_one_scenario_can_use_iat_adjusted_baseline_csv(tmp_path): assert adjusted_result["D20s_1"] < default_result["D20s_1"] +def test_accert_output_can_be_converted_to_crf_baseline_and_run(tmp_path): + baseline, _ = InputStore().get_baseline("AP1000") + accert_like = baseline.rename( + columns={ + "Account": "code_of_account", + "Title": "account_description", + "Total Cost (USD)": "total_cost", + } + )[["code_of_account", "account_description", "total_cost"]] + accert_path = tmp_path / "ap1000_upd_acc_example.csv" + output_path = tmp_path / "ap1000_accert_for_crf.csv" + accert_like.to_csv(accert_path, index=False) + + total_hours = float( + baseline.loc[ + baseline["Account"].astype(str).isin(["21", "22", "23", "24", "26"]), + "Site Labor Hours", + ].sum() + ) + converted = accert_output_to_crf_baseline( + accert_path, + output_path, + reactor_type="AP1000", + total_20s_labor_hours=total_hours, + ) + converted_direct = converted.loc[ + converted["Account"].astype(str).isin(["21", "22", "23", "24", "26"]), + "Site Labor Hours", + ].sum() + + assert output_path.exists() + assert converted_direct == pytest.approx(total_hours) + converted_totals = converted.set_index("Account")["Total Cost (USD)"] + baseline_totals = baseline.set_index("Account")["Total Cost (USD)"] + assert converted_totals.loc["214"] == pytest.approx( + baseline_totals.loc[["215", "217"]].sum() + ) + assert converted_totals.loc["215"] == pytest.approx(baseline_totals.loc["216"]) + assert converted_totals.loc["216"] == pytest.approx(baseline_totals.loc["214"]) + assert converted_totals.loc["232.1"] == pytest.approx(baseline_totals.loc["23"]) + assert converted_totals.loc["233"] == pytest.approx(baseline_totals.loc["26"]) + assert converted_totals.loc["26"] == pytest.approx(baseline_totals.loc["25"]) + + default_result = run_one_scenario(_config(), _levers()) + converted_result = run_one_scenario( + {**_config(), "baseline_csv": str(output_path)}, + _levers(), + ) + assert converted_result["OCC_1"] > 0 + assert converted_result["TCI_1"] > 0 + assert converted_result["OCC_1"] == pytest.approx(default_result["OCC_1"], rel=0.1) + assert converted_result["TCI_1"] == pytest.approx(default_result["TCI_1"], rel=0.1) + + def test_visualization_helpers_create_dashboard(tmp_path): result = run_one_scenario(_config(), _levers()) frame = results_to_dataframe(result) diff --git a/test/test_gui_workflow.py b/test/test_gui_workflow.py new file mode 100644 index 0000000..4828d64 --- /dev/null +++ b/test/test_gui_workflow.py @@ -0,0 +1,112 @@ +import pandas as pd +import pytest + +from tutorial.gui import crf_iat_gui + + +def _gui_payload(csv_content: str) -> dict: + return { + "workflow": "iat_crf", + "output_name": "pytest_gui_accert_iat_crf", + "iat": { + "input_mode": "csv", + "reactor_type": "ACCERT output-LR", + "countries": ["China"], + "year_dollar": 2024, + "input_csv": None, + "csv_content": csv_content, + "csv_filename": "ap1000_upd_acc_test.csv", + "electric_output_mwe": 2234, + "scenario_count": 1, + "occ_values": [5750], + }, + "crf": { + "reactor_type": "AP1000", + "baseline_csv": None, + "baseline_csv_content": None, + "baseline_csv_filename": None, + "f_22": 250_000_000, + "f_2321": 150_000_000, + "land_cost_per_acre_0": 22_000, + "startup_0": 25, + "construction_duration_0": 76, + "total_20s_labor_hours": 51_112_635.470754, + "staggering_ratio": 0.75, + "show_levers": False, + }, + "levers": { + "num_orders": 2, + "num_NOAK": 2, + "itc_percent": 0, + "n_itc": 0, + "interest_percent": 6, + "design_completion_percent": 70, + "design_maturity": 1, + "proc_exp": 0.5, + "N_proc": 3, + "ce_exp": 0.5, + "N_cons": 5, + "ae_exp": 0.5, + "N_AE": 4, + "standardization_percent": 80, + "modularity_code": 0, + "bop_grade_code": 0, + "rb_grade_code": 0, + }, + } + + +def test_gui_iat_crf_converts_raw_accert_account_csv(monkeypatch, tmp_path): + raw_accert = pd.DataFrame( + [ + {"code_of_account": "211", "account_description": "Yardwork", "total_cost": 1_000_000.0}, + {"code_of_account": "212", "account_description": "Reactor building", "total_cost": 2_000_000.0}, + {"code_of_account": "22", "account_description": "Reactor plant equipment", "total_cost": 3_000_000.0}, + {"code_of_account": "23", "account_description": "Turbine plant equipment", "total_cost": 4_000_000.0}, + ] + ) + monkeypatch.setattr(crf_iat_gui, "OUTPUT_DIR", tmp_path) + + result = crf_iat_gui.run_workflow(_gui_payload(raw_accert.to_csv(index=False))) + + converted = tmp_path / "pytest_gui_accert_iat_crf_accert_baseline_for_iat_crf.csv" + assert converted.exists() + converted_df = pd.read_csv(converted) + assert {"Account", "Title", "Total Cost (USD)", "Factory Equipment Cost", "Site Labor Cost", "Site Material Cost"}.issubset(converted_df.columns) + assert "Converted ACCERT baseline" in result["files"] + assert "CRF results CSV" in result["files"] + assert (tmp_path / "pytest_gui_accert_iat_crf_crf_results.csv").exists() + assert result["base_case"]["comparison"] + assert result["base_case"]["comparison"][0]["Total Cost"] > 0 + assert result["iat"]["comparison"] + assert result["crf"]["plants"] + assert result["crf"]["num_noak"] == 2 + assert result["crf"]["num_orders"] == 2 + assert result["crf"]["years_to_noak"] > 0 + assert result["crf"]["years_to_orderbook"] > 0 + assert crf_iat_gui._crf_config(_gui_payload(raw_accert.to_csv(index=False)))["construction_duration_0"] == pytest.approx(76) + assert result["crf"]["plants"][0]["Construction duration"] > 0 + + +def test_gui_crf_only_converts_raw_accert_baseline(monkeypatch, tmp_path): + raw_accert = pd.DataFrame( + [ + {"code_of_account": "211", "account_description": "Yardwork", "total_cost": 1_000_000.0}, + {"code_of_account": "212", "account_description": "Reactor building", "total_cost": 2_000_000.0}, + {"code_of_account": "22", "account_description": "Reactor plant equipment", "total_cost": 3_000_000.0}, + {"code_of_account": "23", "account_description": "Turbine plant equipment", "total_cost": 4_000_000.0}, + ] + ) + payload = _gui_payload("") + payload["workflow"] = "crf_only" + payload["crf"]["baseline_csv_content"] = raw_accert.to_csv(index=False) + payload["crf"]["baseline_csv_filename"] = "ap1000_upd_acc_test.csv" + monkeypatch.setattr(crf_iat_gui, "OUTPUT_DIR", tmp_path) + + result = crf_iat_gui.run_workflow(payload) + + assert (tmp_path / "pytest_gui_accert_iat_crf_accert_baseline_for_crf.csv").exists() + assert "Converted ACCERT baseline" in result["files"] + assert "CRF results CSV" in result["files"] + assert result["base_case"]["comparison"] + assert result["crf"]["plants"] diff --git a/test/test_iat_api.py b/test/test_iat_api.py index 8f3df6d..4ff5556 100644 --- a/test/test_iat_api.py +++ b/test/test_iat_api.py @@ -5,6 +5,8 @@ from iat import available_countries, level_account_summary, occ_cost_dataframe, occ_totals, run_adjustment, run_occ_scenarios from iat.data_loader import load_assumptions +from crf import accert_output_to_crf_baseline +from crf.io.excel_inputs import InputStore REPO_ROOT = Path(__file__).resolve().parents[1] AP1000_BASELINE = REPO_ROOT / "src" / "crf" / "data" / "AP1000_baseline.csv" @@ -81,6 +83,40 @@ def test_iat_china_account_22_formula(tmp_path): assert result["adjusted_total"] == pytest.approx(expected_equipment + expected_labor + expected_material) +def test_level_account_summary_includes_cost_category_breakdown(tmp_path): + csv_path = tmp_path / "baseline.csv" + pd.DataFrame( + [ + { + "Account": "22", + "Title": "Reactor System", + "Total Cost (USD)": 1_000.0, + "Factory Equipment Cost": 100.0, + "Site Labor Hours": 0.0, + "Site Labor Cost": 300.0, + "Site Material Cost": 600.0, + } + ] + ).to_csv(csv_path, index=False) + + result = run_adjustment( + { + "reactor_type": "ACCERT output-LR", + "country": "China", + "year_dollar": 2024, + "input_csv": csv_path, + } + ) + summary = level_account_summary(result["adjusted_costs"], max_level=2).set_index("COA") + + assert summary.loc["20", "Original Equipment Cost"] == pytest.approx(100.0) + assert summary.loc["20", "Original Material Cost"] == pytest.approx(600.0) + assert summary.loc["20", "Original Labor Cost"] == pytest.approx(300.0) + assert summary.loc["20", "Adjusted Equipment Cost"] > 0.0 + assert summary.loc["20", "Adjusted Material Cost"] > 0.0 + assert summary.loc["20", "Adjusted Labor Cost"] > 0.0 + + def test_iat_china_account_211_inherits_account_21_localization(tmp_path): csv_path = tmp_path / "accert_output.csv" pd.DataFrame( @@ -228,6 +264,44 @@ def test_iat_runs_on_packaged_ap1000_baseline(): assert coa_20["Adjusted Total Cost"] == pytest.approx(leaf_20s["Adjusted Total Cost"].sum()) +def test_iat_runs_on_accert_converted_baseline(tmp_path): + baseline, _ = InputStore().get_baseline("AP1000") + accert_like = baseline.rename( + columns={ + "Account": "code_of_account", + "Title": "account_description", + "Total Cost (USD)": "total_cost", + } + )[["code_of_account", "account_description", "total_cost"]] + accert_path = tmp_path / "ap1000_upd_acc_example.csv" + converted_path = tmp_path / "ap1000_accert_for_iat.csv" + accert_like.to_csv(accert_path, index=False) + total_hours = float( + baseline.loc[ + baseline["Account"].astype(str).isin(["21", "22", "23", "24", "26"]), + "Site Labor Hours", + ].sum() + ) + accert_output_to_crf_baseline( + accert_path, + converted_path, + reactor_type="AP1000", + total_20s_labor_hours=total_hours, + ) + + result = run_adjustment( + { + "reactor_type": "ACCERT output-LR", + "country": "China", + "year_dollar": 2024, + "input_csv": converted_path, + } + ) + assert result["reactor_family"] == "LR" + assert result["input_occ"] > 0 + assert result["adjusted_occ"] > 0 + + def test_iat_level_account_summary_includes_level_1_and_2(): baseline = AP1000_BASELINE result = run_adjustment( diff --git a/test/test_integration.py b/test/test_integration.py index 5199263..29d25ea 100644 --- a/test/test_integration.py +++ b/test/test_integration.py @@ -1,72 +1,141 @@ import subprocess import os import glob +import shutil +import sys +import tempfile +import re +from itertools import zip_longest +from pathlib import Path import pytest + +PROJECT_ROOT = Path(__file__).resolve().parents[1] +TEST_DIR = Path(__file__).resolve().parent + + def run_accert_and_check_output(input_file, expected_output_file): """Helper function to run ACCERT, check output file, and compare with expected result.""" - # Define the command to run the ACCERT script - command = ["python", "../src/Main.py", "-i", input_file] + command = [sys.executable, str(PROJECT_ROOT / "src" / "Main.py"), "-i", str(PROJECT_ROOT / input_file)] + test_db = Path(tempfile.mkdtemp()) / "accertdb.sqlite" + shutil.copy2(PROJECT_ROOT / "src" / "accertdb.sqlite", test_db) + env = os.environ.copy() + env["ACCERT_SQLITE_DB"] = str(test_db) # Run the command - result = subprocess.run(command, capture_output=True, text=True) + result = subprocess.run(command, cwd=TEST_DIR, env=env, capture_output=True, text=True) assert result.returncode == 0, f"ACCERT run failed: {result.stderr}" # Check if output.out is generated - assert os.path.exists("output.out"), "output.out file was not generated" + assert (TEST_DIR / "output.out").exists(), "output.out file was not generated" # Compare output.out content with expected output - with open("output.out", "r") as output_file: + with open(TEST_DIR / "output.out", "r") as output_file: output_content = output_file.read() - with open(expected_output_file, "r") as expected_output: + with open(TEST_DIR / expected_output_file, "r") as expected_output: expected_output_content = expected_output.read() + output_content = normalize_output(output_content) + expected_output_content = normalize_output(expected_output_content) + # compare the content of the output.out file with the expected output # compare each line of the output.out file with the expected output # if the content of the output.out file print the line that does not match the expected output if output_content != expected_output_content: output_lines = output_content.splitlines() expected_output_lines = expected_output_content.splitlines() - for i in range(len(output_lines)): - if output_lines[i] != expected_output_lines[i]: + for i, (output_line, expected_output_line) in enumerate(zip_longest(output_lines, expected_output_lines, fillvalue="")): + if output_line != expected_output_line: print(f"Line {i+1} does not match:") - print(f"Output: {output_lines[i]}") - print(f"Expected: {expected_output_lines[i]}") + print(f"Output: {output_line}") + print(f"Expected: {expected_output_line}") + break assert output_content == expected_output_content, "output.out content does not match expected output" -def check_excel_files(excel_patterns): - """Helper function to check if relevant Excel files are generated.""" +def normalize_output(output): + """Normalize timestamped CSV and legacy Excel output lines.""" + output = re.sub( + r"Successfully created CSV file .+_(aff_ce|upd_ce|upd_acc)_\d{8}_\d{6}\.csv", + r"Successfully created output file \1", + output, + ) + output = re.sub( + r"Successfully created excel file .+_(variable_affected_cost_elements|updated_cost_element|updated_account)\.xlsx", + lambda match: { + "variable_affected_cost_elements": "Successfully created output file aff_ce", + "updated_cost_element": "Successfully created output file upd_ce", + "updated_account": "Successfully created output file upd_acc", + }[match.group(1)], + output, + ) + return "\n".join(re.sub(r" {2,}", " ", line).rstrip() for line in output.splitlines()) + +def check_csv_files(csv_patterns): + """Helper function to check if relevant CSV files are generated.""" - for pattern in excel_patterns: - files = glob.glob(pattern) - assert len(files) > 0, f"No Excel files matching {pattern} were generated" + for pattern in csv_patterns: + files = glob.glob(str(TEST_DIR / pattern)) + assert len(files) > 0, f"No CSV files matching {pattern} were generated" # Test functions def test_integration_with_fusion_son(prepare_environment): """Test ACCERT with fusion.son input.""" - run_accert_and_check_output("../tutorial/accert/Fusion.son", "gold/output.fusion.out") + run_accert_and_check_output("tutorial/accert/Fusion.son", "gold/output.fusion.out") - # For fusion.son, only check for the updated_account.xlsx file - check_excel_files(["*_updated_account.xlsx"]) + # For fusion.son, only check for the updated account CSV file + check_csv_files(["*_upd_acc_*.csv"]) -def test_integration_with_pwr_son(prepare_environment,excel_patterns): +def test_integration_with_pwr_son(prepare_environment,csv_patterns): """Test ACCERT with pwr.son input.""" - run_accert_and_check_output("../tutorial/accert/PWR12-BE.son", "gold/output.pwr12be.out") + run_accert_and_check_output("tutorial/accert/PWR12-BE.son", "gold/output.pwr12be.out") - # Check all three relevant Excel files - check_excel_files(excel_patterns) + # Check all three relevant CSV files + check_csv_files(csv_patterns) -def test_integration_with_abr_son(prepare_environment,excel_patterns): +def test_integration_with_abr_son(prepare_environment,csv_patterns): """Test ACCERT with abr.son input.""" - run_accert_and_check_output("../tutorial/accert/ABR1000.son", "gold/output.abr1000.out") + run_accert_and_check_output("tutorial/accert/ABR1000.son", "gold/output.abr1000.out") - # Check all three relevant Excel files - check_excel_files(excel_patterns) + # Check all three relevant CSV files + check_csv_files(csv_patterns) -def test_integration_with_heatpipe_son(prepare_environment,excel_patterns): +def test_integration_with_heatpipe_son(prepare_environment,csv_patterns): """Test ACCERT with heatpipe.son input.""" - run_accert_and_check_output("../tutorial/accert/heatpipe.son", "gold/output.heatpipe.out") + run_accert_and_check_output("tutorial/accert/heatpipe.son", "gold/output.heatpipe.out") - # Check all three relevant Excel files - check_excel_files(excel_patterns) + # Check all three relevant CSV files + check_csv_files(csv_patterns) + +def test_integration_with_lpsr_son(prepare_environment,csv_patterns): + """Test ACCERT with the LPSR tutorial input.""" + command = [sys.executable, str(PROJECT_ROOT / "src" / "Main.py"), "-i", str(PROJECT_ROOT / "tutorial" / "accert" / "LPSR.son")] + test_db = Path(tempfile.mkdtemp()) / "accertdb.sqlite" + shutil.copy2(PROJECT_ROOT / "src" / "accertdb.sqlite", test_db) + env = os.environ.copy() + env["ACCERT_SQLITE_DB"] = str(test_db) + + result = subprocess.run(command, cwd=TEST_DIR, env=env, capture_output=True, text=True) + assert result.returncode == 0, f"ACCERT LPSR run failed: {result.stderr}" + output_content = (TEST_DIR / "output.out").read_text() + assert 'Reference model is "LPSR"' in output_content + assert "Total OCC" in output_content + assert "2024 ($/kW)" in output_content + check_csv_files(["lpsr_upd_acc_*.csv", "lpsr_upd_ce_*.csv", "lpsr_aff_ce_*.csv", "lpsr_post_*.csv"]) + + +def test_integration_with_ap1000_son(prepare_environment): + """Test ACCERT with the AP1000 tutorial input.""" + command = [sys.executable, str(PROJECT_ROOT / "src" / "Main.py"), "-i", str(PROJECT_ROOT / "tutorial" / "accert" / "AP1000.son")] + test_db = Path(tempfile.mkdtemp()) / "accertdb.sqlite" + shutil.copy2(PROJECT_ROOT / "src" / "accertdb.sqlite", test_db) + env = os.environ.copy() + env["ACCERT_SQLITE_DB"] = str(test_db) + + result = subprocess.run(command, cwd=TEST_DIR, env=env, capture_output=True, text=True) + assert result.returncode == 0, f"ACCERT AP1000 run failed: {result.stderr}" + output_content = (TEST_DIR / "output.out").read_text() + assert 'Reference model is "AP1000"' in output_content + assert "Total OCC" in output_content + assert "2024 ($/kW)" in output_content + check_csv_files(["ap1000_upd_acc_*.csv", "ap1000_upd_ce_*.csv", "ap1000_aff_ce_*.csv", "ap1000_post_*.csv"]) diff --git a/test/test_main.py b/test/test_main.py index a7dc4a3..b3ddf43 100644 --- a/test/test_main.py +++ b/test/test_main.py @@ -1,16 +1,23 @@ import sys import os +import glob +import contextlib +import io +from pathlib import Path +from types import SimpleNamespace -src_path = os.path.abspath(os.path.join(os.pardir, 'src')) -sys.path.insert(0, src_path) +PROJECT_ROOT = Path(__file__).resolve().parents[1] +TEST_DIR = Path(__file__).resolve().parent +SRC_PATH = PROJECT_ROOT / 'src' +sys.path.insert(0, str(SRC_PATH)) from utility_accert import Utility_methods from Main import Accert import pytest ut = Utility_methods() -accert_path = os.path.dirname(os.getcwd()) -input_path = os.path.join(os.getcwd(), 'accert_unit_test_input.son') +accert_path = str(PROJECT_ROOT) +input_path = str(TEST_DIR / 'accert_unit_test_input.son') accert = Accert(input_path, accert_path) accert.ref_model = 'pwr12-be' accert.acc_tabl = 'account' @@ -56,7 +63,7 @@ def test_update_input_variable(cursor): # check if the value is updated cursor.execute("""SELECT var_name,var_value, var_unit FROM variable - WHERE var_name = "c_213_fac";""") + WHERE var_name = ?;""", ("c_213_fac",)) expect_output = ('c_213_fac', 0.0, 'million') assert expect_output in cursor.fetchall() @@ -67,7 +74,7 @@ def test_update_variable_info_on_name(cursor): # check if the value is updated cursor.execute("""SELECT var_name,var_value, var_unit FROM variable - WHERE var_name = "c_213_fac";""") + WHERE var_name = ?;""", ("c_213_fac",)) expect_output = ('c_213_fac', 0.0, 'million') assert expect_output in cursor.fetchall() @@ -78,7 +85,7 @@ def test_update_super_variable(cursor): # check if the value is updated only check the user_input column cursor.execute("""SELECT var_name,user_input FROM variable - WHERE var_name = "n_231";""") + WHERE var_name = ?;""", ("n_231",)) expect_output = ('n_231', 1) assert expect_output in cursor.fetchall() @@ -89,7 +96,7 @@ def test_update_total_cost(cursor): # check if the value is updated cursor.execute("""SELECT code_of_account, total_cost FROM account - WHERE code_of_account = "211";""") + WHERE code_of_account = ?;""", ("211",)) expect_output = ('211', 1000000.0) assert expect_output in cursor.fetchall() @@ -100,7 +107,7 @@ def test_update_total_cost_on_name(cursor): # check if the value is updated cursor.execute("""SELECT code_of_account, total_cost FROM account - WHERE code_of_account = "211";""") + WHERE code_of_account = ?;""", ("211",)) expect_output = ('211', 1000000.0 ) assert expect_output in cursor.fetchall() @@ -111,7 +118,7 @@ def test_update_cost_element_on_name(cursor): # check if the value is updated cursor.execute("""SELECT cost_element, cost_2017, updated FROM cost_element - WHERE cost_element = "211_fac";""") + WHERE cost_element = ?;""", ("211_fac",)) expect_output = ('211_fac', 2000.0, 1) assert expect_output in cursor.fetchall() @@ -120,15 +127,19 @@ def test_roll_up_cost_elements(cursor): element for pwr12be, also test the function roll_up_cost_elements_by_level""" # roll up the cost element for pwr12be assert accert.roll_up_cost_elements(cursor)==None - # only the higher level cost element is updated - # check updated column - cursor.execute("""SELECT cost_element, updated - FROM cost_element - WHERE updated = 1;""") - expect_output = [('218_fac', 1), ('21_fac', 1),('2_fac', 1)] - real_output = cursor.fetchall() - for tup in expect_output: - assert tup in real_output + # Parent cost elements should equal the sum of their child cost elements. + # Rollup recalculates cost_2017 but does not mark parents as directly updated. + for cost_element in ('218_fac', '21_fac', '2_fac'): + cursor.execute("""SELECT cost_2017, updated + FROM cost_element + WHERE cost_element = ?;""", (cost_element,)) + parent_cost, updated = cursor.fetchone() + cursor.execute("""SELECT SUM(cost_2017) + FROM cost_element + WHERE sup_cost_ele = ?;""", (cost_element,)) + child_total = cursor.fetchone()[0] + assert round(parent_cost, 2) == round(child_total, 2) + assert updated == 0 def test_roll_up_account_table(cursor): """ test function roll_up_account_table,this function will roll up the account table and also test the function roll_up_account_table_by_level""" @@ -138,7 +149,7 @@ def test_roll_up_account_table(cursor): # check updated column cursor.execute("""SELECT code_of_account, review_status FROM account - WHERE review_status = 'updated';""") + WHERE review_status = ?;""", ("Updated",)) expect_output = [('218', 'Updated'), ('21', 'Updated'), ('2', 'Updated')] real_output = cursor.fetchall() for tup in expect_output: @@ -157,7 +168,7 @@ def test_roll_up_lmt_account_table(cursor): # check updated column cursor.execute("""SELECT code_of_account, review_status FROM abr_account - WHERE review_status = 'updated';""") + WHERE review_status = ?;""", ("Updated",)) expect_output = [('222', 'Updated')] accert.acc_tabl = 'account' assert expect_output==cursor.fetchall() @@ -170,7 +181,7 @@ def test_sum_cost_elements_2C(cursor): # check if the value is updated cursor.execute("""SELECT cost_element, updated FROM abr_cost_element - WHERE account = "2";""") + WHERE account = ?;""", ("2",)) expect_output = [('2c_fac',1), ('2c_lab', 1), ('2c_mat',1)] real_output = cursor.fetchall() for tup in expect_output: @@ -184,7 +195,7 @@ def test_roll_up_lmt_account_2C(cursor): # check if the value is updated cursor.execute("""SELECT code_of_account, review_status FROM abr_account - WHERE code_of_account = "2C";""") + WHERE code_of_account = ?;""", ("2C",)) expect_output = [('2C', 'Ready for Review')] assert expect_output==cursor.fetchall() @@ -196,7 +207,7 @@ def test_roll_up_lmt_direct_cost(cursor): # check if the value is updated cursor.execute("""SELECT code_of_account, review_status FROM abr_account - WHERE code_of_account = "2";""") + WHERE code_of_account = ?;""", ("2",)) expect_output = [('2', 'Ready for Review')] assert expect_output==cursor.fetchall() @@ -229,6 +240,8 @@ def test_check_unit_conversion(): possible. for example, if the unit is dollar and the new unit is million, the function will return True""" assert accert.check_unit_conversion('dollar','million')==True + assert accert.check_unit_conversion('dollar','$')==False + assert accert.check_unit_conversion('N/A','million')==False def test_convert_unit(): """ test function convert_unit, this function will return the converted value of the @@ -236,14 +249,14 @@ def test_convert_unit(): to_unit is million, the function will return the converted value 1. this function also test convert_unit_scale""" assert accert.convert_unit(1000000,'dollar','million')==1 + assert accert.convert_unit(1,'$','dollar')==1 def test_run_pre_alg(): """ test function run_pre_alg, this function will run the pre programed algorithm. the pre algorithm will update the cost element table for PWR12 BE and ABR1000. NOTE: all the pre programed algorithm output unit is million""" - alg='sum(kwargs.values())' kwargs={'v_1': 1, 'v_2': 2} - assert accert.run_pre_alg(alg, **kwargs)==3 + assert accert.run_pre_alg('sum_multi_accounts', **kwargs)==3 def test_cal_direct_cost_elements(cursor,conn): """ test function cal_direct_cost_elements, this function will calculate the direct cost for @@ -255,22 +268,126 @@ def test_cal_direct_cost_elements(cursor,conn): for i in range(3): assert round(real_ouput[i],-6)==round((852973431.1169341, 382841817.9556325, 183971968.309387)[i],-6) +def test_calculate_occ_post_process(cursor): + """Test ACCERT OCC post-processing formulas.""" + accert.acc_tabl = 'account' + results = accert.calculate_occ_post_process(cursor) + cursor.execute("""SELECT total_cost + FROM account + WHERE code_of_account = ?;""", ("2",)) + total_calculated_direct_cost = cursor.fetchone()[0] + assert results["total_calculated_direct_cost"] == pytest.approx(total_calculated_direct_cost) + assert results["total_direct_cost"] == pytest.approx(total_calculated_direct_cost) + assert results["total_indirect_costs"] == pytest.approx(total_calculated_direct_cost * 0.609) + assert results["total_cost_without_owner"] == pytest.approx(total_calculated_direct_cost * 1.609) + assert results["owner_cost"] == pytest.approx(total_calculated_direct_cost * 1.609 * 0.2) + assert results["total_OCC"] == pytest.approx(total_calculated_direct_cost * 1.609 * 1.2) + +def test_lpsr_occ_post_process_includes_per_kw(cursor): + """Test LPSR OCC post-processing includes $/kW using elec_P.""" + accert.ref_model = 'lpsr' + accert.acc_tabl = 'lpsr_account' + accert.var_tabl = 'lpsr_variable' + results = accert.post_processor.calculate_occ(cursor, accert.acc_tabl, accert._electric_power_mw(cursor), accert.ref_model, accert._cost_escalation_factor()) + rows = {row["metric"]: row for row in results.as_rows()} + assert rows["total_OCC"]["value_2024_dollar_per_kw"] == pytest.approx(results.total_OCC * accert._cost_escalation_factor() / (1117 * 1000)) + +def test_lpsr_power_defaults_update_rejected_heat(cursor): + """LPSR defaults power inputs and calculates rejected thermal power.""" + accert.ref_model = 'lpsr' + accert.var_tabl = 'lpsr_variable' + accert.alg_tabl = 'lpsr_algorithm' + accert.cel_tabl = 'lpsr_cost_element' + accert.process_power_inputs(cursor, SimpleNamespace(power=None)) + cursor.execute("""SELECT var_name, var_value, var_unit + FROM lpsr_variable + WHERE var_name IN (?, ?, ?) + ORDER BY var_name;""", ("elec_P", "rej_th_P", "rx_P")) + values = {name: (value, unit) for name, value, unit in cursor.fetchall()} + assert values["elec_P"][0] == pytest.approx(1117.0) + assert values["elec_P"][1] == "MWe" + assert values["rx_P"][0] == pytest.approx(3400.0) + assert values["rx_P"][1] == "MWt" + assert values["rej_th_P"][0] == pytest.approx(2283.0) + assert values["rej_th_P"][1] == "MWt" + +def test_ap1000_reference_tables_match_target_direct_cost(cursor): + """AP1000 mirrors LPSR structure at the 2234 MWe direct-cost basis.""" + cursor.execute("""SELECT total_cost + FROM ap1000_account + WHERE code_of_account = ?;""", ("2",)) + assert cursor.fetchone()[0] == pytest.approx(6673722963.402768347) + cursor.execute("""SELECT var_name, var_value, var_unit + FROM ap1000_variable + WHERE var_name IN (?, ?, ?) + ORDER BY var_name;""", ("elec_P", "rej_th_P", "rx_P")) + values = {name: (value, unit) for name, value, unit in cursor.fetchall()} + assert values["elec_P"][0] == pytest.approx(2234.0) + assert values["elec_P"][1] == "MWe" + assert values["rx_P"][0] == pytest.approx(6800.0) + assert values["rx_P"][1] == "MWt" + assert values["rej_th_P"][0] == pytest.approx(4566.0) + assert values["rej_th_P"][1] == "MWt" + cursor.execute("""SELECT var_value + FROM ap1000_variable + WHERE var_name = ?;""", ("scale_ap1000",)) + assert cursor.fetchone()[0] == pytest.approx(2.8540789982106554) + +def test_ap1000_recalculation_reproduces_reference_direct_cost(cursor): + """AP1000 recalculates to its scaled reference when baseline inputs are unchanged.""" + accert.ref_model = 'ap1000' + accert.acc_tabl = 'ap1000_account' + accert.cel_tabl = 'ap1000_cost_element' + accert.var_tabl = 'ap1000_variable' + accert.alg_tabl = 'ap1000_algorithm' + cursor.execute("""UPDATE ap1000_variable + SET user_input = 1 + WHERE var_name = ?;""", ("scale_ap1000",)) + with contextlib.redirect_stdout(io.StringIO()): + accert.process_super_values(cursor, "scale_ap1000") + accert.update_new_cost_elements(cursor) + accert.roll_up_cost_elements(cursor, passes=4) + accert.update_account_table_by_cost_elements(cursor) + accert.roll_up_account_table(cursor, from_level=4, to_level=0) + cursor.execute("""SELECT total_cost + FROM ap1000_account + WHERE code_of_account = ?;""", ("2",)) + assert cursor.fetchone()[0] == pytest.approx(6673722963.402768347, rel=1e-7) + +def test_lpsr_same_power_input_does_not_recalculate_rejected_heat(cursor): + """LPSR skips rejected heat recalculation when power inputs match defaults.""" + accert.ref_model = 'lpsr' + accert.var_tabl = 'lpsr_variable' + accert.alg_tabl = 'lpsr_algorithm' + accert.cel_tabl = 'lpsr_cost_element' + power = [ + SimpleNamespace(id="Thermal", value=SimpleNamespace(value=3400), unit=SimpleNamespace(value="MW")), + SimpleNamespace(id="Electric", value=SimpleNamespace(value=1117), unit=SimpleNamespace(value="MW")), + ] + accert.process_power_inputs(cursor, SimpleNamespace(power=power)) + cursor.execute("""SELECT user_input + FROM lpsr_variable + WHERE var_name = ?;""", ("rej_th_P",)) + assert cursor.fetchone()[0] == 0 + def test_generate_results_table(cursor,conn): """ test function generate_results_table, this function will generate the results table for each cost element. This function will update the cost element table for PWR12BE. Also, this - function will test write_to_excel function""" + function will test CSV output.""" accert.ref_model = 'pwr12-be' accert.acc_tabl = 'account' accert.cel_tabl = 'cost_element' accert.var_tabl = 'variable' + for pattern in ('pwr12-be_upd_acc_*.csv', 'pwr12-be_aff_ce_*.csv', 'pwr12-be_upd_ce_*.csv'): + for output_file in glob.glob(pattern): + os.remove(output_file) assert accert.generate_results_table(cursor, conn, level=3)==None - # check whether the results xlsx file is generated - assert os.path.isfile('pwr12-be_updated_account.xlsx')==True + # check whether the results CSV file is generated + assert len(glob.glob('pwr12-be_upd_acc_*.csv')) == 1 assert accert.generate_results_table_with_cost_elements(cursor, conn, level=3)==None - assert os.path.isfile('pwr12-be_variable_affected_cost_elements.xlsx')==True - assert os.path.isfile('pwr12-be_updated_cost_element.xlsx')==True - # remove the generated xlsx file - os.remove('pwr12-be_updated_account.xlsx') - os.remove('pwr12-be_variable_affected_cost_elements.xlsx') - os.remove('pwr12-be_updated_cost_element.xlsx') + assert len(glob.glob('pwr12-be_aff_ce_*.csv')) == 1 + assert len(glob.glob('pwr12-be_upd_ce_*.csv')) == 1 + for pattern in ('pwr12-be_upd_acc_*.csv', 'pwr12-be_aff_ce_*.csv', 'pwr12-be_upd_ce_*.csv'): + for output_file in glob.glob(pattern): + os.remove(output_file) diff --git a/test/test_mysql.py b/test/test_mysql.py deleted file mode 100644 index b10235a..0000000 --- a/test/test_mysql.py +++ /dev/null @@ -1,139 +0,0 @@ -# test MySQL connection and query -import pytest - -def test_mysql_connection(conn): - """ Test the connection to the MySQL database. """ - assert conn.is_connected() - -def test_database_exists(cursor): - """ Test the existence of the database. """ - cursor.execute("SHOW DATABASES") - databases = cursor.fetchall() - assert ('accert_db',) in databases - -def test_table_exists(cursor): - """ Test the existence of the table. """ - cursor.execute("SHOW TABLES") - tables = cursor.fetchall() - - assert ('abr_account',) in tables - assert ('abr_cost_element',) in tables - assert ('abr_variable',) in tables - assert ('account',) in tables - assert ('algorithm',) in tables - assert ('cost_element',) in tables - assert ('escalation',) in tables - assert ('facility',) in tables - assert ('variable',) in tables - -def test_table_columns(cursor): - """ Test the columns of the table. """ - cursor.execute("SHOW COLUMNS FROM abr_account") - columns = cursor.fetchall() - assert ('ind', b'int', 'YES', '', None, '') in columns - assert ('code_of_account', b'varchar(20)', 'NO', 'PRI', None, '') in columns - assert ('account_description', b'text', 'YES', '', None, '') in columns - assert ('total_cost', b'double', 'YES', '', None, '') in columns - assert ('level', b'int', 'YES', '', None, '') in columns - assert ('supaccount', b'text', 'YES', '', None, '') in columns - assert ('review_status', b'text', 'YES', '', None, '') in columns - assert ('prn', b'double', 'YES', '', None, '') in columns - - - cursor.execute("SHOW COLUMNS FROM abr_cost_element") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, 'auto_increment') in columns - assert ('cost_element', b'text', 'YES', '', None, '') in columns - assert ('cost_2017', b'double', 'YES', '', None, '') in columns - assert ('sup_cost_ele', b'text', 'YES', '', None, '') in columns - assert ('alg_name', b'text', 'YES', '', None, '') in columns - assert ('fun_unit', b'text', 'YES', '', None, '') in columns - assert ('variables', b'text', 'YES', '', None, '') in columns - assert ('account', b'text', 'YES', '', None, '') in columns - assert ('algno', b'text', 'YES', '', None, '') in columns - assert ('updated', b'int', 'YES', '', None, '') in columns - - - cursor.execute("SHOW COLUMNS FROM abr_variable") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, 'auto_increment')in columns - assert ('var_name', b'text', 'YES', '', None, '')in columns - assert ('var_description', b'text', 'YES', '', None, '')in columns - assert ('var_value', b'double', 'YES', '', None, '')in columns - assert ('var_unit', b'text', 'YES', '', None, '')in columns - assert ('var_alg', b'text', 'YES', '', None, '')in columns - assert ('var_need', b'text', 'YES', '', None, '')in columns - assert ('v_linked', b'text', 'YES', '', None, '')in columns - assert ('user_input', b'int', 'YES', '', None, '')in columns - - - cursor.execute("SHOW COLUMNS FROM account") - columns = cursor.fetchall() - assert ('ind', b'int', 'YES', '', None, '') in columns - assert ('code_of_account', b'varchar(20)', 'NO', 'PRI', None, '') in columns - assert ('account_description', b'text', 'YES', '', None, '') in columns - assert ('total_cost', b'double', 'YES', '', None, '') in columns - assert ('level', b'int', 'YES', '', None, '') in columns - assert ('supaccount', b'text', 'YES', '', None, '') in columns - assert ('review_status', b'text', 'YES', '', None, '') in columns - assert ('prn', b'double', 'YES', '', None, '') in columns - - - cursor.execute("SHOW COLUMNS FROM algorithm") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, '') in columns - assert ('alg_name', b'text', 'YES', '', None, '') in columns - assert ('alg_for', b'text', 'YES', '', None, '') in columns - assert ('alg_description', b'text', 'YES', '', None, '') in columns - assert ('alg_python', b'text', 'YES', '', None, '') in columns - assert ('alg_formulation', b'text', 'YES', '', None, '') in columns - assert ('alg_units', b'text', 'YES', '', None, '') in columns - assert ('variables', b'text', 'YES', '', None, '') in columns - assert ('constants', b'text', 'YES', '', None, '') in columns - - cursor.execute("SHOW COLUMNS FROM cost_element") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, 'auto_increment') in columns - assert ('cost_element', b'varchar(20)', 'NO', 'PRI', None, '') in columns - assert ('cost_2017', b'double', 'YES', '', None, '') in columns - assert ('sup_cost_ele', b'text', 'YES', '', None, '') in columns - assert ('alg_name', b'text', 'YES', '', None, '') in columns - assert ('fun_unit', b'text', 'YES', '', None, '') in columns - assert ('variables', b'text', 'YES', '', None, '') in columns - assert ('account', b'text', 'YES', '', None, '') in columns - assert ('algno', b'text', 'YES', '', None, '') in columns - assert ('updated', b'int', 'YES', '', None, '') in columns - - cursor.execute("SHOW COLUMNS FROM escalation") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, 'auto_increment') in columns - assert ('name', b'varchar(30)', 'NO', '', None, '') in columns - assert ('description', b'text', 'YES', '', None, '') in columns - assert ('revision', b'text', 'YES', '', None, '') in columns - assert ('value', b'double', 'YES', '', None, '') in columns - assert ('year_of_interest', b'datetime', 'YES', '', None, '') in columns - - cursor.execute("SHOW COLUMNS FROM facility") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, 'auto_increment') in columns - assert ('name', b'varchar(50)', 'NO', 'PRI', None, '') in columns - assert ('description', b'text', 'YES', '', None, '') in columns - assert ('account', b'varchar(20)', 'YES', '', None, '') in columns - assert ('references', b'text', 'YES', '', None, '') in columns - assert ('reference_year', b'datetime', 'YES', '', None, '') in columns - assert ('year_of_interest', b'datetime', 'YES', '', None, '') in columns - assert ('escalation_name', b'varchar(30)', 'YES', '', None, '') in columns - assert ('escalation_factorsValue', b'double', 'YES', '', None, '') in columns - - cursor.execute("SHOW COLUMNS FROM variable") - columns = cursor.fetchall() - assert ('ind', b'int', 'NO', 'PRI', None, 'auto_increment') in columns - assert ('var_name', b'text', 'YES', '', None, '') in columns - assert ('var_description', b'text', 'YES', '', None, '') in columns - assert ('var_value', b'double', 'YES', '', None, '') in columns - assert ('var_unit', b'text', 'YES', '', None, '') in columns - assert ('var_alg', b'text', 'YES', '', None, '') in columns - assert ('var_need', b'text', 'YES', '', None, '') in columns - assert ('v_linked', b'text', 'YES', '', None, '') in columns - assert ('user_input', b'int', 'YES', '', None, '') in columns - \ No newline at end of file diff --git a/test/test_necost_workflow.py b/test/test_necost_workflow.py new file mode 100644 index 0000000..09646c3 --- /dev/null +++ b/test/test_necost_workflow.py @@ -0,0 +1,157 @@ +import os +import sys +from pathlib import Path + +import pandas as pd +import pytest + + +PROJECT_ROOT = Path(__file__).resolve().parents[1] +SRC = PROJECT_ROOT / "src" +sys.path.insert(0, str(SRC)) + +from necost import generate_monte_carlo_samples +from input_processor import parse_son_input +from necostmain import _read_accert_occ_per_kw, _validate_cycle_weight_inputs, run_necost + + +def _has_sonvalidxml(): + exe = PROJECT_ROOT / "bin" / "sonvalidxml" + return exe.exists() and os.access(exe, os.X_OK) + + +def test_triangular_sampler_allows_constant_bounds(): + params = pd.DataFrame( + {"capital_cost": {"low": 7205.48, "nominal": 7205.48, "high": 7205.48, "distribution": 1}} + ) + + samples = generate_monte_carlo_samples(params, sampling_amount=5, discount_rate=5) + + assert samples["capital_cost"].tolist() == [7205.48] * 5 + + +def test_read_accert_occ_for_necost(tmp_path): + post_csv = tmp_path / "ap1000_post.csv" + pd.DataFrame( + [ + {"metric": "total_direct_cost", "value_2024_dollar_per_kw": 3731.86}, + {"metric": "total_OCC", "value_2024_dollar_per_kw": 7205.48}, + ] + ).to_csv(post_csv, index=False) + + assert _read_accert_occ_per_kw(post_csv) == pytest.approx(7205.48) + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_necost_eg13_tutorial_runs(tmp_path): + results = run_necost( + PROJECT_ROOT / "tutorial" / "necost" / "EG13.ML02.son", + output_dir=tmp_path, + make_plot=False, + ) + + assert (tmp_path / "NECOST_results.csv").exists() + assert (tmp_path / "NECOST_reactor_results.csv").exists() + assert set(["Capital", "O&M", "FCC", "LCOE"]).issubset(results.columns) + assert results["reactor_id"].eq("weighted_cycle").all() + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_necost_eg02_ot01b_tutorial_runs(tmp_path): + results = run_necost( + PROJECT_ROOT / "tutorial" / "necost" / "EG02.OT01B.son", + output_dir=tmp_path, + make_plot=False, + ) + + assert (tmp_path / "NECOST_results.csv").exists() + assert results["reactor_id"].eq("HTGR_LEU").all() + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_eg02_ot01b_uses_report_capacity_and_weight(): + parsed = parse_son_input( + str(PROJECT_ROOT / "tutorial" / "necost" / "EG02.OT01B.son"), + str(PROJECT_ROOT), + ) + reactor = parsed["fuel_cycles"][0]["reactors"][0] + + assert reactor["fleet_capacity"] == pytest.approx(175) + assert reactor["energy_fraction"] == pytest.approx(1) + _validate_cycle_weight_inputs(parsed) + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_eg23_uses_report_driver_blanket_energy_fractions(): + parsed = parse_son_input( + str(PROJECT_ROOT / "tutorial" / "necost" / "EG23.SC05.son"), + str(PROJECT_ROOT), + ) + reactors = { + row["reactor"]: row["energy_fraction"] + for row in parsed["fuel_cycles"][0]["reactors"] + } + + assert reactors == {"FR_DRIVER": pytest.approx(0.954), "FR_BLANKET": pytest.approx(0.046)} + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_eg23_retains_report_driver_blanket_mass_fractions(): + text = (PROJECT_ROOT / "tutorial" / "necost" / "EG23.SC05.son").read_text() + + assert "80% driver / 20% blanket" in text + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_eg23_fleet_capacity_matches_power_block(): + parsed = parse_son_input( + str(PROJECT_ROOT / "tutorial" / "necost" / "EG23.SC05.son"), + str(PROJECT_ROOT), + ) + + _validate_cycle_weight_inputs(parsed) + + +def test_fleet_capacity_sanity_check_rejects_inconsistent_mwe(): + parsed = { + "fuel_cycles": [ + { + "cycle": "test", + "reactors": [ + { + "reactor": "R1", + "fleet_capacity": 381.6, + "energy_fraction": 0.954, + "mass_fraction": 0.8, + } + ], + } + ], + "reactors": [ + { + "id": "R1", + "power_level": { + "reference_thermal": 4.57e7, + "reference_net_electrical": None, + "net_thermal_efficiency": 40, + }, + } + ], + } + + with pytest.raises(ValueError, match="fleet_capacity"): + _validate_cycle_weight_inputs(parsed) + + +@pytest.mark.skipif(not _has_sonvalidxml(), reason="NEcost SON validation requires Workbench sonvalidxml") +def test_eg13_uses_report_energy_fractions(): + parsed = parse_son_input( + str(PROJECT_ROOT / "tutorial" / "necost" / "EG13.ML02.son"), + str(PROJECT_ROOT), + ) + reactors = { + row["reactor"]: row["energy_fraction"] + for row in parsed["fuel_cycles"][0]["reactors"] + } + + assert reactors == {"PWR_UOX": pytest.approx(0.902), "PWR_MOX": pytest.approx(0.098)} diff --git a/test/test_sqlite.py b/test/test_sqlite.py new file mode 100644 index 0000000..144c065 --- /dev/null +++ b/test/test_sqlite.py @@ -0,0 +1,134 @@ +"""Smoke tests for the bundled ACCERT SQLite database.""" + + +def _sqlite_tables(cursor): + cursor.execute("SELECT name FROM sqlite_master WHERE type='table'") + return {row[0] for row in cursor.fetchall()} + + +def _sqlite_columns(cursor, table_name): + cursor.execute(f"PRAGMA table_info({table_name})") + return {row[1] for row in cursor.fetchall()} + + +def test_sqlite_connection(conn): + assert conn.is_connected() + + +def test_database_tables_exist(cursor): + tables = _sqlite_tables(cursor) + assert { + "abr_account", + "abr_cost_element", + "abr_variable", + "account", + "algorithm", + "cost_element", + "escalation", + "facility", + "variable", + }.issubset(tables) + + +def test_table_columns(cursor): + expected_columns = { + "abr_account": { + "ind", + "code_of_account", + "account_description", + "total_cost", + "level", + "supaccount", + "review_status", + "prn", + }, + "abr_cost_element": { + "ind", + "cost_element", + "cost_2017", + "sup_cost_ele", + "alg_name", + "fun_unit", + "variables", + "account", + "algno", + "updated", + }, + "abr_variable": { + "ind", + "var_name", + "var_description", + "var_value", + "var_unit", + "var_alg", + "var_need", + "v_linked", + "user_input", + }, + "account": { + "ind", + "code_of_account", + "account_description", + "total_cost", + "level", + "supaccount", + "review_status", + "prn", + }, + "algorithm": { + "ind", + "alg_name", + "alg_for", + "alg_description", + "alg_python", + "alg_formulation", + "alg_units", + "variables", + "constants", + }, + "cost_element": { + "ind", + "cost_element", + "cost_2017", + "sup_cost_ele", + "alg_name", + "fun_unit", + "variables", + "account", + "algno", + "updated", + }, + "escalation": { + "ind", + "name", + "description", + "revision", + "value", + "year_of_interest", + }, + "facility": { + "ind", + "name", + "description", + "account", + "references", + "reference_year", + "year_of_interest", + "escalation_name", + "escalation_factorsValue", + }, + "variable": { + "ind", + "var_name", + "var_description", + "var_value", + "var_unit", + "var_alg", + "var_need", + "v_linked", + "user_input", + }, + } + + for table_name, columns in expected_columns.items(): + assert columns.issubset(_sqlite_columns(cursor, table_name)) diff --git a/tutorial/accert/AP1000.son b/tutorial/accert/AP1000.son new file mode 100644 index 0000000..0580054 --- /dev/null +++ b/tutorial/accert/AP1000.son @@ -0,0 +1,22 @@ +accert{ + ref_model = "AP1000" + use_gncoa = False + + post_process { + occ = true + } + + power(Thermal){ + value = 6800 + unit = MW + } + + power(Electric){ + value = 2234 + unit = MW + } + var(mc_piping_M){ + value = 77001 + unit = kg + } +} diff --git a/tutorial/accert/LPSR.son b/tutorial/accert/LPSR.son new file mode 100644 index 0000000..14bac89 --- /dev/null +++ b/tutorial/accert/LPSR.son @@ -0,0 +1,24 @@ +accert{ + ref_model = "LPSR" + use_gncoa = False + + post_process { + occ = true + } + + power(Thermal){ + value = 6800 %3400 + unit = MW + } + + power(Electric){ + value = 2234 %1117 + unit = MW + } + + var(cont_D_D){ + value = 45.0 + unit = m + } + +} diff --git a/tutorial/accert/ref_tables/Accert_algorithm.csv b/tutorial/accert/ref_tables/Accert_algorithm.csv deleted file mode 100644 index 1fb5efd..0000000 --- a/tutorial/accert/ref_tables/Accert_algorithm.csv +++ /dev/null @@ -1,68 +0,0 @@ -ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units,variables,constants -1,sum_multi_accounts,c,sum of multiple accounts,sum(kwargs.values()),"sum(account_1,account_2...account_n)",million,"account1, account2.accountn",NULL -2,sum_multi_weights,v,sum of multiple weights ,sum(kwargs.values()),sum(Weight_1+Weight_2...Weight_n),ton,"weight1,weight2weight3,weit4,weight5",NULL -3,sum_multi_pumps,c,sum cost of multiple pumps,sum(kwargs.values()),sum(Pump_1+Pump_2+Pump_n),million,"pump1,pump2,pump3,pump4,pump5",NULL -4,ptn_account,c,portion of account cost,v_1*v_2,account_cost*portion,million,"c_ref,prn_fac",NULL -5,unit_weights,c,unit cost of weight,v_1*0.14+v_2*0.31,weight_of_carbon_steel*0.14+weight_of_stainless_steel*0.31,million,"Csweight, Ssweight","0.140000, 0.310000" -6,pump,v,cost per pump based on ref,"v_1*np.power((v_2/v_3),v_4)",ref_cost_of_pump*(CH_of_pump/CH_of_ref)^scale_of_power,million,"c_pump_ref,CH,CH_ref,scale",NULL -7,containment,c,containment calculation,v_1/1000000,containment structure + equipment + others,million,NOT YET,NULL -8,MWth_scale,c,thermal power scale from pwr12be,"v_1*np.power((v_2/3431),v_3)",cost_of_ref*(thermal_power/thermal_power_of_ref)^thermal_power_scale,million,"c_ref,mwth,scale",3431 -9,unit_volume,c,cost by unit volume,v_1*v_2/1000000,dollar_cost_per_unit_vol*vol/1000000,million,"V1_unit_vol, V2_vol",NULL -10,dev_factor_ref,c,factor of the reference,v_1*v_2/v_3,cost_of_ref*scale/factor,million,"c_ref,scale,n",NULL -11,tur_exp_n,v,scaling exponent law ,(-0.0032) *v_1+ 1.2497,(-0.0032) *v_1+ 1.2497,1,p_in, -12,esc_1987,c,escalate from 1987,v_1*v_2,escalator*cost_in_1987,million,"escalate_1987,refCost",NULL -13,cost_by_weight,c,per-unit mass costs,v_1*v_2,tol_weight*coat_per_unit,million,"tolweight, unitcost",NULL -14,default_0,c,default as 0,0,set the total cost to 0,million,NULL,0 -15,rpv_mass,v,mass of RPV,v_1+v_2,weight_of_carbon_steel+weight_of_stainless_steel,ton,"c_221.12_cs_weight,c_221.12_ss_weight",NULL -16,unit_facility,c,per-unit facility costs,v_1*v_2,no_of_facility*cost_per_facility,million,"no_of_unit, unitcost",NULL -17,MWe_scale,c,electric power scale from pwr12be,"v_1*np.power((v_2/1144),v_3)",cost_of_ref*(electric_power/electric_power_of_ref)^electric_power_scale,million,"c_ref,mwe,scale",1144 -18,unit_weights_plate,c,unit cost of weight with plate installation,v_1*0.075+v_2*0.31,weight_of_carbon_steel_plate_install*0.075+weight_of_stainless_steel*0.31,million,"Csweight_plate, Ssweight","0.075000, 0.310000" -19,esc_1978,c,escalate from 1978,v_1*v_2,escalator*cost_in_1978,million,"escalate_1978,refCost",NULL -20,total_weight_prn,c,unit cost of total weight by portion,v_1*(v_2*0.075+v_3*0.31)*v_4,tol_weight*(portion_of_carbon_steel*0.075+portion_of_stainless_steel*0.31)*no_of_facility,million,"V1_totweight, V2_csprn,V3_ssprn,V4_no_of_facility","0.075000, 0.310000" -21,unit_weights_factor,c,unit cost of weight with factor,(v_1*0.075+v_2*0.31)*v_3,(weight_of_carbon_steel_plate_install*0.075+weight_of_stainless_steel*0.31)*factor,million,"Csweight, Ssweight,factor","0.075000, 0.310000" -22,factor_sum,c,sum of multiple accounts with factor,"v_1*v_2*sum(v_3,v_4)",factor*prn*sum(account_2..account_n),million,"factor1, portion,account2.accountn",NULL -23,complex,c,complex algorithm,v_1,simple cost,million,cost,NULL -24,MWth_lmfbrscale,c,thermal power scale from lmfbr,"v_1*np.power((v_2/2287),v_3)",cost_of_ref*(thermal_power/thermal_power_of_LMFBR)^thermal_power_scale,million,"c_ref,mwth,scale",2287 -25,MWreth_scale,c,rejected thermal power scale from pwr12be,"v_1*np.power((v_2/3800),v_3)",cost_of_ref*(rejected_hermal_power/rejected_thermal_power_of_LMFBR)^thermal_power_scale,million,"c_ref,mwreth,scale",3800 -26,Sgsum,c,NOT YET,NOT YET,NOT implemented YET,million,NOT YET,NULL -27,containmentsum,c,NOT YET,NOT YET,NOT implemented YET,million,NOT YET,NULL -28,inside_rad,v,calculate inside radius,v_1-v_2,radius_out-thickness,m,"r_out, t",NULL -29,round_surface,v,calculate surface base on radius,"np.pi*np.power(v_1,2)",radius,m^2,r,PI -30,basemat_volume,v,calculate basemat volume base on surface,v_1*v_2,basemat_surface*thickness,m^3,"S,t",NULL -31,wall_height,v,calculate wall height base on total height,v_1-v_2,total_height-roof_rad,m,NULL,NULL -32,walls_surface,v,calculate Walls surface,v_1*2*np.pi*(v_2+v_3),Cont_H_wall_m*2*PI()*(Cont_rad_out_m+Cont_rad_in_m),m^2,NULL,NULL -33,wall_volume,v,calculate Walls volume,"v_1*np.pi*(np.power(v_2,2)-np.power(v_3,2))",Cont_H_wall_m*PI()*(Cont_rad_out_m^2-Cont_rad_in_m^2),m^3,NULL,NULL -34,dome_inside_diameter ,v,calculate Dome inside diameter ,v_1-v_2,Cont_rad_out_m-B10,m,NULL,NULL -35,roof_surface,v,calculate Roof surface,"0.5*4*np.pi*(np.power(v_1,2)+np.power(v_2,2))",0.5*4*PI()*(Cont_rad_out_m^2+Dome_rad_in_m^2),m^2,NULL,NULL -36,roof_volume,v,calculate Roof volume,"0.5*4/3*np.pi*(np.power(v_1,3)-np.power(v_2,3))",0.5*4/3*PI()*(Cont_rad_out_m^3-Dome_rad_in_m^3),m^3,NULL,NULL -37,tot_internal_volume,v,calculate Tot internal Volume,"(np.pi*np.power(v_1,2)*v_2)+(0.5*(4/3)*np.pi*np.power(v_3,3))",(PI()*Cont_rad_in_m^2*Cont_H_wall_m)+(0.5*(4/3)*PI()*Dome_rad_in_m^3),m^3,NULL,NULL -38,building_internal_volume,v,calculate Building internal volume,v_1*(1-v_2),Intern_tot_v_m3*(1-Void_fraction),m^3,NULL,NULL -39,building_internal _surface,v,calculate Building internal surface,2*v_1/v_2,2*Internal_v_m3/B11,m^2,NULL,NULL -40,volume_of_the_structures ,v,calculate volume of the structures ,v_1+v_2+v_3+v_4,Basemat_v_m3+Walls_v_m3+Dome_v_m3+Internal_v_m3,m^3,NULL,NULL -41,Inside_liner_surface,v,calculate Inside liner surface,"(np.power(v_1,2)*np.pi)+(v_2*2*np.pi*v_1)+(0.5*4*np.pi*np.power(v_3,2))",(Cont_rad_in_m^2*PI())+(Cont_H_wall_m*2*PI()*Cont_rad_in_m)+(0.5*4*PI()*Dome_rad_in_m^2),m^2,NULL,NULL -42,liner_Surface,v,calculate Liner Surface,v_1*v_2,Inside_liner_s*liner_fraction,m^2,NULL,NULL -43,painted_surface,v,calculate painted surface,"v_1+(v_2*2*np.pi*v_3)+(0.5*4*np.pi*np.power(v_3,2))+v_4",Inside_liner_s+(Cont_H_wall_m*2*PI()*Cont_rad_out_m)+(0.5*4*PI()*Cont_rad_out_m^2)+Internal_s_m2,m^2,NULL,NULL -44,Inflation_rate,v,calculate Inflation rate,1.03^(1996-1987)*v_1,1.03^(1996-1987)*CPI,1,NULL,NULL -45,unitcost_v_eedb_to_accert,v,unit cost volume from EEDB with inflation,v_1*v_2,unitcost_EEDB_v*infl,dollar/m^3,NULL,NULL -46,unitcost_s_eedb_to_accert,v,unit cost surface from EEDB with inflation,v_1*v_2,unitcost_EEDB_s*infl,dollar/m^2,NULL,NULL -47,tol_contaiment_ce_cost,v,total cost for each part of cotiament,v_1*v_2,unitcost*number_of stucture_unit,dollar,NULL,NULL -48,sum_ce,v,sum of multiple costelement,sum(kwargs.values()),"sum(cost_element_1,cost_element2,cost_element_n)",dollar,NULL,NULL -49,Yardwork_cost,c,the cost of the land 2017,81.5*v_1,81.5*land_surface_area,dollar,land_surface_area,81.5 -50,Reactor_containment_mat_cost,c,Reactor_containment_mat_cost,130.8*v_1,130.8*containment_subVolume,dollar,containment_subVolume,130.8 -51,Reactor_containment_lab_cost,c,Reactor_containment_lab_cost,915.6*v_1,915.6*Containment_hole_volume,dollar,Containment_hole_volume,915.6 -52,Building_and_utilities_mat_cost,c,Building_and_utilities_mat_cost,6458.3*v_1,6458.3*Turbine_building_surface_area,dollar,Turbine_building_surface_area,6458.3 -53,Building_and_utilities_lab_cost,c,Building_and_utilities_lab_cost,9843*v_1+10000*v_2,9843*Distance_to_utilities+10000*Number_of_shipping_containers,dollar,"Distance_to_utilities, Number_of_shipping_containers","9843, 10000" -54,Reactor_startup_facility_cost,c,Reactor_startup_facility_cost,7600*v_1+1100,7600*Battery_capacity_required+1100,dollar,Battery_capacity_required,"7600, 1100" -55,Outer_vessel_mat_cost,c,Outer_vessel_mat_cost,310000*v_1,310000*primary_outer_vessel_SS_mass,dollar,primary_outer_vessel_SS_mass,310000 -56,Outer_vessel_lab_cost,c,Outer_vessel_lab_cost,14080*v_1,14080*primary_outer_vessel_SS_mass,dollar,primary_outer_vessel_SS_mass,14080 -57,Inner_vessel_cost,c,Inner_vessel_cost,310000*v_1,310000*primary_inner_vessel_SS_mass,dollar,primary_inner_vessel_SS_mass,310000 -58,Reactivity_control_system_cost,c,Reactivity_control_system_cost,950*v_1+610000*(v_2+v_3),950*B4C_total_neutron_poison_mass_Kg+610000*(Number_of_control_rod_drums+number_of_emergency_control_rods),dollar,"B4C_total_neutron_poison_mass_Kg, Number_of_control_rod_drums, number_of_emergency_control_rods","950, 610000" -59,Reflector_cost,c,Reflector_cost,310000*v_1+120000*v_2+1000000*v_3,310000*stainless_steel_316_reflector_mass+120000*Al2O3_reflector_mass+1000000*BeO_reflector_mass,dollar,"stainless_steel_316_reflector_mass, Al2O3_reflector_mass, BeO_reflector_mass","310000, 120000, 1000000" -60,Shield_cost,c,Shield_cost,949.9*v_1,949.9*shield_B4C_mass,dollar,shield_B4C_mass,949.9 -61,Moderator_cost,c,Moderator_cost,310000*v_1,310000*moderator_ZrH_mass,dollar,moderator_ZrH_mass,310000 -62,cooling_heat_pipes_cost,c,cooling_heat_pipes_cost,10000*v_1*(1-v_2),10000*number_of_core_cooling_heat_pipes*(1-mass_production_cost_reduction_factor),dollar,"number_of_core_cooling_heat_pipes, mass_production_cost_reduction_factor",10000 -63,heat_exchangers_mat_cost,c,heat_exchangers_mat_cost,50000*v_1,50000*number_of_heat_exchangers,dollar,number_of_heat_exchangers,50000 -64,heat_exchangers_lab_cost,c,heat_exchangers_lab_cost,530000*v_1,530000*number_of_heat_exchangers,dollar,number_of_heat_exchangers,530000 -65,heat_exchangers_fac_cost,c,heat_exchangers_fac_cost,120000*v_1*v_2,120000*number_of_heat_exchangers*heat_exchangers_mass,dollar,"number_of_heat_exchangers, heat_exchangers_mass",120000 -66,instrumentation_contorl_cost,c,instrumentation_contorl_cost,2000*v_1+6500000,2000*number_of_IO_sensors+6500000,dollar,number_of_IO_sensors,2000 -67,turb_and_elec_sys_cost,c,turb_and_elec_sys_cost,"282553*v_1+213800000*(pow(v_2/1144, 0.4) + pow(v_1/3431, 0.8))","282553*mwth+ 213800000*(pow(mwe/1144, 0.4) + pow(mwth/3431, 0.8))",dollar,"mwth, mwe","282553, 1144, 0.4, 3431, 0.8" \ No newline at end of file diff --git a/tutorial/accert/ref_tables/ap1000_direct_account.csv b/tutorial/accert/ref_tables/ap1000_direct_account.csv new file mode 100644 index 0000000..16daaec --- /dev/null +++ b/tutorial/accert/ref_tables/ap1000_direct_account.csv @@ -0,0 +1,163 @@ +ind,code_of_account,account_description,total_cost,level,supaccount,review_status,prn,gncoa,gn_level,gn_supaccount,gn_ind +1,2,Total Direct Cost,6673722963.402767,0,,Unchanged,,,,, +2,21,Structures and Improvements,1873207638.849651,1,2,Unchanged,,,,, +3,211,Yardwork,168782503.14335844,2,21,Unchanged,,,,, +4,211.1,General Yardwork,20891852.483847443,3,211,Unchanged,,,,, +5,211.4,Railroads,24779275.440519396,3,211,Unchanged,,,,, +6,211.7,Structure Associated Yardwork,123111375.21899164,3,211,Unchanged,,,,, +7,211.71,Cut & Fill,123111375.21899164,4,211.7,Unchanged,,,,, +8,212,Reactor Containment Building,1230414488.4331355,2,21,Unchanged,,,,, +9,212.1,Building Structure,1142969011.3226616,3,212,Unchanged,,,,, +10,212.13,Substructure Concrete,54782091.19215378,4,212.1,Unchanged,,,,, +11,212.14,Superstructure,306070909.6601447,4,212.1,Unchanged,,,,, +12,212.15,Containment Liner,782116010.4703628,4,212.1,Unchanged,,,,, +13,212.2,Building Services,36454501.72844233,3,212,Unchanged,,,,, +14,212.21,Plumbing & Drains,4027819.749719793,4,212.2,Unchanged,,,,, +15,212.22,"Heating, Ventilation, & Air Conditioning",898493.0499134801,4,212.2,Unchanged,,,,, +16,212.23,Safety HVAC,16823086.001537487,4,212.2,Unchanged,,,,, +17,212.24,Lighting & Service Power,13792794.68285957,4,212.2,Unchanged,,,,, +18,212.25,Elevator,912308.2444120044,4,212.2,Unchanged,,,,, +19,212.3,Passive cooling pool,50990975.38203157,3,212,Unchanged,,,,, +20,213,Turbine Room & Heater Bay,204469475.50302848,2,21,Unchanged,,,,, +21,213.1,Building Structure,176457081.073024,3,213,Unchanged,,,,, +22,213.13,Substructure Concrete,41050593.41581689,4,213.1,Unchanged,,,,, +23,213.14,Superstructure,135406487.65720716,4,213.1,Unchanged,,,,, +24,213.2,Building Services,28012394.430004448,3,213,Unchanged,,,,, +25,213.21,Plumbing & Drains,12633379.285833916,4,213.2,Unchanged,,,,, +26,213.22,"Heating, Ventilation, & Air Conditioning",9119488.030590547,4,213.2,Unchanged,,,,, +27,213.24,Lighting & Service Power,5301423.908740272,4,213.2,Unchanged,,,,, +28,213.25,Elevator,958103.20483971,4,213.2,Unchanged,,,,, +29,214,Security Building,12937560.497847723,2,21,Unchanged,,,,, +30,215,Primary Auxiliary Building & Tunnels,83112013.14095506,2,21,Unchanged,,,,, +31,215.1,Building Structure,49694983.488583684,3,215,Unchanged,,,,, +32,215.13,Substructure Concrete,3952439.0007155742,4,215.1,Unchanged,,,,, +33,215.14,Superstructure,45742544.487868115,4,215.1,Unchanged,,,,, +34,215.2,Building Services,33417029.652371366,3,215,Unchanged,,,,, +35,215.21,Plumbing & Drains,1991401.7359131363,4,215.2,Unchanged,,,,, +36,215.22,"Heating, Ventilation, & Air Conditioning",24435465.550044075,4,215.2,Unchanged,,,,, +37,215.23,Special HVAC (Safety Related),3704388.5857556695,4,215.2,Unchanged,,,,, +38,215.24,Lighting & Service Power,1885412.5602587564,4,215.2,Unchanged,,,,, +39,215.25,Elevator,1400361.2203997339,4,215.2,Unchanged,,,,, +40,216,Waste Process Building,60663948.80679136,2,21,Unchanged,,,,, +41,216.1,Building Structure,44207457.06284517,3,216,Unchanged,,,,, +42,216.13,Substructure Concrete,11377061.455771118,4,216.1,Unchanged,,,,, +43,216.14,Superstructure,32830395.607074056,4,216.1,Unchanged,,,,, +44,216.2,Building Services,16456491.743946176,3,216,Unchanged,,,,, +45,216.21,Plumbing & Drains,1377284.1964750844,4,216.2,Unchanged,,,,, +46,216.22,"Heating, Ventilation, & Air Conditioning",12395880.603823118,4,216.2,Unchanged,,,,, +47,216.24,Lighting & Service Power,1119835.3570465804,4,216.2,Unchanged,,,,, +48,216.25,Elevator,1563491.5866013942,4,216.2,Unchanged,,,,, +49,217,Fuel Storage Building,55201573.4166803,2,21,Unchanged,,,,, +50,217.1,Building Structure,17998456.395279925,3,217,Unchanged,,,,, +51,217.13,Substructure Concrete,2064892.430889888,4,217.1,Unchanged,,,,, +52,217.3,Storage Pool Liner - S.S.,24475668.951477226,3,217,Unchanged,,,,, +53,217.14,Superstructure,15933563.964390041,4,217.1,Unchanged,,,,, +54,217.2,Building Services,12727448.069923127,3,217,Unchanged,,,,, +55,217.21,Plumbing & Drains,955916.0065678685,4,217.2,Unchanged,,,,, +56,217.22,"Heating, Ventilation, & Air Conditioning",4861072.217268364,4,217.2,Unchanged,,,,, +57,217.23,Special HVAC (Safety Related),6156307.424254139,4,217.2,Unchanged,,,,, +58,217.24,Lighting & Service Power,754152.4218327566,4,217.2,Unchanged,,,,, +59,218,Other Structures,57626075.90785454,2,21,Unchanged,,,,, +60,218A,Control Room/D-G Building,17842710.225915316,3,218,Unchanged,,,,, +61,218A.1,Building Structure,7552999.208929795,4,218A,Unchanged,,,,, +62,218A.2,Building Services,10289711.016985524,4,218A,Unchanged,,,,, +63,218B,Administrative & Service Building,16039655.055419082,3,218,Unchanged,,,,, +64,218B.1,Building Structure,0.0,4,218B,Unchanged,,,,, +65,218B.2,Building Services,16039655.055419082,4,218B,Unchanged,,,,, +66,218D,"Fire Pump House, Including Foundations",3498591.1410959125,3,218,Unchanged,,,,, +67,218E,Emergency Feed Pump Building,465356.0145923888,3,218,Unchanged,,,,, +68,218F,Manway Tunnels (RCA Tunnels),7482256.12480147,3,218,Unchanged,,,,, +69,218G,Electrical Tunnels,0.0,3,218,Unchanged,,,,, +70,218H,Non-essential SWGR Building,0.0,3,218,Unchanged,,,,, +71,218J,Main Steam & Feedwater Pipe Enclosure,1727387.8072727574,3,218,Unchanged,,,,, +72,218K,Pipe Tunnels,2575046.271614227,3,218,Unchanged,,,,, +73,218L,Technical Support Center,6515970.208274861,3,218,Unchanged,,,,, +74,218P,Containment EQ Hatch Missile Shield,0.0,3,218,Unchanged,,,,, +75,218S,Waste Water Treatment,0.0,3,218,Unchanged,,,,, +76,218T,Ultimate Heat Sink Structure,793673.3259753571,3,218,Unchanged,,,,, +77,218V,Control Room Emergency Air Intake Structure,685429.732893157,3,218,Unchanged,,,,, +78,22,Reactor Plant Equipment,1978563704.45362,1,2,Unchanged,,,,, +79,221,Reactor Equipment,436647141.1691203,2,22,Unchanged,,,,, +80,221.1,Reactor Vessel + Accessory,194650093.50673,3,221,Unchanged,,,,, +81,221.3,Vessel Internals,135744316.9159802,3,221,Unchanged,,,,, +82,221.2,Reactor Control Devices,106252730.74641006,3,221,Unchanged,,,,, +83,222,Main Heat Transfer Transport System ,803531721.3128287,2,22,Unchanged,,,,, +84,222.1,Reactor Core Coolant System,803531721.3128287,3,222,Unchanged,,,,, +85,222.11,Fluid Circulation Drive System,282920388.4380706,4,222.1,Unchanged,,,,, +86,222.12,Reactor Coolant Piping System,51654752.73456537,4,222.1,Unchanged,,,,, +87,222.13,Steam Generator Equipment,442165486.4023688,4,222.1,Unchanged,,,,, +88,222.14,Pressurizing System,26791093.737823967,4,222.1,Unchanged,,,,, +89,223,Safeguards System,146834379.21079648,2,22,Unchanged,,,,, +90,223.1,Residual Heat Removal System,35205938.091586985,3,223,Unchanged,,,,, +91,223.3,Safety Injection System,65250929.599796526,3,223,Unchanged,,,,, +92,223.4,Containment Spray System,40007170.44362261,3,223,Unchanged,,,,, +93,223.5,Combustible Gas Control System,6370341.075790359,3,223,Unchanged,,,,, +94,224,Radwaste Processing,135468680.4054172,2,22,Unchanged,,,,, +95,224.1,Liquid Waste System,82252518.70873566,3,224,Unchanged,,,,, +96,224.2,Rad Gas Waste Processing,8286722.548907097,3,224,Unchanged,,,,, +97,224.3,Solid Waste System,44929439.147774465,3,224,Unchanged,,,,, +98,225,Fuel Handling & Storage,15044786.65867414,2,22,Unchanged,,,,, +99,225.1,Fuel Handling Tools & Equipment,6627755.881607549,3,225,Unchanged,,,,, +100,225.11,Cranes & Hoists,3816597.04457259,4,225.1,Unchanged,,,,, +101,225.12,Fuel Handling Tools,527467.2508061577,4,225.1,Unchanged,,,,, +102,225.13,Transfer Systems,2283691.586228801,4,225.1,Unchanged,,,,, +103,225.3,Service Platforms,565652.8477431276,3,225,Unchanged,,,,, +104,225.4,"Fuel Storage, Cleaning, & Inspection Equipment",7851377.929323461,3,225,Unchanged,,,,, +105,226,Other Reactor Plant Equipment,217034381.49916795,2,22,Unchanged,,,,, +106,226.1,Inert Gas System,6478973.483468266,3,226,Unchanged,,,,, +107,226.3,Reactor Makeup Water System,8055980.922054843,3,226,Unchanged,,,,, +108,226.4,Coolant Treatment & Recycle,80264413.80225438,3,226,Unchanged,,,,, +109,226.6,Fluid Leak Detection System,683081.5900287407,3,226,Unchanged,,,,, +110,226.7,Auxiliary Cooling System,103529986.76730517,3,226,Unchanged,,,,, +111,226.71,Nuclear Service Water System,64594822.54068118,4,226.7,Unchanged,,,,, +112,226.72,Primary Component Cooling Water,38935164.22662399,4,226.7,Unchanged,,,,, +113,226.8,Maintenance Equipment,14600097.89126898,3,226,Unchanged,,,,, +114,226.9,Sampling Equipment,3421847.04278761,3,226,Unchanged,,,,, +115,227,Reactor Instrumentation & Control,165884743.97171694,2,22,Unchanged,,,,, +116,227.1,"Benchboard, Panels, & Racks",25396701.74235141,3,227,Unchanged,,,,, +117,227.11,NSS Control Board,9566182.470017599,4,227.1,Unchanged,,,,, +118,227.15,HVAC Panels,1014908.0002355119,4,227.1,Unchanged,,,,, +119,227.16,Radwaste Panels & Racks,4124796.8653544546,4,227.1,Unchanged,,,,, +120,227.17,Local Panels & Cabinets,4021371.1958536203,4,227.1,Unchanged,,,,, +121,227.18,Instrument Ranks,4213589.6830765335,4,227.1,Unchanged,,,,, +122,227.19,Alarm System,2455853.527813689,4,227.1,Unchanged,,,,, +123,227.2,Process Computer,21631675.302527957,3,227,Unchanged,,,,, +124,227.3,Monitoring Systems,27207796.46122607,3,227,Unchanged,,,,, +125,227.4,Plant Control Systems,26158165.247678667,3,227,Unchanged,,,,, +126,227.5,Reactor Plant I&C Tubing & Fitting,35358636.16232905,3,227,Unchanged,,,,, +127,227.9,TMI Instrumentation,30131769.05560378,3,227,Unchanged,,,,, +128,228,Reactor Plant Miscellaneous Items,58117870.22589826,2,22,Unchanged,,,,, +129,229,NuScale Equipment,0.0,2,22,Unchanged,,,,, +130,23,Turbine Plant Equipment,1661276981.473502,1,2,Unchanged,,,,, +131,24,Electric Plant Equipment,414764743.48911834,1,2,Unchanged,,,,, +132,241,Switchgear,40583479.59227533,2,24,Unchanged,,,,, +133,242,Station Service Equipment,33740935.83709804,2,24,Unchanged,,,,, +134,243,Switchboards,10956345.435128992,2,24,Unchanged,,,,, +135,244,Protective Equipment,31465601.126271766,2,24,Unchanged,,,,, +136,245,Electrical Structure & Wiring Container,169687359.82378706,2,24,Unchanged,,,,, +137,246,Power & Control Wiring,128331021.67455725,2,24,Unchanged,,,,, +138,25,Miscellaneous Plant Equipment,371576306.841614,1,2,Unchanged,,,,, +139,251,Transportation & Lift Equipment,39491290.09462979,2,25,Unchanged,,,,, +140,251.1,Cranes & Hoists,39491290.09462979,3,251,Unchanged,,,,, +141,251.11,Turbine Building Crane,13049639.291037686,4,251.1,Unchanged,,,,, +142,251.12,Reactor Containment Building Crane,19732703.307493243,4,251.1,Unchanged,,,,, +143,251.16,"Miscellaneous Cranes, Hoists, & Monorails",3720702.0546882707,4,251.1,Unchanged,,,,, +144,251.17,Diesel Building Cranes,2988245.441410582,4,251.1,Unchanged,,,,, +145,252,"Air, Water, & Steam Service System",260843366.58474135,2,25,Unchanged,,,,, +146,252.1,Air Systems,56316743.29113243,3,252,Unchanged,,,,, +147,252.2,Water Systems,166825806.6504147,3,252,Unchanged,,,,, +148,252.3,Auxiliary Steam System,35545391.52213412,3,252,Unchanged,,,,, +149,252.4,Plant Fuel Oil System,2155425.121060117,3,252,Unchanged,,,,, +150,253,Communications Equipment,37289358.5626039,2,25,Unchanged,,,,, +151,254,Furnishings & Fixtures,14900567.948064338,2,25,Unchanged,,,,, +152,255,Waste Water Treatment Equipment,19051723.65157467,2,25,Unchanged,,,,, +153,26,Main Condenser Heat Reject System,374333588.2952605,1,2,Unchanged,,,,, +154,261,Structures,38491487.011269145,2,26,Unchanged,,,,, +155,262,Mechanical Equipment,335842101.28399134,2,26,Unchanged,,,,, +156,262.1,Heat Rejection System,335842101.28399134,3,262,Unchanged,,,,, +157,262.11,Water Intake Equipment,3291091.3551318785,4,262.1,Unchanged,,,,, +158,262.12,Circulating Water System,106698208.86965643,4,262.1,Unchanged,,,,, +159,262.13,Cooling Towers,215486884.4853577,4,262.1,Unchanged,,,,, +160,262.14,Cooling Tower Basins,709023.1474226845,4,262.1,Unchanged,,,,, +161,262.15,Main Cooling Tower Makeup & Blowdown System,9656893.426422631,4,262.1,Unchanged,,,,, +162,219,Reactor Shield Building,0.0,2,21,Unchanged,,,,, diff --git a/tutorial/accert/ref_tables/ap1000_direct_algorithms.csv b/tutorial/accert/ref_tables/ap1000_direct_algorithms.csv new file mode 100644 index 0000000..375c18a --- /dev/null +++ b/tutorial/accert/ref_tables/ap1000_direct_algorithms.csv @@ -0,0 +1,32 @@ +ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units,variables,constants +1,category_scale,c,Scale a reference cost by one scale factor and optional multipliers/count/adjustment factors.,AP1000DirectCostFunc,ref * scale * optional_multipliers,$,"ref, scale, optional_multipliers", +2,cal_sup_str_S,v,Calculate cylinder-with-dome superstructure S for the containment structure.,AP1000DirectCostFunc,pi*D^2/2 + pi*D*H,m^2,"cont_D_D, cont_H_H", +3,formula_scale_flow_rate,v,Flow Rate direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +4,formula_scale_fuel_cask_capacity,v,Fuel Cask Capacity direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +5,formula_scale_fuel_crane_capacity,v,Fuel Crane Capacity direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +6,formula_scale_ht_surface_S,v,Ht Surface Area direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +7,formula_scale_pressurizer_mass,v,Pressurizer Mass direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +8,formula_scale_surface_S,v,Surface Area direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +9,formula_scale_surface_S_9_71886e_06,v,Surface Area 9 71886E 06 direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +10,formula_scale_vessel_mass,v,Vessel Mass direct formula scale.,AP1000DirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +11,scale_law_admin_bldg,v,Admin Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +12,scale_law_bldg_V,v,Building Volume scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +13,scale_law_containment,v,Containment scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +14,scale_law_control_dg_bldg,v,Control Dg Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +15,scale_law_elec_P,v,Electric Power scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +16,scale_law_electrical_bldg,v,Electrical Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +17,scale_law_flow_rate,v,Flow Rate scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +18,scale_law_fuel_storage,v,Fuel Storage scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +19,scale_law_heat_rejection,v,Heat Rejection scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +20,scale_law_piping_mass,v,Piping Mass scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +21,scale_law_primary_aux_bldg,v,Primary Aux Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +22,scale_law_reactor_equipment,v,Reactor Equipment scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +23,scale_law_site_S,v,Site Area scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +24,scale_law_turbine_bldg,v,Turbine Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +25,scale_law_turbine_equipment,v,Turbine Equipment scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +26,scale_law_V_of_212_213_215_216_217,v,Volume Of 212 213 215 216 217 scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +27,scale_law_waste_bldg,v,Waste Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +28,scale_law_wastewater_bldg,v,Wastewater Bldg scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +29,scale_law_power,v,Power scale law.,AP1000DirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +30,sum_all,c/v,Sum all supplied child cost elements or intermediate variables.,AP1000DirectCostFunc,sum(values),$,values, +31,calc_rej_th_P,v,Rejected thermal power = thermal power - electric power.,AP1000DirectCostFunc,rx_P - elec_P,MWt,"rx_P, elec_P", diff --git a/tutorial/accert/ref_tables/ap1000_direct_cost_elements.csv b/tutorial/accert/ref_tables/ap1000_direct_cost_elements.csv new file mode 100644 index 0000000..fb0a221 --- /dev/null +++ b/tutorial/accert/ref_tables/ap1000_direct_cost_elements.csv @@ -0,0 +1,487 @@ +ind,cost_element,cost_2018,sup_cost_ele,alg_name,fun_unit,variables,account,algno,updated,source_row_type +1,2_fac,3266428952.085057,,,$,,2,AP1000_DIRECT,0,rollup_from_subaccounts +2,2_mat,794260433.2990031,,,$,,2,AP1000_DIRECT,0,rollup_from_subaccounts +3,2_lab,2613033578.0187063,,,$,,2,AP1000_DIRECT,0,rollup_from_subaccounts +4,21_fac,314038745.59416413,2_fac,,$,,21,AP1000_DIRECT,0,rollup_from_subaccounts +5,21_mat,492688958.19741386,2_mat,,$,,21,AP1000_DIRECT,0,rollup_from_subaccounts +6,21_lab,1066479935.0580729,2_lab,,$,,21,AP1000_DIRECT,0,rollup_from_subaccounts +7,211_fac,1229953.366187282,21_fac,,$,,211,AP1000_DIRECT,0,rollup_from_subaccounts +8,211_mat,62780240.46622049,21_mat,,$,,211,AP1000_DIRECT,0,rollup_from_subaccounts +9,211_lab,104772309.3109507,21_lab,,$,,211,AP1000_DIRECT,0,rollup_from_subaccounts +10,211.1_fac,664010.2897517778,211_fac,category_scale,$,"ref_211_1_fac, scale_S, scale_ap1000",211.1,AP1000_DIRECT,0,category_scaled +11,211.1_mat,8701537.62027528,211_mat,category_scale,$,"ref_211_1_mat, scale_S, scale_ap1000",211.1,AP1000_DIRECT,0,category_scaled +12,211.1_lab,11526304.573820388,211_lab,category_scale,$,"ref_211_1_lab, scale_S, scale_ap1000",211.1,AP1000_DIRECT,0,category_scaled +13,211.4_fac,0.0,211_fac,,$,,211.4,AP1000_DIRECT,0,category_scaled +14,211.4_mat,10578450.488724835,211_mat,category_scale,$,"ref_211_4_mat, scale_P, scale_ap1000",211.4,AP1000_DIRECT,0,category_scaled +15,211.4_lab,14200824.951794563,211_lab,category_scale,$,"ref_211_4_lab, scale_P, scale_ap1000",211.4,AP1000_DIRECT,0,category_scaled +16,211.7_fac,565943.0764355041,211_fac,,$,,211.7,AP1000_DIRECT,0,rollup_from_subaccounts +17,211.7_mat,43500252.35722038,211_mat,,$,,211.7,AP1000_DIRECT,0,rollup_from_subaccounts +18,211.7_lab,79045179.78533573,211_lab,,$,,211.7,AP1000_DIRECT,0,rollup_from_subaccounts +19,211.71_fac,565943.0764355041,211.7_fac,sum_all,$,"ce_211_711_fac, ce_211_712_fac",211.71,AP1000_DIRECT,0,rollup_from_moved_variables +20,211.71_mat,43500252.35722038,211.7_mat,sum_all,$,"ce_211_711_mat, ce_211_712_mat",211.71,AP1000_DIRECT,0,rollup_from_moved_variables +21,211.71_lab,79045179.78533573,211.7_lab,sum_all,$,"ce_211_711_lab, ce_211_712_lab",211.71,AP1000_DIRECT,0,rollup_from_moved_variables +22,212_fac,265354135.4854981,21_fac,,$,,212,AP1000_DIRECT,0,rollup_from_subaccounts +23,212_mat,265226006.17784026,21_mat,,$,,212,AP1000_DIRECT,0,rollup_from_subaccounts +24,212_lab,699834346.769797,21_lab,,$,,212,AP1000_DIRECT,0,rollup_from_subaccounts +25,212.1_fac,260662312.98570865,212_fac,,$,,212.1,AP1000_DIRECT,0,rollup_from_subaccounts +26,212.1_mat,223304061.2222388,212_mat,,$,,212.1,AP1000_DIRECT,0,rollup_from_subaccounts +27,212.1_lab,659002637.1147139,212_lab,,$,,212.1,AP1000_DIRECT,0,rollup_from_subaccounts +28,212.13_fac,0.0,212.1_fac,,$,,212.13,AP1000_DIRECT,0,collapsed_rollup_zero +29,212.13_mat,23015624.22840005,212.1_mat,category_scale,$,"ref_212_13_mat, scale_sub_str_V, scale_ap1000",212.13,AP1000_DIRECT,0,collapsed_category_scaled +30,212.13_lab,31766466.96375373,212.1_lab,category_scale,$,"ref_212_13_lab, scale_sub_str_V, scale_ap1000",212.13,AP1000_DIRECT,0,collapsed_category_scaled +31,212.14_fac,9659226.660654046,212.1_fac,sum_all,$,"ce_212_141_fac, ce_212_140_fac, ce_212_142_fac, ce_212_149_fac",212.14,AP1000_DIRECT,0,rollup_from_moved_variables +32,212.14_mat,96032033.07062367,212.1_mat,sum_all,$,"ce_212_141_mat, ce_212_140_mat, ce_212_142_mat, ce_212_149_mat",212.14,AP1000_DIRECT,0,rollup_from_moved_variables +33,212.14_lab,200379649.92886704,212.1_lab,sum_all,$,"ce_212_141_lab, ce_212_140_lab, ce_212_142_lab, ce_212_149_lab",212.14,AP1000_DIRECT,0,rollup_from_moved_variables +34,212.15_fac,251003086.32505465,212.1_fac,category_scale,$,"ref_212_15_fac, scale_sup_str_S, f_ss_cont_fac, scale_ap1000",212.15,AP1000_DIRECT,0,category_scaled +35,212.15_mat,104256403.92321509,212.1_mat,category_scale,$,"ref_212_15_mat, scale_sup_str_S, f_ss_cont_mat, scale_ap1000",212.15,AP1000_DIRECT,0,category_scaled +36,212.15_lab,426856520.22209316,212.1_lab,category_scale,$,"ref_212_15_lab, scale_sup_str_S, f_ss_cont_lab, scale_ap1000",212.15,AP1000_DIRECT,0,category_scaled +37,212.2_fac,4691822.49978938,212_fac,,$,,212.2,AP1000_DIRECT,0,rollup_from_subaccounts +38,212.2_mat,7048105.69649458,212_mat,,$,,212.2,AP1000_DIRECT,0,rollup_from_subaccounts +39,212.2_lab,24714573.532158375,212_lab,,$,,212.2,AP1000_DIRECT,0,rollup_from_subaccounts +40,212.21_fac,431797.8671499798,212.2_fac,category_scale,$,"ref_212_21_fac, scale_sup_const, scale_ap1000",212.21,AP1000_DIRECT,0,collapsed_category_scaled +41,212.21_mat,588268.4560361172,212.2_mat,category_scale,$,"ref_212_21_mat, scale_sup_const, scale_ap1000",212.21,AP1000_DIRECT,0,collapsed_category_scaled +42,212.21_lab,3007753.426533696,212.2_lab,category_scale,$,"ref_212_21_lab, scale_sup_const, scale_ap1000",212.21,AP1000_DIRECT,0,collapsed_category_scaled +43,212.22_fac,685392.425591078,212.2_fac,category_scale,$,"ref_212_22_fac, scale_P, scale_ap1000",212.22,AP1000_DIRECT,0,collapsed_category_scaled +44,212.22_mat,20573.777064152775,212.2_mat,category_scale,$,"ref_212_22_mat, scale_P, scale_ap1000",212.22,AP1000_DIRECT,0,collapsed_category_scaled +45,212.22_lab,192526.84725824933,212.2_lab,category_scale,$,"ref_212_22_lab, scale_P, scale_ap1000",212.22,AP1000_DIRECT,0,collapsed_category_scaled +46,212.23_fac,3008426.772742148,212.2_fac,category_scale,$,"ref_212_23_fac, scale_P, scale_ap1000",212.23,AP1000_DIRECT,0,collapsed_category_scaled +47,212.23_mat,2554693.8474467047,212.2_mat,category_scale,$,"ref_212_23_mat, scale_P, scale_ap1000",212.23,AP1000_DIRECT,0,collapsed_category_scaled +48,212.23_lab,11259965.381348634,212.2_lab,category_scale,$,"ref_212_23_lab, scale_P, scale_ap1000",212.23,AP1000_DIRECT,0,collapsed_category_scaled +49,212.24_fac,0.0,212.2_fac,,$,,212.24,AP1000_DIRECT,0,category_scaled +50,212.24_mat,3858452.2811448667,212.2_mat,category_scale,$,"ref_212_24_mat, scale_sup_const, scale_ap1000",212.24,AP1000_DIRECT,0,category_scaled +51,212.24_lab,9934342.401714703,212.2_lab,category_scale,$,"ref_212_24_lab, scale_sup_const, scale_ap1000",212.24,AP1000_DIRECT,0,category_scaled +52,212.25_fac,566205.4343061736,212.2_fac,category_scale,$,"ref_212_25_fac, scale_ap1000",212.25,AP1000_DIRECT,0,category_scaled +53,212.25_mat,26117.33480273843,212.2_mat,category_scale,$,"ref_212_25_mat, scale_ap1000",212.25,AP1000_DIRECT,0,category_scaled +54,212.25_lab,319985.4753030923,212.2_lab,category_scale,$,"ref_212_25_lab, scale_ap1000",212.25,AP1000_DIRECT,0,category_scaled +55,212.3_fac,0.0,212_fac,,$,,212.3,AP1000_DIRECT,0,category_scaled +56,212.3_mat,34873839.25910692,212_mat,category_scale,$,"ref_212_3_mat, scale_frm_S, scale_ap1000",212.3,AP1000_DIRECT,0,category_scaled +57,212.3_lab,16117136.122924656,212_lab,category_scale,$,"ref_212_3_lab, scale_frm_S, scale_ap1000",212.3,AP1000_DIRECT,0,category_scaled +58,213_fac,4135808.4957542405,21_fac,,$,,213,AP1000_DIRECT,0,rollup_from_subaccounts +59,213_mat,93842959.73945056,21_mat,,$,,213,AP1000_DIRECT,0,rollup_from_subaccounts +60,213_lab,106490707.26782367,21_lab,,$,,213,AP1000_DIRECT,0,rollup_from_subaccounts +61,213.1_fac,0.0,213_fac,,$,,213.1,AP1000_DIRECT,0,rollup_from_subaccounts +62,213.1_mat,89012954.98679705,213_mat,,$,,213.1,AP1000_DIRECT,0,rollup_from_subaccounts +63,213.1_lab,87444126.08622694,213_lab,,$,,213.1,AP1000_DIRECT,0,rollup_from_subaccounts +64,213.13_fac,0.0,213.1_fac,,$,,213.13,AP1000_DIRECT,0,collapsed_rollup_zero +65,213.13_mat,12195542.92064744,213.1_mat,category_scale,$,"ref_213_13_mat, scale_turb_gen_bldg_sub_vol, scale_ap1000",213.13,AP1000_DIRECT,0,collapsed_category_scaled +66,213.13_lab,28855050.495169442,213.1_lab,category_scale,$,"ref_213_13_lab, scale_turb_gen_bldg_sub_vol, scale_ap1000",213.13,AP1000_DIRECT,0,collapsed_category_scaled +67,213.14_fac,0.0,213.1_fac,sum_all,$,"ce_213_141_fac, ce_213_142_fac, ce_213_143_fac, ce_213_144_fac, ce_213_145_fac, ce_213_146_fac, ce_213_147_fac, ce_213_149_fac",213.14,AP1000_DIRECT,0,rollup_from_moved_variables +68,213.14_mat,76817412.06614962,213.1_mat,sum_all,$,"ce_213_141_mat, ce_213_142_mat, ce_213_143_mat, ce_213_144_mat, ce_213_145_mat, ce_213_146_mat, ce_213_147_mat, ce_213_149_mat",213.14,AP1000_DIRECT,0,rollup_from_moved_variables +69,213.14_lab,58589075.59105751,213.1_lab,sum_all,$,"ce_213_141_lab, ce_213_142_lab, ce_213_143_lab, ce_213_144_lab, ce_213_145_lab, ce_213_146_lab, ce_213_147_lab, ce_213_149_lab",213.14,AP1000_DIRECT,0,rollup_from_moved_variables +70,213.2_fac,4135808.4957542405,213_fac,,$,,213.2,AP1000_DIRECT,0,rollup_from_subaccounts +71,213.2_mat,4830004.752653482,213_mat,,$,,213.2,AP1000_DIRECT,0,rollup_from_subaccounts +72,213.2_lab,19046581.181596726,213_lab,,$,,213.2,AP1000_DIRECT,0,rollup_from_subaccounts +73,213.21_fac,70522.35580515602,213.2_fac,category_scale,$,"ref_213_21_fac, scale_bldg_V, scale_ap1000",213.21,AP1000_DIRECT,0,collapsed_category_scaled +74,213.21_mat,2474611.350002286,213.2_mat,category_scale,$,"ref_213_21_mat, scale_bldg_V, scale_ap1000",213.21,AP1000_DIRECT,0,collapsed_category_scaled +75,213.21_lab,10088245.580026476,213.2_lab,category_scale,$,"ref_213_21_lab, scale_bldg_V, scale_ap1000",213.21,AP1000_DIRECT,0,collapsed_category_scaled +76,213.22_fac,3414591.76124794,213.2_fac,category_scale,$,"ref_213_22_fac, scale_P, scale_ap1000",213.22,AP1000_DIRECT,0,collapsed_category_scaled +77,213.22_mat,810807.2797069838,213.2_mat,category_scale,$,"ref_213_22_mat, scale_P, scale_ap1000",213.22,AP1000_DIRECT,0,collapsed_category_scaled +78,213.22_lab,4894088.989635627,213.2_lab,category_scale,$,"ref_213_22_lab, scale_P, scale_ap1000",213.22,AP1000_DIRECT,0,collapsed_category_scaled +79,213.24_fac,0.0,213.2_fac,,$,,213.24,AP1000_DIRECT,0,category_scaled +80,213.24_mat,1517823.2147656532,213.2_mat,category_scale,$,"ref_213_24_mat, scale_bldg_V, scale_ap1000",213.24,AP1000_DIRECT,0,category_scaled +81,213.24_lab,3783600.693974619,213.2_lab,category_scale,$,"ref_213_24_lab, scale_bldg_V, scale_ap1000",213.24,AP1000_DIRECT,0,category_scaled +82,213.25_fac,650694.3787011446,213.2_fac,category_scale,$,"ref_213_25_fac, scale_ap1000",213.25,AP1000_DIRECT,0,collapsed_category_scaled +83,213.25_mat,26762.90817855965,213.2_mat,category_scale,$,"ref_213_25_mat, scale_ap1000",213.25,AP1000_DIRECT,0,collapsed_category_scaled +84,213.25_lab,280645.91796000587,213.2_lab,category_scale,$,"ref_213_25_lab, scale_ap1000",213.25,AP1000_DIRECT,0,collapsed_category_scaled +85,214_fac,489345.5441078161,21_fac,category_scale,$,"ref_214_fac, scale_ap1000",214,AP1000_DIRECT,0,collapsed_category_scaled +86,214_mat,3161155.3982863394,21_mat,category_scale,$,"ref_214_mat, scale_ap1000",214,AP1000_DIRECT,0,collapsed_category_scaled +87,214_lab,9287059.555453569,21_lab,category_scale,$,"ref_214_lab, scale_ap1000",214,AP1000_DIRECT,0,collapsed_category_scaled +88,215_fac,18776678.100152925,21_fac,,$,,215,AP1000_DIRECT,0,rollup_from_subaccounts +89,215_mat,17026499.82745094,21_mat,,$,,215,AP1000_DIRECT,0,rollup_from_subaccounts +90,215_lab,47308835.21335119,21_lab,,$,,215,AP1000_DIRECT,0,rollup_from_subaccounts +91,215.1_fac,0.0,215_fac,,$,,215.1,AP1000_DIRECT,0,rollup_from_subaccounts +92,215.1_mat,14648188.691755326,215_mat,,$,,215.1,AP1000_DIRECT,0,rollup_from_subaccounts +93,215.1_lab,35046794.79682836,215_lab,,$,,215.1,AP1000_DIRECT,0,rollup_from_subaccounts +94,215.13_fac,0.0,215.1_fac,,$,,215.13,AP1000_DIRECT,0,collapsed_rollup_zero +95,215.13_mat,1648584.0152528996,215.1_mat,category_scale,$,"ref_215_13_mat, scale_pri_aux_bldg_sub_vol, scale_ap1000",215.13,AP1000_DIRECT,0,collapsed_category_scaled +96,215.13_lab,2303854.985462674,215.1_lab,category_scale,$,"ref_215_13_lab, scale_pri_aux_bldg_sub_vol, scale_ap1000",215.13,AP1000_DIRECT,0,collapsed_category_scaled +97,215.14_fac,0.0,215.1_fac,sum_all,$,"ce_215_141_fac, ce_215_142_fac, ce_215_145_fac, ce_215_146_fac, ce_215_147_fac, ce_215_149_fac",215.14,AP1000_DIRECT,0,rollup_from_moved_variables +98,215.14_mat,12999604.676502425,215.1_mat,sum_all,$,"ce_215_141_mat, ce_215_142_mat, ce_215_145_mat, ce_215_146_mat, ce_215_147_mat, ce_215_149_mat",215.14,AP1000_DIRECT,0,rollup_from_moved_variables +99,215.14_lab,32742939.811365675,215.1_lab,sum_all,$,"ce_215_141_lab, ce_215_142_lab, ce_215_145_lab, ce_215_146_lab, ce_215_147_lab, ce_215_149_lab",215.14,AP1000_DIRECT,0,rollup_from_moved_variables +100,215.2_fac,18776678.100152925,215_fac,,$,,215.2,AP1000_DIRECT,0,rollup_from_subaccounts +101,215.2_mat,2378311.13569561,215_mat,,$,,215.2,AP1000_DIRECT,0,rollup_from_subaccounts +102,215.2_lab,12262040.416522838,215_lab,,$,,215.2,AP1000_DIRECT,0,rollup_from_subaccounts +103,215.21_fac,8218.023806622594,215.2_fac,category_scale,$,"ref_215_21_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000",215.21,AP1000_DIRECT,0,collapsed_category_scaled +104,215.21_mat,377825.40044081083,215.2_mat,category_scale,$,"ref_215_21_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",215.21,AP1000_DIRECT,0,collapsed_category_scaled +105,215.21_lab,1605358.3116657026,215.2_lab,category_scale,$,"ref_215_21_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",215.21,AP1000_DIRECT,0,collapsed_category_scaled +106,215.22_fac,15341761.9722088,215.2_fac,sum_all,$,"ce_215_221_fac, ce_215_222_fac, ce_215_223_fac, ce_215_224_fac, ce_215_225_fac, ce_215_226_fac, ce_215_227_fac, ce_215_228_fac",215.22,AP1000_DIRECT,0,rollup_from_moved_variables +107,215.22_mat,1376695.6229113543,215.2_mat,sum_all,$,"ce_215_221_mat, ce_215_222_mat, ce_215_223_mat, ce_215_224_mat, ce_215_225_mat, ce_215_226_mat, ce_215_227_mat, ce_215_228_mat",215.22,AP1000_DIRECT,0,rollup_from_moved_variables +108,215.22_lab,7717007.95492392,215.2_lab,sum_all,$,"ce_215_221_lab, ce_215_222_lab, ce_215_223_lab, ce_215_224_lab, ce_215_225_lab, ce_215_226_lab, ce_215_227_lab, ce_215_228_lab",215.22,AP1000_DIRECT,0,rollup_from_moved_variables +109,215.23_fac,2513583.6178932665,215.2_fac,category_scale,$,"ref_215_23_fac, scale_P, scale_ap1000",215.23,AP1000_DIRECT,0,collapsed_category_scaled +110,215.23_mat,93989.8071349544,215.2_mat,category_scale,$,"ref_215_23_mat, scale_P, scale_ap1000",215.23,AP1000_DIRECT,0,collapsed_category_scaled +111,215.23_lab,1096815.1607274488,215.2_lab,category_scale,$,"ref_215_23_lab, scale_P, scale_ap1000",215.23,AP1000_DIRECT,0,collapsed_category_scaled +112,215.24_fac,0.0,215.2_fac,,$,,215.24,AP1000_DIRECT,0,category_scaled +113,215.24_mat,489478.64018833125,215.2_mat,category_scale,$,"ref_215_24_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",215.24,AP1000_DIRECT,0,category_scaled +114,215.24_lab,1395933.9200704254,215.2_lab,category_scale,$,"ref_215_24_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",215.24,AP1000_DIRECT,0,category_scaled +115,215.25_fac,913114.4862442346,215.2_fac,category_scale,$,"ref_215_25_fac, scale_ap1000",215.25,AP1000_DIRECT,0,category_scaled +116,215.25_mat,40321.66502015918,215.2_mat,category_scale,$,"ref_215_25_mat, scale_ap1000",215.25,AP1000_DIRECT,0,category_scaled +117,215.25_lab,446925.0691353401,215.2_lab,category_scale,$,"ref_215_25_lab, scale_ap1000",215.25,AP1000_DIRECT,0,category_scaled +118,216_fac,4242237.965267619,21_fac,,$,,216,AP1000_DIRECT,0,rollup_from_subaccounts +119,216_mat,17213433.7842787,21_mat,,$,,216,AP1000_DIRECT,0,rollup_from_subaccounts +120,216_lab,39208277.05724503,21_lab,,$,,216,AP1000_DIRECT,0,rollup_from_subaccounts +121,216.1_fac,0.0,216_fac,,$,,216.1,AP1000_DIRECT,0,rollup_from_subaccounts +122,216.1_mat,14712511.279095633,216_mat,,$,,216.1,AP1000_DIRECT,0,rollup_from_subaccounts +123,216.1_lab,29494945.783749547,216_lab,,$,,216.1,AP1000_DIRECT,0,rollup_from_subaccounts +124,216.13_fac,0.0,216.1_fac,,$,,216.13,AP1000_DIRECT,0,collapsed_rollup_zero +125,216.13_mat,4497285.903603937,216.1_mat,category_scale,$,"ref_216_13_mat, scale_waste_bldg_sub_vol, scale_ap1000",216.13,AP1000_DIRECT,0,collapsed_category_scaled +126,216.13_lab,6879775.552167179,216.1_lab,category_scale,$,"ref_216_13_lab, scale_waste_bldg_sub_vol, scale_ap1000",216.13,AP1000_DIRECT,0,collapsed_category_scaled +127,216.14_fac,0.0,216.1_fac,sum_all,$,"ce_216_141_fac, ce_216_142_fac, ce_216_143_fac, ce_216_144_fac, ce_216_145_fac, ce_216_146_fac, ce_216_147_fac, ce_216_148_fac, ce_216_149_fac",216.14,AP1000_DIRECT,0,rollup_from_moved_variables +128,216.14_mat,10215225.375491695,216.1_mat,sum_all,$,"ce_216_141_mat, ce_216_142_mat, ce_216_143_mat, ce_216_144_mat, ce_216_145_mat, ce_216_146_mat, ce_216_147_mat, ce_216_148_mat, ce_216_149_mat",216.14,AP1000_DIRECT,0,rollup_from_moved_variables +129,216.14_lab,22615170.231582366,216.1_lab,sum_all,$,"ce_216_141_lab, ce_216_142_lab, ce_216_143_lab, ce_216_144_lab, ce_216_145_lab, ce_216_146_lab, ce_216_147_lab, ce_216_148_lab, ce_216_149_lab",216.14,AP1000_DIRECT,0,rollup_from_moved_variables +130,216.2_fac,4242237.965267619,216_fac,,$,,216.2,AP1000_DIRECT,0,rollup_from_subaccounts +131,216.2_mat,2500922.505183069,216_mat,,$,,216.2,AP1000_DIRECT,0,rollup_from_subaccounts +132,216.2_lab,9713331.27349549,216_lab,,$,,216.2,AP1000_DIRECT,0,rollup_from_subaccounts +133,216.21_fac,0.0,216.2_fac,,$,,216.21,AP1000_DIRECT,0,collapsed_rollup_zero +134,216.21_mat,227547.45583456336,216.2_mat,category_scale,$,"ref_216_21_mat, scale_waste_bldg_bldg_vol, scale_ap1000",216.21,AP1000_DIRECT,0,collapsed_category_scaled +135,216.21_lab,1149736.740640521,216.2_lab,category_scale,$,"ref_216_21_lab, scale_waste_bldg_bldg_vol, scale_ap1000",216.21,AP1000_DIRECT,0,collapsed_category_scaled +136,216.22_fac,3224846.1865984323,216.2_fac,category_scale,$,"ref_216_22_fac, scale_P, scale_ap1000",216.22,AP1000_DIRECT,0,collapsed_category_scaled +137,216.22_mat,1917695.810005407,216.2_mat,category_scale,$,"ref_216_22_mat, scale_P, scale_ap1000",216.22,AP1000_DIRECT,0,collapsed_category_scaled +138,216.22_lab,7253338.607219279,216.2_lab,category_scale,$,"ref_216_22_lab, scale_P, scale_ap1000",216.22,AP1000_DIRECT,0,collapsed_category_scaled +139,216.24_fac,0.0,216.2_fac,,$,,216.24,AP1000_DIRECT,0,category_scaled +140,216.24_mat,307800.07836557,216.2_mat,category_scale,$,"ref_216_24_mat, scale_waste_bldg_bldg_vol, scale_ap1000",216.24,AP1000_DIRECT,0,category_scaled +141,216.24_lab,812035.2786810104,216.2_lab,category_scale,$,"ref_216_24_lab, scale_waste_bldg_bldg_vol, scale_ap1000",216.24,AP1000_DIRECT,0,category_scaled +142,216.25_fac,1017391.7786691868,216.2_fac,category_scale,$,"ref_216_25_fac, scale_ap1000",216.25,AP1000_DIRECT,0,collapsed_category_scaled +143,216.25_mat,47879.16097752832,216.2_mat,category_scale,$,"ref_216_25_mat, scale_ap1000",216.25,AP1000_DIRECT,0,collapsed_category_scaled +144,216.25_lab,498220.64695467934,216.2_lab,category_scale,$,"ref_216_25_lab, scale_ap1000",216.25,AP1000_DIRECT,0,collapsed_category_scaled +145,217_fac,6292153.004829784,21_fac,,$,,217,AP1000_DIRECT,0,rollup_from_subaccounts +146,217_mat,23226380.820417207,21_mat,,$,,217,AP1000_DIRECT,0,rollup_from_subaccounts +147,217_lab,25683039.591433283,21_lab,,$,,217,AP1000_DIRECT,0,rollup_from_subaccounts +148,217.1_fac,0.0,217_fac,,$,,217.1,AP1000_DIRECT,0,rollup_from_subaccounts +149,217.1_mat,5180875.137002043,217_mat,,$,,217.1,AP1000_DIRECT,0,rollup_from_subaccounts +150,217.1_lab,12817581.258277884,217_lab,,$,,217.1,AP1000_DIRECT,0,rollup_from_subaccounts +151,217.13_fac,0.0,217.1_fac,,$,,217.13,AP1000_DIRECT,0,collapsed_rollup_zero +152,217.13_mat,696543.1495473332,217.1_mat,category_scale,$,"ref_217_13_mat, scale_fuel_stor_bldg_sub_vol, scale_ap1000",217.13,AP1000_DIRECT,0,collapsed_category_scaled +153,217.13_lab,1368349.2813425544,217.1_lab,category_scale,$,"ref_217_13_lab, scale_fuel_stor_bldg_sub_vol, scale_ap1000",217.13,AP1000_DIRECT,0,collapsed_category_scaled +154,217.3_fac,0.0,217_fac,,$,,217.3,AP1000_DIRECT,0,category_scaled +155,217.3_mat,16739443.36274579,217_mat,category_scale,$,"ref_217_3_mat, scale_frm_S_9_71886e_06, scale_ap1000",217.3,AP1000_DIRECT,0,category_scaled +156,217.3_lab,7736225.588731435,217_lab,category_scale,$,"ref_217_3_lab, scale_frm_S_9_71886e_06, scale_ap1000",217.3,AP1000_DIRECT,0,category_scaled +157,217.14_fac,0.0,217.1_fac,sum_all,$,"ce_217_141_fac, ce_217_142_fac, ce_217_145_fac, ce_217_147_fac, ce_217_149_fac",217.14,AP1000_DIRECT,0,rollup_from_moved_variables +158,217.14_mat,4484331.987454711,217.1_mat,sum_all,$,"ce_217_141_mat, ce_217_142_mat, ce_217_145_mat, ce_217_147_mat, ce_217_149_mat",217.14,AP1000_DIRECT,0,rollup_from_moved_variables +159,217.14_lab,11449231.976935325,217.1_lab,sum_all,$,"ce_217_141_lab, ce_217_142_lab, ce_217_145_lab, ce_217_147_lab, ce_217_149_lab",217.14,AP1000_DIRECT,0,rollup_from_moved_variables +160,217.2_fac,6292153.004829784,217_fac,,$,,217.2,AP1000_DIRECT,0,rollup_from_subaccounts +161,217.2_mat,1306062.3206693772,217_mat,,$,,217.2,AP1000_DIRECT,0,rollup_from_subaccounts +162,217.2_lab,5129232.744423966,217_lab,,$,,217.2,AP1000_DIRECT,0,rollup_from_subaccounts +163,217.21_fac,14069.6936904208,217.2_fac,category_scale,$,"ref_217_21_fac, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",217.21,AP1000_DIRECT,0,collapsed_category_scaled +164,217.21_mat,281517.0448992163,217.2_mat,category_scale,$,"ref_217_21_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",217.21,AP1000_DIRECT,0,collapsed_category_scaled +165,217.21_lab,660329.2679782314,217.2_lab,category_scale,$,"ref_217_21_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",217.21,AP1000_DIRECT,0,collapsed_category_scaled +166,217.22_fac,551228.8160138695,217.2_fac,category_scale,$,"ref_217_22_fac, scale_P, scale_ap1000",217.22,AP1000_DIRECT,0,collapsed_category_scaled +167,217.22_mat,787919.9908249651,217.2_mat,category_scale,$,"ref_217_22_mat, scale_P, scale_ap1000",217.22,AP1000_DIRECT,0,collapsed_category_scaled +168,217.22_lab,3521923.410429529,217.2_lab,category_scale,$,"ref_217_22_lab, scale_P, scale_ap1000",217.22,AP1000_DIRECT,0,collapsed_category_scaled +169,217.23_fac,5726854.495125494,217.2_fac,category_scale,$,"ref_217_23_fac, scale_P, scale_ap1000",217.23,AP1000_DIRECT,0,collapsed_category_scaled +170,217.23_mat,30165.283877267044,217.2_mat,category_scale,$,"ref_217_23_mat, scale_P, scale_ap1000",217.23,AP1000_DIRECT,0,collapsed_category_scaled +171,217.23_lab,399287.6452513784,217.2_lab,category_scale,$,"ref_217_23_lab, scale_P, scale_ap1000",217.23,AP1000_DIRECT,0,collapsed_category_scaled +172,217.24_fac,0.0,217.2_fac,,$,,217.24,AP1000_DIRECT,0,category_scaled +173,217.24_mat,206460.0010679287,217.2_mat,category_scale,$,"ref_217_24_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",217.24,AP1000_DIRECT,0,category_scaled +174,217.24_lab,547692.4207648278,217.2_lab,category_scale,$,"ref_217_24_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",217.24,AP1000_DIRECT,0,category_scaled +175,218_fac,13518433.632366458,21_fac,,$,,218,AP1000_DIRECT,0,rollup_from_subaccounts +176,218_mat,10212281.98346948,21_mat,,$,,218,AP1000_DIRECT,0,rollup_from_subaccounts +177,218_lab,33895360.29201859,21_lab,,$,,218,AP1000_DIRECT,0,rollup_from_subaccounts +178,218A_fac,6620223.142967545,218_fac,,$,,218A,AP1000_DIRECT,0,rollup_from_subaccounts +179,218A_mat,2915579.4090758967,218_mat,,$,,218A,AP1000_DIRECT,0,rollup_from_subaccounts +180,218A_lab,8306907.673871875,218_lab,,$,,218A,AP1000_DIRECT,0,rollup_from_subaccounts +181,218A.1_fac,0.0,218A_fac,sum_all,$,"ce_218A_13_fac, ce_218A_14_fac",218A.1,AP1000_DIRECT,0,rollup_from_moved_variables +182,218A.1_mat,2425886.596632306,218A_mat,sum_all,$,"ce_218A_13_mat, ce_218A_14_mat",218A.1,AP1000_DIRECT,0,rollup_from_moved_variables +183,218A.1_lab,5127112.612297488,218A_lab,sum_all,$,"ce_218A_13_lab, ce_218A_14_lab",218A.1,AP1000_DIRECT,0,rollup_from_moved_variables +184,218A.2_fac,6620223.142967547,218A_fac,sum_all,$,"ce_218A_21_fac, ce_218A_23_fac, ce_218A_24_fac",218A.2,AP1000_DIRECT,0,rollup_from_moved_variables +185,218A.2_mat,489692.8124435906,218A_mat,sum_all,$,"ce_218A_21_mat, ce_218A_23_mat, ce_218A_24_mat",218A.2,AP1000_DIRECT,0,rollup_from_moved_variables +186,218A.2_lab,3179795.061574388,218A_lab,sum_all,$,"ce_218A_21_lab, ce_218A_23_lab, ce_218A_24_lab",218A.2,AP1000_DIRECT,0,rollup_from_moved_variables +187,218B_fac,5625549.024219361,218_fac,,$,,218B,AP1000_DIRECT,0,rollup_from_subaccounts +188,218B_mat,1315107.6939356534,218_mat,,$,,218B,AP1000_DIRECT,0,rollup_from_subaccounts +189,218B_lab,9098998.337264072,218_lab,,$,,218B,AP1000_DIRECT,0,rollup_from_subaccounts +190,218B.1_fac,0.0,218B_fac,,$,,218B.1,AP1000_DIRECT,0,collapsed_rollup_zero +191,218B.1_mat,0.0,218B_mat,,$,,218B.1,AP1000_DIRECT,0,collapsed_rollup_zero +192,218B.1_lab,0.0,218B_lab,,$,,218B.1,AP1000_DIRECT,0,collapsed_rollup_zero +193,218B.2_fac,5625549.024219361,218B_fac,sum_all,$,"ce_218B_21_fac, ce_218B_22_fac, ce_218B_23_fac, ce_218B_24_fac, ce_218B_25_fac",218B.2,AP1000_DIRECT,0,rollup_from_moved_variables +194,218B.2_mat,1315107.6939356534,218B_mat,sum_all,$,"ce_218B_21_mat, ce_218B_22_mat, ce_218B_23_mat, ce_218B_24_mat, ce_218B_25_mat",218B.2,AP1000_DIRECT,0,rollup_from_moved_variables +195,218B.2_lab,9098998.337264072,218B_lab,sum_all,$,"ce_218B_21_lab, ce_218B_22_lab, ce_218B_23_lab, ce_218B_24_lab, ce_218B_25_lab",218B.2,AP1000_DIRECT,0,rollup_from_moved_variables +196,218D_fac,250738.2607123646,218_fac,category_scale,$,"ref_218D_fac, scale_ap1000",218D,AP1000_DIRECT,0,category_scaled +197,218D_mat,1010142.4673892984,218_mat,category_scale,$,"ref_218D_mat, scale_ap1000",218D,AP1000_DIRECT,0,category_scaled +198,218D_lab,2237710.4129942493,218_lab,category_scale,$,"ref_218D_lab, scale_ap1000",218D,AP1000_DIRECT,0,category_scaled +199,218E_fac,140749.4364614426,218_fac,category_scale,$,"ref_218E_fac, scale_P, scale_ap1000",218E,AP1000_DIRECT,0,collapsed_category_scaled +200,218E_mat,51921.3982917042,218_mat,category_scale,$,"ref_218E_mat, scale_P, scale_ap1000",218E,AP1000_DIRECT,0,collapsed_category_scaled +201,218E_lab,272685.17983924213,218_lab,category_scale,$,"ref_218E_lab, scale_P, scale_ap1000",218E,AP1000_DIRECT,0,collapsed_category_scaled +202,218F_fac,0.0,218_fac,,$,,218F,AP1000_DIRECT,0,category_scaled +203,218F_mat,1829542.7540454115,218_mat,category_scale,$,"ref_218F_mat, scale_P, scale_ap1000",218F,AP1000_DIRECT,0,category_scaled +204,218F_lab,5652713.37075606,218_lab,category_scale,$,"ref_218F_lab, scale_P, scale_ap1000",218F,AP1000_DIRECT,0,category_scaled +205,218G_fac,0.0,218_fac,category_scale,$,"ref_218G_fac, scale_elec_tunnel_bldg_vol, scale_ap1000",218G,AP1000_DIRECT,0,category_scaled +206,218G_mat,0.0,218_mat,category_scale,$,"ref_218G_mat, scale_elec_tunnel_bldg_vol, scale_ap1000",218G,AP1000_DIRECT,0,category_scaled +207,218G_lab,0.0,218_lab,category_scale,$,"ref_218G_lab, scale_elec_tunnel_bldg_vol, scale_ap1000",218G,AP1000_DIRECT,0,category_scaled +208,218H_fac,0.0,218_fac,category_scale,$,"ref_218H_fac, scale_non_ess_swgr_bldg_bldg_vol, scale_ap1000",218H,AP1000_DIRECT,0,category_scaled +209,218H_mat,0.0,218_mat,category_scale,$,"ref_218H_mat, scale_non_ess_swgr_bldg_bldg_vol, scale_ap1000",218H,AP1000_DIRECT,0,category_scaled +210,218H_lab,0.0,218_lab,category_scale,$,"ref_218H_lab, scale_non_ess_swgr_bldg_bldg_vol, scale_ap1000",218H,AP1000_DIRECT,0,category_scaled +211,218J_fac,221190.6238085922,218_fac,category_scale,$,"ref_218J_fac, scale_P, scale_ap1000",218J,AP1000_DIRECT,0,collapsed_category_scaled +212,218J_mat,148803.12543416597,218_mat,category_scale,$,"ref_218J_mat, scale_P, scale_ap1000",218J,AP1000_DIRECT,0,collapsed_category_scaled +213,218J_lab,1357394.058029999,218_lab,category_scale,$,"ref_218J_lab, scale_P, scale_ap1000",218J,AP1000_DIRECT,0,collapsed_category_scaled +214,218K_fac,0.0,218_fac,,$,,218K,AP1000_DIRECT,0,category_scaled +215,218K_mat,744841.6203679295,218_mat,category_scale,$,"ref_218K_mat, scale_P, scale_ap1000",218K,AP1000_DIRECT,0,category_scaled +216,218K_lab,1830204.6512462974,218_lab,category_scale,$,"ref_218K_lab, scale_P, scale_ap1000",218K,AP1000_DIRECT,0,category_scaled +217,218L_fac,391475.1792631674,218_fac,category_scale,$,"ref_218L_fac, scale_ap1000",218L,AP1000_DIRECT,0,category_scaled +218,218L_mat,1905756.4524529916,218_mat,category_scale,$,"ref_218L_mat, scale_ap1000",218L,AP1000_DIRECT,0,category_scaled +219,218L_lab,4218738.576558702,218_lab,category_scale,$,"ref_218L_lab, scale_ap1000",218L,AP1000_DIRECT,0,category_scaled +220,218P_fac,0.0,218_fac,,$,,218P,AP1000_DIRECT,0,category_scaled +221,218P_mat,0.0,218_mat,category_scale,$,"ref_218P_mat, scale_cont_hatch_ms_bldg_vol, scale_ap1000",218P,AP1000_DIRECT,0,category_scaled +222,218P_lab,0.0,218_lab,category_scale,$,"ref_218P_lab, scale_cont_hatch_ms_bldg_vol, scale_ap1000",218P,AP1000_DIRECT,0,category_scaled +223,218S_fac,0.0,218_fac,category_scale,$,"ref_218S_fac, scale_wwt_bldg_bldg_vol, scale_ap1000",218S,AP1000_DIRECT,0,category_scaled +224,218S_mat,0.0,218_mat,category_scale,$,"ref_218S_mat, scale_wwt_bldg_bldg_vol, scale_ap1000",218S,AP1000_DIRECT,0,category_scaled +225,218S_lab,0.0,218_lab,category_scale,$,"ref_218S_lab, scale_wwt_bldg_bldg_vol, scale_ap1000",218S,AP1000_DIRECT,0,category_scaled +226,218T_fac,268507.964933985,218_fac,category_scale,$,"ref_218T_fac, scale_P, scale_ap1000",218T,AP1000_DIRECT,0,collapsed_category_scaled +227,218T_mat,97740.94019231098,218_mat,category_scale,$,"ref_218T_mat, scale_P, scale_ap1000",218T,AP1000_DIRECT,0,collapsed_category_scaled +228,218T_lab,427424.4208490613,218_lab,category_scale,$,"ref_218T_lab, scale_P, scale_ap1000",218T,AP1000_DIRECT,0,collapsed_category_scaled +229,218V_fac,0.0,218_fac,,$,,218V,AP1000_DIRECT,0,category_scaled +230,218V_mat,192846.12228411887,218_mat,category_scale,$,"ref_218V_mat, scale_ap1000",218V,AP1000_DIRECT,0,category_scaled +231,218V_lab,492583.61060903815,218_lab,category_scale,$,"ref_218V_lab, scale_ap1000",218V,AP1000_DIRECT,0,category_scaled +232,22_fac,1442717790.256938,2_fac,,$,,22,AP1000_DIRECT,0,rollup_from_subaccounts +233,22_mat,95389413.8597456,2_mat,,$,,22,AP1000_DIRECT,0,rollup_from_subaccounts +234,22_lab,440456500.33693635,2_lab,,$,,22,AP1000_DIRECT,0,rollup_from_subaccounts +235,221_fac,376389824.06145334,22_fac,,$,,221,AP1000_DIRECT,0,rollup_from_subaccounts +236,221_mat,34734836.74965363,22_mat,,$,,221,AP1000_DIRECT,0,rollup_from_subaccounts +237,221_lab,25522480.358013272,22_lab,,$,,221,AP1000_DIRECT,0,rollup_from_subaccounts +238,221.1_fac,142559182.30839476,221_fac,category_scale,$,"ref_221_1_fac, scale_frm_vsl_M, scale_ap1000",221.1,AP1000_DIRECT,0,collapsed_category_scaled +239,221.1_mat,34033992.41645571,221_mat,category_scale,$,"ref_221_1_mat, scale_frm_vsl_M, scale_ap1000",221.1,AP1000_DIRECT,0,collapsed_category_scaled +240,221.1_lab,18056918.781879537,221_lab,category_scale,$,"ref_221_1_lab, scale_frm_vsl_M, scale_ap1000",221.1,AP1000_DIRECT,0,collapsed_category_scaled +241,221.3_fac,131845564.06455146,221_fac,category_scale,$,"ref_221_3_fac, scale_rx_D, scale_ap1000",221.3,AP1000_DIRECT,0,category_scaled +242,221.3_mat,332077.13867684803,221_mat,category_scale,$,"ref_221_3_mat, scale_rx_D, scale_ap1000",221.3,AP1000_DIRECT,0,category_scaled +243,221.3_lab,3566675.712751894,221_lab,category_scale,$,"ref_221_3_lab, scale_rx_D, scale_ap1000",221.3,AP1000_DIRECT,0,category_scaled +244,221.2_fac,101985077.68850714,221_fac,category_scale,$,"ref_221_2_fac, scale_n_crs, scale_ap1000",221.2,AP1000_DIRECT,0,collapsed_category_scaled +245,221.2_mat,368767.19452107383,221_mat,category_scale,$,"ref_221_2_mat, scale_n_crs, scale_ap1000",221.2,AP1000_DIRECT,0,collapsed_category_scaled +246,221.2_lab,3898885.863381845,221_lab,category_scale,$,"ref_221_2_lab, scale_n_crs, scale_ap1000",221.2,AP1000_DIRECT,0,collapsed_category_scaled +247,222_fac,731198556.136615,22_fac,,$,,222,AP1000_DIRECT,0,rollup_from_subaccounts +248,222_mat,6775547.253522042,22_mat,,$,,222,AP1000_DIRECT,0,rollup_from_subaccounts +249,222_lab,65557617.92269158,22_lab,,$,,222,AP1000_DIRECT,0,rollup_from_subaccounts +250,222.1_fac,731198556.136615,222_fac,,$,,222.1,AP1000_DIRECT,0,rollup_from_subaccounts +251,222.1_mat,6775547.253522042,222_mat,,$,,222.1,AP1000_DIRECT,0,rollup_from_subaccounts +252,222.1_lab,65557617.92269158,222_lab,,$,,222.1,AP1000_DIRECT,0,rollup_from_subaccounts +253,222.11_fac,261751656.0231072,222.1_fac,sum_all,$,"ce_222_111_fac, ce_222_119_fac",222.11,AP1000_DIRECT,0,rollup_from_moved_variables +254,222.11_mat,2062689.8654069384,222.1_mat,sum_all,$,"ce_222_111_mat, ce_222_119_mat",222.11,AP1000_DIRECT,0,rollup_from_moved_variables +255,222.11_lab,19106042.54955651,222.1_lab,sum_all,$,"ce_222_111_lab, ce_222_119_lab",222.11,AP1000_DIRECT,0,rollup_from_moved_variables +256,222.12_fac,17383762.474323668,222.1_fac,category_scale,$,"ref_222_12_fac, scale_mc_piping_M, scale_ap1000",222.12,AP1000_DIRECT,0,collapsed_category_scaled +257,222.12_mat,3074663.0927888257,222.1_mat,category_scale,$,"ref_222_12_mat, scale_mc_piping_M, scale_ap1000",222.12,AP1000_DIRECT,0,collapsed_category_scaled +258,222.12_lab,31196327.167452876,222.1_lab,category_scale,$,"ref_222_12_lab, scale_mc_piping_M, scale_ap1000",222.12,AP1000_DIRECT,0,collapsed_category_scaled +259,222.13_fac,427210096.7891255,222.1_fac,sum_all,$,"ce_222_132_fac, ce_222_139_fac",222.13,AP1000_DIRECT,0,rollup_from_moved_variables +260,222.13_mat,1464153.3540223585,222.1_mat,sum_all,$,"ce_222_132_mat, ce_222_139_mat",222.13,AP1000_DIRECT,0,rollup_from_moved_variables +261,222.13_lab,13491236.259220896,222.1_lab,sum_all,$,"ce_222_132_lab, ce_222_139_lab",222.13,AP1000_DIRECT,0,rollup_from_moved_variables +262,222.14_fac,24853040.850058746,222.1_fac,category_scale,$,"ref_222_14_fac, scale_frm_prz_M, scale_ap1000",222.14,AP1000_DIRECT,0,collapsed_category_scaled +263,222.14_mat,174040.94130391945,222.1_mat,category_scale,$,"ref_222_14_mat, scale_frm_prz_M, scale_ap1000",222.14,AP1000_DIRECT,0,collapsed_category_scaled +264,222.14_lab,1764011.9464613018,222.1_lab,category_scale,$,"ref_222_14_lab, scale_frm_prz_M, scale_ap1000",222.14,AP1000_DIRECT,0,collapsed_category_scaled +265,223_fac,72148062.67451558,22_fac,,$,,223,AP1000_DIRECT,0,rollup_from_subaccounts +266,223_mat,7388677.741251616,22_mat,,$,,223,AP1000_DIRECT,0,rollup_from_subaccounts +267,223_lab,67297638.79502927,22_lab,,$,,223,AP1000_DIRECT,0,rollup_from_subaccounts +268,223.1_fac,18418281.295205873,223_fac,category_scale,$,"ref_223_1_fac, scale_P, f_simp_sfgd, scale_ap1000",223.1,AP1000_DIRECT,0,collapsed_category_scaled +269,223.1_mat,1299401.0727045499,223_mat,category_scale,$,"ref_223_1_mat, scale_P, f_simp_sfgd, scale_ap1000",223.1,AP1000_DIRECT,0,collapsed_category_scaled +270,223.1_lab,15488255.723676555,223_lab,category_scale,$,"ref_223_1_lab, scale_P, f_simp_sfgd, scale_ap1000",223.1,AP1000_DIRECT,0,collapsed_category_scaled +271,223.3_fac,36320841.47661212,223_fac,category_scale,$,"ref_223_3_fac, scale_P, f_simp_sfgd, scale_ap1000",223.3,AP1000_DIRECT,0,collapsed_category_scaled +272,223.3_mat,3733013.404787294,223_mat,category_scale,$,"ref_223_3_mat, scale_P, f_simp_sfgd, scale_ap1000",223.3,AP1000_DIRECT,0,collapsed_category_scaled +273,223.3_lab,25197074.7183971,223_lab,category_scale,$,"ref_223_3_lab, scale_P, f_simp_sfgd, scale_ap1000",223.3,AP1000_DIRECT,0,collapsed_category_scaled +274,223.4_fac,13584581.157406867,223_fac,category_scale,$,"ref_223_4_fac, scale_cont_V, f_simp_sfgd, scale_ap1000",223.4,AP1000_DIRECT,0,collapsed_category_scaled +275,223.4_mat,2152428.913790014,223_mat,category_scale,$,"ref_223_4_mat, scale_cont_V, f_simp_sfgd, scale_ap1000",223.4,AP1000_DIRECT,0,collapsed_category_scaled +276,223.4_lab,24270160.37242573,223_lab,category_scale,$,"ref_223_4_lab, scale_cont_V, f_simp_sfgd, scale_ap1000",223.4,AP1000_DIRECT,0,collapsed_category_scaled +277,223.5_fac,3824358.7452907227,223_fac,category_scale,$,"ref_223_5_fac, scale_cont_V, f_simp_sfgd, scale_ap1000",223.5,AP1000_DIRECT,0,collapsed_category_scaled +278,223.5_mat,203834.3499697583,223_mat,category_scale,$,"ref_223_5_mat, scale_cont_V, f_simp_sfgd, scale_ap1000",223.5,AP1000_DIRECT,0,collapsed_category_scaled +279,223.5_lab,2342147.980529879,223_lab,category_scale,$,"ref_223_5_lab, scale_cont_V, f_simp_sfgd, scale_ap1000",223.5,AP1000_DIRECT,0,collapsed_category_scaled +280,224_fac,76474736.4661197,22_fac,,$,,224,AP1000_DIRECT,0,rollup_from_subaccounts +281,224_mat,5387639.165357539,22_mat,,$,,224,AP1000_DIRECT,0,rollup_from_subaccounts +282,224_lab,53606304.77393996,22_lab,,$,,224,AP1000_DIRECT,0,rollup_from_subaccounts +283,224.1_fac,33238835.96017596,224_fac,category_scale,$,"ref_224_1_fac, scale_pri_flow, f_simp_radw, scale_ap1000",224.1,AP1000_DIRECT,0,collapsed_category_scaled +284,224.1_mat,4568113.701132465,224_mat,category_scale,$,"ref_224_1_mat, scale_pri_flow, f_simp_radw, scale_ap1000",224.1,AP1000_DIRECT,0,collapsed_category_scaled +285,224.1_lab,44445569.04742722,224_lab,category_scale,$,"ref_224_1_lab, scale_pri_flow, f_simp_radw, scale_ap1000",224.1,AP1000_DIRECT,0,collapsed_category_scaled +286,224.2_fac,5843796.950513905,224_fac,category_scale,$,"ref_224_2_fac, scale_pri_flow, f_simp_radw, scale_ap1000",224.2,AP1000_DIRECT,0,collapsed_category_scaled +287,224.2_mat,143276.17126208858,224_mat,category_scale,$,"ref_224_2_mat, scale_pri_flow, f_simp_radw, scale_ap1000",224.2,AP1000_DIRECT,0,collapsed_category_scaled +288,224.2_lab,2299649.4271311043,224_lab,category_scale,$,"ref_224_2_lab, scale_pri_flow, f_simp_radw, scale_ap1000",224.2,AP1000_DIRECT,0,collapsed_category_scaled +289,224.3_fac,37392103.55542984,224_fac,category_scale,$,"ref_224_3_fac, scale_P, f_simp_radw, scale_ap1000",224.3,AP1000_DIRECT,0,collapsed_category_scaled +290,224.3_mat,676249.292962986,224_mat,category_scale,$,"ref_224_3_mat, scale_P, f_simp_radw, scale_ap1000",224.3,AP1000_DIRECT,0,collapsed_category_scaled +291,224.3_lab,6861086.299381646,224_lab,category_scale,$,"ref_224_3_lab, scale_P, f_simp_radw, scale_ap1000",224.3,AP1000_DIRECT,0,collapsed_category_scaled +292,225_fac,9335413.309984598,22_fac,,$,,225,AP1000_DIRECT,0,rollup_from_subaccounts +293,225_mat,481318.7414647599,22_mat,,$,,225,AP1000_DIRECT,0,rollup_from_subaccounts +294,225_lab,5228054.607224781,22_lab,,$,,225,AP1000_DIRECT,0,rollup_from_subaccounts +295,225.1_fac,3770287.432417982,225_fac,,$,,225.1,AP1000_DIRECT,0,rollup_from_subaccounts +296,225.1_mat,205015.65329514391,225_mat,,$,,225.1,AP1000_DIRECT,0,rollup_from_subaccounts +297,225.1_lab,2652452.795894424,225_lab,,$,,225.1,AP1000_DIRECT,0,rollup_from_subaccounts +298,225.11_fac,2661183.450978095,225.1_fac,sum_all,$,"ce_225_111_fac, ce_225_112_fac, ce_225_113_fac, ce_225_114_fac",225.11,AP1000_DIRECT,0,rollup_from_moved_variables +299,225.11_mat,85224.11666790154,225.1_mat,sum_all,$,"ce_225_111_mat, ce_225_112_mat, ce_225_113_mat, ce_225_114_mat",225.11,AP1000_DIRECT,0,rollup_from_moved_variables +300,225.11_lab,1070189.4769265929,225.1_lab,sum_all,$,"ce_225_111_lab, ce_225_112_lab, ce_225_113_lab, ce_225_114_lab",225.11,AP1000_DIRECT,0,rollup_from_moved_variables +301,225.12_fac,462918.0405946029,225.1_fac,category_scale,$,"ref_225_12_fac, f_simp_fuel_hndl, scale_ap1000",225.12,AP1000_DIRECT,0,category_scaled +302,225.12_mat,4769.430748779595,225.1_mat,category_scale,$,"ref_225_12_mat, f_simp_fuel_hndl, scale_ap1000",225.12,AP1000_DIRECT,0,category_scaled +303,225.12_lab,59779.77946277526,225.1_lab,category_scale,$,"ref_225_12_lab, f_simp_fuel_hndl, scale_ap1000",225.12,AP1000_DIRECT,0,category_scaled +304,225.13_fac,646185.9408452827,225.1_fac,category_scale,$,"ref_225_13_fac, f_simp_fuel_hndl, scale_ap1000",225.13,AP1000_DIRECT,0,collapsed_category_scaled +305,225.13_mat,115022.10587846281,225.1_mat,category_scale,$,"ref_225_13_mat, f_simp_fuel_hndl, scale_ap1000",225.13,AP1000_DIRECT,0,collapsed_category_scaled +306,225.13_lab,1522483.5395050556,225.1_lab,category_scale,$,"ref_225_13_lab, f_simp_fuel_hndl, scale_ap1000",225.13,AP1000_DIRECT,0,collapsed_category_scaled +307,225.3_fac,336937.1850408049,225_fac,category_scale,$,"ref_225_3_fac, f_simp_fuel_hndl, scale_ap1000",225.3,AP1000_DIRECT,0,collapsed_category_scaled +308,225.3_mat,15982.621821046532,225_mat,category_scale,$,"ref_225_3_mat, f_simp_fuel_hndl, scale_ap1000",225.3,AP1000_DIRECT,0,collapsed_category_scaled +309,225.3_lab,212733.0408812761,225_lab,category_scale,$,"ref_225_3_lab, f_simp_fuel_hndl, scale_ap1000",225.3,AP1000_DIRECT,0,collapsed_category_scaled +310,225.4_fac,5228188.692525811,225_fac,category_scale,$,"ref_225_4_fac, scale_sfp_V, f_simp_fuel_hndl, scale_ap1000",225.4,AP1000_DIRECT,0,collapsed_category_scaled +311,225.4_mat,260320.46634856952,225_mat,category_scale,$,"ref_225_4_mat, scale_sfp_V, f_simp_fuel_hndl, scale_ap1000",225.4,AP1000_DIRECT,0,collapsed_category_scaled +312,225.4_lab,2362868.7704490805,225_lab,category_scale,$,"ref_225_4_lab, scale_sfp_V, f_simp_fuel_hndl, scale_ap1000",225.4,AP1000_DIRECT,0,collapsed_category_scaled +313,226_fac,83891464.97857295,22_fac,,$,,226,AP1000_DIRECT,0,rollup_from_subaccounts +314,226_mat,14259524.365977451,22_mat,,$,,226,AP1000_DIRECT,0,rollup_from_subaccounts +315,226_lab,118883392.15461758,22_lab,,$,,226,AP1000_DIRECT,0,rollup_from_subaccounts +316,226.1_fac,2523809.891261753,226_fac,category_scale,$,"ref_226_1_fac, f_simp_other_rx_equip, scale_ap1000",226.1,AP1000_DIRECT,0,collapsed_category_scaled +317,226.1_mat,285494.95094295836,226_mat,category_scale,$,"ref_226_1_mat, f_simp_other_rx_equip, scale_ap1000",226.1,AP1000_DIRECT,0,collapsed_category_scaled +318,226.1_lab,3669668.6412635543,226_lab,category_scale,$,"ref_226_1_lab, f_simp_other_rx_equip, scale_ap1000",226.1,AP1000_DIRECT,0,collapsed_category_scaled +319,226.3_fac,2877089.852360242,226_fac,category_scale,$,"ref_226_3_fac, f_simp_other_rx_equip, scale_ap1000",226.3,AP1000_DIRECT,0,collapsed_category_scaled +320,226.3_mat,897490.6813177499,226_mat,category_scale,$,"ref_226_3_mat, f_simp_other_rx_equip, scale_ap1000",226.3,AP1000_DIRECT,0,collapsed_category_scaled +321,226.3_lab,4281400.388376851,226_lab,category_scale,$,"ref_226_3_lab, f_simp_other_rx_equip, scale_ap1000",226.3,AP1000_DIRECT,0,collapsed_category_scaled +322,226.4_fac,30764724.87330245,226_fac,category_scale,$,"ref_226_4_fac, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000",226.4,AP1000_DIRECT,0,collapsed_category_scaled +323,226.4_mat,5098299.994208204,226_mat,category_scale,$,"ref_226_4_mat, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000",226.4,AP1000_DIRECT,0,collapsed_category_scaled +324,226.4_lab,44401388.93474373,226_lab,category_scale,$,"ref_226_4_lab, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000",226.4,AP1000_DIRECT,0,collapsed_category_scaled +325,226.6_fac,544783.4608331835,226_fac,category_scale,$,"ref_226_6_fac, f_simp_other_rx_equip, scale_ap1000",226.6,AP1000_DIRECT,0,collapsed_category_scaled +326,226.6_mat,5221.151284715566,226_mat,category_scale,$,"ref_226_6_mat, f_simp_other_rx_equip, scale_ap1000",226.6,AP1000_DIRECT,0,collapsed_category_scaled +327,226.6_lab,133076.97791084164,226_lab,category_scale,$,"ref_226_6_lab, f_simp_other_rx_equip, scale_ap1000",226.6,AP1000_DIRECT,0,collapsed_category_scaled +328,226.7_fac,34675314.4874424,226_fac,,$,,226.7,AP1000_DIRECT,0,rollup_from_subaccounts +329,226.7_mat,4940633.956157955,226_mat,,$,,226.7,AP1000_DIRECT,0,rollup_from_subaccounts +330,226.7_lab,63914038.32370481,226_lab,,$,,226.7,AP1000_DIRECT,0,rollup_from_subaccounts +331,226.71_fac,19184105.220658958,226.7_fac,category_scale,$,"ref_226_71_fac, scale_P, f_simp_other_rx_equip, scale_ap1000",226.71,AP1000_DIRECT,0,collapsed_category_scaled +332,226.71_mat,3248385.7500987626,226.7_mat,category_scale,$,"ref_226_71_mat, scale_P, f_simp_other_rx_equip, scale_ap1000",226.71,AP1000_DIRECT,0,collapsed_category_scaled +333,226.71_lab,42162331.569923446,226.7_lab,category_scale,$,"ref_226_71_lab, scale_P, f_simp_other_rx_equip, scale_ap1000",226.71,AP1000_DIRECT,0,collapsed_category_scaled +334,226.72_fac,15491209.266783442,226.7_fac,category_scale,$,"ref_226_72_fac, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000",226.72,AP1000_DIRECT,0,collapsed_category_scaled +335,226.72_mat,1692248.206059192,226.7_mat,category_scale,$,"ref_226_72_mat, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000",226.72,AP1000_DIRECT,0,collapsed_category_scaled +336,226.72_lab,21751706.753781363,226.7_lab,category_scale,$,"ref_226_72_lab, scale_pri_flow, f_simp_other_rx_equip, scale_ap1000",226.72,AP1000_DIRECT,0,collapsed_category_scaled +337,226.8_fac,11227763.39011469,226_fac,category_scale,$,"ref_226_8_fac, f_simp_other_rx_equip, scale_ap1000",226.8,AP1000_DIRECT,0,collapsed_category_scaled +338,226.8_mat,2865730.7666591494,226_mat,category_scale,$,"ref_226_8_mat, f_simp_other_rx_equip, scale_ap1000",226.8,AP1000_DIRECT,0,collapsed_category_scaled +339,226.8_lab,506603.7344951437,226_lab,category_scale,$,"ref_226_8_lab, f_simp_other_rx_equip, scale_ap1000",226.8,AP1000_DIRECT,0,collapsed_category_scaled +340,226.9_fac,1277979.0232582365,226_fac,category_scale,$,"ref_226_9_fac, f_simp_other_rx_equip, scale_ap1000",226.9,AP1000_DIRECT,0,collapsed_category_scaled +341,226.9_mat,166652.86540672113,226_mat,category_scale,$,"ref_226_9_mat, f_simp_other_rx_equip, scale_ap1000",226.9,AP1000_DIRECT,0,collapsed_category_scaled +342,226.9_lab,1977215.1541226527,226_lab,category_scale,$,"ref_226_9_lab, f_simp_other_rx_equip, scale_ap1000",226.9,AP1000_DIRECT,0,collapsed_category_scaled +343,227_fac,93279732.62967679,22_fac,,$,,227,AP1000_DIRECT,0,rollup_from_subaccounts +344,227_mat,5831239.22166098,22_mat,,$,,227,AP1000_DIRECT,0,rollup_from_subaccounts +345,227_lab,66773772.12037918,22_lab,,$,,227,AP1000_DIRECT,0,rollup_from_subaccounts +346,227.1_fac,16731116.034276668,227_fac,,$,,227.1,AP1000_DIRECT,0,rollup_from_subaccounts +347,227.1_mat,415956.63702705654,227_mat,,$,,227.1,AP1000_DIRECT,0,rollup_from_subaccounts +348,227.1_lab,8249629.071047681,227_lab,,$,,227.1,AP1000_DIRECT,0,rollup_from_subaccounts +349,227.11_fac,6701731.730375718,227.1_fac,category_scale,$,"ref_227_11_fac, scale_ap1000",227.11,AP1000_DIRECT,0,category_scaled +350,227.11_mat,134371.86650275468,227.1_mat,category_scale,$,"ref_227_11_mat, scale_ap1000",227.11,AP1000_DIRECT,0,category_scaled +351,227.11_lab,2730078.873139126,227.1_lab,category_scale,$,"ref_227_11_lab, scale_ap1000",227.11,AP1000_DIRECT,0,category_scaled +352,227.15_fac,574574.0457296326,227.1_fac,category_scale,$,"ref_227_15_fac, scale_ap1000",227.15,AP1000_DIRECT,0,category_scaled +353,227.15_mat,21724.17742507607,227.1_mat,category_scale,$,"ref_227_15_mat, scale_ap1000",227.15,AP1000_DIRECT,0,category_scaled +354,227.15_lab,418609.7770808031,227.1_lab,category_scale,$,"ref_227_15_lab, scale_ap1000",227.15,AP1000_DIRECT,0,category_scaled +355,227.16_fac,2401728.739311987,227.1_fac,category_scale,$,"ref_227_16_fac, scale_ap1000",227.16,AP1000_DIRECT,0,category_scaled +356,227.16_mat,85022.3131654948,227.1_mat,category_scale,$,"ref_227_16_mat, scale_ap1000",227.16,AP1000_DIRECT,0,category_scaled +357,227.16_lab,1638045.8128769724,227.1_lab,category_scale,$,"ref_227_16_lab, scale_ap1000",227.16,AP1000_DIRECT,0,category_scaled +358,227.17_fac,2298303.069811153,227.1_fac,category_scale,$,"ref_227_17_fac, scale_ap1000",227.17,AP1000_DIRECT,0,category_scaled +359,227.17_mat,85022.3131654948,227.1_mat,category_scale,$,"ref_227_17_mat, scale_ap1000",227.17,AP1000_DIRECT,0,category_scaled +360,227.17_lab,1638045.8128769724,227.1_lab,category_scale,$,"ref_227_17_lab, scale_ap1000",227.17,AP1000_DIRECT,0,category_scaled +361,227.18_fac,2876843.517601048,227.1_fac,category_scale,$,"ref_227_18_fac, scale_ap1000",227.18,AP1000_DIRECT,0,category_scaled +362,227.18_mat,62708.85424658962,227.1_mat,category_scale,$,"ref_227_18_mat, scale_ap1000",227.18,AP1000_DIRECT,0,category_scaled +363,227.18_lab,1274037.3112288958,227.1_lab,category_scale,$,"ref_227_18_lab, scale_ap1000",227.18,AP1000_DIRECT,0,category_scaled +364,227.19_fac,1877934.9314471288,227.1_fac,category_scale,$,"ref_227_19_fac, scale_n_crs, scale_ap1000",227.19,AP1000_DIRECT,0,category_scaled +365,227.19_mat,27107.112521646617,227.1_mat,category_scale,$,"ref_227_19_mat, scale_n_crs, scale_ap1000",227.19,AP1000_DIRECT,0,category_scaled +366,227.19_lab,550811.4838449135,227.1_lab,category_scale,$,"ref_227_19_lab, scale_n_crs, scale_ap1000",227.19,AP1000_DIRECT,0,category_scaled +367,227.2_fac,18766570.190327622,227_fac,category_scale,$,"ref_227_2_fac, scale_ap1000",227.2,AP1000_DIRECT,0,category_scaled +368,227.2_mat,256755.2755789523,227_mat,category_scale,$,"ref_227_2_mat, scale_ap1000",227.2,AP1000_DIRECT,0,category_scaled +369,227.2_lab,2608349.8366213827,227_lab,category_scale,$,"ref_227_2_lab, scale_ap1000",227.2,AP1000_DIRECT,0,category_scaled +370,227.3_fac,19468964.34294287,227_fac,category_scale,$,"ref_227_3_fac, scale_ap1000",227.3,AP1000_DIRECT,0,collapsed_category_scaled +371,227.3_mat,404015.47758182115,227_mat,category_scale,$,"ref_227_3_mat, scale_ap1000",227.3,AP1000_DIRECT,0,collapsed_category_scaled +372,227.3_lab,7334816.640701374,227_lab,category_scale,$,"ref_227_3_lab, scale_ap1000",227.3,AP1000_DIRECT,0,collapsed_category_scaled +373,227.4_fac,18776867.17664469,227_fac,category_scale,$,"ref_227_4_fac, scale_n_crs, scale_ap1000",227.4,AP1000_DIRECT,0,collapsed_category_scaled +374,227.4_mat,661472.963284763,227_mat,category_scale,$,"ref_227_4_mat, scale_n_crs, scale_ap1000",227.4,AP1000_DIRECT,0,collapsed_category_scaled +375,227.4_lab,6719825.107749218,227_lab,category_scale,$,"ref_227_4_lab, scale_n_crs, scale_ap1000",227.4,AP1000_DIRECT,0,collapsed_category_scaled +376,227.5_fac,1504921.852003929,227_fac,category_scale,$,"ref_227_5_fac, scale_n_crs, scale_ap1000",227.5,AP1000_DIRECT,0,category_scaled +377,227.5_mat,3008655.337751244,227_mat,category_scale,$,"ref_227_5_mat, scale_n_crs, scale_ap1000",227.5,AP1000_DIRECT,0,category_scaled +378,227.5_lab,30845058.97257387,227_lab,category_scale,$,"ref_227_5_lab, scale_n_crs, scale_ap1000",227.5,AP1000_DIRECT,0,category_scaled +379,227.9_fac,18031293.033481006,227_fac,category_scale,$,"ref_227_9_fac, scale_n_crs, scale_ap1000",227.9,AP1000_DIRECT,0,category_scaled +380,227.9_mat,1084383.5304371412,227_mat,category_scale,$,"ref_227_9_mat, scale_n_crs, scale_ap1000",227.9,AP1000_DIRECT,0,category_scaled +381,227.9_lab,11016092.491685642,227_lab,category_scale,$,"ref_227_9_lab, scale_n_crs, scale_ap1000",227.9,AP1000_DIRECT,0,category_scaled +382,228_fac,0.0,22_fac,,$,,228,AP1000_DIRECT,0,collapsed_rollup_zero +383,228_mat,20530630.62085758,22_mat,category_scale,$,"ref_228_mat, scale_ap1000",228,AP1000_DIRECT,0,collapsed_category_scaled +384,228_lab,37587239.60504068,22_lab,category_scale,$,"ref_228_lab, scale_ap1000",228,AP1000_DIRECT,0,collapsed_category_scaled +385,229_fac,0.0,22_fac,,$,,229,AP1000_DIRECT,0,collapsed_rollup_zero +386,229_mat,0.0,22_mat,,$,,229,AP1000_DIRECT,0,collapsed_rollup_zero +387,229_lab,0.0,22_lab,,$,,229,AP1000_DIRECT,0,collapsed_rollup_zero +388,23_fac,1115928778.2652245,2_fac,category_scale,$,"ref_23_fac, scale_elec_P, scale_ap1000",23,AP1000_DIRECT,0,collapsed_category_scaled +389,23_mat,71694656.38854079,2_mat,category_scale,$,"ref_23_mat, scale_elec_P, scale_ap1000",23,AP1000_DIRECT,0,collapsed_category_scaled +390,23_lab,473653546.8197371,2_lab,category_scale,$,"ref_23_lab, scale_elec_P, scale_ap1000",23,AP1000_DIRECT,0,collapsed_category_scaled +391,24_fac,84014350.34107561,2_fac,,$,,24,AP1000_DIRECT,0,rollup_from_subaccounts +392,24_mat,76514666.64616328,2_mat,,$,,24,AP1000_DIRECT,0,rollup_from_subaccounts +393,24_lab,254235726.5018795,2_lab,,$,,24,AP1000_DIRECT,0,rollup_from_subaccounts +394,241_fac,38196895.68243375,24_fac,category_scale,$,"ref_241_fac, scale_tur_plant_equip_elec_P, f_elec_swgr, scale_ap1000",241,AP1000_DIRECT,0,collapsed_category_scaled +395,241_mat,299834.5465517937,24_mat,category_scale,$,"ref_241_mat, scale_tur_plant_equip_elec_P, f_elec_swgr, scale_ap1000",241,AP1000_DIRECT,0,collapsed_category_scaled +396,241_lab,2086749.3632897865,24_lab,category_scale,$,"ref_241_lab, scale_tur_plant_equip_elec_P, f_elec_swgr, scale_ap1000",241,AP1000_DIRECT,0,collapsed_category_scaled +397,242_fac,30353177.8544573,24_fac,category_scale,$,"ref_242_fac, scale_tur_plant_equip_elec_P, f_elec_st_serv, scale_ap1000",242,AP1000_DIRECT,0,collapsed_category_scaled +398,242_mat,541014.0645522478,24_mat,category_scale,$,"ref_242_mat, scale_tur_plant_equip_elec_P, f_elec_st_serv, scale_ap1000",242,AP1000_DIRECT,0,collapsed_category_scaled +399,242_lab,2846743.9180884915,24_lab,category_scale,$,"ref_242_lab, scale_tur_plant_equip_elec_P, f_elec_st_serv, scale_ap1000",242,AP1000_DIRECT,0,collapsed_category_scaled +400,243_fac,8814551.267784392,24_fac,category_scale,$,"ref_243_fac, scale_tur_plant_equip_elec_P, f_elec_switchboards, scale_ap1000",243,AP1000_DIRECT,0,collapsed_category_scaled +401,243_mat,177892.1230746608,24_mat,category_scale,$,"ref_243_mat, scale_tur_plant_equip_elec_P, f_elec_switchboards, scale_ap1000",243,AP1000_DIRECT,0,collapsed_category_scaled +402,243_lab,1963902.0442699401,24_lab,category_scale,$,"ref_243_lab, scale_tur_plant_equip_elec_P, f_elec_switchboards, scale_ap1000",243,AP1000_DIRECT,0,collapsed_category_scaled +403,244_fac,0.0,24_fac,,$,,244,AP1000_DIRECT,0,collapsed_rollup_zero +404,244_mat,11056560.283877427,24_mat,category_scale,$,"ref_244_mat, scale_tur_plant_equip_elec_P, f_elec_prot, scale_ap1000",244,AP1000_DIRECT,0,collapsed_category_scaled +405,244_lab,20409040.842394337,24_lab,category_scale,$,"ref_244_lab, scale_tur_plant_equip_elec_P, f_elec_prot, scale_ap1000",244,AP1000_DIRECT,0,collapsed_category_scaled +406,245_fac,0.0,24_fac,,$,,245,AP1000_DIRECT,0,collapsed_rollup_zero +407,245_mat,24302880.68895334,24_mat,category_scale,$,"ref_245_mat, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont, scale_ap1000",245,AP1000_DIRECT,0,collapsed_category_scaled +408,245_lab,145384479.13483366,24_lab,category_scale,$,"ref_245_lab, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont, scale_ap1000",245,AP1000_DIRECT,0,collapsed_category_scaled +409,246_fac,6649725.53640018,24_fac,category_scale,$,"ref_246_fac, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir, scale_ap1000",246,AP1000_DIRECT,0,collapsed_category_scaled +410,246_mat,40136484.93915381,24_mat,category_scale,$,"ref_246_mat, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir, scale_ap1000",246,AP1000_DIRECT,0,collapsed_category_scaled +411,246_lab,81544811.19900325,24_lab,category_scale,$,"ref_246_lab, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir, scale_ap1000",246,AP1000_DIRECT,0,collapsed_category_scaled +412,25_fac,109644291.87057315,2_fac,,$,,25,AP1000_DIRECT,0,rollup_from_subaccounts +413,25_mat,33527132.757561814,2_mat,,$,,25,AP1000_DIRECT,0,rollup_from_subaccounts +414,25_lab,228404882.21347907,2_lab,,$,,25,AP1000_DIRECT,0,rollup_from_subaccounts +415,251_fac,31649349.105100032,25_fac,,$,,251,AP1000_DIRECT,0,rollup_from_subaccounts +416,251_mat,740441.3446219881,25_mat,,$,,251,AP1000_DIRECT,0,rollup_from_subaccounts +417,251_lab,7101499.644907756,25_lab,,$,,251,AP1000_DIRECT,0,rollup_from_subaccounts +418,251.1_fac,31649349.105100032,251_fac,,$,,251.1,AP1000_DIRECT,0,rollup_from_subaccounts +419,251.1_mat,740441.3446219881,251_mat,,$,,251.1,AP1000_DIRECT,0,rollup_from_subaccounts +420,251.1_lab,7101499.644907756,251_lab,,$,,251.1,AP1000_DIRECT,0,rollup_from_subaccounts +421,251.11_fac,11141448.26308757,251.1_fac,category_scale,$,"ref_251_11_fac, scale_P, scale_ap1000",251.11,AP1000_DIRECT,0,collapsed_category_scaled +422,251.11_mat,180170.52777280024,251.1_mat,category_scale,$,"ref_251_11_mat, scale_P, scale_ap1000",251.11,AP1000_DIRECT,0,collapsed_category_scaled +423,251.11_lab,1728020.5001773133,251.1_lab,category_scale,$,"ref_251_11_lab, scale_P, scale_ap1000",251.11,AP1000_DIRECT,0,collapsed_category_scaled +424,251.12_fac,15916354.661553672,251.1_fac,category_scale,$,"ref_251_12_fac, scale_P, scale_ap1000",251.12,AP1000_DIRECT,0,category_scaled +425,251.12_mat,360341.05543189193,251.1_mat,category_scale,$,"ref_251_12_mat, scale_P, scale_ap1000",251.12,AP1000_DIRECT,0,category_scaled +426,251.12_lab,3456007.5905076778,251.1_lab,category_scale,$,"ref_251_12_lab, scale_P, scale_ap1000",251.12,AP1000_DIRECT,0,category_scaled +427,251.16_fac,1917598.597317775,251.1_fac,category_scale,$,"ref_251_16_fac, scale_ap1000",251.16,AP1000_DIRECT,0,category_scaled +428,251.16_mat,170249.6976722506,251.1_mat,category_scale,$,"ref_251_16_mat, scale_ap1000",251.16,AP1000_DIRECT,0,category_scaled +429,251.16_lab,1632853.7596982452,251.1_lab,category_scale,$,"ref_251_16_lab, scale_ap1000",251.16,AP1000_DIRECT,0,category_scaled +430,251.17_fac,2673947.583141017,251.1_fac,category_scale,$,"ref_251_17_fac, scale_P, scale_ap1000",251.17,AP1000_DIRECT,0,category_scaled +431,251.17_mat,29680.063745045387,251.1_mat,category_scale,$,"ref_251_17_mat, scale_P, scale_ap1000",251.17,AP1000_DIRECT,0,category_scaled +432,251.17_lab,284617.79452452017,251.1_lab,category_scale,$,"ref_251_17_lab, scale_P, scale_ap1000",251.17,AP1000_DIRECT,0,category_scaled +433,252_fac,52043192.34685959,25_fac,,$,,252,AP1000_DIRECT,0,rollup_from_subaccounts +434,252_mat,27795317.953593712,25_mat,,$,,252,AP1000_DIRECT,0,rollup_from_subaccounts +435,252_lab,181004856.28428808,25_lab,,$,,252,AP1000_DIRECT,0,rollup_from_subaccounts +436,252.1_fac,9193183.82153656,252_fac,category_scale,$,"ref_252_1_fac, scale_V_of_212_213_215_216_217, scale_ap1000",252.1,AP1000_DIRECT,0,collapsed_category_scaled +437,252.1_mat,1922969.5661175,252_mat,category_scale,$,"ref_252_1_mat, scale_V_of_212_213_215_216_217, scale_ap1000",252.1,AP1000_DIRECT,0,collapsed_category_scaled +438,252.1_lab,45200589.90347837,252_lab,category_scale,$,"ref_252_1_lab, scale_V_of_212_213_215_216_217, scale_ap1000",252.1,AP1000_DIRECT,0,collapsed_category_scaled +439,252.2_fac,29441010.316945408,252_fac,category_scale,$,"ref_252_2_fac, scale_V_of_212_213_215_216_217, scale_ap1000",252.2,AP1000_DIRECT,0,collapsed_category_scaled +440,252.2_mat,23864021.456679977,252_mat,category_scale,$,"ref_252_2_mat, scale_V_of_212_213_215_216_217, scale_ap1000",252.2,AP1000_DIRECT,0,collapsed_category_scaled +441,252.2_lab,113520774.87678933,252_lab,category_scale,$,"ref_252_2_lab, scale_V_of_212_213_215_216_217, scale_ap1000",252.2,AP1000_DIRECT,0,collapsed_category_scaled +442,252.3_fac,13408998.208377639,252_fac,category_scale,$,"ref_252_3_fac, scale_V_of_212_213_215_216_217, scale_ap1000",252.3,AP1000_DIRECT,0,collapsed_category_scaled +443,252.3_mat,1235248.1924108004,252_mat,category_scale,$,"ref_252_3_mat, scale_V_of_212_213_215_216_217, scale_ap1000",252.3,AP1000_DIRECT,0,collapsed_category_scaled +444,252.3_lab,20901145.12134568,252_lab,category_scale,$,"ref_252_3_lab, scale_V_of_212_213_215_216_217, scale_ap1000",252.3,AP1000_DIRECT,0,collapsed_category_scaled +445,252.4_fac,0.0,252_fac,,$,,252.4,AP1000_DIRECT,0,collapsed_rollup_zero +446,252.4_mat,773078.7383854343,252_mat,category_scale,$,"ref_252_4_mat, scale_ap1000",252.4,AP1000_DIRECT,0,collapsed_category_scaled +447,252.4_lab,1382346.382674683,252_lab,category_scale,$,"ref_252_4_lab, scale_ap1000",252.4,AP1000_DIRECT,0,collapsed_category_scaled +448,253_fac,9877474.895935368,25_fac,category_scale,$,"ref_253_fac, scale_V_of_212_213_215_216_217, scale_ap1000",253,AP1000_DIRECT,0,collapsed_category_scaled +449,253_mat,3326156.547956906,25_mat,category_scale,$,"ref_253_mat, scale_V_of_212_213_215_216_217, scale_ap1000",253,AP1000_DIRECT,0,collapsed_category_scaled +450,253_lab,24085727.11871162,25_lab,category_scale,$,"ref_253_lab, scale_V_of_212_213_215_216_217, scale_ap1000",253,AP1000_DIRECT,0,collapsed_category_scaled +451,254_fac,11311234.370198324,25_fac,category_scale,$,"ref_254_fac, scale_V_of_212_213_215_216_217, scale_ap1000",254,AP1000_DIRECT,0,collapsed_category_scaled +452,254_mat,371591.3353406361,25_mat,category_scale,$,"ref_254_mat, scale_V_of_212_213_215_216_217, scale_ap1000",254,AP1000_DIRECT,0,collapsed_category_scaled +453,254_lab,3217742.2425253736,25_lab,category_scale,$,"ref_254_lab, scale_V_of_212_213_215_216_217, scale_ap1000",254,AP1000_DIRECT,0,collapsed_category_scaled +454,255_fac,4763041.152479845,25_fac,category_scale,$,"ref_255_fac, scale_ap1000",255,AP1000_DIRECT,0,category_scaled +455,255_mat,1293625.5760485628,25_mat,category_scale,$,"ref_255_mat, scale_ap1000",255,AP1000_DIRECT,0,category_scaled +456,255_lab,12995056.923046261,25_lab,category_scale,$,"ref_255_lab, scale_ap1000",255,AP1000_DIRECT,0,category_scaled +457,26_fac,200084995.7570816,2_fac,,$,,26,AP1000_DIRECT,0,rollup_from_subaccounts +458,26_mat,24445605.44957758,2_mat,,$,,26,AP1000_DIRECT,0,rollup_from_subaccounts +459,26_lab,149802987.08860132,2_lab,,$,,26,AP1000_DIRECT,0,rollup_from_subaccounts +460,261_fac,1124505.072865269,26_fac,category_scale,$,"ref_261_fac, scale_rej_th_P, scale_ap1000",261,AP1000_DIRECT,0,collapsed_category_scaled +461,261_mat,11231061.512333443,26_mat,category_scale,$,"ref_261_mat, scale_rej_th_P, scale_ap1000",261,AP1000_DIRECT,0,collapsed_category_scaled +462,261_lab,26135920.426070433,26_lab,category_scale,$,"ref_261_lab, scale_rej_th_P, scale_ap1000",261,AP1000_DIRECT,0,collapsed_category_scaled +463,262_fac,198960490.68421632,26_fac,,$,,262,AP1000_DIRECT,0,rollup_from_subaccounts +464,262_mat,13214543.93724414,26_mat,,$,,262,AP1000_DIRECT,0,rollup_from_subaccounts +465,262_lab,123667066.6625309,26_lab,,$,,262,AP1000_DIRECT,0,rollup_from_subaccounts +466,262.1_fac,198960490.68421632,262_fac,,$,,262.1,AP1000_DIRECT,0,rollup_from_subaccounts +467,262.1_mat,13214543.93724414,262_mat,,$,,262.1,AP1000_DIRECT,0,rollup_from_subaccounts +468,262.1_lab,123667066.6625309,262_lab,,$,,262.1,AP1000_DIRECT,0,rollup_from_subaccounts +469,262.11_fac,2345244.6452707485,262.1_fac,category_scale,$,"ref_262_11_fac, scale_rej_th_P, scale_ap1000",262.11,AP1000_DIRECT,0,category_scaled +470,262.11_mat,89899.7890938285,262.1_mat,category_scale,$,"ref_262_11_mat, scale_rej_th_P, scale_ap1000",262.11,AP1000_DIRECT,0,category_scaled +471,262.11_lab,855946.9207673013,262.1_lab,category_scale,$,"ref_262_11_lab, scale_rej_th_P, scale_ap1000",262.11,AP1000_DIRECT,0,category_scaled +472,262.12_fac,56471175.91976575,262.1_fac,category_scale,$,"ref_262_12_fac, scale_ap1000",262.12,AP1000_DIRECT,0,category_scaled +473,262.12_mat,6364345.794783723,262.1_mat,category_scale,$,"ref_262_12_mat, scale_ap1000",262.12,AP1000_DIRECT,0,category_scaled +474,262.12_lab,43862687.15510696,262.1_lab,category_scale,$,"ref_262_12_lab, scale_ap1000",262.12,AP1000_DIRECT,0,category_scaled +475,262.13_fac,132354226.10511158,262.1_fac,category_scale,$,"ref_262_13_fac, scale_rej_th_P, scale_ap1000",262.13,AP1000_DIRECT,0,category_scaled +476,262.13_mat,6124500.274164423,262.1_mat,category_scale,$,"ref_262_13_mat, scale_rej_th_P, scale_ap1000",262.13,AP1000_DIRECT,0,category_scaled +477,262.13_lab,77008158.10608171,262.1_lab,category_scale,$,"ref_262_13_lab, scale_rej_th_P, scale_ap1000",262.13,AP1000_DIRECT,0,category_scaled +478,262.14_fac,0.0,262.1_fac,,$,,262.14,AP1000_DIRECT,0,category_scaled +479,262.14_mat,336195.9723467761,262.1_mat,category_scale,$,"ref_262_14_mat, scale_rej_th_P, scale_ap1000",262.14,AP1000_DIRECT,0,category_scaled +480,262.14_lab,372827.1750759084,262.1_lab,category_scale,$,"ref_262_14_lab, scale_rej_th_P, scale_ap1000",262.14,AP1000_DIRECT,0,category_scaled +481,262.15_fac,7789844.014068233,262.1_fac,category_scale,$,"ref_262_15_fac, scale_rej_th_P, scale_ap1000",262.15,AP1000_DIRECT,0,category_scaled +482,262.15_mat,299602.1068553891,262.1_mat,category_scale,$,"ref_262_15_mat, scale_rej_th_P, scale_ap1000",262.15,AP1000_DIRECT,0,category_scaled +483,262.15_lab,1567447.3054990103,262.1_lab,category_scale,$,"ref_262_15_lab, scale_rej_th_P, scale_ap1000",262.15,AP1000_DIRECT,0,category_scaled +484,219_fac,0.0,21_fac,,$,,219,AP1000_DIRECT,0,collapsed_rollup_zero +485,219_mat,0.0,21_mat,,$,,219,AP1000_DIRECT,0,collapsed_rollup_zero +486,219_lab,0.0,21_lab,,$,,219,AP1000_DIRECT,0,collapsed_rollup_zero diff --git a/tutorial/accert/ref_tables/ap1000_direct_variables.csv b/tutorial/accert/ref_tables/ap1000_direct_variables.csv new file mode 100644 index 0000000..ca9f520 --- /dev/null +++ b/tutorial/accert/ref_tables/ap1000_direct_variables.csv @@ -0,0 +1,960 @@ +ind,var_name,var_description,var_value,var_unit,var_alg,var_need,v_linked,user_input +1,adm_bldg_bldg_vol,Building volume for 219.142,0.0,m^3,,,scale_adm_bldg_bldg_vol,0 +2,S,General Yardwork Area for 211.1,23.0,m^2,,,scale_S,0 +3,bldg_V,Structural & Miscellaneous Steel Building volume for 213.142,194392.0,m^3,,,scale_bldg_V,0 +4,cont_D_D,AP1000 A.212.15 containment cylinder/dome diameter D,44.2,m,,,sup_str_S,0 +5,cont_hatch_ms_bldg_vol,Building volume for 219.142,0.0,m^3,,,scale_cont_hatch_ms_bldg_vol,0 +6,cont_H_H,AP1000 A.212.15 containment cylinder height H,45.7,m,,,sup_str_S,0 +7,cont_V,Containment Spray System Containment volume for 223.4,86163.9381112316,m^3,,,scale_cont_V,0 +8,cr_dg_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 218142,2660.0,m^3,,,scale_cr_dg_bldg_bldg_vol,0 +9,cr_dg_bldg_sub_S,Roofing & Flashing Substructure S for 218145,380.0,m^2,,,scale_cr_dg_bldg_sub_S,0 +10,cr_dg_bldg_sub_vol,Substructure Concrete Substructure volume for 21813,228.0,m^3,,,scale_cr_dg_bldg_sub_vol,0 +11,cr_dg_bldg_sup_S,Painting Superstructure S for 218149,546.0,m^2,,,scale_cr_dg_bldg_sup_S,0 +12,cr_dg_bldg_sup_vol,Concrete Work Superstructure volume for 218141,163.79999999999998,m^3,,,scale_cr_dg_bldg_sup_vol,0 +13,elec_P,"Input unit value for Electric power scale, source account 231.; also used for new_base_turbine_plant_equipment_elec_P",2234.0,MWe,,,"rej_th_P, scale_elec_P, scale_tur_plant_equip_elec_P",0 +14,elec_tunnel_bldg_vol,Building volume for 219.142,0.0,m^3,,,scale_elec_tunnel_bldg_vol,0 +15,frm_flow,Fluid Circulation Drive System Flow rate for 222.11,5000.0,kg/s,,,scale_frm_flow,0 +16,frm_fuel_cask_cap,Spent Fuel Cask Crane Fuel cask capacity for 225.114,113.0,tonne,,,scale_frm_fuel_cask_cap,0 +17,frm_fuel_crane_cap,New & Spent Fuel Crane Fuel crane capacity for 225.111,2.0,tonne,,,scale_frm_fuel_crane_cap,0 +18,frm_ht_S,Steam Generator Equipment HT surface S for 222.13,11477.0,m^2,,,scale_frm_ht_S,0 +19,frm_prz_M,Pressurizing System Pressurizer mass for 222.14,106000.0,kg,,,scale_frm_prz_M,0 +20,frm_S,Passive cooling pool Surface S for 212.3,1000.0,m^2,,,scale_frm_S,0 +21,frm_S_9_71886e_06,Storage Pool Liner - S.S. Surface S for 217.3,480.0,m^2,,,scale_frm_S_9_71886e_06,0 +22,frm_vsl_M,Reactor Vessel + Accessory Vessel mass for 221.1,352000.0,kg,,,scale_frm_vsl_M,0 +23,fuel_stor_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 217.142,18900.0,m^3,,,scale_fuel_stor_bldg_bldg_vol,0 +24,fuel_stor_bldg_sub_S,Roofing & Flashing Substructure S for 217.145,700.0,m^2,,,scale_fuel_stor_bldg_sub_S,0 +25,fuel_stor_bldg_sub_vol,Substructure Concrete Substructure volume for 217.13,420.0,m^3,,,scale_fuel_stor_bldg_sub_vol,0 +26,fuel_stor_bldg_sup_S,Painting Superstructure S for 217.149,2862.0,m^2,,,scale_fuel_stor_bldg_sup_S,0 +27,fuel_stor_bldg_sup_vol,Concrete Work Superstructure volume for 217.141,858.6,m^3,,,scale_fuel_stor_bldg_sup_vol,0 +28,mc_piping_M,Reactor Coolant Piping System MC piping mass for 222.12,77000.0,kg,,,scale_mc_piping_M,0 +29,non_ess_swgr_bldg_bldg_vol,Building volume for 219.142,0.0,m^3,,,scale_non_ess_swgr_bldg_bldg_vol,0 +30,n_crs,Reactor Control Devices Number of CRs for 221.2,69.0,,,,scale_n_crs,0 +31,pri_aux_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 215.142,13357.0,m^3,,,scale_pri_aux_bldg_bldg_vol,0 +32,pri_aux_bldg_sub_S,Roofing & Flashing Substructure S for 215.145,703.0,m^2,,,scale_pri_aux_bldg_sub_S,0 +33,pri_aux_bldg_sub_vol,Substructure Concrete Substructure volume for 215.13,843.6,m^3,,,scale_pri_aux_bldg_sub_vol,0 +34,pri_aux_bldg_sup_S,Painting Superstructure S for 215.149,2128.0,m^2,,,scale_pri_aux_bldg_sup_S,0 +35,pri_aux_bldg_sup_vol,Concrete Work Superstructure volume for 215.141,1276.8,m^3,,,scale_pri_aux_bldg_sup_vol,0 +36,pri_flow,Liquid Waste System Primary flowrate for 224.1,19880.0,kg/s,,,scale_pri_flow,0 +37,rx_D,Vessel Internals Reactor diameter (m) for 221.3,4.5,m,,,scale_rx_D,0 +38,rej_th_P,Rejected thermal power for 261.1,4566.0,MWt,calc_rej_th_P,"rx_P, elec_P",scale_rej_th_P,0 +39,rx_P,"Input unit value for Plant power scale, source account 212.22; also used for new_base_rx_P; also used for new_base_yardwork_rx_P",6800.0,MWt,,,"rej_th_P, scale_P",0 +40,sfp_V,"Fuel Storage, Cleaning, & Inspection Equipment SFP volume for 225.4",750.0,m^3,,,scale_sfp_V,0 +41,sub_str_S,Roof Deck Substructure S for 213.144,4136.0,m^2,,,scale_sub_str_S,0 +42,sub_str_V,Substructure Concrete Substructure volume for 212.13,4603.155803819373,m^3,,,scale_sub_str_V,0 +43,sup_const,Interior Concrete Building volume for 212.140,92728.01635916138,m^3,,,scale_sup_const,0 +44,sup_str_S,Calculated containment superstructure S for cylinder with dome: pi*D^2/2 + pi*D*H,9414.59920057175,m^2,cal_sup_str_S,"cont_D_D, cont_H_H","scale_sup_str_S, scale_sup_str_V",0 +45,turb_gen_bldg_sub_vol,Substructure Concrete Substructure volume for 213.13,1240.8,m^3,,,scale_turb_gen_bldg_sub_vol,0 +46,turb_gen_bldg_sup_S,Exterior Walls Superstructure S for 213.143,12690.0,m^2,,,scale_turb_gen_bldg_sup_S,0 +47,turb_gen_bldg_sup_vol,Concrete Work Superstructure volume for 213.141,3807.0,m^3,,,scale_turb_gen_bldg_sup_vol,0 +48,uc_frm_flow,"Unit-cost coefficient for Flow rate scale, source account 222.11",9054.0,kg/s,,,scale_frm_flow,0 +49,uc_frm_fuel_cap,Unit cost coefficient for fuel cask and crane capacity direct formula scale,411796.0,$/tonne,,,"scale_frm_fuel_cask_cap, scale_frm_fuel_crane_cap",0 +50,uc_frm_ht_S,"Unit-cost coefficient for HT surface S scale, source account 222.13",31688.0,m^2,,,scale_frm_ht_S,0 +51,uc_frm_prz_M,"Unit-cost coefficient for Pressurizer mass scale, source account 222.14",13128.0,kg,,,scale_frm_prz_M,0 +52,uc_frm_S,"Unit-cost coefficient for Surface S scale, source account 212.3",17866.0,m^2,,,scale_frm_S,0 +53,uc_frm_S_9_71886e_06,"Unit-cost coefficient for Surface S scale, source account 217.3",17866.0,m^2,,,scale_frm_S_9_71886e_06,0 +54,uc_frm_vsl_M,"Unit-cost coefficient for Vessel mass scale, source account 221.1",13128.0,kg,,,scale_frm_vsl_M,0 +55,V_of_212_213_215_216_217,"Fill & Backfill (Place/Comp) Volume of 212, 213, 215, 216, 217 for 211.712",336225.0163591613,m^3,,,scale_V_of_212_213_215_216_217,0 +56,waste_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 216.142,16848.0,m^3,,,scale_waste_bldg_bldg_vol,0 +57,waste_bldg_sub_S,Roof Deck Substructure S for 216.144,1296.0,m^2,,,scale_waste_bldg_sub_S,0 +58,waste_bldg_sub_vol,Substructure Concrete Substructure volume for 216.13,1555.2,m^3,,,scale_waste_bldg_sub_vol,0 +59,waste_bldg_sup_S,Exterior Walls Superstructure S for 216.143,2028.0,m^2,,,scale_waste_bldg_sup_S,0 +60,waste_bldg_sup_vol,Concrete Work Superstructure volume for 216.141,1216.8,m^3,,,scale_waste_bldg_sup_vol,0 +61,wwt_bldg_bldg_vol,Building volume for 219.142,0.0,m^3,,,scale_wwt_bldg_bldg_vol,0 +62,adj_212_14112_lab,Adjustment factor for 212.14112_lab,0.1686319183939024,1,,,ce_212_14112_lab,0 +63,adj_212_14122_lab,Adjustment factor for 212.14122_lab,0.4545732208217065,1,,,ce_212_14122_lab,0 +64,adj_cont_mat_1_48,"Adjustment factor for 212.14112_mat, 212.14122_mat",1.48,1,,,"ce_212_14112_mat, ce_212_14122_mat",0 +65,adj_half,"Adjustment factor for 222.132_fac, 222.132_lab, 222.132_mat, 222.139_fac, 222.139_lab, 222.139_mat",0.5,1,,,"ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab",0 +66,adj_none,"Adjustment factor for 212.14111_lab, 212.14111_mat, 212.14117_lab, 212.14117_mat, 212.14121_lab, 212.14121_mat, 212.14127_lab, 212.14127_mat",0.0,1,,,"ce_212_14111_mat, ce_212_14111_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14127_mat, ce_212_14127_lab",0 +67,adj_rx_aux_0_25,"Adjustment factor for 222.111_fac, 222.111_lab, 222.111_mat, 222.119_fac, 222.119_lab, 222.119_mat",0.2499999999999999,1,,,"ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab",0 +68,count_222_11,Count per plant for 222.11,4.0,1,,,"ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab",0 +69,count_222_13,Count per plant for 222.13,2.0,1,,,"ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab",0 +70,exp_lin,Linear scaling exponent used by unit-cost/geometry scale laws where exponent = 1,1.0,1,,,"scale_adm_bldg_bldg_vol, scale_S, scale_bldg_V, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_cr_dg_bldg_bldg_vol, scale_cr_dg_bldg_sub_S, scale_cr_dg_bldg_sub_vol, scale_cr_dg_bldg_sup_S, scale_cr_dg_bldg_sup_vol, scale_elec_tunnel_bldg_vol, scale_fuel_stor_bldg_bldg_vol, scale_fuel_stor_bldg_sub_S, scale_fuel_stor_bldg_sub_vol, scale_fuel_stor_bldg_sup_S, scale_fuel_stor_bldg_sup_vol, scale_mc_piping_M, scale_non_ess_swgr_bldg_bldg_vol, scale_n_crs, scale_pri_aux_bldg_bldg_vol, scale_pri_aux_bldg_sub_S, scale_pri_aux_bldg_sub_vol, scale_pri_aux_bldg_sup_S, scale_pri_aux_bldg_sup_vol, scale_sub_str_S, scale_sub_str_V, scale_sup_const, scale_sup_str_S, scale_sup_str_V, scale_turb_gen_bldg_sub_vol, scale_turb_gen_bldg_sup_S, scale_turb_gen_bldg_sup_vol, scale_V_of_212_213_215_216_217, scale_waste_bldg_bldg_vol, scale_waste_bldg_sub_S, scale_waste_bldg_sub_vol, scale_waste_bldg_sup_S, scale_waste_bldg_sup_vol, scale_wwt_bldg_bldg_vol",0 +71,exp_elec_P,"Exponent for Electric power scale, source account 231.",0.8,1,,,scale_elec_P,0 +72,exp_P,"Exponent for Plant power scale, source account 212.22; also used for exp_rej_th_P; also used for exp_rx_P; also used for exp_yardwork_rx_P",0.8,1,,,"scale_P, scale_rej_th_P",0 +73,exp_pri_flow,"Exponent for Primary flowrate scale, source account 224.1",0.75,1,,,scale_pri_flow,0 +74,exp_rx_D,"Exponent for Reactor diameter (m) scale, source account 221.3",2.0,1,,,scale_rx_D,0 +75,exp_sfp_V,"Exponent for SFP volume scale, source account 225.4",0.75,1,,,scale_sfp_V,0 +76,exp_tur_plant_equip_elec_P,"Exponent for Electric power scale, source account 241.",0.6,1,,,scale_tur_plant_equip_elec_P,0 +77,f_elec_P_ctrl_wir,Passive safety factor: [Electrical] A.246 Power & Control Wiring,0.6050901652907004,1,,,,0 +78,f_elec_prot,Passive safety factor: [Electrical] A.244 Protective Equipment,1.0099306954615697,1,,,,0 +79,f_elec_st_serv,Passive safety factor: [Electrical] A.242 Station Service Equipment,0.2678830011089926,1,,,,0 +80,f_elec_str_wir_cont,Passive safety factor: [Electrical] A.245 Electrical Structures & Wiring Container,0.5783708145703973,1,,,,0 +81,f_elec_switchboards,Passive safety factor: [Electrical] A.243 Switchboards,0.9062342772269472,1,,,,0 +82,f_elec_swgr,Passive safety factor: [Electrical] A.241 Switchgear,0.548339438854262,1,,,,0 +83,f_simp_fuel_hndl,Design simplifications factor: [Simple] A.225 Fuel Handling & Storage,0.52,1,,,"ce_225_111_fac, ce_225_111_mat, ce_225_111_lab, ce_225_112_fac, ce_225_112_mat, ce_225_112_lab, ce_225_113_fac, ce_225_113_mat, ce_225_113_lab, ce_225_114_fac, ce_225_114_mat, ce_225_114_lab",0 +84,f_simp_other_rx_equip,Design simplifications factor: [Simple] A.226 Other Reactor Equipment,0.5,1,,,,0 +85,f_simp_radw,Design simplifications factor: [Simple] A.224 Radwaste Processing,0.76,1,,,,0 +86,f_simp_sfgd,Design simplifications factor: [Simple] A.223 Safeguards system,0.71,1,,,,0 +87,f_ss_cont_fac,Standalone steel containment factor: 212.15 Factory cost mult,3.25,1,,,,0 +88,f_ss_cont_lab,Standalone steel containment factor: 212.15 Labor cost mult,4.56,1,,,,0 +89,f_ss_cont_mat,Standalone steel containment factor: 212.15 Material cost mult,28.98,1,,,,0 +90,lrn_222_11_fac,Factory learning factor for 222.11 grouped accounts,0.996281,1,,,"ce_222_111_fac, ce_222_119_fac",0 +91,lrn_222_11_lab,Labor learning factor for 222.11 grouped accounts,0.856159,1,,,"ce_222_111_lab, ce_222_119_lab",0 +92,lrn_222_11_mat,Material learning factor for 222.11 grouped accounts,0.920467,1,,,"ce_222_111_mat, ce_222_119_mat",0 +93,lrn_222_13_fac,Factory learning factor for 222.13 grouped accounts,0.99875,1,,,"ce_222_132_fac, ce_222_139_fac",0 +94,lrn_222_13_lab,Labor learning factor for 222.13 grouped accounts,0.9345,1,,,"ce_222_132_lab, ce_222_139_lab",0 +95,lrn_222_13_mat,Material learning factor for 222.13 grouped accounts,0.9645,1,,,"ce_222_132_mat, ce_222_139_mat",0 +96,ref_211_1_fac,Reference factory equipment cost for 211.1,627151.8,$,,,,0 +97,ref_211_1_lab,Reference site labor cost for 211.1,10886491.93,$,,,,0 +98,ref_211_1_mat,Reference site material cost for 211.1,8218524.721,$,,,,0 +99,ref_211_4_lab,Reference site labor cost for 211.4,4995516.913,$,,,,0 +100,ref_211_4_mat,Reference site material cost for 211.4,3721250.597,$,,,,0 +101,ref_211_711_lab,Aggregated reference lab cost for 211.711,15125864.0,$,,,ce_211_711_lab,0 +102,ref_211_711_mat,Aggregated reference mat cost for 211.711,4440332.0,$,,,ce_211_711_mat,0 +103,ref_211_712_fac,Reference factory equipment cost for 211.712,245650.0,$,,,ce_211_712_fac,0 +104,ref_211_712_lab,Reference site labor cost for 211.712,15646213.59,$,,,ce_211_712_lab,0 +105,ref_211_712_mat,Reference site material cost for 211.712,13402579.35,$,,,ce_211_712_mat,0 +106,ref_212_13_lab,Aggregated reference lab cost for 212.13,11129822.1873,$,,,,0 +107,ref_212_13_mat,Aggregated reference mat cost for 212.13,8063843.09228,$,,,,0 +108,ref_212_140_fac,Aggregated reference fac cost for 212.140,3367569.015,$,,,ce_212_140_fac,0 +109,ref_212_140_lab,Aggregated reference lab cost for 212.140,45289162.7362,$,,,ce_212_140_lab,0 +110,ref_212_140_mat,Aggregated reference mat cost for 212.140,13223212.03753,$,,,ce_212_140_mat,0 +111,ref_212_14111_lab,Reference site labor cost for 212.14111,6302007.272,$,,,ce_212_14111_lab,0 +112,ref_212_14111_mat,Reference site material cost for 212.14111,524742.3561,$,,,ce_212_14111_mat,0 +113,ref_212_14112_lab,Reference site labor cost for 212.14112,11084965.36,$,,,ce_212_14112_lab,0 +114,ref_212_14112_mat,Reference site material cost for 212.14112,6765223.382,$,,,ce_212_14112_mat,0 +115,ref_212_14113_lab,Reference site labor cost for 212.14113,3211170.735,$,,,ce_212_14113_lab,0 +116,ref_212_14113_mat,Reference site material cost for 212.14113,1638426.483,$,,,ce_212_14113_mat,0 +117,ref_212_14114_lab,Reference site labor cost for 212.14114,543039.3004,$,,,ce_212_14114_lab,0 +118,ref_212_14114_mat,Reference site material cost for 212.14114,197744.5645,$,,,ce_212_14114_mat,0 +119,ref_212_14115_lab,Reference site labor cost for 212.14115,445996.7844,$,,,ce_212_14115_lab,0 +120,ref_212_14115_mat,Reference site material cost for 212.14115,26315.43756,$,,,ce_212_14115_mat,0 +121,ref_212_14116_lab,Reference site labor cost for 212.14116,45146.76643,$,,,ce_212_14116_lab,0 +122,ref_212_14116_mat,Reference site material cost for 212.14116,17199.01812,$,,,ce_212_14116_mat,0 +123,ref_212_14117_lab,Reference site labor cost for 212.14117,3895733.578,$,,,ce_212_14117_lab,0 +124,ref_212_14117_mat,Reference site material cost for 212.14117,1567178.29,$,,,ce_212_14117_mat,0 +125,ref_212_14118_lab,Reference site labor cost for 212.14118,713911.3336,$,,,ce_212_14118_lab,0 +126,ref_212_14118_mat,Reference site material cost for 212.14118,293260.4893,$,,,ce_212_14118_mat,0 +127,ref_212_14121_lab,Reference site labor cost for 212.14121,1742460.39,$,,,ce_212_14121_lab,0 +128,ref_212_14121_mat,Reference site material cost for 212.14121,152723.5216,$,,,ce_212_14121_mat,0 +129,ref_212_14122_lab,Reference site labor cost for 212.14122,4112162.548,$,,,ce_212_14122_lab,0 +130,ref_212_14122_mat,Reference site material cost for 212.14122,2509679.642,$,,,ce_212_14122_mat,0 +131,ref_212_14123_lab,Reference site labor cost for 212.14123,1154019.463,$,,,ce_212_14123_lab,0 +132,ref_212_14123_mat,Reference site material cost for 212.14123,588811.3045,$,,,ce_212_14123_mat,0 +133,ref_212_14125_lab,Reference site labor cost for 212.14125,159284.254,$,,,ce_212_14125_lab,0 +134,ref_212_14125_mat,Reference site material cost for 212.14125,9398.370557,$,,,ce_212_14125_mat,0 +135,ref_212_14127_lab,Reference site labor cost for 212.14127,3161753.91,$,,,ce_212_14127_lab,0 +136,ref_212_14127_mat,Reference site material cost for 212.14127,1271912.815,$,,,ce_212_14127_mat,0 +137,ref_212_14128_lab,Reference site labor cost for 212.14128,141092.5413,$,,,ce_212_14128_lab,0 +138,ref_212_14128_mat,Reference site material cost for 212.14128,57956.61844,$,,,ce_212_14128_mat,0 +139,ref_212_1419_lab,Reference site labor cost for 212.1419,796421.27,$,,,ce_212_1419_lab,0 +140,ref_212_1419_mat,Reference site material cost for 212.1419,232647.2648,$,,,ce_212_1419_mat,0 +141,ref_212_142_lab,Aggregated reference lab cost for 212.142,2909128.75293,$,,,ce_212_142_lab,0 +142,ref_212_142_mat,Aggregated reference mat cost for 212.142,3818022.67745,$,,,ce_212_142_mat,0 +143,ref_212_149_lab,Reference site labor cost for 212.149,12549840.5,$,,,ce_212_149_lab,0 +144,ref_212_149_mat,Reference site material cost for 212.149,2458081.163,$,,,ce_212_149_mat,0 +145,ref_212_15_fac,Reference factory equipment cost for 212.15,26940552.12,$,,,,0 +146,ref_212_15_lab,Reference site labor cost for 212.15,32653359.39,$,,,,0 +147,ref_212_15_mat,Reference site material cost for 212.15,1254917.429,$,,,,0 +148,ref_212_21_fac,Aggregated reference fac cost for 212.21,150540.9459,$,,,,0 +149,ref_212_21_lab,Aggregated reference lab cost for 212.21,1048615.7536,$,,,,0 +150,ref_212_21_mat,Aggregated reference mat cost for 212.21,205092.46699,$,,,,0 +151,ref_212_22_fac,Aggregated reference fac cost for 212.22,241104.968599,$,,,,0 +152,ref_212_22_lab,Aggregated reference lab cost for 212.22,67726.426102,$,,,,0 +153,ref_212_22_mat,Aggregated reference mat cost for 212.22,7237.3718877,$,,,,0 +154,ref_212_23_fac,Aggregated reference fac cost for 212.23,1058293.9284,$,,,,0 +155,ref_212_23_lab,Aggregated reference lab cost for 212.23,3960991.54051,$,,,,0 +156,ref_212_23_mat,Aggregated reference mat cost for 212.23,898681.3347659999,$,,,,0 +157,ref_212_24_lab,Reference site labor cost for 212.24,3463484.69,$,,,,0 +158,ref_212_24_mat,Reference site material cost for 212.24,1345201.309,$,,,,0 +159,ref_212_25_fac,Reference factory equipment cost for 212.25,198384.6399,$,,,,0 +160,ref_212_25_lab,Reference site labor cost for 212.25,112115.1431,$,,,,0 +161,ref_212_25_mat,Reference site material cost for 212.25,9150.880133,$,,,,0 +162,ref_212_3_lab,Reference site labor cost for 212.3,0.316078208,$,,,,0 +163,ref_212_3_mat,Reference site material cost for 212.3,0.683921792,$,,,,0 +164,ref_213_13_lab,Aggregated reference lab cost for 213.13,14910944.50129,$,,,,0 +165,ref_213_13_mat,Aggregated reference mat cost for 213.13,6302087.867887,$,,,,0 +166,ref_213_141_lab,Aggregated reference lab cost for 213.141,1639765.2804,$,,,ce_213_141_lab,0 +167,ref_213_141_mat,Aggregated reference mat cost for 213.141,635828.117868,$,,,ce_213_141_mat,0 +168,ref_213_142_lab,Aggregated reference lab cost for 213.142,15453101.32427,$,,,ce_213_142_lab,0 +169,ref_213_142_mat,Aggregated reference mat cost for 213.142,24471194.7413,$,,,ce_213_142_mat,0 +170,ref_213_143_lab,Aggregated reference lab cost for 213.143,2115226.0423,$,,,ce_213_143_lab,0 +171,ref_213_143_mat,Aggregated reference mat cost for 213.143,2442554.0654,$,,,ce_213_143_mat,0 +172,ref_213_144_lab,Aggregated reference lab cost for 213.144,892268.4508999999,$,,,ce_213_144_lab,0 +173,ref_213_144_mat,Aggregated reference mat cost for 213.144,925648.43823,$,,,ce_213_144_mat,0 +174,ref_213_145_lab,Aggregated reference lab cost for 213.145,472841.2125,$,,,ce_213_145_lab,0 +175,ref_213_145_mat,Aggregated reference mat cost for 213.145,438974.2566,$,,,ce_213_145_mat,0 +176,ref_213_146_lab,Aggregated reference lab cost for 213.146,444065.4916,$,,,ce_213_146_lab,0 +177,ref_213_146_mat,Aggregated reference mat cost for 213.146,284016.34398,$,,,ce_213_146_mat,0 +178,ref_213_147_lab,Aggregated reference lab cost for 213.147,643802.58411,$,,,ce_213_147_lab,0 +179,ref_213_147_mat,Aggregated reference mat cost for 213.147,985426.29479,$,,,ce_213_147_mat,0 +180,ref_213_149_lab,Reference site labor cost for 213.149,2200909.113,$,,,ce_213_149_lab,0 +181,ref_213_149_mat,Reference site material cost for 213.149,126843.2998,$,,,ce_213_149_mat,0 +182,ref_213_21_fac,Aggregated reference fac cost for 213.21,26947.48846,$,,,,0 +183,ref_213_21_lab,Aggregated reference lab cost for 213.21,3854846.85311,$,,,,0 +184,ref_213_21_mat,Aggregated reference mat cost for 213.21,945580.448013,$,,,,0 +185,ref_213_22_fac,Aggregated reference fac cost for 213.22,1201173.23833,$,,,,0 +186,ref_213_22_lab,Aggregated reference lab cost for 213.22,1721625.6382600002,$,,,,0 +187,ref_213_22_mat,Aggregated reference mat cost for 213.22,285222.9706872,$,,,,0 +188,ref_213_24_lab,Reference site labor cost for 213.24,1445761.913,$,,,,0 +189,ref_213_24_mat,Reference site material cost for 213.24,579979.5412,$,,,,0 +190,ref_213_25_fac,Aggregated reference fac cost for 213.25,227987.5151,$,,,,0 +191,ref_213_25_lab,Aggregated reference lab cost for 213.25,98331.51715,$,,,,0 +192,ref_213_25_mat,Aggregated reference mat cost for 213.25,9377.073373,$,,,,0 +193,ref_214_fac,Aggregated reference fac cost for 214,171454.8001,$,,,,0 +194,ref_214_lab,Aggregated reference lab cost for 214,3253960.2307,$,,,,0 +195,ref_214_mat,Aggregated reference mat cost for 214,1107592.1165,$,,,,0 +196,ref_215_13_lab,Aggregated reference lab cost for 215.13,1486017.87709,$,,,,0 +197,ref_215_13_mat,Aggregated reference mat cost for 215.13,1063359.167139,$,,,,0 +198,ref_215_141_lab,Aggregated reference lab cost for 215.141,27007537.62763,$,,,ce_215_141_lab,0 +199,ref_215_141_mat,Aggregated reference mat cost for 215.141,8497619.987044,$,,,ce_215_141_mat,0 +200,ref_215_142_lab,Aggregated reference lab cost for 215.142,1853103.9549,$,,,ce_215_142_lab,0 +201,ref_215_142_mat,Aggregated reference mat cost for 215.142,2944695.17141,$,,,ce_215_142_mat,0 +202,ref_215_145_lab,Aggregated reference lab cost for 215.145,76768.47522,$,,,ce_215_145_lab,0 +203,ref_215_145_mat,Aggregated reference mat cost for 215.145,71195.84809,$,,,ce_215_145_mat,0 +204,ref_215_146_lab,Aggregated reference lab cost for 215.146,239093.8907,$,,,ce_215_146_lab,0 +205,ref_215_146_mat,Aggregated reference mat cost for 215.146,218695.0725,$,,,ce_215_146_mat,0 +206,ref_215_147_lab,Aggregated reference lab cost for 215.147,81713.87408400001,$,,,ce_215_147_lab,0 +207,ref_215_147_mat,Aggregated reference mat cost for 215.147,88183.79654499999,$,,,ce_215_147_mat,0 +208,ref_215_149_lab,Reference site labor cost for 215.149,681097.8721,$,,,ce_215_149_lab,0 +209,ref_215_149_mat,Reference site material cost for 215.149,143973.4822,$,,,ce_215_149_mat,0 +210,ref_215_21_fac,Aggregated reference fac cost for 215.21,7810.607011,$,,,,0 +211,ref_215_21_lab,Aggregated reference lab cost for 215.21,1525771.05875,$,,,,0 +212,ref_215_21_mat,Aggregated reference mat cost for 215.21,359094.32621,$,,,,0 +213,ref_215_221_fac,Reference factory equipment cost for 215.221,2531710.025,$,,,ce_215_221_fac,0 +214,ref_215_221_lab,Reference site labor cost for 215.221,336370.6056,$,,,ce_215_221_lab,0 +215,ref_215_221_mat,Reference site material cost for 215.221,28979.80565,$,,,ce_215_221_mat,0 +216,ref_215_222_fac,Reference factory equipment cost for 215.222,1936413.245,$,,,ce_215_222_fac,0 +217,ref_215_222_lab,Reference site labor cost for 215.222,330613.6164,$,,,ce_215_222_lab,0 +218,ref_215_222_mat,Reference site material cost for 215.222,28475.24377,$,,,ce_215_222_mat,0 +219,ref_215_223_fac,Reference factory equipment cost for 215.223,39410.05189,$,,,ce_215_223_fac,0 +220,ref_215_223_lab,Reference site labor cost for 215.223,30190.24938,$,,,ce_215_223_lab,0 +221,ref_215_223_mat,Reference site material cost for 215.223,2535.191287,$,,,ce_215_223_mat,0 +222,ref_215_224_fac,Reference factory equipment cost for 215.224,469880.2213,$,,,ce_215_224_fac,0 +223,ref_215_224_lab,Reference site labor cost for 215.224,91838.71282,$,,,ce_215_224_lab,0 +224,ref_215_224_mat,Reference site material cost for 215.224,7912.025553,$,,,ce_215_224_mat,0 +225,ref_215_225_fac,Reference factory equipment cost for 215.225,563080.5444,$,,,ce_215_225_fac,0 +226,ref_215_225_lab,Reference site labor cost for 215.225,5046207.644,$,,,ce_215_225_lab,0 +227,ref_215_225_mat,Reference site material cost for 215.225,1111705.045,$,,,ce_215_225_mat,0 +228,ref_215_226_fac,Reference factory equipment cost for 215.226,278882.4965,$,,,ce_215_226_fac,0 +229,ref_215_226_lab,Reference site labor cost for 215.226,109065.2075,$,,,ce_215_226_lab,0 +230,ref_215_226_mat,Reference site material cost for 215.226,9251.182873,$,,,ce_215_226_mat,0 +231,ref_215_227_fac,Reference factory equipment cost for 215.227,216644.9347,$,,,ce_215_227_fac,0 +232,ref_215_228_fac,Reference factory equipment cost for 215.228,27640.01302,$,,,ce_215_228_fac,0 +233,ref_215_228_lab,Reference site labor cost for 215.228,17549.12426,$,,,ce_215_228_lab,0 +234,ref_215_228_mat,Reference site material cost for 215.228,1492.017338,$,,,ce_215_228_mat,0 +235,ref_215_23_fac,Aggregated reference fac cost for 215.23,884219.7209,$,,,,0 +236,ref_215_23_lab,Aggregated reference lab cost for 215.23,385833.83039,$,,,,0 +237,ref_215_23_mat,Aggregated reference mat cost for 215.23,33063.408132,$,,,,0 +238,ref_215_24_lab,Reference site labor cost for 215.24,1326729.092,$,,,,0 +239,ref_215_24_mat,Reference site material cost for 215.24,465212.2443,$,,,,0 +240,ref_215_25_fac,Reference factory equipment cost for 215.25,319933.1507,$,,,,0 +241,ref_215_25_lab,Reference site labor cost for 215.25,156591.6954,$,,,,0 +242,ref_215_25_mat,Reference site material cost for 215.25,14127.73264,$,,,,0 +243,ref_216_13_lab,Aggregated reference lab cost for 216.13,3214628.4545400003,$,,,,0 +244,ref_216_13_mat,Aggregated reference mat cost for 216.13,2101391.698654,$,,,,0 +245,ref_216_141_lab,Aggregated reference lab cost for 216.141,24018213.09312,$,,,ce_216_141_lab,0 +246,ref_216_141_mat,Aggregated reference mat cost for 216.141,7145811.159576,$,,,ce_216_141_mat,0 +247,ref_216_142_lab,Aggregated reference lab cost for 216.142,2119078.08444,$,,,ce_216_142_lab,0 +248,ref_216_142_mat,Aggregated reference mat cost for 216.142,3438706.40915,$,,,ce_216_142_mat,0 +249,ref_216_143_lab,Aggregated reference lab cost for 216.143,486639.2798,$,,,ce_216_143_lab,0 +250,ref_216_143_mat,Aggregated reference mat cost for 216.143,585894.164,$,,,ce_216_143_mat,0 +251,ref_216_144_lab,Aggregated reference lab cost for 216.144,307576.92005,$,,,ce_216_144_lab,0 +252,ref_216_144_mat,Aggregated reference mat cost for 216.144,294801.07175,$,,,ce_216_144_mat,0 +253,ref_216_145_lab,Aggregated reference lab cost for 216.145,147358.83791,$,,,ce_216_145_lab,0 +254,ref_216_145_mat,Aggregated reference mat cost for 216.145,128467.43138,$,,,ce_216_145_mat,0 +255,ref_216_146_lab,Aggregated reference lab cost for 216.146,4599.644948,$,,,ce_216_146_lab,0 +256,ref_216_146_mat,Aggregated reference mat cost for 216.146,4245.149031,$,,,ce_216_146_mat,0 +257,ref_216_147_lab,Aggregated reference lab cost for 216.147,66380.321837,$,,,ce_216_147_lab,0 +258,ref_216_147_mat,Aggregated reference mat cost for 216.147,75023.07197,$,,,ce_216_147_mat,0 +259,ref_216_148_lab,Aggregated reference lab cost for 216.148,10525.09202,$,,,ce_216_148_lab,0 +260,ref_216_148_mat,Aggregated reference mat cost for 216.148,585.0991923,$,,,ce_216_148_mat,0 +261,ref_216_149_lab,Reference site labor cost for 216.149,558657.9279,$,,,ce_216_149_lab,0 +262,ref_216_149_mat,Reference site material cost for 216.149,92591.94718,$,,,ce_216_149_mat,0 +263,ref_216_21_lab,Aggregated reference lab cost for 216.21,1275085.66255,$,,,,0 +264,ref_216_21_mat,Aggregated reference mat cost for 216.21,252355.59431,$,,,,0 +265,ref_216_22_fac,Aggregated reference fac cost for 216.22,1134425.198653,$,,,,0 +266,ref_216_22_lab,Aggregated reference lab cost for 216.22,2551554.280197,$,,,,0 +267,ref_216_22_mat,Aggregated reference mat cost for 216.22,674600.376062,$,,,,0 +268,ref_216_24_lab,Reference site labor cost for 216.24,900566.6295,$,,,,0 +269,ref_216_24_mat,Reference site material cost for 216.24,341357.6804,$,,,,0 +270,ref_216_25_fac,Aggregated reference fac cost for 216.25,356469.3827,$,,,,0 +271,ref_216_25_lab,Aggregated reference lab cost for 216.25,174564.4207,$,,,,0 +272,ref_216_25_mat,Aggregated reference mat cost for 216.25,16775.69577,$,,,,0 +273,ref_217_13_lab,Aggregated reference lab cost for 217.13,1232836.386079,$,,,,0 +274,ref_217_13_mat,Aggregated reference mat cost for 217.13,627561.8008828,$,,,,0 +275,ref_217_141_lab,Aggregated reference lab cost for 217.141,9200530.16508,$,,,ce_217_141_lab,0 +276,ref_217_141_mat,Aggregated reference mat cost for 217.141,2452036.602684,$,,,ce_217_141_mat,0 +277,ref_217_142_lab,Aggregated reference lab cost for 217.142,633635.00593,$,,,ce_217_142_lab,0 +278,ref_217_142_mat,Aggregated reference mat cost for 217.142,893582.71994,$,,,ce_217_142_mat,0 +279,ref_217_145_lab,Aggregated reference lab cost for 217.145,57111.30589,$,,,ce_217_145_lab,0 +280,ref_217_145_mat,Aggregated reference mat cost for 217.145,46465.14193,$,,,ce_217_145_mat,0 +281,ref_217_147_lab,Aggregated reference lab cost for 217.147,24768.323956,$,,,ce_217_147_lab,0 +282,ref_217_147_mat,Aggregated reference mat cost for 217.147,32682.194583,$,,,ce_217_147_mat,0 +283,ref_217_149_lab,Reference site labor cost for 217.149,142759.9868,$,,,ce_217_149_lab,0 +284,ref_217_149_mat,Reference site material cost for 217.149,18023.85423,$,,,ce_217_149_mat,0 +285,ref_217_21_fac,Aggregated reference fac cost for 217.21,7511.892017,$,,,,0 +286,ref_217_21_lab,Aggregated reference lab cost for 217.21,352553.670738,$,,,,0 +287,ref_217_21_mat,Aggregated reference mat cost for 217.21,150303.6021081,$,,,,0 +288,ref_217_22_fac,Aggregated reference fac cost for 217.22,193909.35968,$,,,,0 +289,ref_217_22_lab,Aggregated reference lab cost for 217.22,1238929.99335,$,,,,0 +290,ref_217_22_mat,Aggregated reference mat cost for 217.22,277171.759642,$,,,,0 +291,ref_217_23_fac,Aggregated reference fac cost for 217.23,2014572.9974,$,,,,0 +292,ref_217_23_lab,Aggregated reference lab cost for 217.23,140460.02199,$,,,,0 +293,ref_217_23_mat,Aggregated reference mat cost for 217.23,10611.438864,$,,,,0 +294,ref_217_24_lab,Reference site labor cost for 217.24,292416.1971,$,,,,0 +295,ref_217_24_mat,Reference site material cost for 217.24,110230.206,$,,,,0 +296,ref_217_3_lab,Reference site labor cost for 217.3,3071920.9,$,,,,0 +297,ref_217_3_mat,Reference site material cost for 217.3,6646942.405,$,,,,0 +298,ref_218A_13_lab,Aggregated reference lab cost for 218A.13,1340415.61944,$,,,ce_218A_13_lab,0 +299,ref_218A_13_mat,Aggregated reference mat cost for 218A.13,770875.072923,$,,,ce_218A_13_mat,0 +300,ref_218A_141_lab,Aggregated reference lab cost for 218A.141,28840436.40199,$,,,ce_218A_141_lab,0 +301,ref_218A_141_mat,Aggregated reference mat cost for 218A.141,8429857.722799,$,,,ce_218A_141_mat,0 +302,ref_218A_142_lab,Aggregated reference lab cost for 218A.142,3003877.75743,$,,,ce_218A_142_lab,0 +303,ref_218A_142_mat,Aggregated reference mat cost for 218A.142,4757094.74969,$,,,ce_218A_142_mat,0 +304,ref_218A_145_lab,Aggregated reference lab cost for 218A.145,152808.8951,$,,,ce_218A_145_lab,0 +305,ref_218A_145_mat,Aggregated reference mat cost for 218A.145,136116.6424,$,,,ce_218A_145_mat,0 +306,ref_218A_146_lab,Aggregated reference lab cost for 218A.146,2477305.33398,$,,,ce_218A_146_lab,0 +307,ref_218A_146_mat,Aggregated reference mat cost for 218A.146,1820301.470124,$,,,ce_218A_146_mat,0 +308,ref_218A_147_lab,Aggregated reference lab cost for 218A.147,95330.97808,$,,,ce_218A_147_lab,0 +309,ref_218A_147_mat,Aggregated reference mat cost for 218A.147,96193.631163,$,,,ce_218A_147_mat,0 +310,ref_218A_148_lab,Aggregated reference lab cost for 218A.148,252960.648296,$,,,ce_218A_148_lab,0 +311,ref_218A_148_mat,Aggregated reference mat cost for 218A.148,121610.011216,$,,,ce_218A_148_mat,0 +312,ref_218A_149_lab,Reference site labor cost for 218A.149,628859.4648,$,,,ce_218A_149_lab,0 +313,ref_218A_149_mat,Reference site material cost for 218A.149,76797.00963,$,,,ce_218A_149_mat,0 +314,ref_218A_21_lab,Aggregated reference lab cost for 218A.21,2360426.5826000003,$,,,ce_218A_21_lab,0 +315,ref_218A_21_mat,Aggregated reference mat cost for 218A.21,658362.32472,$,,,ce_218A_21_mat,0 +316,ref_218A_231_fac,Reference factory equipment cost for 218A.231,926649.8252,$,,,ce_218A_231_fac,0 +317,ref_218A_231_lab,Reference site labor cost for 218A.231,114723.9584,$,,,ce_218A_231_lab,0 +318,ref_218A_231_mat,Reference site material cost for 218A.231,9480.524141,$,,,ce_218A_231_mat,0 +319,ref_218A_232_fac,Reference factory equipment cost for 218A.232,801211.4132,$,,,ce_218A_232_fac,0 +320,ref_218A_232_lab,Reference site labor cost for 218A.232,193144.9921,$,,,ce_218A_232_lab,0 +321,ref_218A_232_mat,Reference site material cost for 218A.232,15969.88507,$,,,ce_218A_232_mat,0 +322,ref_218A_233_fac,Reference factory equipment cost for 218A.233,3070.170928,$,,,ce_218A_233_fac,0 +323,ref_218A_233_lab,Reference site labor cost for 218A.233,8103.008536,$,,,ce_218A_233_lab,0 +324,ref_218A_233_mat,Reference site material cost for 218A.233,653.3598834,$,,,ce_218A_233_mat,0 +325,ref_218A_234_fac,Reference factory equipment cost for 218A.234,193498.1677,$,,,ce_218A_234_fac,0 +326,ref_218A_234_lab,Reference site labor cost for 218A.234,75100.20088,$,,,ce_218A_234_lab,0 +327,ref_218A_234_mat,Reference site material cost for 218A.234,6213.724724,$,,,ce_218A_234_mat,0 +328,ref_218A_235_fac,Reference factory equipment cost for 218A.235,1240903.304,$,,,ce_218A_235_fac,0 +329,ref_218A_235_lab,Reference site labor cost for 218A.235,7537476.269,$,,,ce_218A_235_lab,0 +330,ref_218A_235_mat,Reference site material cost for 218A.235,1213347.277,$,,,ce_218A_235_mat,0 +331,ref_218A_236_fac,Reference factory equipment cost for 218A.236,267144.7431,$,,,ce_218A_236_fac,0 +332,ref_218A_236_lab,Reference site labor cost for 218A.236,168717.358,$,,,ce_218A_236_lab,0 +333,ref_218A_236_mat,Reference site material cost for 218A.236,13831.86384,$,,,ce_218A_236_mat,0 +334,ref_218A_237_fac,Reference factory equipment cost for 218A.237,34666.4281,$,,,ce_218A_237_fac,0 +335,ref_218A_238_fac,Reference factory equipment cost for 218A.238,319916.9706,$,,,ce_218A_238_fac,0 +336,ref_218A_238_lab,Reference site labor cost for 218A.238,65280.56113,$,,,ce_218A_238_lab,0 +337,ref_218A_238_mat,Reference site material cost for 218A.238,2664.483275,$,,,ce_218A_238_mat,0 +338,ref_218A_24_lab,Reference site labor cost for 218A.24,2024660.407,$,,,ce_218A_24_lab,0 +339,ref_218A_24_mat,Reference site material cost for 218A.24,621004.9575,$,,,ce_218A_24_mat,0 +340,ref_218B_22_fac,Aggregated reference fac cost for 218B.22,1866506.932348,$,,,ce_218B_22_fac,0 +341,ref_218B_22_lab,Aggregated reference lab cost for 218B.22,3131658.99519,$,,,ce_218B_22_lab,0 +342,ref_218B_22_mat,Aggregated reference mat cost for 218B.22,457290.8982603,$,,,ce_218B_22_mat,0 +343,ref_218B_23_fac,Aggregated reference fac cost for 218B.23,23772.3181215,$,,,ce_218B_23_fac,0 +344,ref_218B_23_lab,Aggregated reference lab cost for 218B.23,23161.106682,$,,,ce_218B_23_lab,0 +345,ref_218B_23_mat,Aggregated reference mat cost for 218B.23,1732.6566528,$,,,ce_218B_23_mat,0 +346,ref_218B_24_lab,Reference site labor cost for 218B.24,970307.7957,$,,,ce_218B_24_lab,0 +347,ref_218B_24_mat,Reference site material cost for 218B.24,379587.355,$,,,ce_218B_24_mat,0 +348,ref_218B_25_fac,Reference factory equipment cost for 218B.25,88303.82096,$,,,ce_218B_25_fac,0 +349,ref_218B_25_lab,Reference site labor cost for 218B.25,45810.80044,$,,,ce_218B_25_lab,0 +350,ref_218B_25_mat,Reference site material cost for 218B.25,3586.127801,$,,,ce_218B_25_mat,0 +351,ref_218D_fac,Reference factory equipment cost for 218D,87852.60004,$,,,,0 +352,ref_218D_lab,Reference site labor cost for 218D,784039.4097,$,,,,0 +353,ref_218D_mat,Reference site material cost for 218D,353929.4,$,,,,0 +354,ref_218E_fac,Aggregated reference fac cost for 218E,49512.3482421,$,,,,0 +355,ref_218E_lab,Aggregated reference lab cost for 218E,95924.246122,$,,,,0 +356,ref_218E_mat,Aggregated reference mat cost for 218E,18264.7292811,$,,,,0 +357,ref_218F_lab,Reference site labor cost for 218F,1988491.89,$,,,,0 +358,ref_218F_mat,Reference site material cost for 218F,643590.2,$,,,,0 +359,ref_218G_fac,Reference factory equipment cost for 218G,24217.6,$,,,,0 +360,ref_218G_lab,Reference site labor cost for 218G,121782.08,$,,,,0 +361,ref_218G_mat,Reference site material cost for 218G,45674.19999,$,,,,0 +362,ref_218H_fac,Reference factory equipment cost for 218H,43003.39998,$,,,,0 +363,ref_218H_lab,Reference site labor cost for 218H,951888.6302,$,,,,0 +364,ref_218H_mat,Reference site material cost for 218H,633998.2,$,,,,0 +365,ref_218J_fac,Aggregated reference fac cost for 218J,77809.66993,$,,,,0 +366,ref_218J_lab,Aggregated reference lab cost for 218J,477499.37046,$,,,,0 +367,ref_218J_mat,Aggregated reference mat cost for 218J,52345.446996,$,,,,0 +368,ref_218K_lab,Reference site labor cost for 218K,643823.0399,$,,,,0 +369,ref_218K_mat,Reference site material cost for 218K,262017.8,$,,,,0 +370,ref_218L_fac,Reference factory equipment cost for 218L,137163.4,$,,,,0 +371,ref_218L_lab,Reference site labor cost for 218L,1478143.59,$,,,,0 +372,ref_218L_mat,Reference site material cost for 218L,667730.7999,$,,,,0 +373,ref_218P_lab,Reference site labor cost for 218P,439306.5601,$,,,,0 +374,ref_218P_mat,Reference site material cost for 218P,127124.8,$,,,,0 +375,ref_218S_fac,Reference factory equipment cost for 218S,18293.0,$,,,,0 +376,ref_218S_lab,Reference site labor cost for 218S,1325719.33,$,,,,0 +377,ref_218S_mat,Reference site material cost for 218S,668122.4,$,,,,0 +378,ref_218T_fac,Aggregated reference fac cost for 218T,94454.799961,$,,,,0 +379,ref_218T_lab,Aggregated reference lab cost for 218T,150357.879252,$,,,,0 +380,ref_218T_mat,Aggregated reference mat cost for 218T,34382.9686994,$,,,,0 +381,ref_218V_lab,Reference site labor cost for 218V,172589.34,$,,,,0 +382,ref_218V_mat,Reference site material cost for 218V,67568.60003,$,,,,0 +383,ref_221_1_fac,Aggregated reference fac cost for 221.1,54943623.46,$,,,,0 +384,ref_221_1_lab,Aggregated reference lab cost for 221.1,6959303.009000001,$,,,,0 +385,ref_221_1_mat,Aggregated reference mat cost for 221.1,13117014.5191,$,,,,0 +386,ref_221_2_fac,Aggregated reference fac cost for 221.2,29518644.19,$,,,,0 +387,ref_221_2_lab,Aggregated reference lab cost for 221.2,1128496.709,$,,,,0 +388,ref_221_2_mat,Aggregated reference mat cost for 221.2,106736.278,$,,,,0 +389,ref_221_3_fac,Reference factory equipment cost for 221.3,48271430.44,$,,,,0 +390,ref_221_3_lab,Reference site labor cost for 221.3,1305834.897,$,,,,0 +391,ref_221_3_mat,Reference site material cost for 221.3,121580.4158,$,,,,0 +392,ref_222_111_fac,Reference factory equipment cost for 222.111,96235783.51,$,,,ce_222_111_fac,0 +393,ref_222_111_lab,Reference site labor cost for 222.111,3849475.091,$,,,ce_222_111_lab,0 +394,ref_222_111_mat,Reference site material cost for 222.111,389420.0622,$,,,ce_222_111_mat,0 +395,ref_222_119_fac,Reference factory equipment cost for 222.119,2899631.744,$,,,ce_222_119_fac,0 +396,ref_222_119_lab,Reference site labor cost for 222.119,4571014.442,$,,,ce_222_119_lab,0 +397,ref_222_119_mat,Reference site material cost for 222.119,456144.5743,$,,,ce_222_119_mat,0 +398,ref_222_12_fac,Aggregated reference fac cost for 222.12,12181696.7822,$,,,,0 +399,ref_222_12_lab,Aggregated reference lab cost for 222.12,21860871.5365,$,,,,0 +400,ref_222_12_mat,Aggregated reference mat cost for 222.12,2154574.6244,$,,,,0 +401,ref_222_132_fac,Reference factory equipment cost for 222.132,115107954.9,$,,,ce_222_132_fac,0 +402,ref_222_132_lab,Reference site labor cost for 222.132,3379073.239,$,,,ce_222_132_lab,0 +403,ref_222_132_mat,Reference site material cost for 222.132,358033.9676,$,,,ce_222_132_mat,0 +404,ref_222_139_fac,Reference factory equipment cost for 222.139,57628.3032,$,,,ce_222_139_fac,0 +405,ref_222_139_lab,Reference site labor cost for 222.139,507890.4935,$,,,ce_222_139_lab,0 +406,ref_222_139_mat,Reference site material cost for 222.139,50682.73048,$,,,ce_222_139_mat,0 +407,ref_222_14_fac,Aggregated reference fac cost for 222.14,7810895.18558,$,,,,0 +408,ref_222_14_lab,Aggregated reference lab cost for 222.14,554399.45973,$,,,,0 +409,ref_222_14_mat,Aggregated reference mat cost for 222.14,54698.157812,$,,,,0 +410,ref_223_1_fac,Aggregated reference fac cost for 223.1,9125519.8133,$,,,,0 +411,ref_223_1_lab,Aggregated reference lab cost for 223.1,7673809.6359,$,,,,0 +412,ref_223_1_mat,Aggregated reference mat cost for 223.1,643801.125867,$,,,,0 +413,ref_223_3_fac,Aggregated reference fac cost for 223.3,17995520.495,$,,,,0 +414,ref_223_3_lab,Aggregated reference lab cost for 223.3,12484140.12657,$,,,,0 +415,ref_223_3_mat,Aggregated reference mat cost for 223.3,1849558.449168,$,,,,0 +416,ref_223_4_fac,Aggregated reference fac cost for 223.4,7178727.713500001,$,,,,0 +417,ref_223_4_lab,Aggregated reference lab cost for 223.4,12825487.28281,$,,,,0 +418,ref_223_4_mat,Aggregated reference mat cost for 223.4,1137444.056296,$,,,,0 +419,ref_223_5_fac,Aggregated reference fac cost for 223.5,2020969.93592,$,,,,0 +420,ref_223_5_lab,Aggregated reference lab cost for 223.5,1237700.47984,$,,,,0 +421,ref_223_5_mat,Aggregated reference mat cost for 223.5,107715.599041,$,,,,0 +422,ref_224_1_fac,Aggregated reference fac cost for 224.1,17578043.84462,$,,,,0 +423,ref_224_1_lab,Aggregated reference lab cost for 224.1,23504618.58384,$,,,,0 +424,ref_224_1_mat,Aggregated reference mat cost for 224.1,2415803.7008854,$,,,,0 +425,ref_224_2_fac,Aggregated reference fac cost for 224.2,3090436.715,$,,,,0 +426,ref_224_2_lab,Aggregated reference lab cost for 224.2,1216147.837,$,,,,0 +427,ref_224_2_mat,Aggregated reference mat cost for 224.2,75770.24729,$,,,,0 +428,ref_224_3_fac,Aggregated reference fac cost for 224.3,17307453.167600002,$,,,,0 +429,ref_224_3_lab,Aggregated reference lab cost for 224.3,3175748.8484,$,,,,0 +430,ref_224_3_mat,Aggregated reference mat cost for 224.3,313011.354128,$,,,,0 +431,ref_225_111_fac,Reference factory equipment cost for 225.111,237225.8382,$,,,ce_225_111_fac,0 +432,ref_225_111_lab,Reference site labor cost for 225.111,142693.1867,$,,,ce_225_111_lab,0 +433,ref_225_111_mat,Reference site material cost for 225.111,11385.05953,$,,,ce_225_111_mat,0 +434,ref_225_112_fac,Reference factory equipment cost for 225.112,31779.3104,$,,,ce_225_112_fac,0 +435,ref_225_112_lab,Reference site labor cost for 225.112,28538.63734,$,,,ce_225_112_lab,0 +436,ref_225_112_mat,Reference site material cost for 225.112,2275.585206,$,,,ce_225_112_mat,0 +437,ref_225_113_fac,Reference factory equipment cost for 225.113,78282.49207,$,,,ce_225_113_fac,0 +438,ref_225_113_lab,Reference site labor cost for 225.113,142693.1867,$,,,ce_225_113_lab,0 +439,ref_225_113_mat,Reference site material cost for 225.113,11281.55898,$,,,ce_225_113_mat,0 +440,ref_225_114_fac,Reference factory equipment cost for 225.114,1423355.029,$,,,ce_225_114_fac,0 +441,ref_225_114_lab,Reference site labor cost for 225.114,395150.3632,$,,,ce_225_114_lab,0 +442,ref_225_114_mat,Reference site material cost for 225.114,31522.91857,$,,,ce_225_114_mat,0 +443,ref_225_12_fac,Reference factory equipment cost for 225.12,311913.9315,$,,,,0 +444,ref_225_12_lab,Reference site labor cost for 225.12,40279.58386,$,,,,0 +445,ref_225_12_mat,Reference site material cost for 225.12,3213.639922,$,,,,0 +446,ref_225_13_fac,Aggregated reference fac cost for 225.13,435399.74599,$,,,,0 +447,ref_225_13_lab,Aggregated reference lab cost for 225.13,1025848.6056,$,,,,0 +448,ref_225_13_mat,Aggregated reference mat cost for 225.13,77501.834251,$,,,,0 +449,ref_225_3_fac,Aggregated reference fac cost for 225.3,227028.0975,$,,,,0 +450,ref_225_3_lab,Aggregated reference lab cost for 225.3,143339.4107,$,,,,0 +451,ref_225_3_mat,Aggregated reference mat cost for 225.3,10769.08215,$,,,,0 +452,ref_225_4_fac,Aggregated reference fac cost for 225.4,4553380.16247,$,,,,0 +453,ref_225_4_lab,Aggregated reference lab cost for 225.4,2057890.48916,$,,,,0 +454,ref_225_4_mat,Aggregated reference mat cost for 225.4,226720.594276,$,,,,0 +455,ref_226_1_fac,Aggregated reference fac cost for 226.1,1768563.444,$,,,,0 +456,ref_226_1_lab,Aggregated reference lab cost for 226.1,2571525.626,$,,,,0 +457,ref_226_1_mat,Aggregated reference mat cost for 226.1,200061.0012,$,,,,0 +458,ref_226_3_fac,Aggregated reference fac cost for 226.3,2016124.88944,$,,,,0 +459,ref_226_3_lab,Aggregated reference lab cost for 226.3,3000197.53557,$,,,,0 +460,ref_226_3_mat,Aggregated reference mat cost for 226.3,628917.8974236,$,,,,0 +461,ref_226_4_fac,Aggregated reference fac cost for 226.4,24729843.087,$,,,,0 +462,ref_226_4_lab,Aggregated reference lab cost for 226.4,35691506.611,$,,,,0 +463,ref_226_4_mat,Aggregated reference mat cost for 226.4,4098205.311,$,,,,0 +464,ref_226_6_fac,Aggregated reference fac cost for 226.6,381757.8008,$,,,,0 +465,ref_226_6_lab,Aggregated reference lab cost for 226.6,93253.8854,$,,,,0 +466,ref_226_6_mat,Aggregated reference mat cost for 226.6,3658.72934,$,,,,0 +467,ref_226_71_fac,Aggregated reference fac cost for 226.71,13497035.8998,$,,,,0 +468,ref_226_71_lab,Aggregated reference lab cost for 226.71,29663437.3234,$,,,,0 +469,ref_226_71_mat,Aggregated reference mat cost for 226.71,2285411.729199,$,,,,0 +470,ref_226_72_fac,Aggregated reference fac cost for 226.72,12452416.7199,$,,,,0 +471,ref_226_72_lab,Aggregated reference lab cost for 226.72,17484840.09237,$,,,,0 +472,ref_226_72_mat,Aggregated reference mat cost for 226.72,1360292.762976,$,,,,0 +473,ref_226_8_fac,Aggregated reference fac cost for 226.8,7867871.49,$,,,,0 +474,ref_226_8_lab,Aggregated reference lab cost for 226.8,355003.30216,$,,,,0 +475,ref_226_8_mat,Aggregated reference mat cost for 226.8,2008164.99365,$,,,,0 +476,ref_226_9_fac,Aggregated reference fac cost for 226.9,895545.655225,$,,,,0 +477,ref_226_9_lab,Aggregated reference lab cost for 226.9,1385536.3887,$,,,,0 +478,ref_226_9_mat,Aggregated reference mat cost for 226.9,116782.23729,$,,,,0 +479,ref_227_11_fac,Reference factory equipment cost for 227.11,2348124.118,$,,,,0 +480,ref_227_11_lab,Reference site labor cost for 227.11,956553.3662,$,,,,0 +481,ref_227_11_mat,Reference site material cost for 227.11,47080.64023,$,,,,0 +482,ref_227_15_fac,Reference factory equipment cost for 227.15,201316.7982,$,,,,0 +483,ref_227_15_lab,Reference site labor cost for 227.15,146670.7044,$,,,,0 +484,ref_227_15_mat,Reference site material cost for 227.15,7611.624429,$,,,,0 +485,ref_227_16_fac,Reference factory equipment cost for 227.16,841507.4498,$,,,,0 +486,ref_227_16_lab,Reference site labor cost for 227.16,573931.4903,$,,,,0 +487,ref_227_16_mat,Reference site material cost for 227.16,29789.75467,$,,,,0 +488,ref_227_17_fac,Reference factory equipment cost for 227.17,805269.6058,$,,,,0 +489,ref_227_17_lab,Reference site labor cost for 227.17,573931.4903,$,,,,0 +490,ref_227_17_mat,Reference site material cost for 227.17,29789.75467,$,,,,0 +491,ref_227_18_fac,Reference factory equipment cost for 227.18,1007976.135,$,,,,0 +492,ref_227_18_lab,Reference site labor cost for 227.18,446391.7474,$,,,,0 +493,ref_227_18_mat,Reference site material cost for 227.18,21971.66031,$,,,,0 +494,ref_227_19_fac,Reference factory equipment cost for 227.19,543551.0205,$,,,,0 +495,ref_227_19_lab,Reference site labor cost for 227.19,159427.3258,$,,,,0 +496,ref_227_19_mat,Reference site material cost for 227.19,7845.90479,$,,,,0 +497,ref_227_2_fac,Reference factory equipment cost for 227.2,6575350.648,$,,,,0 +498,ref_227_2_lab,Reference site labor cost for 227.2,913902.4667,$,,,,0 +499,ref_227_2_mat,Reference site material cost for 227.2,89960.81599,$,,,,0 +500,ref_227_3_fac,Aggregated reference fac cost for 227.3,6821452.5089,$,,,,0 +501,ref_227_3_lab,Aggregated reference lab cost for 227.3,2569941.70284,$,,,,0 +502,ref_227_3_mat,Aggregated reference mat cost for 227.3,141557.216123,$,,,,0 +503,ref_227_4_fac,Aggregated reference fac cost for 227.4,5434791.773,$,,,,0 +504,ref_227_4_lab,Aggregated reference lab cost for 227.4,1944991.6681,$,,,,0 +505,ref_227_4_mat,Aggregated reference mat cost for 227.4,191457.2748,$,,,,0 +506,ref_227_5_fac,Reference factory equipment cost for 227.5,435585.8101,$,,,,0 +507,ref_227_5_lab,Reference site labor cost for 227.5,8927819.064,$,,,,0 +508,ref_227_5_mat,Reference site material cost for 227.5,870827.6585,$,,,,0 +509,ref_227_9_fac,Reference factory equipment cost for 227.9,5218992.184,$,,,,0 +510,ref_227_9_lab,Reference site labor cost for 227.9,3188506.809,$,,,,0 +511,ref_227_9_mat,Reference site material cost for 227.9,313864.8548,$,,,,0 +512,ref_228_lab,Aggregated reference lab cost for 228,13169656.351,$,,,,0 +513,ref_228_mat,Aggregated reference mat cost for 228,7193434.6014,$,,,,0 +514,ref_23_fac,Aggregated reference fac cost for 23,398537111.53,$,,,,0 +515,ref_23_lab,Aggregated reference lab cost for 23,169158211.60999998,$,,,,0 +516,ref_23_mat,Aggregated reference mat cost for 23,25604663.869,$,,,,0 +517,ref_241_fac,Aggregated reference fac cost for 241,24759182.802,$,,,,0 +518,ref_241_lab,Aggregated reference lab cost for 241,1352628.48,$,,,,0 +519,ref_241_mat,Aggregated reference mat cost for 241,194352.4,$,,,,0 +520,ref_242_fac,Aggregated reference fac cost for 242,40273254.999,$,,,,0 +521,ref_242_lab,Aggregated reference lab cost for 242,3777121.6009,$,,,,0 +522,ref_242_mat,Aggregated reference mat cost for 242,717829.2001,$,,,,0 +523,ref_243_fac,Aggregated reference fac cost for 243,3457143.7988,$,,,,0 +524,ref_243_lab,Aggregated reference lab cost for 243,770259.4911,$,,,,0 +525,ref_243_mat,Aggregated reference mat cost for 243,69770.84044999999,$,,,,0 +526,ref_244_lab,Aggregated reference lab cost for 244,7182716.802999999,$,,,,0 +527,ref_244_mat,Aggregated reference mat cost for 244,3891223.5978,$,,,,0 +528,ref_245_lab,Aggregated reference lab cost for 245,89344823.69,$,,,,0 +529,ref_245_mat,Aggregated reference mat cost for 245,14935133.401,$,,,,0 +530,ref_246_fac,Aggregated reference fac cost for 246,3906081.919,$,,,,0 +531,ref_246_lab,Aggregated reference lab cost for 246,47899828.477,$,,,,0 +532,ref_246_mat,Aggregated reference mat cost for 246,23576371.2735,$,,,,0 +533,ref_251_11_fac,Aggregated reference fac cost for 251.11,3919300.0,$,,,,0 +534,ref_251_11_lab,Aggregated reference lab cost for 251.11,607877.0538999999,$,,,,0 +535,ref_251_11_mat,Aggregated reference mat cost for 251.11,63379.76292,$,,,,0 +536,ref_251_12_fac,Reference factory equipment cost for 251.12,5599000.0,$,,,,0 +537,ref_251_12_lab,Reference site labor cost for 251.12,1215742.355,$,,,,0 +538,ref_251_12_mat,Reference site material cost for 251.12,126759.5258,$,,,,0 +539,ref_251_16_fac,Reference factory equipment cost for 251.16,671880.0,$,,,,0 +540,ref_251_16_lab,Reference site labor cost for 251.16,572112.3209,$,,,,0 +541,ref_251_16_mat,Reference site material cost for 251.16,59651.36136,$,,,,0 +542,ref_251_17_fac,Reference factory equipment cost for 251.17,940632.0,$,,,,0 +543,ref_251_17_lab,Reference site labor cost for 251.17,100121.8599,$,,,,0 +544,ref_251_17_mat,Reference site material cost for 251.17,10440.74981,$,,,,0 +545,ref_252_1_fac,Aggregated reference fac cost for 252.1,3990340.548,$,,,,0 +546,ref_252_1_lab,Aggregated reference lab cost for 252.1,19619508.343,$,,,,0 +547,ref_252_1_mat,Aggregated reference mat cost for 252.1,834673.121,$,,,,0 +548,ref_252_2_fac,Aggregated reference fac cost for 252.2,12778995.778,$,,,,0 +549,ref_252_2_lab,Aggregated reference lab cost for 252.2,49274175.28300001,$,,,,0 +550,ref_252_2_mat,Aggregated reference mat cost for 252.2,10358280.0372,$,,,,0 +551,ref_252_3_fac,Aggregated reference fac cost for 252.3,5820232.71781,$,,,,0 +552,ref_252_3_lab,Aggregated reference lab cost for 252.3,9072230.95898,$,,,,0 +553,ref_252_3_mat,Aggregated reference mat cost for 252.3,536164.732992,$,,,,0 +554,ref_252_4_lab,Aggregated reference lab cost for 252.4,484340.6169,$,,,,0 +555,ref_252_4_mat,Aggregated reference mat cost for 252.4,270868.02393,$,,,,0 +556,ref_253_fac,Aggregated reference fac cost for 253,4287360.0,$,,,,0 +557,ref_253_lab,Aggregated reference lab cost for 253,10454512.323,$,,,,0 +558,ref_253_mat,Aggregated reference mat cost for 253,1443732.4,$,,,,0 +559,ref_254_fac,Aggregated reference fac cost for 254,4909689.3994,$,,,,0 +560,ref_254_lab,Aggregated reference lab cost for 254,1396674.709504,$,,,,0 +561,ref_254_mat,Aggregated reference mat cost for 254,161290.79995349998,$,,,,0 +562,ref_255_fac,Reference factory equipment cost for 255,1668854.0,$,,,,0 +563,ref_255_lab,Reference site labor cost for 255,4553152.499,$,,,,0 +564,ref_255_mat,Reference site material cost for 255,453254.9999,$,,,,0 +565,ref_261_fac,Aggregated reference fac cost for 261,392618.03808,$,,,,0 +566,ref_261_lab,Aggregated reference lab cost for 261,9125289.026,$,,,,0 +567,ref_261_mat,Aggregated reference mat cost for 261,3921296.0821,$,,,,0 +568,ref_262_11_fac,Reference factory equipment cost for 262.11,818836.1028,$,,,,0 +569,ref_262_11_lab,Reference site labor cost for 262.11,298851.6538,$,,,,0 +570,ref_262_11_mat,Reference site material cost for 262.11,31388.27887,$,,,,0 +571,ref_262_12_fac,Reference factory equipment cost for 262.12,19786129.24,$,,,,0 +572,ref_262_12_lab,Reference site labor cost for 262.12,15368420.84,$,,,,0 +573,ref_262_12_mat,Reference site material cost for 262.12,2229912.276,$,,,,0 +574,ref_262_13_fac,Reference factory equipment cost for 262.13,46211135.76,$,,,,0 +575,ref_262_13_lab,Reference site labor cost for 262.13,26887199.25,$,,,,0 +576,ref_262_13_mat,Reference site material cost for 262.13,2138353.432,$,,,,0 +577,ref_262_14_lab,Reference site labor cost for 262.14,130171.644,$,,,,0 +578,ref_262_14_mat,Reference site material cost for 262.14,117381.9543,$,,,,0 +579,ref_262_15_fac,Reference factory equipment cost for 262.15,2719803.892,$,,,,0 +580,ref_262_15_lab,Reference site labor cost for 262.15,547270.1731,$,,,,0 +581,ref_262_15_mat,Reference site material cost for 262.15,104605.3008,$,,,,0 +582,ref_S,Reference Area for General Yardwork 211.1,62.0,m^2,,,scale_S,0 +583,ref_bldg_V,Reference Building volume for Structural & Miscellaneous Steel 213.142,212000.0,m^3,,,scale_bldg_V,0 +584,ref_cmn_bldg_vol,Reference common containment/auxiliary building volume,92268.0,m^3,,,"scale_adm_bldg_bldg_vol, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_elec_tunnel_bldg_vol, scale_non_ess_swgr_bldg_bldg_vol, scale_sup_const, scale_wwt_bldg_bldg_vol",0 +585,ref_cr_dg_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 218142,48762.0,m^3,,,scale_cr_dg_bldg_bldg_vol,0 +586,ref_cr_dg_bldg_sub_S,Reference Substructure S for Roofing & Flashing 218145,1890.0,m^2,,,scale_cr_dg_bldg_sub_S,0 +587,ref_cr_dg_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 21813,2268.0,m^3,,,scale_cr_dg_bldg_sub_vol,0 +588,ref_cr_dg_bldg_sup_S,Reference Superstructure S for Painting 218149,6258.0,m^2,,,scale_cr_dg_bldg_sup_S,0 +589,ref_cr_dg_bldg_sup_vol,Reference Superstructure volume for Concrete Work 218141,3755.0,m^3,,,scale_cr_dg_bldg_sup_vol,0 +590,ref_direct_cost_frm_flow,"Reference direct cost basis for Flow rate scale, source account 222.11",108401469.0,kg/s,,,scale_frm_flow,0 +591,ref_direct_cost_frm_fuel_cask_cap,"Reference direct cost basis for Fuel cask capacity scale, source account 225.114",1850028.0,tonne,,,scale_frm_fuel_cask_cap,0 +592,ref_direct_cost_frm_fuel_crane_cap,"Reference direct cost basis for Fuel crane capacity scale, source account 225.111",391304.0,tonne,,,scale_frm_fuel_crane_cap,0 +593,ref_direct_cost_frm_ht_S,"Reference direct cost basis for HT surface S scale, source account 222.13",119461264.0,m^2,,,scale_frm_ht_S,0 +594,ref_direct_cost_frm_prz_M,"Reference direct cost basis for Pressurizer mass scale, source account 222.14",8419993.0,kg,,,scale_frm_prz_M,0 +595,ref_direct_cost_frm_S,"Reference direct cost basis for Surface S scale, source account 212.3",1.0,m^2,,,scale_frm_S,0 +596,ref_direct_cost_frm_S_9_71886e_06,"Reference direct cost basis for Surface S scale, source account 217.3",9718863.0,m^2,,,scale_frm_S_9_71886e_06,0 +597,ref_direct_cost_frm_vsl_M,"Reference direct cost basis for Vessel mass scale, source account 221.1",75019941.0,kg,,,scale_frm_vsl_M,0 +598,ref_elec_P,Reference electric power used by electric-power scale laws,2288.0,MWe,,,"scale_elec_P, scale_tur_plant_equip_elec_P",0 +599,ref_fuel_stor_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 217.142,28800.0,m^3,,,scale_fuel_stor_bldg_bldg_vol,0 +600,ref_fuel_stor_bldg_sub_S,Reference Substructure S for Roofing & Flashing 217.145,900.0,m^2,,,scale_fuel_stor_bldg_sub_S,0 +601,ref_fuel_stor_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 217.13,1080.0,m^3,,,scale_fuel_stor_bldg_sub_vol,0 +602,ref_fuel_stor_bldg_sup_S,Reference Superstructure S for Painting 217.149,3840.0,m^2,,,scale_fuel_stor_bldg_sup_S,0 +603,ref_fuel_stor_bldg_sup_vol,Reference Superstructure volume for Concrete Work 217.141,2304.0,m^3,,,scale_fuel_stor_bldg_sup_vol,0 +604,ref_mc_piping_M,Reference MC piping mass for Reactor Coolant Piping System 222.12,154000.0,kg,,,scale_mc_piping_M,0 +605,ref_n_crs,Reference Number of CRs for Reactor Control Devices 221.2,57.0,,,,scale_n_crs,0 +606,ref_pri_aux_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 215.142,36232.0,m^3,,,scale_pri_aux_bldg_bldg_vol,0 +607,ref_pri_aux_bldg_sub_S,Reference Substructure S for Roofing & Flashing 215.145,1294.0,m^2,,,scale_pri_aux_bldg_sub_S,0 +608,ref_pri_aux_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 215.13,1553.0,m^3,,,scale_pri_aux_bldg_sub_vol,0 +609,ref_pri_aux_bldg_sup_S,Reference Superstructure S for Painting 215.149,5544.0,m^2,,,scale_pri_aux_bldg_sup_S,0 +610,ref_pri_aux_bldg_sup_vol,Reference Superstructure volume for Concrete Work 215.141,3326.0,m^3,,,scale_pri_aux_bldg_sup_vol,0 +611,ref_pri_flow,Reference Primary flowrate for Liquid Waste System 224.1,23872.0,kg/s,,,scale_pri_flow,0 +612,ref_rx_D,Reference Reactor diameter (m) for Vessel Internals 221.3,4.6,m,,,scale_rx_D,0 +613,ref_rej_th_P,Reference Rejected thermal power for 261.1,4546.0,MWt,,,scale_rej_th_P,0 +614,ref_rx_P,Reference reactor/plant thermal power used by RX/plant-power scale laws,6834.0,MWt,,,scale_P,0 +615,ref_sfp_V,"Reference SFP volume for Fuel Storage, Cleaning, & Inspection Equipment 225.4",1056.0,m^3,,,scale_sfp_V,0 +616,ref_sub_str_S,Reference Substructure S for Roof Deck 213.144,6100.0,m^2,,,scale_sub_str_S,0 +617,ref_sub_str_V,Reference Substructure volume for Substructure Concrete 212.13,4603.0,m^3,,,scale_sub_str_V,0 +618,ref_sup_str_S,Reference Superstructure S for Painting 212.149,9373.0,m^2,,,scale_sup_str_S,0 +619,ref_sup_str_V,Reference Superstructure volume for Concrete Work 212.141,11248.0,m^3,,,scale_sup_str_V,0 +620,ref_turb_gen_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 213.13,1830.0,m^3,,,scale_turb_gen_bldg_sub_vol,0 +621,ref_turb_gen_bldg_sup_S,Reference Superstructure S for Exterior Walls 213.143,17040.0,m^2,,,scale_turb_gen_bldg_sup_S,0 +622,ref_turb_gen_bldg_sup_vol,Reference Superstructure volume for Concrete Work 213.141,5112.0,m^3,,,scale_turb_gen_bldg_sup_vol,0 +623,ref_V_of_212_213_215_216_217,"Reference Volume of 212, 213, 215, 216, 217 for Fill & Backfill (Place/Comp) 211.712",416524.0,m^3,,,scale_V_of_212_213_215_216_217,0 +624,ref_waste_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 216.142,53328.0,m^3,,,scale_waste_bldg_bldg_vol,0 +625,ref_waste_bldg_sub_S,Reference Substructure S for Roof Deck 216.144,1728.0,m^2,,,scale_waste_bldg_sub_S,0 +626,ref_waste_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 216.13,2074.0,m^3,,,scale_waste_bldg_sub_vol,0 +627,ref_waste_bldg_sup_S,Reference Superstructure S for Exterior Walls 216.143,7380.0,m^2,,,scale_waste_bldg_sup_S,0 +628,ref_waste_bldg_sup_vol,Reference Superstructure volume for Concrete Work 216.141,4428.0,m^3,,,scale_waste_bldg_sup_vol,0 +629,scale_adm_bldg_bldg_vol,Admin Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_admin_bldg,"adm_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin","ce_218B_24_mat, ce_218B_24_lab",0 +630,scale_S,Site Area scale factor = (new base unit value / Reference unit value)^exponent.,0.3709677419354839,1,scale_law_site_S,"S, ref_S, exp_lin",,0 +631,scale_bldg_V,Building Volume scale factor = (new base unit value / Reference unit value)^exponent.,0.9169433962264152,1,scale_law_bldg_V,"bldg_V, ref_bldg_V, exp_lin","ce_213_142_mat, ce_213_142_lab, ce_213_146_mat, ce_213_146_lab, ce_213_147_mat, ce_213_147_lab",0 +632,scale_cont_hatch_ms_bldg_vol,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_containment,"cont_hatch_ms_bldg_vol, ref_cmn_bldg_vol, exp_lin",,0 +633,scale_cont_V,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.933844215884506,1,scale_law_containment,"cont_V, ref_cmn_bldg_vol, exp_lin",,0 +634,scale_cr_dg_bldg_bldg_vol,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0545506747057134,1,scale_law_control_dg_bldg,"cr_dg_bldg_bldg_vol, ref_cr_dg_bldg_bldg_vol, exp_lin","ce_218A_142_mat, ce_218A_142_lab, ce_218A_146_mat, ce_218A_146_lab, ce_218A_147_mat, ce_218A_147_lab, ce_218A_148_mat, ce_218A_148_lab, ce_218A_21_mat, ce_218A_21_lab, ce_218A_235_fac, ce_218A_235_mat, ce_218A_235_lab, ce_218A_236_fac, ce_218A_236_mat, ce_218A_236_lab, ce_218A_237_fac, ce_218A_24_mat, ce_218A_24_lab",0 +635,scale_cr_dg_bldg_sub_S,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.201058201058201,1,scale_law_control_dg_bldg,"cr_dg_bldg_sub_S, ref_cr_dg_bldg_sub_S, exp_lin","ce_218A_145_mat, ce_218A_145_lab",0 +636,scale_cr_dg_bldg_sub_vol,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.1005291005291005,1,scale_law_control_dg_bldg,"cr_dg_bldg_sub_vol, ref_cr_dg_bldg_sub_vol, exp_lin","ce_218A_13_mat, ce_218A_13_lab",0 +637,scale_cr_dg_bldg_sup_S,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.087248322147651,1,scale_law_control_dg_bldg,"cr_dg_bldg_sup_S, ref_cr_dg_bldg_sup_S, exp_lin","ce_218A_149_mat, ce_218A_149_lab",0 +638,scale_cr_dg_bldg_sup_vol,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0436218375499334,1,scale_law_control_dg_bldg,"cr_dg_bldg_sup_vol, ref_cr_dg_bldg_sup_vol, exp_lin","ce_218A_141_mat, ce_218A_141_lab",0 +639,scale_elec_P,Electric Power scale factor = (new base unit value / Reference unit value)^exponent.,0.9810738928018627,1,scale_law_elec_P,"elec_P, ref_elec_P, exp_elec_P",,0 +640,scale_elec_tunnel_bldg_vol,Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_electrical_bldg,"elec_tunnel_bldg_vol, ref_cmn_bldg_vol, exp_lin",,0 +641,scale_frm_flow,Formula Flow Rate direct formula scale factor.,0.9285660117258324,1,formula_scale_flow_rate,"uc_frm_flow, frm_flow, ref_direct_cost_frm_flow","ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab",0 +642,scale_frm_fuel_cask_cap,Formula Fuel Cask Capacity direct formula scale factor.,1.0032384136058523,1,formula_scale_fuel_cask_capacity,"uc_frm_fuel_cap, frm_fuel_cask_cap, ref_direct_cost_frm_fuel_cask_cap","ce_225_114_fac, ce_225_114_mat, ce_225_114_lab",0 +643,scale_frm_fuel_crane_cap,Formula Fuel Crane Capacity direct formula scale factor.,1.0752528615939023,1,formula_scale_fuel_crane_capacity,"uc_frm_fuel_cap, frm_fuel_crane_cap, ref_direct_cost_frm_fuel_crane_cap","ce_225_111_fac, ce_225_111_mat, ce_225_111_lab",0 +644,scale_frm_ht_S,Formula Ht Surface Area direct formula scale factor.,1.3013555355784228,1,formula_scale_ht_surface_S,"uc_frm_ht_S, frm_ht_S, ref_direct_cost_frm_ht_S","ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab",0 +645,scale_frm_prz_M,Formula Pressurizer Mass direct formula scale factor.,1.1148404907542149,1,formula_scale_pressurizer_mass,"uc_frm_prz_M, frm_prz_M, ref_direct_cost_frm_prz_M",,0 +646,scale_frm_S,Formula Surface Area direct formula scale factor.,17866000.0,1,formula_scale_surface_S,"uc_frm_S, frm_S, ref_direct_cost_frm_S",,0 +647,scale_frm_S_9_71886e_06,Formula Surface Area 9 71886E 06 direct formula scale factor.,0.8823748210052966,1,formula_scale_surface_S_9_71886e_06,"uc_frm_S_9_71886e_06, frm_S_9_71886e_06, ref_direct_cost_frm_S_9_71886e_06",,0 +648,scale_frm_vsl_M,Formula Vessel Mass direct formula scale factor.,0.90910052524507,1,formula_scale_vessel_mass,"uc_frm_vsl_M, frm_vsl_M, ref_direct_cost_frm_vsl_M",,0 +649,scale_fuel_stor_bldg_bldg_vol,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.65625,1,scale_law_fuel_storage,"fuel_stor_bldg_bldg_vol, ref_fuel_stor_bldg_bldg_vol, exp_lin","ce_217_142_mat, ce_217_142_lab, ce_217_147_mat, ce_217_147_lab",0 +650,scale_fuel_stor_bldg_sub_S,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.7777777777777778,1,scale_law_fuel_storage,"fuel_stor_bldg_sub_S, ref_fuel_stor_bldg_sub_S, exp_lin","ce_217_145_mat, ce_217_145_lab",0 +651,scale_fuel_stor_bldg_sub_vol,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.3888888888888889,1,scale_law_fuel_storage,"fuel_stor_bldg_sub_vol, ref_fuel_stor_bldg_sub_vol, exp_lin",,0 +652,scale_fuel_stor_bldg_sup_S,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.7453125,1,scale_law_fuel_storage,"fuel_stor_bldg_sup_S, ref_fuel_stor_bldg_sup_S, exp_lin","ce_217_149_mat, ce_217_149_lab",0 +653,scale_fuel_stor_bldg_sup_vol,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.37265625,1,scale_law_fuel_storage,"fuel_stor_bldg_sup_vol, ref_fuel_stor_bldg_sup_vol, exp_lin","ce_217_141_mat, ce_217_141_lab",0 +654,scale_mc_piping_M,Piping Mass scale factor = (new base unit value / Reference unit value)^exponent.,0.5,1,scale_law_piping_mass,"mc_piping_M, ref_mc_piping_M, exp_lin",,0 +655,scale_non_ess_swgr_bldg_bldg_vol,Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_electrical_bldg,"non_ess_swgr_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin",,0 +656,scale_n_crs,Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.,1.2105263157894737,1,scale_law_reactor_equipment,"n_crs, ref_n_crs, exp_lin",,0 +657,scale_P,Power scale factor for plant/reactor thermal power based direct-cost accounts,0.996017916397094,1,scale_law_power,"rx_P, ref_rx_P, exp_P","ce_211_711_mat, ce_211_711_lab, ce_215_221_fac, ce_215_221_mat, ce_215_221_lab, ce_215_222_fac, ce_215_222_mat, ce_215_222_lab, ce_215_223_fac, ce_215_223_mat, ce_215_223_lab, ce_215_224_fac, ce_215_224_mat, ce_215_224_lab, ce_215_228_fac, ce_215_228_mat, ce_215_228_lab, ce_218A_231_fac, ce_218A_231_mat, ce_218A_231_lab, ce_218A_232_fac, ce_218A_232_mat, ce_218A_232_lab, ce_218A_233_fac, ce_218A_233_mat, ce_218A_233_lab, ce_218A_234_fac, ce_218A_234_mat, ce_218A_234_lab, ce_218A_238_fac, ce_218A_238_mat, ce_218A_238_lab, ce_218B_22_fac, ce_218B_22_mat, ce_218B_22_lab, ce_218B_23_fac, ce_218B_23_mat, ce_218B_23_lab",0 +658,scale_pri_aux_bldg_bldg_vol,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.368652020313535,1,scale_law_primary_aux_bldg,"pri_aux_bldg_bldg_vol, ref_pri_aux_bldg_bldg_vol, exp_lin","ce_215_142_mat, ce_215_142_lab, ce_215_146_mat, ce_215_146_lab, ce_215_147_mat, ce_215_147_lab, ce_215_225_fac, ce_215_225_mat, ce_215_225_lab, ce_215_226_fac, ce_215_226_mat, ce_215_226_lab, ce_215_227_fac",0 +659,scale_pri_aux_bldg_sub_S,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.5432766615146831,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sub_S, ref_pri_aux_bldg_sub_S, exp_lin","ce_215_145_mat, ce_215_145_lab",0 +660,scale_pri_aux_bldg_sub_vol,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.5432066967160335,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sub_vol, ref_pri_aux_bldg_sub_vol, exp_lin",,0 +661,scale_pri_aux_bldg_sup_S,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.3838383838383838,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sup_S, ref_pri_aux_bldg_sup_S, exp_lin","ce_215_149_mat, ce_215_149_lab",0 +662,scale_pri_aux_bldg_sup_vol,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.3838845460012026,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sup_vol, ref_pri_aux_bldg_sup_vol, exp_lin","ce_215_141_mat, ce_215_141_lab",0 +663,scale_pri_flow,Flow Rate scale factor = (new base unit value / Reference unit value)^exponent.,0.8717574764492064,1,scale_law_flow_rate,"pri_flow, ref_pri_flow, exp_pri_flow",,0 +664,scale_rx_D,Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.,0.9569943289224956,1,scale_law_reactor_equipment,"rx_D, ref_rx_D, exp_rx_D",,0 +665,scale_rej_th_P,Heat Rejection scale factor = (new base unit value / Reference unit value)^exponent.,1.003518031940659,1,scale_law_heat_rejection,"rej_th_P, ref_rej_th_P, exp_P",,0 +666,scale_sfp_V,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.773656197537358,1,scale_law_fuel_storage,"sfp_V, ref_sfp_V, exp_sfp_V",,0 +667,scale_sub_str_S,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.6780327868852459,1,scale_law_containment,"sub_str_S, ref_sub_str_S, exp_lin","ce_213_144_mat, ce_213_144_lab, ce_213_145_mat, ce_213_145_lab",0 +668,scale_sub_str_V,Containment scale factor = (new base unit value / Reference unit value)^exponent.,1.0000338483205242,1,scale_law_containment,"sub_str_V, ref_sub_str_V, exp_lin",,0 +669,scale_sup_const,Containment scale factor = (new base unit value / Reference unit value)^exponent.,1.0049856543889688,1,scale_law_containment,"sup_const, ref_cmn_bldg_vol, exp_lin","ce_212_140_fac, ce_212_140_mat, ce_212_140_lab, ce_212_142_mat, ce_212_142_lab",0 +670,scale_sup_str_S,Containment scale factor = (new base unit value / Reference unit value)^exponent.,1.0044381948758936,1,scale_law_containment,"sup_str_S, ref_sup_str_S, exp_lin","ce_212_149_mat, ce_212_149_lab",0 +671,scale_sup_str_V,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.837002062639736,1,scale_law_containment,"sup_str_S, ref_sup_str_V, exp_lin","ce_212_14111_mat, ce_212_14111_lab, ce_212_14112_mat, ce_212_14112_lab, ce_212_14113_mat, ce_212_14113_lab, ce_212_14114_mat, ce_212_14114_lab, ce_212_14115_mat, ce_212_14115_lab, ce_212_14116_mat, ce_212_14116_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14118_mat, ce_212_14118_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14122_mat, ce_212_14122_lab, ce_212_14123_mat, ce_212_14123_lab, ce_212_14125_mat, ce_212_14125_lab, ce_212_14127_mat, ce_212_14127_lab, ce_212_14128_mat, ce_212_14128_lab, ce_212_1419_mat, ce_212_1419_lab",0 +672,scale_turb_gen_bldg_sub_vol,Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.6780327868852459,1,scale_law_turbine_bldg,"turb_gen_bldg_sub_vol, ref_turb_gen_bldg_sub_vol, exp_lin",,0 +673,scale_turb_gen_bldg_sup_S,Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.7447183098591549,1,scale_law_turbine_bldg,"turb_gen_bldg_sup_S, ref_turb_gen_bldg_sup_S, exp_lin","ce_213_143_mat, ce_213_143_lab, ce_213_149_mat, ce_213_149_lab",0 +674,scale_turb_gen_bldg_sup_vol,Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.7447183098591549,1,scale_law_turbine_bldg,"turb_gen_bldg_sup_vol, ref_turb_gen_bldg_sup_vol, exp_lin","ce_213_141_mat, ce_213_141_lab",0 +675,scale_tur_plant_equip_elec_P,Turbine Equipment scale factor = (new base unit value / Reference unit value)^exponent.,0.9857715709124324,1,scale_law_turbine_equipment,"elec_P, ref_elec_P, exp_tur_plant_equip_elec_P",,0 +676,scale_V_of_212_213_215_216_217,Volume Of 212 213 215 216 217 scale factor = (new base unit value / Reference unit value)^exponent.,0.8072164301676766,1,scale_law_V_of_212_213_215_216_217,"V_of_212_213_215_216_217, ref_V_of_212_213_215_216_217, exp_lin","ce_211_712_fac, ce_211_712_mat, ce_211_712_lab",0 +677,scale_waste_bldg_bldg_vol,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.3159315931593159,1,scale_law_waste_bldg,"waste_bldg_bldg_vol, ref_waste_bldg_bldg_vol, exp_lin","ce_216_142_mat, ce_216_142_lab, ce_216_146_mat, ce_216_146_lab, ce_216_147_mat, ce_216_147_lab, ce_216_148_mat, ce_216_148_lab",0 +678,scale_waste_bldg_sub_S,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.75,1,scale_law_waste_bldg,"waste_bldg_sub_S, ref_waste_bldg_sub_S, exp_lin","ce_216_144_mat, ce_216_144_lab, ce_216_145_mat, ce_216_145_lab",0 +679,scale_waste_bldg_sub_vol,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.7498553519768564,1,scale_law_waste_bldg,"waste_bldg_sub_vol, ref_waste_bldg_sub_vol, exp_lin",,0 +680,scale_waste_bldg_sup_S,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.2747967479674796,1,scale_law_waste_bldg,"waste_bldg_sup_S, ref_waste_bldg_sup_S, exp_lin","ce_216_143_mat, ce_216_143_lab, ce_216_149_mat, ce_216_149_lab",0 +681,scale_waste_bldg_sup_vol,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.2747967479674796,1,scale_law_waste_bldg,"waste_bldg_sup_vol, ref_waste_bldg_sup_vol, exp_lin","ce_216_141_mat, ce_216_141_lab",0 +682,scale_wwt_bldg_bldg_vol,Wastewater Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_wastewater_bldg,"wwt_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin",,0 +683,ce_211_711_fac,Open Cut factory equipment cost for 211.711,0.0,$,,,,0 +684,ce_211_711_mat,Open Cut site material cost for 211.711,4422650.2267513415,$,category_scale,"ref_211_711_mat, scale_P, scale_ap1000",,0 +685,ce_211_711_lab,Open Cut site labor cost for 211.711,15065631.544985814,$,category_scale,"ref_211_711_lab, scale_P, scale_ap1000",,0 +686,ce_211_712_fac,Fill & Backfill (Place/Comp) factory equipment cost for 211.712,198292.71607068976,$,category_scale,"ref_211_712_fac, scale_V_of_212_213_215_216_217, scale_ap1000",,0 +687,ce_211_712_mat,Fill & Backfill (Place/Comp) site material cost for 211.712,10818782.25794602,$,category_scale,"ref_211_712_mat, scale_V_of_212_213_215_216_217, scale_ap1000",,0 +688,ce_211_712_lab,Fill & Backfill (Place/Comp) site labor cost for 211.712,12629880.679760788,$,category_scale,"ref_211_712_lab, scale_V_of_212_213_215_216_217, scale_ap1000",,0 +689,ce_212_141_fac,Concrete Work factory equipment cost for 212.141,0.0,$,sum_all,"ce_212_1411_fac, ce_212_1412_fac, ce_212_1419_fac",,0 +690,ce_212_141_mat,Concrete Work site material cost for 212.141,14052106.242877116,$,sum_all,"ce_212_1411_mat, ce_212_1412_mat, ce_212_1419_mat",,0 +691,ce_212_141_lab,Concrete Work site labor cost for 212.141,9164034.594639374,$,sum_all,"ce_212_1411_lab, ce_212_1412_lab, ce_212_1419_lab",,0 +692,ce_212_1411_fac,Containment Shell factory equipment cost for 212.1411,0.0,$,sum_all,"ce_212_14111_fac, ce_212_14112_fac, ce_212_14113_fac, ce_212_14114_fac, ce_212_14115_fac, ce_212_14116_fac, ce_212_14117_fac, ce_212_14118_fac",ce_212_141_fac,0 +693,ce_212_1411_mat,Containment Shell site material cost for 212.1411,10199269.046640312,$,sum_all,"ce_212_14111_mat, ce_212_14112_mat, ce_212_14113_mat, ce_212_14114_mat, ce_212_14115_mat, ce_212_14116_mat, ce_212_14117_mat, ce_212_14118_mat",ce_212_141_mat,0 +694,ce_212_1411_lab,Containment Shell site labor cost for 212.1411,5715505.323950599,$,sum_all,"ce_212_14111_lab, ce_212_14112_lab, ce_212_14113_lab, ce_212_14114_lab, ce_212_14115_lab, ce_212_14116_lab, ce_212_14117_lab, ce_212_14118_lab",ce_212_141_lab,0 +695,ce_212_14111_fac,Formwork factory equipment cost for 212.14111,0.0,$,,,ce_212_1411_fac,0 +696,ce_212_14111_mat,Formwork site material cost for 212.14111,0.0,$,category_scale,"ref_212_14111_mat, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1411_mat,0 +697,ce_212_14111_lab,Formwork site labor cost for 212.14111,0.0,$,category_scale,"ref_212_14111_lab, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1411_lab,0 +698,ce_212_14112_fac,Reinforcing Steel factory equipment cost for 212.14112,0.0,$,,,ce_212_1411_fac,0 +699,ce_212_14112_mat,Reinforcing Steel site material cost for 212.14112,8380508.768929804,$,category_scale,"ref_212_14112_mat, scale_sup_str_V, adj_cont_mat_1_48, scale_ap1000",ce_212_1411_mat,0 +700,ce_212_14112_lab,Reinforcing Steel site labor cost for 212.14112,1564590.3568760036,$,category_scale,"ref_212_14112_lab, scale_sup_str_V, adj_212_14112_lab, scale_ap1000",ce_212_1411_lab,0 +701,ce_212_14113_fac,Concrete factory equipment cost for 212.14113,0.0,$,,,ce_212_1411_fac,0 +702,ce_212_14113_mat,Concrete site material cost for 212.14113,1371366.3457545682,$,category_scale,"ref_212_14113_mat, scale_sup_str_V, scale_ap1000",ce_212_1411_mat,0 +703,ce_212_14113_lab,Concrete site labor cost for 212.14113,2687756.528683357,$,category_scale,"ref_212_14113_lab, scale_sup_str_V, scale_ap1000",ce_212_1411_lab,0 +704,ce_212_14114_fac,Embedded Steel factory equipment cost for 212.14114,0.0,$,,,ce_212_1411_fac,0 +705,ce_212_14114_mat,Embedded Steel site material cost for 212.14114,165512.6083622963,$,category_scale,"ref_212_14114_mat, scale_sup_str_V, scale_ap1000",ce_212_1411_mat,0 +706,ce_212_14114_lab,Embedded Steel site labor cost for 212.14114,454525.0145292392,$,category_scale,"ref_212_14114_lab, scale_sup_str_V, scale_ap1000",ce_212_1411_lab,0 +707,ce_212_14115_fac,Rubbing Surfaces factory equipment cost for 212.14115,0.0,$,,,ce_212_1411_fac,0 +708,ce_212_14115_mat,Rubbing Surfaces site material cost for 212.14115,22026.07551698718,$,category_scale,"ref_212_14115_mat, scale_sup_str_V, scale_ap1000",ce_212_1411_mat,0 +709,ce_212_14115_lab,Rubbing Surfaces site labor cost for 212.14115,373300.2284734896,$,category_scale,"ref_212_14115_lab, scale_sup_str_V, scale_ap1000",ce_212_1411_lab,0 +710,ce_212_14116_fac,Waterproofing factory equipment cost for 212.14116,0.0,$,,,ce_212_1411_fac,0 +711,ce_212_14116_mat,Waterproofing site material cost for 212.14116,14395.613641818194,$,category_scale,"ref_212_14116_mat, scale_sup_str_V, scale_ap1000",ce_212_1411_mat,0 +712,ce_212_14116_lab,Waterproofing site labor cost for 212.14116,37787.93662342439,$,category_scale,"ref_212_14116_lab, scale_sup_str_V, scale_ap1000",ce_212_1411_lab,0 +713,ce_212_14117_fac,Cadwelds factory equipment cost for 212.14117,0.0,$,,,ce_212_1411_fac,0 +714,ce_212_14117_mat,Cadwelds site material cost for 212.14117,0.0,$,category_scale,"ref_212_14117_mat, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1411_mat,0 +715,ce_212_14117_lab,Cadwelds site labor cost for 212.14117,0.0,$,category_scale,"ref_212_14117_lab, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1411_lab,0 +716,ce_212_14118_fac,Construction Joints factory equipment cost for 212.14118,0.0,$,,,ce_212_1411_fac,0 +717,ce_212_14118_mat,Construction Joints site material cost for 212.14118,245459.63443483823,$,category_scale,"ref_212_14118_mat, scale_sup_str_V, scale_ap1000",ce_212_1411_mat,0 +718,ce_212_14118_lab,Construction Joints site labor cost for 212.14118,597545.2587650847,$,category_scale,"ref_212_14118_lab, scale_sup_str_V, scale_ap1000",ce_212_1411_lab,0 +719,ce_212_1412_fac,Containment Dome factory equipment cost for 212.1412,0.0,$,sum_all,"ce_212_14121_fac, ce_212_14122_fac, ce_212_14123_fac, ce_212_14125_fac, ce_212_14127_fac, ce_212_14128_fac",ce_212_141_fac,0 +720,ce_212_1412_mat,Containment Dome site material cost for 212.1412,3658110.955731712,$,sum_all,"ce_212_14121_mat, ce_212_14122_mat, ce_212_14123_mat, ce_212_14125_mat, ce_212_14127_mat, ce_212_14128_mat",ce_212_141_mat,0 +721,ce_212_1412_lab,Containment Dome site labor cost for 212.1412,2781923.024968618,$,sum_all,"ce_212_14121_lab, ce_212_14122_lab, ce_212_14123_lab, ce_212_14125_lab, ce_212_14127_lab, ce_212_14128_lab",ce_212_141_lab,0 +722,ce_212_14121_fac,Formwork factory equipment cost for 212.14121,0.0,$,,,ce_212_1412_fac,0 +723,ce_212_14121_mat,Formwork site material cost for 212.14121,0.0,$,category_scale,"ref_212_14121_mat, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1412_mat,0 +724,ce_212_14121_lab,Formwork site labor cost for 212.14121,0.0,$,category_scale,"ref_212_14121_lab, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1412_lab,0 +725,ce_212_14122_fac,Reinforcing Steel factory equipment cost for 212.14122,0.0,$,,,ce_212_1412_fac,0 +726,ce_212_14122_mat,Reinforcing Steel site material cost for 212.14122,3108898.414640052,$,category_scale,"ref_212_14122_mat, scale_sup_str_V, adj_cont_mat_1_48, scale_ap1000",ce_212_1412_mat,0 +727,ce_212_14122_lab,Reinforcing Steel site labor cost for 212.14122,1564590.3568760036,$,category_scale,"ref_212_14122_lab, scale_sup_str_V, adj_212_14122_lab, scale_ap1000",ce_212_1412_lab,0 +728,ce_212_14123_fac,Concrete factory equipment cost for 212.14123,0.0,$,,,ce_212_1412_fac,0 +729,ce_212_14123_mat,Concrete site material cost for 212.14123,492836.2763720937,$,category_scale,"ref_212_14123_mat, scale_sup_str_V, scale_ap1000",ce_212_1412_mat,0 +730,ce_212_14123_lab,Concrete site labor cost for 212.14123,965916.6708574004,$,category_scale,"ref_212_14123_lab, scale_sup_str_V, scale_ap1000",ce_212_1412_lab,0 +731,ce_212_14125_fac,Rubbing Surfaces factory equipment cost for 212.14125,0.0,$,,,ce_212_1412_fac,0 +732,ce_212_14125_mat,Rubbing Surfaces site material cost for 212.14125,7866.455541661565,$,category_scale,"ref_212_14125_mat, scale_sup_str_V, scale_ap1000",ce_212_1412_mat,0 +733,ce_212_14125_lab,Rubbing Surfaces site labor cost for 212.14125,133321.2491440316,$,category_scale,"ref_212_14125_lab, scale_sup_str_V, scale_ap1000",ce_212_1412_lab,0 +734,ce_212_14127_fac,Cadwelds factory equipment cost for 212.14127,0.0,$,,,ce_212_1412_fac,0 +735,ce_212_14127_mat,Cadwelds site material cost for 212.14127,0.0,$,category_scale,"ref_212_14127_mat, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1412_mat,0 +736,ce_212_14127_lab,Cadwelds site labor cost for 212.14127,0.0,$,category_scale,"ref_212_14127_lab, scale_sup_str_V, adj_none, scale_ap1000",ce_212_1412_lab,0 +737,ce_212_14128_fac,Construction Joints factory equipment cost for 212.14128,0.0,$,,,ce_212_1412_fac,0 +738,ce_212_14128_mat,Construction Joints site material cost for 212.14128,48509.80917790416,$,category_scale,"ref_212_14128_mat, scale_sup_str_V, scale_ap1000",ce_212_1412_mat,0 +739,ce_212_14128_lab,Construction Joints site labor cost for 212.14128,118094.74809118216,$,category_scale,"ref_212_14128_lab, scale_sup_str_V, scale_ap1000",ce_212_1412_lab,0 +740,ce_212_140_fac,Interior Concrete factory equipment cost for 212.140,3384358.55023979,$,category_scale,"ref_212_140_fac, scale_sup_const, scale_ap1000",,0 +741,ce_212_140_mat,Interior Concrete site material cost for 212.140,13289138.402661176,$,category_scale,"ref_212_140_mat, scale_sup_const, scale_ap1000",,0 +742,ce_212_140_lab,Interior Concrete site labor cost for 212.140,45514958.84916846,$,category_scale,"ref_212_140_lab, scale_sup_const, scale_ap1000",,0 +743,ce_212_1419_fac,Removable Plugs factory equipment cost for 212.1419,0.0,$,,,ce_212_141_fac,0 +744,ce_212_1419_mat,Removable Plugs site material cost for 212.1419,194726.24050509284,$,category_scale,"ref_212_1419_mat, scale_sup_str_V, scale_ap1000",ce_212_141_mat,0 +745,ce_212_1419_lab,Removable Plugs site labor cost for 212.1419,666606.2457201581,$,category_scale,"ref_212_1419_lab, scale_sup_str_V, scale_ap1000",ce_212_141_lab,0 +746,ce_212_142_fac,Structural & Miscellaneous Steel factory equipment cost for 212.142,0.0,$,,,,0 +747,ce_212_142_mat,Structural & Miscellaneous Steel site material cost for 212.142,3837058.018969012,$,category_scale,"ref_212_142_mat, scale_sup_const, scale_ap1000",,0 +748,ce_212_142_lab,Structural & Miscellaneous Steel site labor cost for 212.142,2923632.663465121,$,category_scale,"ref_212_142_lab, scale_sup_const, scale_ap1000",,0 +749,ce_212_149_fac,Painting factory equipment cost for 212.149,0.0,$,,,,0 +750,ce_212_149_mat,Painting site material cost for 212.149,2468990.6062221574,$,category_scale,"ref_212_149_mat, scale_sup_str_S, scale_ap1000",,0 +751,ce_212_149_lab,Painting site labor cost for 212.149,12605539.137800382,$,category_scale,"ref_212_149_lab, scale_sup_str_S, scale_ap1000",,0 +752,ce_213_141_fac,Concrete Work factory equipment cost for 213.141,0.0,$,,,,0 +753,ce_213_141_mat,Concrete Work site material cost for 213.141,473512.8412995845,$,category_scale,"ref_213_141_mat, scale_turb_gen_bldg_sup_vol, scale_ap1000",,0 +754,ce_213_141_lab,Concrete Work site labor cost for 213.141,1221163.2281852113,$,category_scale,"ref_213_141_lab, scale_turb_gen_bldg_sup_vol, scale_ap1000",,0 +755,ce_213_142_fac,Structural & Miscellaneous Steel factory equipment cost for 213.142,0.0,$,,,,0 +756,ce_213_142_mat,Structural & Miscellaneous Steel site material cost for 213.142,22438700.415805608,$,category_scale,"ref_213_142_mat, scale_bldg_V, scale_ap1000",,0 +757,ce_213_142_lab,Structural & Miscellaneous Steel site labor cost for 213.142,14169619.210507048,$,category_scale,"ref_213_142_lab, scale_bldg_V, scale_ap1000",,0 +758,ce_213_143_fac,Exterior Walls factory equipment cost for 213.143,0.0,$,,,,0 +759,ce_213_143_mat,Exterior Walls site material cost for 213.143,1819014.735324296,$,category_scale,"ref_213_143_mat, scale_turb_gen_bldg_sup_S, scale_ap1000",,0 +760,ce_213_143_lab,Exterior Walls site labor cost for 213.143,1575247.5631917254,$,category_scale,"ref_213_143_lab, scale_turb_gen_bldg_sup_S, scale_ap1000",,0 +761,ce_213_144_fac,Roof Deck factory equipment cost for 213.144,0.0,$,,,,0 +762,ce_213_144_mat,Roof Deck site material cost for 213.144,627619.9902490623,$,category_scale,"ref_213_144_mat, scale_sub_str_S, scale_ap1000",,0 +763,ce_213_144_lab,Roof Deck site labor cost for 213.144,604987.2644135082,$,category_scale,"ref_213_144_lab, scale_sub_str_S, scale_ap1000",,0 +764,ce_213_145_fac,Roofing & Flashing factory equipment cost for 213.145,0.0,$,,,,0 +765,ce_213_145_mat,Roofing & Flashing site material cost for 213.145,297638.9385733771,$,category_scale,"ref_213_145_mat, scale_sub_str_S, scale_ap1000",,0 +766,ce_213_145_lab,Roofing & Flashing site labor cost for 213.145,320601.8450655738,$,category_scale,"ref_213_145_lab, scale_sub_str_S, scale_ap1000",,0 +767,ce_213_146_fac,Interior Walls & Partition factory equipment cost for 213.146,0.0,$,,,,0 +768,ce_213_146_mat,Interior Walls & Partition site material cost for 213.146,260426.9110328309,$,category_scale,"ref_213_146_mat, scale_bldg_V, scale_ap1000",,0 +769,ce_213_146_lab,Interior Walls & Partition site labor cost for 213.146,407182.9200146566,$,category_scale,"ref_213_146_lab, scale_bldg_V, scale_ap1000",,0 +770,ce_213_147_fac,Doors & Windows factory equipment cost for 213.147,0.0,$,,,,0 +771,ce_213_147_mat,Doors & Windows site material cost for 213.147,903580.1334755552,$,category_scale,"ref_213_147_mat, scale_bldg_V, scale_ap1000",,0 +772,ce_213_147_lab,Doors & Windows site labor cost for 213.147,590330.5279731657,$,category_scale,"ref_213_147_lab, scale_bldg_V, scale_ap1000",,0 +773,ce_213_149_fac,Painting factory equipment cost for 213.149,0.0,$,,,,0 +774,ce_213_149_mat,Painting site material cost for 213.149,94462.52784401408,$,category_scale,"ref_213_149_mat, scale_turb_gen_bldg_sup_S, scale_ap1000",,0 +775,ce_213_149_lab,Painting site labor cost for 213.149,1639057.3147869715,$,category_scale,"ref_213_149_lab, scale_turb_gen_bldg_sup_S, scale_ap1000",,0 +776,ce_215_141_fac,Concrete Work factory equipment cost for 215.141,0.0,$,,,,0 +777,ce_215_141_mat,Concrete Work site material cost for 215.141,3262104.990817132,$,category_scale,"ref_215_141_mat, scale_pri_aux_bldg_sup_vol, scale_ap1000",,0 +778,ce_215_141_lab,Concrete Work site labor cost for 215.141,10367776.320793144,$,category_scale,"ref_215_141_lab, scale_pri_aux_bldg_sup_vol, scale_ap1000",,0 +779,ce_215_142_fac,Structural & Miscellaneous Steel factory equipment cost for 215.142,0.0,$,,,,0 +780,ce_215_142_mat,Structural & Miscellaneous Steel site material cost for 215.142,1085567.8241478077,$,category_scale,"ref_215_142_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +781,ce_215_142_lab,Structural & Miscellaneous Steel site labor cost for 215.142,683150.5168248869,$,category_scale,"ref_215_142_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +782,ce_215_145_fac,Roofing & Flashing factory equipment cost for 215.145,0.0,$,,,,0 +783,ce_215_145_mat,Roofing & Flashing site material cost for 215.145,38679.04266404173,$,category_scale,"ref_215_145_mat, scale_pri_aux_bldg_sub_S, scale_ap1000",,0 +784,ce_215_145_lab,Roofing & Flashing site labor cost for 215.145,41706.52092709427,$,category_scale,"ref_215_145_lab, scale_pri_aux_bldg_sub_S, scale_ap1000",,0 +785,ce_215_146_fac,Interior Walls & Partition factory equipment cost for 215.146,0.0,$,,,,0 +786,ce_215_146_mat,Interior Walls & Partition site material cost for 215.146,80622.38030974001,$,category_scale,"ref_215_146_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +787,ce_215_146_lab,Interior Walls & Partition site labor cost for 215.146,88142.44585117852,$,category_scale,"ref_215_146_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +788,ce_215_147_fac,Doors & Windows factory equipment cost for 215.147,0.0,$,,,,0 +789,ce_215_147_mat,Doors & Windows site material cost for 215.147,32509.13475523197,$,category_scale,"ref_215_147_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +790,ce_215_147_lab,Doors & Windows site labor cost for 215.147,30123.984768712413,$,category_scale,"ref_215_147_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +791,ce_215_149_fac,Painting factory equipment cost for 215.149,0.0,$,,,,0 +792,ce_215_149_mat,Painting site material cost for 215.149,55262.54872323232,$,category_scale,"ref_215_149_mat, scale_pri_aux_bldg_sup_S, scale_ap1000",,0 +793,ce_215_149_lab,Painting site labor cost for 215.149,261431.50646262625,$,category_scale,"ref_215_149_lab, scale_pri_aux_bldg_sup_S, scale_ap1000",,0 +794,ce_215_221_fac,Rotating Machinery factory equipment cost for 215.221,2521628.5440221345,$,category_scale,"ref_215_221_fac, scale_P, scale_ap1000",,0 +795,ce_215_221_mat,Rotating Machinery site material cost for 215.221,28864.40564110573,$,category_scale,"ref_215_221_mat, scale_P, scale_ap1000",,0 +796,ce_215_221_lab,Rotating Machinery site labor cost for 215.221,335031.1497269407,$,category_scale,"ref_215_221_lab, scale_P, scale_ap1000",,0 +797,ce_215_222_fac,Heat Transfer Equipment factory equipment cost for 215.222,1928702.285568636,$,category_scale,"ref_215_222_fac, scale_P, scale_ap1000",,0 +798,ce_215_222_mat,Heat Transfer Equipment site material cost for 215.222,28361.852968694733,$,category_scale,"ref_215_222_mat, scale_P, scale_ap1000",,0 +799,ce_215_222_lab,Heat Transfer Equipment site labor cost for 215.222,329297.08533923613,$,category_scale,"ref_215_222_lab, scale_P, scale_ap1000",,0 +800,ce_215_223_fac,Tanks & Pressure Vessels factory equipment cost for 215.223,39253.11776857916,$,category_scale,"ref_215_223_fac, scale_P, scale_ap1000",,0 +801,ce_215_223_mat,Tanks & Pressure Vessels site material cost for 215.223,2525.0959433458074,$,category_scale,"ref_215_223_mat, scale_P, scale_ap1000",,0 +802,ce_215_223_lab,Tanks & Pressure Vessels site labor cost for 215.223,30070.029282976266,$,category_scale,"ref_215_223_lab, scale_P, scale_ap1000",,0 +803,ce_215_224_fac,Purification & Filtration Equipment factory equipment cost for 215.224,468009.1189754314,$,category_scale,"ref_215_224_fac, scale_P, scale_ap1000",,0 +804,ce_215_224_mat,Purification & Filtration Equipment site material cost for 215.224,7880.519205779626,$,category_scale,"ref_215_224_mat, scale_P, scale_ap1000",,0 +805,ce_215_224_lab,Purification & Filtration Equipment site labor cost for 215.224,91473.00338756749,$,category_scale,"ref_215_224_lab, scale_P, scale_ap1000",,0 +806,ce_215_225_fac,Piping & Ductwork factory equipment cost for 215.225,207580.7802923052,$,category_scale,"ref_215_225_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +807,ce_215_225_mat,Piping & Ductwork site material cost for 215.225,409832.3108319993,$,category_scale,"ref_215_225_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +808,ce_215_225_lab,Piping & Ductwork site labor cost for 215.225,1860294.642882204,$,category_scale,"ref_215_225_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +809,ce_215_226_fac,Valves & Dampers factory equipment cost for 215.226,102810.59576480737,$,category_scale,"ref_215_226_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +810,ce_215_226_mat,Valves & Dampers site material cost for 215.226,3410.467256421423,$,category_scale,"ref_215_226_mat, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +811,ce_215_226_lab,Valves & Dampers site labor cost for 215.226,40207.10909078991,$,category_scale,"ref_215_226_lab, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +812,ce_215_227_fac,Piping & Miscellaneous Items factory equipment cost for 215.227,79866.59286784887,$,category_scale,"ref_215_227_fac, scale_pri_aux_bldg_bldg_vol, scale_ap1000",,0 +813,ce_215_227_mat,Piping & Miscellaneous Items site material cost for 215.227,0.0,$,,,,0 +814,ce_215_227_lab,Piping & Miscellaneous Items site labor cost for 215.227,0.0,$,,,,0 +815,ce_215_228_fac,Instrumentation & Control factory equipment cost for 215.228,27529.948177368948,$,category_scale,"ref_215_228_fac, scale_P, scale_ap1000",,0 +816,ce_215_228_mat,Instrumentation & Control site material cost for 215.228,1486.0760002230988,$,category_scale,"ref_215_228_mat, scale_P, scale_ap1000",,0 +817,ce_215_228_lab,Instrumentation & Control site labor cost for 215.228,17479.242180038895,$,category_scale,"ref_215_228_lab, scale_P, scale_ap1000",,0 +818,ce_216_141_fac,Concrete Work factory equipment cost for 216.141,0.0,$,,,,0 +819,ce_216_141_mat,Concrete Work site material cost for 216.141,1963645.6682412096,$,category_scale,"ref_216_141_mat, scale_waste_bldg_sup_vol, scale_ap1000",,0 +820,ce_216_141_lab,Concrete Work site labor cost for 216.141,6600126.849979317,$,category_scale,"ref_216_141_lab, scale_waste_bldg_sup_vol, scale_ap1000",,0 +821,ce_216_142_fac,Structural & Miscellaneous Steel factory equipment cost for 216.142,0.0,$,,,,0 +822,ce_216_142_mat,Structural & Miscellaneous Steel site material cost for 216.142,1086395.99424991,$,category_scale,"ref_216_142_mat, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +823,ce_216_142_lab,Structural & Miscellaneous Steel site labor cost for 216.142,669483.7152461205,$,category_scale,"ref_216_142_lab, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +824,ce_216_143_fac,Exterior Walls factory equipment cost for 216.143,0.0,$,,,,0 +825,ce_216_143_mat,Exterior Walls site material cost for 216.143,161001.8109203252,$,category_scale,"ref_216_143_mat, scale_waste_bldg_sup_S, scale_ap1000",,0 +826,ce_216_143_lab,Exterior Walls site labor cost for 216.143,133726.89152227642,$,category_scale,"ref_216_143_lab, scale_waste_bldg_sup_S, scale_ap1000",,0 +827,ce_216_144_fac,Roof Deck factory equipment cost for 216.144,0.0,$,,,,0 +828,ce_216_144_mat,Roof Deck site material cost for 216.144,221100.8038125,$,category_scale,"ref_216_144_mat, scale_waste_bldg_sub_S, scale_ap1000",,0 +829,ce_216_144_lab,Roof Deck site labor cost for 216.144,230682.6900375,$,category_scale,"ref_216_144_lab, scale_waste_bldg_sub_S, scale_ap1000",,0 +830,ce_216_145_fac,Roofing & Flashing factory equipment cost for 216.145,0.0,$,,,,0 +831,ce_216_145_mat,Roofing & Flashing site material cost for 216.145,96350.573535,$,category_scale,"ref_216_145_mat, scale_waste_bldg_sub_S, scale_ap1000",,0 +832,ce_216_145_lab,Roofing & Flashing site labor cost for 216.145,110519.1284325,$,category_scale,"ref_216_145_lab, scale_waste_bldg_sub_S, scale_ap1000",,0 +833,ce_216_146_fac,Interior Walls & Partition factory equipment cost for 216.146,0.0,$,,,,0 +834,ce_216_146_mat,Interior Walls & Partition site material cost for 216.146,1341.176696562556,$,category_scale,"ref_216_146_mat, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +835,ce_216_146_lab,Interior Walls & Partition site labor cost for 216.146,1453.1731563888388,$,category_scale,"ref_216_146_lab, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +836,ce_216_147_fac,Doors & Windows factory equipment cost for 216.147,0.0,$,,,,0 +837,ce_216_147_mat,Doors & Windows site material cost for 216.147,23702.15865118812,$,category_scale,"ref_216_147_mat, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +838,ce_216_147_lab,Doors & Windows site labor cost for 216.147,20971.64083239153,$,category_scale,"ref_216_147_lab, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +839,ce_216_148_fac,"Wall, Floor, & Ceiling Finishing factory equipment cost for 216.148",0.0,$,,,,0 +840,ce_216_148_mat,"Wall, Floor, & Ceiling Finishing site material cost for 216.148",184.851319979568,$,category_scale,"ref_216_148_mat, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +841,ce_216_148_lab,"Wall, Floor, & Ceiling Finishing site labor cost for 216.148",3325.2090900270023,$,category_scale,"ref_216_148_lab, scale_waste_bldg_bldg_vol, scale_ap1000",,0 +842,ce_216_149_fac,Painting factory equipment cost for 216.149,0.0,$,,,,0 +843,ce_216_149_mat,Painting site material cost for 216.149,25443.96597304065,$,category_scale,"ref_216_149_mat, scale_waste_bldg_sup_S, scale_ap1000",,0 +844,ce_216_149_lab,Painting site labor cost for 216.149,153517.38181317074,$,category_scale,"ref_216_149_lab, scale_waste_bldg_sup_S, scale_ap1000",,0 +845,ce_217_141_fac,Concrete Work factory equipment cost for 217.141,0.0,$,,,,0 +846,ce_217_141_mat,Concrete Work site material cost for 217.141,913766.7652189594,$,category_scale,"ref_217_141_mat, scale_fuel_stor_bldg_sup_vol, scale_ap1000",,0 +847,ce_217_141_lab,Concrete Work site labor cost for 217.141,3428635.069330594,$,category_scale,"ref_217_141_lab, scale_fuel_stor_bldg_sup_vol, scale_ap1000",,0 +848,ce_217_142_fac,Structural & Miscellaneous Steel factory equipment cost for 217.142,0.0,$,,,,0 +849,ce_217_142_mat,Structural & Miscellaneous Steel site material cost for 217.142,586413.659960625,$,category_scale,"ref_217_142_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",,0 +850,ce_217_142_lab,Structural & Miscellaneous Steel site labor cost for 217.142,415822.97264156246,$,category_scale,"ref_217_142_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",,0 +851,ce_217_145_fac,Roofing & Flashing factory equipment cost for 217.145,0.0,$,,,,0 +852,ce_217_145_mat,Roofing & Flashing site material cost for 217.145,36139.55483444445,$,category_scale,"ref_217_145_mat, scale_fuel_stor_bldg_sub_S, scale_ap1000",,0 +853,ce_217_145_lab,Roofing & Flashing site labor cost for 217.145,44419.90458111112,$,category_scale,"ref_217_145_lab, scale_fuel_stor_bldg_sub_S, scale_ap1000",,0 +854,ce_217_147_fac,Doors & Windows factory equipment cost for 217.147,0.0,$,,,,0 +855,ce_217_147_mat,Doors & Windows site material cost for 217.147,21447.69019509375,$,category_scale,"ref_217_147_mat, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",,0 +856,ce_217_147_lab,Doors & Windows site labor cost for 217.147,16254.212596125,$,category_scale,"ref_217_147_lab, scale_fuel_stor_bldg_bldg_vol, scale_ap1000",,0 +857,ce_217_149_fac,Painting factory equipment cost for 217.149,0.0,$,,,,0 +858,ce_217_149_mat,Painting site material cost for 217.149,13433.403855796876,$,category_scale,"ref_217_149_mat, scale_fuel_stor_bldg_sup_S, scale_ap1000",,0 +859,ce_217_149_lab,Painting site labor cost for 217.149,106400.80266187502,$,category_scale,"ref_217_149_lab, scale_fuel_stor_bldg_sup_S, scale_ap1000",,0 +860,ce_218A_13_fac,Substructure Concrete factory equipment cost for 218A.13,0.0,$,,,,0 +861,ce_218A_13_mat,Substructure Concrete site material cost for 218A.13,77495.37770125395,$,category_scale,"ref_218A_13_mat, scale_cr_dg_bldg_sub_vol, scale_ap1000",,0 +862,ce_218A_13_lab,Substructure Concrete site labor cost for 218A.13,134750.7765574603,$,category_scale,"ref_218A_13_lab, scale_cr_dg_bldg_sub_vol, scale_ap1000",,0 +863,ce_218A_14_fac,Superstructure factory equipment cost for 218A.14,0.0,$,sum_all,"ce_218A_141_fac, ce_218A_142_fac, ce_218A_145_fac, ce_218A_146_fac, ce_218A_147_fac, ce_218A_148_fac, ce_218A_149_fac",,0 +864,ce_218A_14_mat,Superstructure site material cost for 218A.14,772476.3988869898,$,sum_all,"ce_218A_141_mat, ce_218A_142_mat, ce_218A_145_mat, ce_218A_146_mat, ce_218A_147_mat, ce_218A_148_mat, ce_218A_149_mat",,0 +865,ce_218A_14_lab,Superstructure site labor cost for 218A.14,1661665.025356886,$,sum_all,"ce_218A_141_lab, ce_218A_142_lab, ce_218A_145_lab, ce_218A_146_lab, ce_218A_147_lab, ce_218A_148_lab, ce_218A_149_lab",,0 +866,ce_218A_141_fac,Concrete Work factory equipment cost for 218A.141,0.0,$,,,ce_218A_14_fac,0 +867,ce_218A_141_mat,Concrete Work site material cost for 218A.141,367725.8841529896,$,category_scale,"ref_218A_141_mat, scale_cr_dg_bldg_sup_vol, scale_ap1000",ce_218A_14_mat,0 +868,ce_218A_141_lab,Concrete Work site labor cost for 218A.141,1258072.831596794,$,category_scale,"ref_218A_141_lab, scale_cr_dg_bldg_sup_vol, scale_ap1000",ce_218A_14_lab,0 +869,ce_218A_142_fac,Structural & Miscellaneous Steel factory equipment cost for 218A.142,0.0,$,,,ce_218A_14_fac,0 +870,ce_218A_142_mat,Structural & Miscellaneous Steel site material cost for 218A.142,259502.7282345966,$,category_scale,"ref_218A_142_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_mat,0 +871,ce_218A_142_lab,Structural & Miscellaneous Steel site labor cost for 218A.142,163863.558401292,$,category_scale,"ref_218A_142_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_lab,0 +872,ce_218A_145_fac,Roofing & Flashing factory equipment cost for 218A.145,0.0,$,,,ce_218A_14_fac,0 +873,ce_218A_145_mat,Roofing & Flashing site material cost for 218A.145,27367.367255026456,$,category_scale,"ref_218A_145_mat, scale_cr_dg_bldg_sub_S, scale_ap1000",ce_218A_14_mat,0 +874,ce_218A_145_lab,Roofing & Flashing site labor cost for 218A.145,30723.48155449735,$,category_scale,"ref_218A_145_lab, scale_cr_dg_bldg_sub_S, scale_ap1000",ce_218A_14_lab,0 +875,ce_218A_146_fac,Interior Walls & Partition factory equipment cost for 218A.146,0.0,$,,,ce_218A_14_fac,0 +876,ce_218A_146_mat,Interior Walls & Partition site material cost for 218A.146,99298.67336306634,$,category_scale,"ref_218A_146_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_mat,0 +877,ce_218A_146_lab,Interior Walls & Partition site labor cost for 218A.146,135138.67742067183,$,category_scale,"ref_218A_146_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_lab,0 +878,ce_218A_147_fac,Doors & Windows factory equipment cost for 218A.147,0.0,$,,,ce_218A_14_fac,0 +879,ce_218A_147_mat,Doors & Windows site material cost for 218A.147,5247.427482334195,$,category_scale,"ref_218A_147_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_mat,0 +880,ce_218A_147_lab,Doors & Windows site labor cost for 218A.147,5200.369174619581,$,category_scale,"ref_218A_147_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_lab,0 +881,ce_218A_148_fac,"Wall, Floor, & Ceiling Finishing factory equipment cost for 218A.148",0.0,$,,,ce_218A_14_fac,0 +882,ce_218A_148_mat,"Wall, Floor, & Ceiling Finishing site material cost for 218A.148",6633.908162802182,$,category_scale,"ref_218A_148_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_mat,0 +883,ce_218A_148_lab,"Wall, Floor, & Ceiling Finishing site labor cost for 218A.148",13799.17403854149,$,category_scale,"ref_218A_148_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_14_lab,0 +884,ce_218A_149_fac,Painting factory equipment cost for 218A.149,0.0,$,,,ce_218A_14_fac,0 +885,ce_218A_149_mat,Painting site material cost for 218A.149,6700.410236174496,$,category_scale,"ref_218A_149_mat, scale_cr_dg_bldg_sup_S, scale_ap1000",ce_218A_14_mat,0 +886,ce_218A_149_lab,Painting site labor cost for 218A.149,54866.9331704698,$,category_scale,"ref_218A_149_lab, scale_cr_dg_bldg_sup_S, scale_ap1000",ce_218A_14_lab,0 +887,ce_218A_21_fac,Plumbing & Drains factory equipment cost for 218A.21,0.0,$,,,,0 +888,ce_218A_21_mat,Plumbing & Drains site material cost for 218A.21,35914.109014298025,$,category_scale,"ref_218A_21_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",,0 +889,ce_218A_21_lab,Plumbing & Drains site labor cost for 218A.21,128762.8626741315,$,category_scale,"ref_218A_21_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",,0 +890,ce_218A_23_fac,Special HVAC (Safety Related) factory equipment cost for 218A.23,2319565.4875418823,$,sum_all,"ce_218A_231_fac, ce_218A_232_fac, ce_218A_233_fac, ce_218A_234_fac, ce_218A_235_fac, ce_218A_236_fac, ce_218A_237_fac, ce_218A_238_fac",,0 +891,ce_218A_23_mat,Special HVAC (Safety Related) site material cost for 218A.23,101786.12605361892,$,sum_all,"ce_218A_231_mat, ce_218A_232_mat, ce_218A_233_mat, ce_218A_234_mat, ce_218A_235_mat, ce_218A_236_mat, ce_218A_237_mat, ce_218A_238_mat",,0 +892,ce_218A_23_lab,Special HVAC (Safety Related) site labor cost for 218A.23,874913.5481241005,$,sum_all,"ce_218A_231_lab, ce_218A_232_lab, ce_218A_233_lab, ce_218A_234_lab, ce_218A_235_lab, ce_218A_236_lab, ce_218A_237_lab, ce_218A_238_lab",,0 +893,ce_218A_231_fac,Rotating Machinery factory equipment cost for 218A.231,922959.8281254354,$,category_scale,"ref_218A_231_fac, scale_P, scale_ap1000",ce_218A_23_fac,0 +894,ce_218A_231_mat,Rotating Machinery site material cost for 218A.231,9442.77190127117,$,category_scale,"ref_218A_231_mat, scale_P, scale_ap1000",ce_218A_23_mat,0 +895,ce_218A_231_lab,Rotating Machinery site labor cost for 218A.231,114267.1180063949,$,category_scale,"ref_218A_231_lab, scale_P, scale_ap1000",ce_218A_23_lab,0 +896,ce_218A_232_fac,Heat Transfer Equipment factory equipment cost for 218A.232,798020.9223690351,$,category_scale,"ref_218A_232_fac, scale_P, scale_ap1000",ce_218A_23_fac,0 +897,ce_218A_232_mat,Heat Transfer Equipment site material cost for 218A.232,15906.29165252246,$,category_scale,"ref_218A_232_mat, scale_P, scale_ap1000",ce_218A_23_mat,0 +898,ce_218A_232_lab,Heat Transfer Equipment site labor cost for 218A.232,192375.8725939752,$,category_scale,"ref_218A_232_lab, scale_P, scale_ap1000",ce_218A_23_lab,0 +899,ce_218A_233_fac,Tanks & Pressure Vessels factory equipment cost for 218A.233,3057.9452506894927,$,category_scale,"ref_218A_233_fac, scale_P, scale_ap1000",ce_218A_23_fac,0 +900,ce_218A_233_mat,Tanks & Pressure Vessels site material cost for 218A.233,650.7581497215162,$,category_scale,"ref_218A_233_mat, scale_P, scale_ap1000",ce_218A_23_mat,0 +901,ce_218A_233_lab,Tanks & Pressure Vessels site labor cost for 218A.233,8070.741678574587,$,category_scale,"ref_218A_233_lab, scale_P, scale_ap1000",ce_218A_23_lab,0 +902,ce_218A_234_fac,Purification & Filtration Equipment factory equipment cost for 218A.234,192727.64181920947,$,category_scale,"ref_218A_234_fac, scale_P, scale_ap1000",ce_218A_23_fac,0 +903,ce_218A_234_mat,Purification & Filtration Equipment site material cost for 218A.234,6188.981152663588,$,category_scale,"ref_218A_234_mat, scale_P, scale_ap1000",ce_218A_23_mat,0 +904,ce_218A_234_lab,Purification & Filtration Equipment site labor cost for 218A.234,74801.14560150082,$,category_scale,"ref_218A_234_lab, scale_P, scale_ap1000",ce_218A_23_lab,0 +905,ce_218A_235_fac,Piping & Ductwork factory equipment cost for 218A.235,67692.11247774906,$,category_scale,"ref_218A_235_fac, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_fac,0 +906,ce_218A_235_mat,Piping & Ductwork site material cost for 218A.235,66188.91261269021,$,category_scale,"ref_218A_235_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_mat,0 +907,ce_218A_235_lab,Piping & Ductwork site labor cost for 218A.235,411174.41605225386,$,category_scale,"ref_218A_235_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_lab,0 +908,ce_218A_236_fac,Valves & Dampers factory equipment cost for 218A.236,14572.925980189491,$,category_scale,"ref_218A_236_fac, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_fac,0 +909,ce_218A_236_mat,Valves & Dampers site material cost for 218A.236,754.5375049095608,$,category_scale,"ref_218A_236_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_mat,0 +910,ce_218A_236_lab,Valves & Dampers site labor cost for 218A.236,9203.645713465405,$,category_scale,"ref_218A_236_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_lab,0 +911,ce_218A_237_fac,Piping & Miscellaneous Items factory equipment cost for 218A.237,1891.0770424921045,$,category_scale,"ref_218A_237_fac, scale_cr_dg_bldg_bldg_vol, scale_ap1000",ce_218A_23_fac,0 +912,ce_218A_237_mat,Piping & Miscellaneous Items site material cost for 218A.237,0.0,$,,,ce_218A_23_mat,0 +913,ce_218A_237_lab,Piping & Miscellaneous Items site labor cost for 218A.237,0.0,$,,,ce_218A_23_lab,0 +914,ce_218A_238_fac,Instrumentation & Control factory equipment cost for 218A.238,318643.0344770824,$,category_scale,"ref_218A_238_fac, scale_P, scale_ap1000",ce_218A_23_fac,0 +915,ce_218A_238_mat,Instrumentation & Control site material cost for 218A.238,2653.8730798404054,$,category_scale,"ref_218A_238_mat, scale_P, scale_ap1000",ce_218A_23_mat,0 +916,ce_218A_238_lab,Instrumentation & Control site labor cost for 218A.238,65020.608477935726,$,category_scale,"ref_218A_238_lab, scale_P, scale_ap1000",ce_218A_23_lab,0 +917,ce_218A_24_fac,Lighting & Service Power factory equipment cost for 218A.24,0.0,$,,,,0 +918,ce_218A_24_mat,Lighting & Service Power site material cost for 218A.24,33876.239427217915,$,category_scale,"ref_218A_24_mat, scale_cr_dg_bldg_bldg_vol, scale_ap1000",,0 +919,ce_218A_24_lab,Lighting & Service Power site labor cost for 218A.24,110446.59125179442,$,category_scale,"ref_218A_24_lab, scale_cr_dg_bldg_bldg_vol, scale_ap1000",,0 +920,ce_218B_21_fac,Plumbing & Drains factory equipment cost for 218B.21,0.0,$,,,,0 +921,ce_218B_21_mat,Plumbing & Drains site material cost for 218B.21,0.0,$,,,,0 +922,ce_218B_21_lab,Plumbing & Drains site labor cost for 218B.21,0.0,$,,,,0 +923,ce_218B_22_fac,"Heating, Ventilation, & Air Conditioning factory equipment cost for 218B.22",1859074.345697987,$,category_scale,"ref_218B_22_fac, scale_P, scale_ap1000",,0 +924,ce_218B_22_mat,"Heating, Ventilation, & Air Conditioning site material cost for 218B.22",455469.92767257954,$,category_scale,"ref_218B_22_mat, scale_P, scale_ap1000",,0 +925,ce_218B_22_lab,"Heating, Ventilation, & Air Conditioning site labor cost for 218B.22",3119188.467255361,$,category_scale,"ref_218B_22_lab, scale_P, scale_ap1000",,0 +926,ce_218B_23_fac,Special HVAC (Safety Related) factory equipment cost for 218B.23,23677.654763305312,$,category_scale,"ref_218B_23_fac, scale_P, scale_ap1000",,0 +927,ce_218B_23_mat,Special HVAC (Safety Related) site material cost for 218B.23,1725.7570691534193,$,category_scale,"ref_218B_23_mat, scale_P, scale_ap1000",,0 +928,ce_218B_23_lab,Special HVAC (Safety Related) site labor cost for 218B.23,23068.87721885645,$,category_scale,"ref_218B_23_lab, scale_P, scale_ap1000",,0 +929,ce_218B_24_fac,Lighting & Service Power factory equipment cost for 218B.24,0.0,$,,,,0 +930,ce_218B_24_mat,Lighting & Service Power site material cost for 218B.24,0.0,$,category_scale,"ref_218B_24_mat, scale_adm_bldg_bldg_vol, scale_ap1000",,0 +931,ce_218B_24_lab,Lighting & Service Power site labor cost for 218B.24,0.0,$,category_scale,"ref_218B_24_lab, scale_adm_bldg_bldg_vol, scale_ap1000",,0 +932,ce_218B_25_fac,Elevator factory equipment cost for 218B.25,88303.82096,$,category_scale,"ref_218B_25_fac, scale_ap1000",,0 +933,ce_218B_25_mat,Elevator site material cost for 218B.25,3586.127801,$,category_scale,"ref_218B_25_mat, scale_ap1000",,0 +934,ce_218B_25_lab,Elevator site labor cost for 218B.25,45810.80044,$,category_scale,"ref_218B_25_lab, scale_ap1000",,0 +935,ce_222_111_fac,Rotating Machinery factory equipment cost for 222.111,89028940.41572173,$,category_scale,"ref_222_111_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25, scale_ap1000",,0 +936,ce_222_111_mat,Rotating Machinery site material cost for 222.111,332843.02111349395,$,category_scale,"ref_222_111_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25, scale_ap1000",,0 +937,ce_222_111_lab,Rotating Machinery site labor cost for 222.111,3060334.6829829933,$,category_scale,"ref_222_111_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25, scale_ap1000",,0 +938,ce_222_119_fac,Foundations/Skids factory equipment cost for 222.119,2682485.9979166314,$,category_scale,"ref_222_119_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25, scale_ap1000",,0 +939,ce_222_119_mat,Foundations/Skids site material cost for 222.119,389873.4372256505,$,category_scale,"ref_222_119_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25, scale_ap1000",,0 +940,ce_222_119_lab,Foundations/Skids site labor cost for 222.119,3633958.8392127496,$,category_scale,"ref_222_119_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25, scale_ap1000",,0 +941,ce_222_132_fac,Heat Transfer Equipment factory equipment cost for 222.132,149609146.48186994,$,category_scale,"ref_222_132_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half, scale_ap1000",,0 +942,ce_222_132_mat,Heat Transfer Equipment site material cost for 222.132,449388.9889203872,$,category_scale,"ref_222_132_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half, scale_ap1000",,0 +943,ce_222_132_lab,Heat Transfer Equipment site labor cost for 222.132,4109347.55865987,$,category_scale,"ref_222_132_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half, scale_ap1000",,0 +944,ce_222_139_fac,Foundations/Skids factory equipment cost for 222.139,74901.1765732484,$,category_scale,"ref_222_139_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half, scale_ap1000",,0 +945,ce_222_139_mat,Foundations/Skids site material cost for 222.139,63614.80492704986,$,category_scale,"ref_222_139_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half, scale_ap1000",,0 +946,ce_222_139_lab,Foundations/Skids site labor cost for 222.139,617654.1352943376,$,category_scale,"ref_222_139_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half, scale_ap1000",,0 +947,ce_225_111_fac,New & Spent Fuel Crane factory equipment cost for 225.111,132640.43591165225,$,category_scale,"ref_225_111_fac, scale_frm_fuel_crane_cap, f_simp_fuel_hndl, scale_ap1000",,0 +948,ce_225_111_mat,New & Spent Fuel Crane site material cost for 225.111,6365.745276305703,$,category_scale,"ref_225_111_mat, scale_frm_fuel_crane_cap, f_simp_fuel_hndl, scale_ap1000",,0 +949,ce_225_111_lab,New & Spent Fuel Crane site labor cost for 225.111,79784.25381114653,$,category_scale,"ref_225_111_lab, scale_frm_fuel_crane_cap, f_simp_fuel_hndl, scale_ap1000",,0 +950,ce_225_112_fac,Monorails & Hoists factory equipment cost for 225.112,16525.241407999998,$,category_scale,"ref_225_112_fac, f_simp_fuel_hndl, scale_ap1000",,0 +951,ce_225_112_mat,Monorails & Hoists site material cost for 225.112,1183.3043071200002,$,category_scale,"ref_225_112_mat, f_simp_fuel_hndl, scale_ap1000",,0 +952,ce_225_112_lab,Monorails & Hoists site labor cost for 225.112,14840.091416800002,$,category_scale,"ref_225_112_lab, f_simp_fuel_hndl, scale_ap1000",,0 +953,ce_225_113_fac,New Fuel Elevator factory equipment cost for 225.113,40706.8958764,$,category_scale,"ref_225_113_fac, f_simp_fuel_hndl, scale_ap1000",,0 +954,ce_225_113_mat,New Fuel Elevator site material cost for 225.113,5866.4106696,$,category_scale,"ref_225_113_mat, f_simp_fuel_hndl, scale_ap1000",,0 +955,ce_225_113_lab,New Fuel Elevator site labor cost for 225.113,74200.457084,$,category_scale,"ref_225_113_lab, f_simp_fuel_hndl, scale_ap1000",,0 +956,ce_225_114_fac,Spent Fuel Cask Crane factory equipment cost for 225.114,742541.5094717735,$,category_scale,"ref_225_114_fac, scale_frm_fuel_cask_cap, f_simp_fuel_hndl, scale_ap1000",,0 +957,ce_225_114_mat,Spent Fuel Cask Crane site material cost for 225.114,16445.0014655645,$,category_scale,"ref_225_114_mat, scale_frm_fuel_cask_cap, f_simp_fuel_hndl, scale_ap1000",,0 +958,ce_225_114_lab,Spent Fuel Cask Crane site labor cost for 225.114,206143.6122265231,$,category_scale,"ref_225_114_lab, scale_frm_fuel_cask_cap, f_simp_fuel_hndl, scale_ap1000",,0 +959,scale_ap1000,AP1000 reference calibration factor applied to calculated direct cost elements,2.8540789982106554,1,,,"ce_211_711_mat, ce_211_711_lab, ce_211_712_fac, ce_211_712_mat, ce_211_712_lab, ce_212_14111_mat, ce_212_14111_lab, ce_212_14112_mat, ce_212_14112_lab, ce_212_14113_mat, ce_212_14113_lab, ce_212_14114_mat, ce_212_14114_lab, ce_212_14115_mat, ce_212_14115_lab, ce_212_14116_mat, ce_212_14116_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14118_mat, ce_212_14118_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14122_mat, ce_212_14122_lab, ce_212_14123_mat, ce_212_14123_lab, ce_212_14125_mat, ce_212_14125_lab, ce_212_14127_mat, ce_212_14127_lab, ce_212_14128_mat, ce_212_14128_lab, ce_212_140_fac, ce_212_140_mat, ce_212_140_lab, ce_212_1419_mat, ce_212_1419_lab, ce_212_142_mat, ce_212_142_lab, ce_212_149_mat, ce_212_149_lab, ce_213_141_mat, ce_213_141_lab, ce_213_142_mat, ce_213_142_lab, ce_213_143_mat, ce_213_143_lab, ce_213_144_mat, ce_213_144_lab, ce_213_145_mat, ce_213_145_lab, ce_213_146_mat, ce_213_146_lab, ce_213_147_mat, ce_213_147_lab, ce_213_149_mat, ce_213_149_lab, ce_215_141_mat, ce_215_141_lab, ce_215_142_mat, ce_215_142_lab, ce_215_145_mat, ce_215_145_lab, ce_215_146_mat, ce_215_146_lab, ce_215_147_mat, ce_215_147_lab, ce_215_149_mat, ce_215_149_lab, ce_215_221_fac, ce_215_221_mat, ce_215_221_lab, ce_215_222_fac, ce_215_222_mat, ce_215_222_lab, ce_215_223_fac, ce_215_223_mat, ce_215_223_lab, ce_215_224_fac, ce_215_224_mat, ce_215_224_lab, ce_215_225_fac, ce_215_225_mat, ce_215_225_lab, ce_215_226_fac, ce_215_226_mat, ce_215_226_lab, ce_215_227_fac, ce_215_228_fac, ce_215_228_mat, ce_215_228_lab, ce_216_141_mat, ce_216_141_lab, ce_216_142_mat, ce_216_142_lab, ce_216_143_mat, ce_216_143_lab, ce_216_144_mat, ce_216_144_lab, ce_216_145_mat, ce_216_145_lab, ce_216_146_mat, ce_216_146_lab, ce_216_147_mat, ce_216_147_lab, ce_216_148_mat, ce_216_148_lab, ce_216_149_mat, ce_216_149_lab, ce_217_141_mat, ce_217_141_lab, ce_217_142_mat, ce_217_142_lab, ce_217_145_mat, ce_217_145_lab, ce_217_147_mat, ce_217_147_lab, ce_217_149_mat, ce_217_149_lab, ce_218A_13_mat, ce_218A_13_lab, ce_218A_141_mat, ce_218A_141_lab, ce_218A_142_mat, ce_218A_142_lab, ce_218A_145_mat, ce_218A_145_lab, ce_218A_146_mat, ce_218A_146_lab, ce_218A_147_mat, ce_218A_147_lab, ce_218A_148_mat, ce_218A_148_lab, ce_218A_149_mat, ce_218A_149_lab, ce_218A_21_mat, ce_218A_21_lab, ce_218A_231_fac, ce_218A_231_mat, ce_218A_231_lab, ce_218A_232_fac, ce_218A_232_mat, ce_218A_232_lab, ce_218A_233_fac, ce_218A_233_mat, ce_218A_233_lab, ce_218A_234_fac, ce_218A_234_mat, ce_218A_234_lab, ce_218A_235_fac, ce_218A_235_mat, ce_218A_235_lab, ce_218A_236_fac, ce_218A_236_mat, ce_218A_236_lab, ce_218A_237_fac, ce_218A_238_fac, ce_218A_238_mat, ce_218A_238_lab, ce_218A_24_mat, ce_218A_24_lab, ce_218B_22_fac, ce_218B_22_mat, ce_218B_22_lab, ce_218B_23_fac, ce_218B_23_mat, ce_218B_23_lab, ce_218B_24_mat, ce_218B_24_lab, ce_218B_25_fac, ce_218B_25_mat, ce_218B_25_lab, ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab, ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab, ce_225_111_fac, ce_225_111_mat, ce_225_111_lab, ce_225_112_fac, ce_225_112_mat, ce_225_112_lab, ce_225_113_fac, ce_225_113_mat, ce_225_113_lab, ce_225_114_fac, ce_225_114_mat, ce_225_114_lab",0 diff --git a/tutorial/accert/heatPipeFR.xlsx b/tutorial/accert/ref_tables/heatPipeFR.xlsx similarity index 100% rename from tutorial/accert/heatPipeFR.xlsx rename to tutorial/accert/ref_tables/heatPipeFR.xlsx diff --git a/tutorial/accert/ref_tables/lpsr_direct_account.csv b/tutorial/accert/ref_tables/lpsr_direct_account.csv new file mode 100644 index 0000000..9625030 --- /dev/null +++ b/tutorial/accert/ref_tables/lpsr_direct_account.csv @@ -0,0 +1,163 @@ +ind,code_of_account,account_description,total_cost,level,supaccount,review_status,prn,gncoa,gn_level,gn_supaccount,gn_ind +1,2,Total Direct Cost,2338310525.947884,0,,Unchanged,,,,, +2,21,Structures and Improvements,656326485.7153728,1,2,Unchanged,,,,, +3,211,Yardwork,59137292.0123008,2,21,Unchanged,,,,, +4,211.1,General Yardwork,7319997.973758064,3,211,Unchanged,,,,, +5,211.4,Railroads,8682056.613028087,3,211,Unchanged,,,,, +6,211.7,Structure Associated Yardwork,43135237.42551465,3,211,Unchanged,,,,, +7,211.71,Cut & Fill,43135237.42551465,4,211.7,Unchanged,,,,, +8,212,Reactor Containment Building,431107369.20895857,2,21,Unchanged,,,,, +9,212.1,Building Structure,400468596.7134189,3,212,Unchanged,,,,, +10,212.13,Substructure Concrete,19194314.952914417,4,212.1,Unchanged,,,,, +11,212.14,Superstructure,107239817.06604256,4,212.1,Unchanged,,,,, +12,212.15,Containment Liner,274034464.6944618,4,212.1,Unchanged,,,,, +13,212.2,Building Services,12772772.49553962,3,212,Unchanged,,,,, +14,212.21,Plumbing & Drains,1411250.2675101166,4,212.2,Unchanged,,,,, +15,212.22,"Heating, Ventilation, & Air Conditioning",314810.15433587646,4,212.2,Unchanged,,,,, +16,212.23,Safety HVAC,5894400.965104541,4,212.2,Unchanged,,,,, +17,212.24,Lighting & Service Power,4832660.445456088,4,212.2,Unchanged,,,,, +18,212.25,Elevator,319650.663133,4,212.2,Unchanged,,,,, +19,212.3,Passive cooling pool,17866000.0,3,212,Unchanged,,,,, +20,213,Turbine Room & Heater Bay,71641140.8483154,2,21,Unchanged,,,,, +21,213.1,Building Structure,61826277.8233022,3,213,Unchanged,,,,, +22,213.13,Substructure Concrete,14383131.455560014,4,213.1,Unchanged,,,,, +23,213.14,Superstructure,47443146.3677422,4,213.1,Unchanged,,,,, +24,213.2,Building Services,9814863.02501319,3,213,Unchanged,,,,, +25,213.21,Plumbing & Drains,4426429.434418011,4,213.2,Unchanged,,,,, +26,213.22,"Heating, Ventilation, & Air Conditioning",3195247.236081393,4,213.2,Unchanged,,,,, +27,213.24,Lighting & Service Power,1857490.2488907848,4,213.2,Unchanged,,,,, +28,213.25,Elevator,335696.10562299995,4,213.2,Unchanged,,,,, +29,214,Security Building,4533007.147299999,2,21,Unchanged,,,,, +30,215,Primary Auxiliary Building & Tunnels,29120431.91273316,2,21,Unchanged,,,,, +31,215.1,Building Structure,17411915.899924144,3,215,Unchanged,,,,, +32,215.13,Substructure Concrete,1384838.6828793203,4,215.1,Unchanged,,,,, +33,215.14,Superstructure,16027077.217044825,4,215.1,Unchanged,,,,, +34,215.2,Building Services,11708516.012809014,3,215,Unchanged,,,,, +35,215.21,Plumbing & Drains,697738.8282390331,4,215.2,Unchanged,,,,, +36,215.22,"Heating, Ventilation, & Air Conditioning",8561593.973174434,4,215.2,Unchanged,,,,, +37,215.23,Special HVAC (Safety Related),1297927.8387452168,4,215.2,Unchanged,,,,, +38,215.24,Lighting & Service Power,660602.7939103306,4,215.2,Unchanged,,,,, +39,215.25,Elevator,490652.57874,4,215.2,Unchanged,,,,, +40,216,Waste Process Building,21255175.082688387,2,21,Unchanged,,,,, +41,216.1,Building Structure,15489219.846598754,3,216,Unchanged,,,,, +42,216.13,Substructure Concrete,3986246.163089349,4,216.1,Unchanged,,,,, +43,216.14,Superstructure,11502973.683509406,4,216.1,Unchanged,,,,, +44,216.2,Building Services,5765955.236089631,3,216,Unchanged,,,,, +45,216.21,Plumbing & Drains,482566.9497370476,4,216.2,Unchanged,,,,, +46,216.22,"Heating, Ventilation, & Air Conditioning",4343215.661372593,4,216.2,Unchanged,,,,, +47,216.24,Lighting & Service Power,392363.125809991,4,216.2,Unchanged,,,,, +48,216.25,Elevator,547809.49917,4,216.2,Unchanged,,,,, +49,217,Fuel Storage Building,19341291.34172128,2,21,Unchanged,,,,, +50,217.1,Building Structure,6306222.219694665,3,217,Unchanged,,,,, +51,217.13,Substructure Concrete,723488.1838184779,4,217.1,Unchanged,,,,, +52,217.3,Storage Pool Liner - S.S.,8575680.269124322,3,217,Unchanged,,,,, +53,217.14,Superstructure,5582734.035876188,4,217.1,Unchanged,,,,, +54,217.2,Building Services,4459388.852902289,3,217,Unchanged,,,,, +55,217.21,Plumbing & Drains,334929.7644414094,4,217.2,Unchanged,,,,, +56,217.22,"Heating, Ventilation, & Air Conditioning",1703201.7054594418,4,217.2,Unchanged,,,,, +57,217.23,Special HVAC (Safety Related),2157020.6809670622,4,217.2,Unchanged,,,,, +58,217.24,Lighting & Service Power,264236.70203437505,4,217.2,Unchanged,,,,, +59,218,Other Structures,20190778.16135531,2,21,Unchanged,,,,, +60,218A,Control Room/D-G Building,6251652.542589634,3,218,Unchanged,,,,, +61,218A.1,Building Structure,2646387.5785025903,4,218A,Unchanged,,,,, +62,218A.2,Building Services,3605264.964087044,4,218A,Unchanged,,,,, +63,218B,Administrative & Service Building,5619905.778878241,3,218,Unchanged,,,,, +64,218B.1,Building Structure,0.0,4,218B,Unchanged,,,,, +65,218B.2,Building Services,5619905.778878241,4,218B,Unchanged,,,,, +66,218D,"Fire Pump House, Including Foundations",1225821.40974,3,218,Unchanged,,,,, +67,218E,Emergency Feed Pump Building,163049.45128853843,3,218,Unchanged,,,,, +68,218F,Manway Tunnels (RCA Tunnels),2621600.9190679085,3,218,Unchanged,,,,, +69,218G,Electrical Tunnels,0.0,3,218,Unchanged,,,,, +70,218H,Non-essential SWGR Building,0.0,3,218,Unchanged,,,,, +71,218J,Main Steam & Feedwater Pipe Enclosure,605234.756415548,3,218,Unchanged,,,,, +72,218K,Pipe Tunnels,902233.7059445916,3,218,Unchanged,,,,, +73,218L,Technical Support Center,2283037.7899,3,218,Unchanged,,,,, +74,218P,Containment EQ Hatch Missile Shield,0.0,3,218,Unchanged,,,,, +75,218S,Waste Water Treatment,0.0,3,218,Unchanged,,,,, +76,218T,Ultimate Heat Sink Structure,278083.8675008453,3,218,Unchanged,,,,, +77,218V,Control Room Emergency Air Intake Structure,240157.94003,3,218,Unchanged,,,,, +78,22,Reactor Plant Equipment,693240693.6507597,1,2,Unchanged,,,,, +79,221,Reactor Equipment,152990558.93087512,2,22,Unchanged,,,,, +80,221.1,Reactor Vessel + Accessory,68200667.75613587,3,221,Unchanged,,,,, +81,221.3,Vessel Internals,47561513.53942345,3,221,Unchanged,,,,, +82,221.2,Reactor Control Devices,37228377.63531579,3,221,Unchanged,,,,, +83,222,Main Heat Transfer Transport System ,281538009.9207475,2,22,Unchanged,,,,, +84,222.1,Reactor Core Coolant System,281538009.9207475,3,222,Unchanged,,,,, +85,222.11,Fluid Circulation Drive System,99128436.39417323,4,222.1,Unchanged,,,,, +86,222.12,Reactor Coolant Piping System,18098571.47155,4,222.1,Unchanged,,,,, +87,222.13,Steam Generator Equipment,154924053.14624482,4,222.1,Unchanged,,,,, +88,222.14,Pressurizing System,9386948.908779489,4,222.1,Unchanged,,,,, +89,223,Safeguards System,51447202.163238384,2,22,Unchanged,,,,, +90,223.1,Residual Heat Removal System,12335306.105282685,3,223,Unchanged,,,,, +91,223.3,Safety Injection System,22862341.80648298,3,223,Unchanged,,,,, +92,223.4,Containment Spray System,14017541.374539675,3,223,Unchanged,,,,, +93,223.5,Combustible Gas Control System,2232012.876933049,3,223,Unchanged,,,,, +94,224,Radwaste Processing,47464937.19702515,2,22,Unchanged,,,,, +95,224.1,Liquid Waste System,28819285.92737037,3,224,Unchanged,,,,, +96,224.2,Rad Gas Waste Processing,2903466.4261579304,3,224,Unchanged,,,,, +97,224.3,Solid Waste System,15742184.843496855,3,224,Unchanged,,,,, +98,225,Fuel Handling & Storage,5271328.042463562,2,22,Unchanged,,,,, +99,225.1,Fuel Handling Tools & Equipment,2322204.7763088457,3,225,Unchanged,,,,, +100,225.11,Cranes & Hoists,1337242.9589248856,4,225.1,Unchanged,,,,, +101,225.12,Fuel Handling Tools,184811.72074664003,4,225.1,Unchanged,,,,, +102,225.13,Transfer Systems,800150.0966373199,4,225.1,Unchanged,,,,, +103,225.3,Service Platforms,198191.026982,3,225,Unchanged,,,,, +104,225.4,"Fuel Storage, Cleaning, & Inspection Equipment",2750932.239172716,3,225,Unchanged,,,,, +105,226,Other Reactor Plant Equipment,76043578.90417053,2,22,Unchanged,,,,, +106,226.1,Inert Gas System,2270075.0356,3,226,Unchanged,,,,, +107,226.3,Reactor Makeup Water System,2822620.1612168,3,226,Unchanged,,,,, +108,226.4,Coolant Treatment & Recycle,28122702.228135794,3,226,Unchanged,,,,, +109,226.6,Fluid Leak Detection System,239335.20777,3,226,Unchanged,,,,, +110,226.7,Auxiliary Cooling System,36274394.237935446,3,226,Unchanged,,,,, +111,226.71,Nuclear Service Water System,22632457.819555257,4,226.7,Unchanged,,,,, +112,226.72,Primary Component Cooling Water,13641936.418380192,4,226.7,Unchanged,,,,, +113,226.8,Maintenance Equipment,5115519.892905,3,226,Unchanged,,,,, +114,226.9,Sampling Equipment,1198932.1406075,3,226,Unchanged,,,,, +115,227,Reactor Instrumentation & Control,58121987.53983937,2,22,Unchanged,,,,, +116,227.1,"Benchboard, Panels, & Racks",8898387.80155479,3,227,Unchanged,,,,, +117,227.11,NSS Control Board,3351758.12443,4,227.1,Unchanged,,,,, +118,227.15,HVAC Panels,355599.127029,4,227.1,Unchanged,,,,, +119,227.16,Radwaste Panels & Racks,1445228.69477,4,227.1,Unchanged,,,,, +120,227.17,Local Panels & Cabinets,1408990.85077,4,227.1,Unchanged,,,,, +121,227.18,Instrument Ranks,1476339.54271,4,227.1,Unchanged,,,,, +122,227.19,Alarm System,860471.4618457895,4,227.1,Unchanged,,,,, +123,227.2,Process Computer,7579213.93069,3,227,Unchanged,,,,, +124,227.3,Monitoring Systems,9532951.427863,3,227,Unchanged,,,,, +125,227.4,Plant Control Systems,9165186.129773684,3,227,Unchanged,,,,, +126,227.5,Reactor Plant I&C Tubing & Fitting,12388807.802621054,3,227,Unchanged,,,,, +127,227.9,TMI Instrumentation,10557440.44733684,3,227,Unchanged,,,,, +128,228,Reactor Plant Miscellaneous Items,20363090.952400003,2,22,Unchanged,,,,, +129,229,NuScale Equipment,0.0,2,22,Unchanged,,,,, +130,23,Turbine Plant Equipment,582071127.8542142,1,2,Unchanged,,,,, +131,24,Electric Plant Equipment,145323497.9652463,1,2,Unchanged,,,,, +132,241,Switchgear,14219466.110685391,2,24,Unchanged,,,,, +133,242,Station Service Equipment,11822004.87731828,2,24,Unchanged,,,,, +134,243,Switchboards,3838837.4820732,2,24,Unchanged,,,,, +135,244,Protective Equipment,11024782.82696411,2,24,Unchanged,,,,, +136,245,Electrical Structure & Wiring Container,59454331.82829604,2,24,Unchanged,,,,, +137,246,Power & Control Wiring,44964074.83990929,2,24,Unchanged,,,,, +138,25,Miscellaneous Plant Equipment,130191318.13610315,1,2,Unchanged,,,,, +139,251,Transportation & Lift Equipment,13836789.422923671,2,25,Unchanged,,,,, +140,251.1,Cranes & Hoists,13836789.422923671,3,251,Unchanged,,,,, +141,251.11,Turbine Building Crane,4572276.835791534,4,251.1,Unchanged,,,,, +142,251.12,Reactor Containment Building Crane,6913860.239980926,4,251.1,Unchanged,,,,, +143,251.16,"Miscellaneous Cranes, Hoists, & Monorails",1303643.68226,4,251.1,Unchanged,,,,, +144,251.17,Diesel Building Cranes,1047008.6648912106,4,251.1,Unchanged,,,,, +145,252,"Air, Water, & Steam Service System",91393183.84258994,2,25,Unchanged,,,,, +146,252.1,Air Systems,19732019.795681834,3,252,Unchanged,,,,, +147,252.2,Water Systems,58451713.05875029,3,252,Unchanged,,,,, +148,252.3,Auxiliary Steam System,12454242.347327825,3,252,Unchanged,,,,, +149,252.4,Plant Fuel Oil System,755208.64083,3,252,Unchanged,,,,, +150,253,Communications Equipment,13065286.064605149,2,25,Unchanged,,,,, +151,254,Furnishings & Fixtures,5220797.307084402,2,25,Unchanged,,,,, +152,255,Waste Water Treatment Equipment,6675261.4989,2,25,Unchanged,,,,, +153,26,Main Condenser Heat Reject System,131157402.6261874,1,2,Unchanged,,,,, +154,261,Structures,13486482.692105267,2,26,Unchanged,,,,, +155,262,Mechanical Equipment,117670919.93408212,2,26,Unchanged,,,,, +156,262.1,Heat Rejection System,117670919.93408212,3,262,Unchanged,,,,, +157,262.11,Water Intake Equipment,1153118.5216650292,4,262.1,Unchanged,,,,, +158,262.12,Circulating Water System,37384462.356,4,262.1,Unchanged,,,,, +159,262.13,Cooling Towers,75501373.51504835,4,262.1,Unchanged,,,,, +160,262.14,Cooling Tower Basins,248424.49976584443,4,262.1,Unchanged,,,,, +161,262.15,Main Cooling Tower Makeup & Blowdown System,3383541.0416028965,4,262.1,Unchanged,,,,, +162,219,Reactor Shield Building,0.0,2,21,Unchanged,,,,, diff --git a/tutorial/accert/ref_tables/lpsr_direct_algorithms.csv b/tutorial/accert/ref_tables/lpsr_direct_algorithms.csv new file mode 100644 index 0000000..72a8b36 --- /dev/null +++ b/tutorial/accert/ref_tables/lpsr_direct_algorithms.csv @@ -0,0 +1,32 @@ +ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units,variables,constants +1,category_scale,c,Scale a reference cost by one scale factor and optional multipliers/count/adjustment factors.,LPSRDirectCostFunc,ref * scale * optional_multipliers,$,"ref, scale, optional_multipliers", +2,cal_sup_str_S,v,Calculate cylinder-with-dome superstructure S for the containment structure.,LPSRDirectCostFunc,pi*D^2/2 + pi*D*H,m^2,"cont_D_D, cont_H_H", +3,formula_scale_flow_rate,v,Flow Rate direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +4,formula_scale_fuel_cask_capacity,v,Fuel Cask Capacity direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +5,formula_scale_fuel_crane_capacity,v,Fuel Crane Capacity direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +6,formula_scale_ht_surface_S,v,Ht Surface Area direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +7,formula_scale_pressurizer_mass,v,Pressurizer Mass direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +8,formula_scale_surface_S,v,Surface Area direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +9,formula_scale_surface_S_9_71886e_06,v,Surface Area 9 71886E 06 direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +10,formula_scale_vessel_mass,v,Vessel Mass direct formula scale.,LPSRDirectCostFunc,unit_cost_coefficient * input_unit_value / reference_direct_cost,1,"unit_cost_coefficient, input_unit_value, reference_direct_cost", +11,scale_law_admin_bldg,v,Admin Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +12,scale_law_bldg_V,v,Building Volume scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +13,scale_law_containment,v,Containment scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +14,scale_law_control_dg_bldg,v,Control Dg Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +15,scale_law_elec_P,v,Electric Power scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +16,scale_law_electrical_bldg,v,Electrical Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +17,scale_law_flow_rate,v,Flow Rate scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +18,scale_law_fuel_storage,v,Fuel Storage scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +19,scale_law_heat_rejection,v,Heat Rejection scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +20,scale_law_piping_mass,v,Piping Mass scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +21,scale_law_primary_aux_bldg,v,Primary Aux Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +22,scale_law_reactor_equipment,v,Reactor Equipment scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +23,scale_law_site_S,v,Site Area scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +24,scale_law_turbine_bldg,v,Turbine Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +25,scale_law_turbine_equipment,v,Turbine Equipment scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +26,scale_law_V_of_212_213_215_216_217,v,Volume Of 212 213 215 216 217 scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +27,scale_law_waste_bldg,v,Waste Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +28,scale_law_wastewater_bldg,v,Wastewater Bldg scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +29,scale_law_power,v,Power scale law.,LPSRDirectCostFunc,(input_unit_value / reference_unit_value)^exponent,1,"input_unit_value, reference_unit_value, exponent", +30,sum_all,c/v,Sum all supplied child cost elements or intermediate variables.,LPSRDirectCostFunc,sum(values),$,values, +31,calc_rej_th_P,v,Rejected thermal power = thermal power - electric power.,LPSRDirectCostFunc,rx_P - elec_P,MWt,"rx_P, elec_P", diff --git a/tutorial/accert/ref_tables/lpsr_direct_cost_elements.csv b/tutorial/accert/ref_tables/lpsr_direct_cost_elements.csv new file mode 100644 index 0000000..6b260a1 --- /dev/null +++ b/tutorial/accert/ref_tables/lpsr_direct_cost_elements.csv @@ -0,0 +1,487 @@ +ind,cost_element,cost_2018,sup_cost_ele,alg_name,fun_unit,variables,account,algno,updated,source_row_type +1,2_fac,1144477414.301749,,,$,,2,LPSR_DIRECT,0,rollup_from_subaccounts +2,2_mat,278289575.6553897,,,$,,2,LPSR_DIRECT,0,rollup_from_subaccounts +3,2_lab,915543535.9907448,,,$,,2,LPSR_DIRECT,0,rollup_from_subaccounts +4,21_fac,110031553.36311592,2_fac,,$,,21,LPSR_DIRECT,0,rollup_from_subaccounts +5,21_mat,172626251.23772037,2_mat,,$,,21,LPSR_DIRECT,0,rollup_from_subaccounts +6,21_lab,373668681.1145364,2_lab,,$,,21,LPSR_DIRECT,0,rollup_from_subaccounts +7,211_fac,430945.803167464,21_fac,,$,,211,LPSR_DIRECT,0,rollup_from_subaccounts +8,211_mat,21996672.308503065,21_mat,,$,,211,LPSR_DIRECT,0,rollup_from_subaccounts +9,211_lab,36709673.90063027,21_lab,,$,,211,LPSR_DIRECT,0,rollup_from_subaccounts +10,211.1_fac,232653.08709677425,211_fac,category_scale,$,"ref_211_1_fac, scale_S",211.1,LPSR_DIRECT,0,category_scaled +11,211.1_mat,3048807.5577903227,211_mat,category_scale,$,"ref_211_1_mat, scale_S",211.1,LPSR_DIRECT,0,category_scaled +12,211.1_lab,4038537.328870968,211_lab,category_scale,$,"ref_211_1_lab, scale_S",211.1,LPSR_DIRECT,0,category_scaled +13,211.4_fac,0.0,211_fac,,$,,211.4,LPSR_DIRECT,0,category_scaled +14,211.4_mat,3706432.266015384,211_mat,category_scale,$,"ref_211_4_mat, scale_P",211.4,LPSR_DIRECT,0,category_scaled +15,211.4_lab,4975624.347012703,211_lab,category_scale,$,"ref_211_4_lab, scale_P",211.4,LPSR_DIRECT,0,category_scaled +16,211.7_fac,198292.71607068976,211_fac,,$,,211.7,LPSR_DIRECT,0,rollup_from_subaccounts +17,211.7_mat,15241432.48469736,211_mat,,$,,211.7,LPSR_DIRECT,0,rollup_from_subaccounts +18,211.7_lab,27695512.2247466,211_lab,,$,,211.7,LPSR_DIRECT,0,rollup_from_subaccounts +19,211.71_fac,198292.71607068976,211.7_fac,sum_all,$,"ce_211_711_fac, ce_211_712_fac",211.71,LPSR_DIRECT,0,rollup_from_moved_variables +20,211.71_mat,15241432.48469736,211.7_mat,sum_all,$,"ce_211_711_mat, ce_211_712_mat",211.71,LPSR_DIRECT,0,rollup_from_moved_variables +21,211.71_lab,27695512.2247466,211.7_lab,sum_all,$,"ce_211_711_lab, ce_211_712_lab",211.71,LPSR_DIRECT,0,rollup_from_moved_variables +22,212_fac,92973647.76933645,21_fac,,$,,212,LPSR_DIRECT,0,rollup_from_subaccounts +23,212_mat,92928754.37019151,21_mat,,$,,212,LPSR_DIRECT,0,rollup_from_subaccounts +24,212_lab,245204967.0694305,21_lab,,$,,212,LPSR_DIRECT,0,rollup_from_subaccounts +25,212.1_fac,91329747.05645116,212_fac,,$,,212.1,LPSR_DIRECT,0,rollup_from_subaccounts +26,212.1_mat,78240322.48660171,212_mat,,$,,212.1,LPSR_DIRECT,0,rollup_from_subaccounts +27,212.1_lab,230898527.170366,212_lab,,$,,212.1,LPSR_DIRECT,0,rollup_from_subaccounts +28,212.13_fac,0.0,212.1_fac,,$,,212.13,LPSR_DIRECT,0,collapsed_rollup_zero +29,212.13_mat,8064116.039825644,212.1_mat,category_scale,$,"ref_212_13_mat, scale_sub_str_V",212.13,LPSR_DIRECT,0,collapsed_category_scaled +30,212.13_lab,11130198.913088772,212.1_lab,category_scale,$,"ref_212_13_lab, scale_sub_str_V",212.13,LPSR_DIRECT,0,collapsed_category_scaled +31,212.14_fac,3384358.55023979,212.1_fac,sum_all,$,"ce_212_141_fac, ce_212_140_fac, ce_212_142_fac, ce_212_149_fac",212.14,LPSR_DIRECT,0,rollup_from_moved_variables +32,212.14_mat,33647293.27072946,212.1_mat,sum_all,$,"ce_212_141_mat, ce_212_140_mat, ce_212_142_mat, ce_212_149_mat",212.14,LPSR_DIRECT,0,rollup_from_moved_variables +33,212.14_lab,70208165.24507333,212.1_lab,sum_all,$,"ce_212_141_lab, ce_212_140_lab, ce_212_142_lab, ce_212_149_lab",212.14,LPSR_DIRECT,0,rollup_from_moved_variables +34,212.15_fac,87945388.50621137,212.1_fac,category_scale,$,"ref_212_15_fac, scale_sup_str_S, f_ss_cont_fac",212.15,LPSR_DIRECT,0,category_scaled +35,212.15_mat,36528913.1760466,212.1_mat,category_scale,$,"ref_212_15_mat, scale_sup_str_S, f_ss_cont_mat",212.15,LPSR_DIRECT,0,category_scaled +36,212.15_lab,149560163.01220387,212.1_lab,category_scale,$,"ref_212_15_lab, scale_sup_str_S, f_ss_cont_lab",212.15,LPSR_DIRECT,0,category_scaled +37,212.2_fac,1643900.7128852722,212_fac,,$,,212.2,LPSR_DIRECT,0,rollup_from_subaccounts +38,212.2_mat,2469485.147717824,212_mat,,$,,212.2,LPSR_DIRECT,0,rollup_from_subaccounts +39,212.2_lab,8659386.634936525,212_lab,,$,,212.2,LPSR_DIRECT,0,rollup_from_subaccounts +40,212.21_fac,151291.49102764585,212.2_fac,category_scale,$,"ref_212_21_fac, scale_sup_const",212.21,LPSR_DIRECT,0,collapsed_category_scaled +41,212.21_mat,206114.98714819315,212.2_mat,category_scale,$,"ref_212_21_mat, scale_sup_const",212.21,LPSR_DIRECT,0,collapsed_category_scaled +42,212.21_lab,1053843.7893342776,212.2_lab,category_scale,$,"ref_212_21_lab, scale_sup_const",212.21,LPSR_DIRECT,0,collapsed_category_scaled +43,212.22_fac,240144.8684569628,212.2_fac,category_scale,$,"ref_212_22_fac, scale_P",212.22,LPSR_DIRECT,0,collapsed_category_scaled +44,212.22_mat,7208.552067777857,212.2_mat,category_scale,$,"ref_212_22_mat, scale_P",212.22,LPSR_DIRECT,0,collapsed_category_scaled +45,212.22_lab,67456.73381113581,212.2_lab,category_scale,$,"ref_212_22_lab, scale_P",212.22,LPSR_DIRECT,0,collapsed_category_scaled +46,212.23_fac,1054079.7135006634,212.2_fac,category_scale,$,"ref_212_23_fac, scale_P",212.23,LPSR_DIRECT,0,collapsed_category_scaled +47,212.23_mat,895102.7105585907,212.2_mat,category_scale,$,"ref_212_23_mat, scale_P",212.23,LPSR_DIRECT,0,collapsed_category_scaled +48,212.23_lab,3945218.541045286,212.2_lab,category_scale,$,"ref_212_23_lab, scale_P",212.23,LPSR_DIRECT,0,collapsed_category_scaled +49,212.24_fac,0.0,212.2_fac,,$,,212.24,LPSR_DIRECT,0,category_scaled +50,212.24_mat,1351908.0178102625,212.2_mat,category_scale,$,"ref_212_24_mat, scale_sup_const",212.24,LPSR_DIRECT,0,category_scaled +51,212.24_lab,3480752.427645825,212.2_lab,category_scale,$,"ref_212_24_lab, scale_sup_const",212.24,LPSR_DIRECT,0,category_scaled +52,212.25_fac,198384.6399,212.2_fac,category_scale,$,ref_212_25_fac,212.25,LPSR_DIRECT,0,category_scaled +53,212.25_mat,9150.880133,212.2_mat,category_scale,$,ref_212_25_mat,212.25,LPSR_DIRECT,0,category_scaled +54,212.25_lab,112115.1431,212.2_lab,category_scale,$,ref_212_25_lab,212.25,LPSR_DIRECT,0,category_scaled +55,212.3_fac,0.0,212_fac,,$,,212.3,LPSR_DIRECT,0,category_scaled +56,212.3_mat,12218946.735872,212_mat,category_scale,$,"ref_212_3_mat, scale_frm_S",212.3,LPSR_DIRECT,0,category_scaled +57,212.3_lab,5647053.2641280005,212_lab,category_scale,$,"ref_212_3_lab, scale_frm_S",212.3,LPSR_DIRECT,0,category_scaled +58,213_fac,1449086.9027616812,21_fac,,$,,213,LPSR_DIRECT,0,rollup_from_subaccounts +59,213_mat,32880295.11386501,21_mat,,$,,213,LPSR_DIRECT,0,rollup_from_subaccounts +60,213_lab,37311758.8316887,21_lab,,$,,213,LPSR_DIRECT,0,rollup_from_subaccounts +61,213.1_fac,0.0,213_fac,,$,,213.1,LPSR_DIRECT,0,rollup_from_subaccounts +62,213.1_mat,31187978.693863448,213_mat,,$,,213.1,LPSR_DIRECT,0,rollup_from_subaccounts +63,213.1_lab,30638299.12943875,213_lab,,$,,213.1,LPSR_DIRECT,0,rollup_from_subaccounts +64,213.13_fac,0.0,213.1_fac,,$,,213.13,LPSR_DIRECT,0,collapsed_rollup_zero +65,213.13_mat,4273022.20025912,213.1_mat,category_scale,$,"ref_213_13_mat, scale_turb_gen_bldg_sub_vol",213.13,LPSR_DIRECT,0,collapsed_category_scaled +66,213.13_lab,10110109.25530089,213.1_lab,category_scale,$,"ref_213_13_lab, scale_turb_gen_bldg_sub_vol",213.13,LPSR_DIRECT,0,collapsed_category_scaled +67,213.14_fac,0.0,213.1_fac,sum_all,$,"ce_213_141_fac, ce_213_142_fac, ce_213_143_fac, ce_213_144_fac, ce_213_145_fac, ce_213_146_fac, ce_213_147_fac, ce_213_149_fac",213.14,LPSR_DIRECT,0,rollup_from_moved_variables +68,213.14_mat,26914956.49360433,213.1_mat,sum_all,$,"ce_213_141_mat, ce_213_142_mat, ce_213_143_mat, ce_213_144_mat, ce_213_145_mat, ce_213_146_mat, ce_213_147_mat, ce_213_149_mat",213.14,LPSR_DIRECT,0,rollup_from_moved_variables +69,213.14_lab,20528189.874137864,213.1_lab,sum_all,$,"ce_213_141_lab, ce_213_142_lab, ce_213_143_lab, ce_213_144_lab, ce_213_145_lab, ce_213_146_lab, ce_213_147_lab, ce_213_149_lab",213.14,LPSR_DIRECT,0,rollup_from_moved_variables +70,213.2_fac,1449086.9027616812,213_fac,,$,,213.2,LPSR_DIRECT,0,rollup_from_subaccounts +71,213.2_mat,1692316.4200015557,213_mat,,$,,213.2,LPSR_DIRECT,0,rollup_from_subaccounts +72,213.2_lab,6673459.7022499535,213_lab,,$,,213.2,LPSR_DIRECT,0,rollup_from_subaccounts +73,213.21_fac,24709.32158828453,213.2_fac,category_scale,$,"ref_213_21_fac, scale_bldg_V",213.21,LPSR_DIRECT,0,collapsed_category_scaled +74,213.21_mat,867043.7474063353,213.2_mat,category_scale,$,"ref_213_21_mat, scale_bldg_V",213.21,LPSR_DIRECT,0,collapsed_category_scaled +75,213.21_lab,3534676.365423392,213.2_lab,category_scale,$,"ref_213_21_lab, scale_bldg_V",213.21,LPSR_DIRECT,0,collapsed_category_scaled +76,213.22_fac,1196390.0660733967,213.2_fac,category_scale,$,"ref_213_22_fac, scale_P",213.22,LPSR_DIRECT,0,collapsed_category_scaled +77,213.22_mat,284087.1889724544,213.2_mat,category_scale,$,"ref_213_22_mat, scale_P",213.22,LPSR_DIRECT,0,collapsed_category_scaled +78,213.22_lab,1714769.981035543,213.2_lab,category_scale,$,"ref_213_22_lab, scale_P",213.22,LPSR_DIRECT,0,collapsed_category_scaled +79,213.24_fac,0.0,213.2_fac,,$,,213.24,LPSR_DIRECT,0,category_scaled +80,213.24_mat,531808.410249766,213.2_mat,category_scale,$,"ref_213_24_mat, scale_bldg_V",213.24,LPSR_DIRECT,0,category_scaled +81,213.24_lab,1325681.8386410188,213.2_lab,category_scale,$,"ref_213_24_lab, scale_bldg_V",213.24,LPSR_DIRECT,0,category_scaled +82,213.25_fac,227987.5151,213.2_fac,category_scale,$,ref_213_25_fac,213.25,LPSR_DIRECT,0,collapsed_category_scaled +83,213.25_mat,9377.073373,213.2_mat,category_scale,$,ref_213_25_mat,213.25,LPSR_DIRECT,0,collapsed_category_scaled +84,213.25_lab,98331.51715,213.2_lab,category_scale,$,ref_213_25_lab,213.25,LPSR_DIRECT,0,collapsed_category_scaled +85,214_fac,171454.8001,21_fac,category_scale,$,ref_214_fac,214,LPSR_DIRECT,0,collapsed_category_scaled +86,214_mat,1107592.1165,21_mat,category_scale,$,ref_214_mat,214,LPSR_DIRECT,0,collapsed_category_scaled +87,214_lab,3253960.2307,21_lab,category_scale,$,ref_214_lab,214,LPSR_DIRECT,0,collapsed_category_scaled +88,215_fac,6578892.21423963,21_fac,,$,,215,LPSR_DIRECT,0,rollup_from_subaccounts +89,215_mat,5965672.231961898,21_mat,,$,,215,LPSR_DIRECT,0,rollup_from_subaccounts +90,215_lab,16575867.46653163,21_lab,,$,,215,LPSR_DIRECT,0,rollup_from_subaccounts +91,215.1_fac,0.0,215_fac,,$,,215.1,LPSR_DIRECT,0,rollup_from_subaccounts +92,215.1_mat,5132369.742021473,215_mat,,$,,215.1,LPSR_DIRECT,0,rollup_from_subaccounts +93,215.1_lab,12279546.157902673,215_lab,,$,,215.1,LPSR_DIRECT,0,rollup_from_subaccounts +94,215.13_fac,0.0,215.1_fac,,$,,215.13,LPSR_DIRECT,0,collapsed_rollup_zero +95,215.13_mat,577623.8206042887,215.1_mat,category_scale,$,"ref_215_13_mat, scale_pri_aux_bldg_sub_vol",215.13,LPSR_DIRECT,0,collapsed_category_scaled +96,215.13_lab,807214.8622750315,215.1_lab,category_scale,$,"ref_215_13_lab, scale_pri_aux_bldg_sub_vol",215.13,LPSR_DIRECT,0,collapsed_category_scaled +97,215.14_fac,0.0,215.1_fac,sum_all,$,"ce_215_141_fac, ce_215_142_fac, ce_215_145_fac, ce_215_146_fac, ce_215_147_fac, ce_215_149_fac",215.14,LPSR_DIRECT,0,rollup_from_moved_variables +98,215.14_mat,4554745.921417184,215.1_mat,sum_all,$,"ce_215_141_mat, ce_215_142_mat, ce_215_145_mat, ce_215_146_mat, ce_215_147_mat, ce_215_149_mat",215.14,LPSR_DIRECT,0,rollup_from_moved_variables +99,215.14_lab,11472331.295627637,215.1_lab,sum_all,$,"ce_215_141_lab, ce_215_142_lab, ce_215_145_lab, ce_215_146_lab, ce_215_147_lab, ce_215_149_lab",215.14,LPSR_DIRECT,0,rollup_from_moved_variables +100,215.2_fac,6578892.21423963,215_fac,,$,,215.2,LPSR_DIRECT,0,rollup_from_subaccounts +101,215.2_mat,833302.489940424,215_mat,,$,,215.2,LPSR_DIRECT,0,rollup_from_subaccounts +102,215.2_lab,4296321.308628961,215_lab,,$,,215.2,LPSR_DIRECT,0,rollup_from_subaccounts +103,215.21_fac,2879.3960544802108,215.2_fac,category_scale,$,"ref_215_21_fac, scale_pri_aux_bldg_bldg_vol",215.21,LPSR_DIRECT,0,collapsed_category_scaled +104,215.21_mat,132380.8488404441,215.2_mat,category_scale,$,"ref_215_21_mat, scale_pri_aux_bldg_bldg_vol",215.21,LPSR_DIRECT,0,collapsed_category_scaled +105,215.21_lab,562478.5833441088,215.2_lab,category_scale,$,"ref_215_21_lab, scale_pri_aux_bldg_bldg_vol",215.21,LPSR_DIRECT,0,collapsed_category_scaled +106,215.22_fac,5375380.983437112,215.2_fac,sum_all,$,"ce_215_221_fac, ce_215_222_fac, ce_215_223_fac, ce_215_224_fac, ce_215_225_fac, ce_215_226_fac, ce_215_227_fac, ce_215_228_fac",215.22,LPSR_DIRECT,0,rollup_from_moved_variables +107,215.22_mat,482360.7278475697,215.2_mat,sum_all,$,"ce_215_221_mat, ce_215_222_mat, ce_215_223_mat, ce_215_224_mat, ce_215_225_mat, ce_215_226_mat, ce_215_227_mat, ce_215_228_mat",215.22,LPSR_DIRECT,0,rollup_from_moved_variables +108,215.22_lab,2703852.261889753,215.2_lab,sum_all,$,"ce_215_221_lab, ce_215_222_lab, ce_215_223_lab, ce_215_224_lab, ce_215_225_lab, ce_215_226_lab, ce_215_227_lab, ce_215_228_lab",215.22,LPSR_DIRECT,0,rollup_from_moved_variables +109,215.23_fac,880698.684048038,215.2_fac,category_scale,$,"ref_215_23_fac, scale_P",215.23,LPSR_DIRECT,0,collapsed_category_scaled +110,215.23_mat,32931.74687662137,215.2_mat,category_scale,$,"ref_215_23_mat, scale_P",215.23,LPSR_DIRECT,0,collapsed_category_scaled +111,215.23_lab,384297.4078205576,215.2_lab,category_scale,$,"ref_215_23_lab, scale_P",215.23,LPSR_DIRECT,0,collapsed_category_scaled +112,215.24_fac,0.0,215.2_fac,,$,,215.24,LPSR_DIRECT,0,category_scaled +113,215.24_mat,171501.43373578883,215.2_mat,category_scale,$,"ref_215_24_mat, scale_pri_aux_bldg_bldg_vol",215.24,LPSR_DIRECT,0,category_scaled +114,215.24_lab,489101.3601745418,215.2_lab,category_scale,$,"ref_215_24_lab, scale_pri_aux_bldg_bldg_vol",215.24,LPSR_DIRECT,0,category_scaled +115,215.25_fac,319933.1507,215.2_fac,category_scale,$,ref_215_25_fac,215.25,LPSR_DIRECT,0,category_scaled +116,215.25_mat,14127.73264,215.2_mat,category_scale,$,ref_215_25_mat,215.25,LPSR_DIRECT,0,category_scaled +117,215.25_lab,156591.6954,215.2_lab,category_scale,$,ref_215_25_lab,215.25,LPSR_DIRECT,0,category_scaled +118,216_fac,1486377.2053707205,21_fac,,$,,216,LPSR_DIRECT,0,rollup_from_subaccounts +119,216_mat,6031169.352730089,21_mat,,$,,216,LPSR_DIRECT,0,rollup_from_subaccounts +120,216_lab,13737628.524587575,21_lab,,$,,216,LPSR_DIRECT,0,rollup_from_subaccounts +121,216.1_fac,0.0,216_fac,,$,,216.1,LPSR_DIRECT,0,rollup_from_subaccounts +122,216.1_mat,5154906.815235156,216_mat,,$,,216.1,LPSR_DIRECT,0,rollup_from_subaccounts +123,216.1_lab,10334313.0313636,216_lab,,$,,216.1,LPSR_DIRECT,0,rollup_from_subaccounts +124,216.13_fac,0.0,216.1_fac,,$,,216.13,LPSR_DIRECT,0,collapsed_rollup_zero +125,216.13_mat,1575739.8118354392,216.1_mat,category_scale,$,"ref_216_13_mat, scale_waste_bldg_sub_vol",216.13,LPSR_DIRECT,0,collapsed_category_scaled +126,216.13_lab,2410506.351253909,216.1_lab,category_scale,$,"ref_216_13_lab, scale_waste_bldg_sub_vol",216.13,LPSR_DIRECT,0,collapsed_category_scaled +127,216.14_fac,0.0,216.1_fac,sum_all,$,"ce_216_141_fac, ce_216_142_fac, ce_216_143_fac, ce_216_144_fac, ce_216_145_fac, ce_216_146_fac, ce_216_147_fac, ce_216_148_fac, ce_216_149_fac",216.14,LPSR_DIRECT,0,rollup_from_moved_variables +128,216.14_mat,3579167.003399716,216.1_mat,sum_all,$,"ce_216_141_mat, ce_216_142_mat, ce_216_143_mat, ce_216_144_mat, ce_216_145_mat, ce_216_146_mat, ce_216_147_mat, ce_216_148_mat, ce_216_149_mat",216.14,LPSR_DIRECT,0,rollup_from_moved_variables +129,216.14_lab,7923806.680109691,216.1_lab,sum_all,$,"ce_216_141_lab, ce_216_142_lab, ce_216_143_lab, ce_216_144_lab, ce_216_145_lab, ce_216_146_lab, ce_216_147_lab, ce_216_148_lab, ce_216_149_lab",216.14,LPSR_DIRECT,0,rollup_from_moved_variables +130,216.2_fac,1486377.2053707205,216_fac,,$,,216.2,LPSR_DIRECT,0,rollup_from_subaccounts +131,216.2_mat,876262.5374949343,216_mat,,$,,216.2,LPSR_DIRECT,0,rollup_from_subaccounts +132,216.2_lab,3403315.493223977,216_lab,,$,,216.2,LPSR_DIRECT,0,rollup_from_subaccounts +133,216.21_fac,0.0,216.2_fac,,$,,216.21,LPSR_DIRECT,0,collapsed_rollup_zero +134,216.21_mat,79727.10495302429,216.2_mat,category_scale,$,"ref_216_21_mat, scale_waste_bldg_bldg_vol",216.21,LPSR_DIRECT,0,collapsed_category_scaled +135,216.21_lab,402839.8447840233,216.2_lab,category_scale,$,"ref_216_21_lab, scale_waste_bldg_bldg_vol",216.21,LPSR_DIRECT,0,collapsed_category_scaled +136,216.22_fac,1129907.8226707203,216.2_fac,category_scale,$,"ref_216_22_fac, scale_P",216.22,LPSR_DIRECT,0,collapsed_category_scaled +137,216.22_mat,671914.0609659693,216.2_mat,category_scale,$,"ref_216_22_mat, scale_P",216.22,LPSR_DIRECT,0,collapsed_category_scaled +138,216.22_lab,2541393.777735903,216.2_lab,category_scale,$,"ref_216_22_lab, scale_P",216.22,LPSR_DIRECT,0,collapsed_category_scaled +139,216.24_fac,0.0,216.2_fac,,$,,216.24,LPSR_DIRECT,0,category_scaled +140,216.24_mat,107845.67580594058,216.2_mat,category_scale,$,"ref_216_24_mat, scale_waste_bldg_bldg_vol",216.24,LPSR_DIRECT,0,category_scaled +141,216.24_lab,284517.4500040504,216.2_lab,category_scale,$,"ref_216_24_lab, scale_waste_bldg_bldg_vol",216.24,LPSR_DIRECT,0,category_scaled +142,216.25_fac,356469.3827,216.2_fac,category_scale,$,ref_216_25_fac,216.25,LPSR_DIRECT,0,collapsed_category_scaled +143,216.25_mat,16775.69577,216.2_mat,category_scale,$,ref_216_25_mat,216.25,LPSR_DIRECT,0,collapsed_category_scaled +144,216.25_lab,174564.4207,216.2_lab,category_scale,$,ref_216_25_lab,216.25,LPSR_DIRECT,0,collapsed_category_scaled +145,217_fac,2204617.674834721,21_fac,,$,,217,LPSR_DIRECT,0,rollup_from_subaccounts +146,217_mat,8137960.03368471,21_mat,,$,,217,LPSR_DIRECT,0,rollup_from_subaccounts +147,217_lab,8998713.633201843,21_lab,,$,,217,LPSR_DIRECT,0,rollup_from_subaccounts +148,217.1_fac,0.0,217_fac,,$,,217.1,LPSR_DIRECT,0,rollup_from_subaccounts +149,217.1_mat,1815252.8855193416,217_mat,,$,,217.1,LPSR_DIRECT,0,rollup_from_subaccounts +150,217.1_lab,4490969.334175324,217_lab,,$,,217.1,LPSR_DIRECT,0,rollup_from_subaccounts +151,217.13_fac,0.0,217.1_fac,,$,,217.13,LPSR_DIRECT,0,collapsed_rollup_zero +152,217.13_mat,244051.81145442225,217.1_mat,category_scale,$,"ref_217_13_mat, scale_fuel_stor_bldg_sub_vol",217.13,LPSR_DIRECT,0,collapsed_category_scaled +153,217.13_lab,479436.37236405554,217.1_lab,category_scale,$,"ref_217_13_lab, scale_fuel_stor_bldg_sub_vol",217.13,LPSR_DIRECT,0,collapsed_category_scaled +154,217.3_fac,0.0,217_fac,,$,,217.3,LPSR_DIRECT,0,category_scaled +155,217.3_mat,5865094.614844391,217_mat,category_scale,$,"ref_217_3_mat, scale_frm_S_9_71886e_06",217.3,LPSR_DIRECT,0,category_scaled +156,217.3_lab,2710585.6542799296,217_lab,category_scale,$,"ref_217_3_lab, scale_frm_S_9_71886e_06",217.3,LPSR_DIRECT,0,category_scaled +157,217.14_fac,0.0,217.1_fac,sum_all,$,"ce_217_141_fac, ce_217_142_fac, ce_217_145_fac, ce_217_147_fac, ce_217_149_fac",217.14,LPSR_DIRECT,0,rollup_from_moved_variables +158,217.14_mat,1571201.0740649195,217.1_mat,sum_all,$,"ce_217_141_mat, ce_217_142_mat, ce_217_145_mat, ce_217_147_mat, ce_217_149_mat",217.14,LPSR_DIRECT,0,rollup_from_moved_variables +159,217.14_lab,4011532.9618112673,217.1_lab,sum_all,$,"ce_217_141_lab, ce_217_142_lab, ce_217_145_lab, ce_217_147_lab, ce_217_149_lab",217.14,LPSR_DIRECT,0,rollup_from_moved_variables +160,217.2_fac,2204617.674834721,217_fac,,$,,217.2,LPSR_DIRECT,0,rollup_from_subaccounts +161,217.2_mat,457612.53332097805,217_mat,,$,,217.2,LPSR_DIRECT,0,rollup_from_subaccounts +162,217.2_lab,1797158.6447465897,217_lab,,$,,217.2,LPSR_DIRECT,0,rollup_from_subaccounts +163,217.21_fac,4929.67913615625,217.2_fac,category_scale,$,"ref_217_21_fac, scale_fuel_stor_bldg_bldg_vol",217.21,LPSR_DIRECT,0,collapsed_category_scaled +164,217.21_mat,98636.73888344064,217.2_mat,category_scale,$,"ref_217_21_mat, scale_fuel_stor_bldg_bldg_vol",217.21,LPSR_DIRECT,0,collapsed_category_scaled +165,217.21_lab,231363.3464218125,217.2_lab,category_scale,$,"ref_217_21_lab, scale_fuel_stor_bldg_bldg_vol",217.21,LPSR_DIRECT,0,collapsed_category_scaled +166,217.22_fac,193137.19639836828,217.2_fac,category_scale,$,"ref_217_22_fac, scale_P",217.22,LPSR_DIRECT,0,collapsed_category_scaled +167,217.22_mat,276068.03852274094,217.2_mat,category_scale,$,"ref_217_22_mat, scale_P",217.22,LPSR_DIRECT,0,collapsed_category_scaled +168,217.22_lab,1233996.4705383326,217.2_lab,category_scale,$,"ref_217_22_lab, scale_P",217.22,LPSR_DIRECT,0,collapsed_category_scaled +169,217.23_fac,2006550.7993001963,217.2_fac,category_scale,$,"ref_217_23_fac, scale_P",217.23,LPSR_DIRECT,0,collapsed_category_scaled +170,217.23_mat,10569.183227296426,217.2_mat,category_scale,$,"ref_217_23_mat, scale_P",217.23,LPSR_DIRECT,0,collapsed_category_scaled +171,217.23_lab,139900.69843956982,217.2_lab,category_scale,$,"ref_217_23_lab, scale_P",217.23,LPSR_DIRECT,0,collapsed_category_scaled +172,217.24_fac,0.0,217.2_fac,,$,,217.24,LPSR_DIRECT,0,category_scaled +173,217.24_mat,72338.57268750001,217.2_mat,category_scale,$,"ref_217_24_mat, scale_fuel_stor_bldg_bldg_vol",217.24,LPSR_DIRECT,0,category_scaled +174,217.24_lab,191898.129346875,217.2_lab,category_scale,$,"ref_217_24_lab, scale_fuel_stor_bldg_bldg_vol",217.24,LPSR_DIRECT,0,category_scaled +175,218_fac,4736530.993305282,21_fac,,$,,218,LPSR_DIRECT,0,rollup_from_subaccounts +176,218_mat,3578135.7102841227,21_mat,,$,,218,LPSR_DIRECT,0,rollup_from_subaccounts +177,218_lab,11876111.457765903,21_lab,,$,,218,LPSR_DIRECT,0,rollup_from_subaccounts +178,218A_fac,2319565.4875418823,218_fac,,$,,218A,LPSR_DIRECT,0,rollup_from_subaccounts +179,218A_mat,1021548.2510833788,218_mat,,$,,218A,LPSR_DIRECT,0,rollup_from_subaccounts +180,218A_lab,2910538.8039643723,218_lab,,$,,218A,LPSR_DIRECT,0,rollup_from_subaccounts +181,218A.1_fac,0.0,218A_fac,sum_all,$,"ce_218A_13_fac, ce_218A_14_fac",218A.1,LPSR_DIRECT,0,rollup_from_moved_variables +182,218A.1_mat,849971.7765882438,218A_mat,sum_all,$,"ce_218A_13_mat, ce_218A_14_mat",218A.1,LPSR_DIRECT,0,rollup_from_moved_variables +183,218A.1_lab,1796415.8019143462,218A_lab,sum_all,$,"ce_218A_13_lab, ce_218A_14_lab",218A.1,LPSR_DIRECT,0,rollup_from_moved_variables +184,218A.2_fac,2319565.487541883,218A_fac,sum_all,$,"ce_218A_21_fac, ce_218A_23_fac, ce_218A_24_fac",218A.2,LPSR_DIRECT,0,rollup_from_moved_variables +185,218A.2_mat,171576.47449513487,218A_mat,sum_all,$,"ce_218A_21_mat, ce_218A_23_mat, ce_218A_24_mat",218A.2,LPSR_DIRECT,0,rollup_from_moved_variables +186,218A.2_lab,1114123.0020500266,218A_lab,sum_all,$,"ce_218A_21_lab, ce_218A_23_lab, ce_218A_24_lab",218A.2,LPSR_DIRECT,0,rollup_from_moved_variables +187,218B_fac,1971055.821421292,218_fac,,$,,218B,LPSR_DIRECT,0,rollup_from_subaccounts +188,218B_mat,460781.812542733,218_mat,,$,,218B,LPSR_DIRECT,0,rollup_from_subaccounts +189,218B_lab,3188068.1449142173,218_lab,,$,,218B,LPSR_DIRECT,0,rollup_from_subaccounts +190,218B.1_fac,0.0,218B_fac,,$,,218B.1,LPSR_DIRECT,0,collapsed_rollup_zero +191,218B.1_mat,0.0,218B_mat,,$,,218B.1,LPSR_DIRECT,0,collapsed_rollup_zero +192,218B.1_lab,0.0,218B_lab,,$,,218B.1,LPSR_DIRECT,0,collapsed_rollup_zero +193,218B.2_fac,1971055.821421292,218B_fac,sum_all,$,"ce_218B_21_fac, ce_218B_22_fac, ce_218B_23_fac, ce_218B_24_fac, ce_218B_25_fac",218B.2,LPSR_DIRECT,0,rollup_from_moved_variables +194,218B.2_mat,460781.812542733,218B_mat,sum_all,$,"ce_218B_21_mat, ce_218B_22_mat, ce_218B_23_mat, ce_218B_24_mat, ce_218B_25_mat",218B.2,LPSR_DIRECT,0,rollup_from_moved_variables +195,218B.2_lab,3188068.1449142173,218B_lab,sum_all,$,"ce_218B_21_lab, ce_218B_22_lab, ce_218B_23_lab, ce_218B_24_lab, ce_218B_25_lab",218B.2,LPSR_DIRECT,0,rollup_from_moved_variables +196,218D_fac,87852.60004,218_fac,category_scale,$,ref_218D_fac,218D,LPSR_DIRECT,0,category_scaled +197,218D_mat,353929.4,218_mat,category_scale,$,ref_218D_mat,218D,LPSR_DIRECT,0,category_scaled +198,218D_lab,784039.4097,218_lab,category_scale,$,ref_218D_lab,218D,LPSR_DIRECT,0,category_scaled +199,218E_fac,49315.18593202376,218_fac,category_scale,$,"ref_218E_fac, scale_P",218E,LPSR_DIRECT,0,collapsed_category_scaled +200,218E_mat,18191.997602118216,218_mat,category_scale,$,"ref_218E_mat, scale_P",218E,LPSR_DIRECT,0,collapsed_category_scaled +201,218E_lab,95542.26775439648,218_lab,category_scale,$,"ref_218E_lab, scale_P",218E,LPSR_DIRECT,0,collapsed_category_scaled +202,218F_fac,0.0,218_fac,,$,,218F,LPSR_DIRECT,0,category_scaled +203,218F_mat,641027.370017589,218_mat,category_scale,$,"ref_218F_mat, scale_P",218F,LPSR_DIRECT,0,category_scaled +204,218F_lab,1980573.54905032,218_lab,category_scale,$,"ref_218F_lab, scale_P",218F,LPSR_DIRECT,0,category_scaled +205,218G_fac,0.0,218_fac,category_scale,$,"ref_218G_fac, scale_elec_tunnel_bldg_vol",218G,LPSR_DIRECT,0,category_scaled +206,218G_mat,0.0,218_mat,category_scale,$,"ref_218G_mat, scale_elec_tunnel_bldg_vol",218G,LPSR_DIRECT,0,category_scaled +207,218G_lab,0.0,218_lab,category_scale,$,"ref_218G_lab, scale_elec_tunnel_bldg_vol",218G,LPSR_DIRECT,0,category_scaled +208,218H_fac,0.0,218_fac,category_scale,$,"ref_218H_fac, scale_non_ess_swgr_bldg_bldg_vol",218H,LPSR_DIRECT,0,category_scaled +209,218H_mat,0.0,218_mat,category_scale,$,"ref_218H_mat, scale_non_ess_swgr_bldg_bldg_vol",218H,LPSR_DIRECT,0,category_scaled +210,218H_lab,0.0,218_lab,category_scale,$,"ref_218H_lab, scale_non_ess_swgr_bldg_bldg_vol",218H,LPSR_DIRECT,0,category_scaled +211,218J_fac,77499.82531922421,218_fac,category_scale,$,"ref_218J_fac, scale_P",218J,LPSR_DIRECT,0,collapsed_category_scaled +212,218J_mat,52137.00304983045,218_mat,category_scale,$,"ref_218J_mat, scale_P",218J,LPSR_DIRECT,0,collapsed_category_scaled +213,218J_lab,475597.9280464933,218_lab,category_scale,$,"ref_218J_lab, scale_P",218J,LPSR_DIRECT,0,collapsed_category_scaled +214,218K_fac,0.0,218_fac,,$,,218K,LPSR_DIRECT,0,category_scaled +215,218K_mat,260974.42321495048,218_mat,category_scale,$,"ref_218K_mat, scale_P",218K,LPSR_DIRECT,0,category_scaled +216,218K_lab,641259.2827296411,218_lab,category_scale,$,"ref_218K_lab, scale_P",218K,LPSR_DIRECT,0,category_scaled +217,218L_fac,137163.4,218_fac,category_scale,$,ref_218L_fac,218L,LPSR_DIRECT,0,category_scaled +218,218L_mat,667730.7999,218_mat,category_scale,$,ref_218L_mat,218L,LPSR_DIRECT,0,category_scaled +219,218L_lab,1478143.59,218_lab,category_scale,$,ref_218L_lab,218L,LPSR_DIRECT,0,category_scaled +220,218P_fac,0.0,218_fac,,$,,218P,LPSR_DIRECT,0,category_scaled +221,218P_mat,0.0,218_mat,category_scale,$,"ref_218P_mat, scale_cont_hatch_ms_bldg_vol",218P,LPSR_DIRECT,0,category_scaled +222,218P_lab,0.0,218_lab,category_scale,$,"ref_218P_lab, scale_cont_hatch_ms_bldg_vol",218P,LPSR_DIRECT,0,category_scaled +223,218S_fac,0.0,218_fac,category_scale,$,"ref_218S_fac, scale_wwt_bldg_bldg_vol",218S,LPSR_DIRECT,0,category_scaled +224,218S_mat,0.0,218_mat,category_scale,$,"ref_218S_mat, scale_wwt_bldg_bldg_vol",218S,LPSR_DIRECT,0,category_scaled +225,218S_lab,0.0,218_lab,category_scale,$,"ref_218S_lab, scale_wwt_bldg_bldg_vol",218S,LPSR_DIRECT,0,category_scaled +226,218T_fac,94078.67305085954,218_fac,category_scale,$,"ref_218T_fac, scale_P",218T,LPSR_DIRECT,0,collapsed_category_scaled +227,218T_mat,34246.05284352289,218_mat,category_scale,$,"ref_218T_mat, scale_P",218T,LPSR_DIRECT,0,collapsed_category_scaled +228,218T_lab,149759.1416064629,218_lab,category_scale,$,"ref_218T_lab, scale_P",218T,LPSR_DIRECT,0,collapsed_category_scaled +229,218V_fac,0.0,218_fac,,$,,218V,LPSR_DIRECT,0,category_scaled +230,218V_mat,67568.60003,218_mat,category_scale,$,ref_218V_mat,218V,LPSR_DIRECT,0,category_scaled +231,218V_lab,172589.34,218_lab,category_scale,$,ref_218V_lab,218V,LPSR_DIRECT,0,category_scaled +232,22_fac,505493292.6388652,2_fac,,$,,22,LPSR_DIRECT,0,rollup_from_subaccounts +233,22_mat,33422135.098415047,2_mat,,$,,22,LPSR_DIRECT,0,rollup_from_subaccounts +234,22_lab,154325265.91347942,2_lab,,$,,22,LPSR_DIRECT,0,rollup_from_subaccounts +235,221_fac,131877857.72483112,22_fac,,$,,221,LPSR_DIRECT,0,rollup_from_subaccounts +236,221_mat,12170243.63075808,22_mat,,$,,221,LPSR_DIRECT,0,rollup_from_subaccounts +237,221_lab,8942457.575285902,22_lab,,$,,221,LPSR_DIRECT,0,rollup_from_subaccounts +238,221.1_fac,49949276.94635335,221_fac,category_scale,$,"ref_221_1_fac, scale_frm_vsl_M",221.1,LPSR_DIRECT,0,collapsed_category_scaled +239,221.1_mat,11924684.78896102,221_mat,category_scale,$,"ref_221_1_mat, scale_frm_vsl_M",221.1,LPSR_DIRECT,0,collapsed_category_scaled +240,221.1_lab,6326706.020821496,221_lab,category_scale,$,"ref_221_1_lab, scale_frm_vsl_M",221.1,LPSR_DIRECT,0,collapsed_category_scaled +241,221.3_fac,46195485.18005672,221_fac,category_scale,$,"ref_221_3_fac, scale_rx_D",221.3,LPSR_DIRECT,0,category_scaled +242,221.3_mat,116351.76842863896,221_mat,category_scale,$,"ref_221_3_mat, scale_rx_D",221.3,LPSR_DIRECT,0,category_scaled +243,221.3_lab,1249676.590938091,221_lab,category_scale,$,"ref_221_3_lab, scale_rx_D",221.3,LPSR_DIRECT,0,category_scaled +244,221.2_fac,35733095.59842105,221_fac,category_scale,$,"ref_221_2_fac, scale_n_crs",221.2,LPSR_DIRECT,0,collapsed_category_scaled +245,221.2_mat,129207.07336842106,221_mat,category_scale,$,"ref_221_2_mat, scale_n_crs",221.2,LPSR_DIRECT,0,collapsed_category_scaled +246,221.2_lab,1366074.9635263158,221_lab,category_scale,$,"ref_221_2_lab, scale_n_crs",221.2,LPSR_DIRECT,0,collapsed_category_scaled +247,222_fac,256194224.68510327,22_fac,,$,,222,LPSR_DIRECT,0,rollup_from_subaccounts +248,222_mat,2373987.285485063,22_mat,,$,,222,LPSR_DIRECT,0,rollup_from_subaccounts +249,222_lab,22969797.95015922,22_lab,,$,,222,LPSR_DIRECT,0,rollup_from_subaccounts +250,222.1_fac,256194224.68510327,222_fac,,$,,222.1,LPSR_DIRECT,0,rollup_from_subaccounts +251,222.1_mat,2373987.285485063,222_mat,,$,,222.1,LPSR_DIRECT,0,rollup_from_subaccounts +252,222.1_lab,22969797.95015922,222_lab,,$,,222.1,LPSR_DIRECT,0,rollup_from_subaccounts +253,222.11_fac,91711426.41363835,222.1_fac,sum_all,$,"ce_222_111_fac, ce_222_119_fac",222.11,LPSR_DIRECT,0,rollup_from_moved_variables +254,222.11_mat,722716.4583391445,222.1_mat,sum_all,$,"ce_222_111_mat, ce_222_119_mat",222.11,LPSR_DIRECT,0,rollup_from_moved_variables +255,222.11_lab,6694293.522195743,222.1_lab,sum_all,$,"ce_222_111_lab, ce_222_119_lab",222.11,LPSR_DIRECT,0,rollup_from_moved_variables +256,222.12_fac,6090848.3911,222.1_fac,category_scale,$,"ref_222_12_fac, scale_mc_piping_M",222.12,LPSR_DIRECT,0,collapsed_category_scaled +257,222.12_mat,1077287.3122,222.1_mat,category_scale,$,"ref_222_12_mat, scale_mc_piping_M",222.12,LPSR_DIRECT,0,collapsed_category_scaled +258,222.12_lab,10930435.76825,222.1_lab,category_scale,$,"ref_222_12_lab, scale_mc_piping_M",222.12,LPSR_DIRECT,0,collapsed_category_scaled +259,222.13_fac,149684047.65844318,222.1_fac,sum_all,$,"ce_222_132_fac, ce_222_139_fac",222.13,LPSR_DIRECT,0,rollup_from_moved_variables +260,222.13_mat,513003.793847437,222.1_mat,sum_all,$,"ce_222_132_mat, ce_222_139_mat",222.13,LPSR_DIRECT,0,rollup_from_moved_variables +261,222.13_lab,4727001.693954208,222.1_lab,sum_all,$,"ce_222_132_lab, ce_222_139_lab",222.13,LPSR_DIRECT,0,rollup_from_moved_variables +262,222.14_fac,8707902.221921742,222.1_fac,category_scale,$,"ref_222_14_fac, scale_frm_prz_M",222.14,LPSR_DIRECT,0,collapsed_category_scaled +263,222.14_mat,60979.72109848157,222.1_mat,category_scale,$,"ref_222_14_mat, scale_frm_prz_M",222.14,LPSR_DIRECT,0,collapsed_category_scaled +264,222.14_lab,618066.9657592648,222.1_lab,category_scale,$,"ref_222_14_lab, scale_frm_prz_M",222.14,LPSR_DIRECT,0,collapsed_category_scaled +265,223_fac,25278929.81229612,22_fac,,$,,223,LPSR_DIRECT,0,rollup_from_subaccounts +266,223_mat,2588813.3250284577,22_mat,,$,,223,LPSR_DIRECT,0,rollup_from_subaccounts +267,223_lab,23579459.025913805,22_lab,,$,,223,LPSR_DIRECT,0,rollup_from_subaccounts +268,223.1_fac,6453318.67364326,223_fac,category_scale,$,"ref_223_1_fac, scale_P, f_simp_sfgd",223.1,LPSR_DIRECT,0,collapsed_category_scaled +269,223.1_mat,455278.5937317083,223_mat,category_scale,$,"ref_223_1_mat, scale_P, f_simp_sfgd",223.1,LPSR_DIRECT,0,collapsed_category_scaled +270,223.1_lab,5426708.837907713,223_lab,category_scale,$,"ref_223_1_lab, scale_P, f_simp_sfgd",223.1,LPSR_DIRECT,0,collapsed_category_scaled +271,223.3_fac,12725941.18781688,223_fac,category_scale,$,"ref_223_3_fac, scale_P, f_simp_sfgd",223.3,LPSR_DIRECT,0,collapsed_category_scaled +272,223.3_mat,1307957.2804844156,223_mat,category_scale,$,"ref_223_3_mat, scale_P, f_simp_sfgd",223.3,LPSR_DIRECT,0,collapsed_category_scaled +273,223.3_lab,8828443.338181678,223_lab,category_scale,$,"ref_223_3_lab, scale_P, f_simp_sfgd",223.3,LPSR_DIRECT,0,collapsed_category_scaled +274,223.4_fac,4759707.480389864,223_fac,category_scale,$,"ref_223_4_fac, scale_cont_V, f_simp_sfgd",223.4,LPSR_DIRECT,0,collapsed_category_scaled +275,223.4_mat,754158.8425336033,223_mat,category_scale,$,"ref_223_4_mat, scale_cont_V, f_simp_sfgd",223.4,LPSR_DIRECT,0,collapsed_category_scaled +276,223.4_lab,8503675.051616209,223_lab,category_scale,$,"ref_223_4_lab, scale_cont_V, f_simp_sfgd",223.4,LPSR_DIRECT,0,collapsed_category_scaled +277,223.5_fac,1339962.470446115,223_fac,category_scale,$,"ref_223_5_fac, scale_cont_V, f_simp_sfgd",223.5,LPSR_DIRECT,0,collapsed_category_scaled +278,223.5_mat,71418.60827873048,223_mat,category_scale,$,"ref_223_5_mat, scale_cont_V, f_simp_sfgd",223.5,LPSR_DIRECT,0,collapsed_category_scaled +279,223.5_lab,820631.7982082039,223_lab,category_scale,$,"ref_223_5_lab, scale_cont_V, f_simp_sfgd",223.5,LPSR_DIRECT,0,collapsed_category_scaled +280,224_fac,26794891.28158856,22_fac,,$,,224,LPSR_DIRECT,0,rollup_from_subaccounts +281,224_mat,1887697.9819883336,22_mat,,$,,224,LPSR_DIRECT,0,rollup_from_subaccounts +282,224_lab,18782347.93344825,22_lab,,$,,224,LPSR_DIRECT,0,rollup_from_subaccounts +283,224.1_fac,11646081.268603573,224_fac,category_scale,$,"ref_224_1_fac, scale_pri_flow, f_simp_radw",224.1,LPSR_DIRECT,0,collapsed_category_scaled +284,224.1_mat,1600556.1527891876,224_mat,category_scale,$,"ref_224_1_mat, scale_pri_flow, f_simp_radw",224.1,LPSR_DIRECT,0,collapsed_category_scaled +285,224.1_lab,15572648.505977605,224_lab,category_scale,$,"ref_224_1_lab, scale_pri_flow, f_simp_radw",224.1,LPSR_DIRECT,0,collapsed_category_scaled +286,224.2_fac,2047524.5969637253,224_fac,category_scale,$,"ref_224_2_fac, scale_pri_flow, f_simp_radw",224.2,LPSR_DIRECT,0,collapsed_category_scaled +287,224.2_mat,50200.49247127167,224_mat,category_scale,$,"ref_224_2_mat, scale_pri_flow, f_simp_radw",224.2,LPSR_DIRECT,0,collapsed_category_scaled +288,224.2_lab,805741.3367229335,224_lab,category_scale,$,"ref_224_2_lab, scale_pri_flow, f_simp_radw",224.2,LPSR_DIRECT,0,collapsed_category_scaled +289,224.3_fac,13101285.416021263,224_fac,category_scale,$,"ref_224_3_fac, scale_P, f_simp_radw",224.3,LPSR_DIRECT,0,collapsed_category_scaled +290,224.3_mat,236941.33672787464,224_mat,category_scale,$,"ref_224_3_mat, scale_P, f_simp_radw",224.3,LPSR_DIRECT,0,collapsed_category_scaled +291,224.3_lab,2403958.090747718,224_lab,category_scale,$,"ref_224_3_lab, scale_P, f_simp_radw",224.3,LPSR_DIRECT,0,collapsed_category_scaled +292,225_fac,3270902.2125306865,22_fac,,$,,225,LPSR_DIRECT,0,rollup_from_subaccounts +293,225_mat,168642.40329945993,22_mat,,$,,225,LPSR_DIRECT,0,rollup_from_subaccounts +294,225_lab,1831783.426633416,22_lab,,$,,225,LPSR_DIRECT,0,rollup_from_subaccounts +295,225.1_fac,1321017.194962626,225_fac,,$,,225.1,LPSR_DIRECT,0,rollup_from_subaccounts +296,225.1_mat,71832.50828855019,225_mat,,$,,225.1,LPSR_DIRECT,0,rollup_from_subaccounts +297,225.1_lab,929355.0730576696,225_lab,,$,,225.1,LPSR_DIRECT,0,rollup_from_subaccounts +298,225.11_fac,932414.0826678256,225.1_fac,sum_all,$,"ce_225_111_fac, ce_225_112_fac, ce_225_113_fac, ce_225_114_fac",225.11,LPSR_DIRECT,0,rollup_from_moved_variables +299,225.11_mat,29860.461718590203,225.1_mat,sum_all,$,"ce_225_111_mat, ce_225_112_mat, ce_225_113_mat, ce_225_114_mat",225.11,LPSR_DIRECT,0,rollup_from_moved_variables +300,225.11_lab,374968.4145384696,225.1_lab,sum_all,$,"ce_225_111_lab, ce_225_112_lab, ce_225_113_lab, ce_225_114_lab",225.11,LPSR_DIRECT,0,rollup_from_moved_variables +301,225.12_fac,162195.24438000002,225.1_fac,category_scale,$,"ref_225_12_fac, f_simp_fuel_hndl",225.12,LPSR_DIRECT,0,category_scaled +302,225.12_mat,1671.09275944,225.1_mat,category_scale,$,"ref_225_12_mat, f_simp_fuel_hndl",225.12,LPSR_DIRECT,0,category_scaled +303,225.12_lab,20945.3836072,225.1_lab,category_scale,$,"ref_225_12_lab, f_simp_fuel_hndl",225.12,LPSR_DIRECT,0,category_scaled +304,225.13_fac,226407.8679148,225.1_fac,category_scale,$,"ref_225_13_fac, f_simp_fuel_hndl",225.13,LPSR_DIRECT,0,collapsed_category_scaled +305,225.13_mat,40300.95381052,225.1_mat,category_scale,$,"ref_225_13_mat, f_simp_fuel_hndl",225.13,LPSR_DIRECT,0,collapsed_category_scaled +306,225.13_lab,533441.2749119999,225.1_lab,category_scale,$,"ref_225_13_lab, f_simp_fuel_hndl",225.13,LPSR_DIRECT,0,collapsed_category_scaled +307,225.3_fac,118054.6107,225_fac,category_scale,$,"ref_225_3_fac, f_simp_fuel_hndl",225.3,LPSR_DIRECT,0,collapsed_category_scaled +308,225.3_mat,5599.922718000001,225_mat,category_scale,$,"ref_225_3_mat, f_simp_fuel_hndl",225.3,LPSR_DIRECT,0,collapsed_category_scaled +309,225.3_lab,74536.493564,225_lab,category_scale,$,"ref_225_3_lab, f_simp_fuel_hndl",225.3,LPSR_DIRECT,0,collapsed_category_scaled +310,225.4_fac,1831830.4068680604,225_fac,category_scale,$,"ref_225_4_fac, scale_sfp_V, f_simp_fuel_hndl",225.4,LPSR_DIRECT,0,collapsed_category_scaled +311,225.4_mat,91209.97229290976,225_mat,category_scale,$,"ref_225_4_mat, scale_sfp_V, f_simp_fuel_hndl",225.4,LPSR_DIRECT,0,collapsed_category_scaled +312,225.4_lab,827891.8600117461,225_lab,category_scale,$,"ref_225_4_lab, scale_sfp_V, f_simp_fuel_hndl",225.4,LPSR_DIRECT,0,collapsed_category_scaled +313,226_fac,29393532.91593124,22_fac,,$,,226,LPSR_DIRECT,0,rollup_from_subaccounts +314,226_mat,4996191.196851019,22_mat,,$,,226,LPSR_DIRECT,0,rollup_from_subaccounts +315,226_lab,41653854.79138828,22_lab,,$,,226,LPSR_DIRECT,0,rollup_from_subaccounts +316,226.1_fac,884281.722,226_fac,category_scale,$,"ref_226_1_fac, f_simp_other_rx_equip",226.1,LPSR_DIRECT,0,collapsed_category_scaled +317,226.1_mat,100030.5006,226_mat,category_scale,$,"ref_226_1_mat, f_simp_other_rx_equip",226.1,LPSR_DIRECT,0,collapsed_category_scaled +318,226.1_lab,1285762.813,226_lab,category_scale,$,"ref_226_1_lab, f_simp_other_rx_equip",226.1,LPSR_DIRECT,0,collapsed_category_scaled +319,226.3_fac,1008062.44472,226_fac,category_scale,$,"ref_226_3_fac, f_simp_other_rx_equip",226.3,LPSR_DIRECT,0,collapsed_category_scaled +320,226.3_mat,314458.9487118,226_mat,category_scale,$,"ref_226_3_mat, f_simp_other_rx_equip",226.3,LPSR_DIRECT,0,collapsed_category_scaled +321,226.3_lab,1500098.767785,226_lab,category_scale,$,"ref_226_3_lab, f_simp_other_rx_equip",226.3,LPSR_DIRECT,0,collapsed_category_scaled +322,226.4_fac,10779212.801253986,226_fac,category_scale,$,"ref_226_4_fac, scale_pri_flow, f_simp_other_rx_equip",226.4,LPSR_DIRECT,0,collapsed_category_scaled +323,226.4_mat,1786320.5599440474,226_mat,category_scale,$,"ref_226_4_mat, scale_pri_flow, f_simp_other_rx_equip",226.4,LPSR_DIRECT,0,collapsed_category_scaled +324,226.4_lab,15557168.866937764,226_lab,category_scale,$,"ref_226_4_lab, scale_pri_flow, f_simp_other_rx_equip",226.4,LPSR_DIRECT,0,collapsed_category_scaled +325,226.6_fac,190878.9004,226_fac,category_scale,$,"ref_226_6_fac, f_simp_other_rx_equip",226.6,LPSR_DIRECT,0,collapsed_category_scaled +326,226.6_mat,1829.36467,226_mat,category_scale,$,"ref_226_6_mat, f_simp_other_rx_equip",226.6,LPSR_DIRECT,0,collapsed_category_scaled +327,226.6_lab,46626.9427,226_lab,category_scale,$,"ref_226_6_lab, f_simp_other_rx_equip",226.6,LPSR_DIRECT,0,collapsed_category_scaled +328,226.7_fac,12149388.47494475,226_fac,,$,,226.7,LPSR_DIRECT,0,rollup_from_subaccounts +329,226.7_mat,1731078.2074551722,226_mat,,$,,226.7,LPSR_DIRECT,0,rollup_from_subaccounts +330,226.7_lab,22393927.55553552,226_lab,,$,,226.7,LPSR_DIRECT,0,rollup_from_subaccounts +331,226.71_fac,6721644.787227787,226.7_fac,category_scale,$,"ref_226_71_fac, scale_P, f_simp_other_rx_equip",226.71,LPSR_DIRECT,0,collapsed_category_scaled +332,226.71_mat,1138155.514313134,226.7_mat,category_scale,$,"ref_226_71_mat, scale_P, f_simp_other_rx_equip",226.71,LPSR_DIRECT,0,collapsed_category_scaled +333,226.71_lab,14772657.51801433,226.7_lab,category_scale,$,"ref_226_71_lab, scale_P, f_simp_other_rx_equip",226.71,LPSR_DIRECT,0,collapsed_category_scaled +334,226.72_fac,5427743.687716965,226.7_fac,category_scale,$,"ref_226_72_fac, scale_pri_flow, f_simp_other_rx_equip",226.72,LPSR_DIRECT,0,collapsed_category_scaled +335,226.72_mat,592922.6931420382,226.7_mat,category_scale,$,"ref_226_72_mat, scale_pri_flow, f_simp_other_rx_equip",226.72,LPSR_DIRECT,0,collapsed_category_scaled +336,226.72_lab,7621270.037521191,226.7_lab,category_scale,$,"ref_226_72_lab, scale_pri_flow, f_simp_other_rx_equip",226.72,LPSR_DIRECT,0,collapsed_category_scaled +337,226.8_fac,3933935.745,226_fac,category_scale,$,"ref_226_8_fac, f_simp_other_rx_equip",226.8,LPSR_DIRECT,0,collapsed_category_scaled +338,226.8_mat,1004082.496825,226_mat,category_scale,$,"ref_226_8_mat, f_simp_other_rx_equip",226.8,LPSR_DIRECT,0,collapsed_category_scaled +339,226.8_lab,177501.65108,226_lab,category_scale,$,"ref_226_8_lab, f_simp_other_rx_equip",226.8,LPSR_DIRECT,0,collapsed_category_scaled +340,226.9_fac,447772.8276125,226_fac,category_scale,$,"ref_226_9_fac, f_simp_other_rx_equip",226.9,LPSR_DIRECT,0,collapsed_category_scaled +341,226.9_mat,58391.118645,226_mat,category_scale,$,"ref_226_9_mat, f_simp_other_rx_equip",226.9,LPSR_DIRECT,0,collapsed_category_scaled +342,226.9_lab,692768.19435,226_lab,category_scale,$,"ref_226_9_lab, f_simp_other_rx_equip",226.9,LPSR_DIRECT,0,collapsed_category_scaled +343,227_fac,32682954.00658421,22_fac,,$,,227,LPSR_DIRECT,0,rollup_from_subaccounts +344,227_mat,2043124.673604632,22_mat,,$,,227,LPSR_DIRECT,0,rollup_from_subaccounts +345,227_lab,23395908.85965053,22_lab,,$,,227,LPSR_DIRECT,0,rollup_from_subaccounts +346,227.1_fac,5862176.921089473,227_fac,,$,,227.1,LPSR_DIRECT,0,rollup_from_subaccounts +347,227.1_mat,145741.10852847368,227_mat,,$,,227.1,LPSR_DIRECT,0,rollup_from_subaccounts +348,227.1_lab,2890469.7719368413,227_lab,,$,,227.1,LPSR_DIRECT,0,rollup_from_subaccounts +349,227.11_fac,2348124.118,227.1_fac,category_scale,$,ref_227_11_fac,227.11,LPSR_DIRECT,0,category_scaled +350,227.11_mat,47080.64023,227.1_mat,category_scale,$,ref_227_11_mat,227.11,LPSR_DIRECT,0,category_scaled +351,227.11_lab,956553.3662,227.1_lab,category_scale,$,ref_227_11_lab,227.11,LPSR_DIRECT,0,category_scaled +352,227.15_fac,201316.7982,227.1_fac,category_scale,$,ref_227_15_fac,227.15,LPSR_DIRECT,0,category_scaled +353,227.15_mat,7611.624429,227.1_mat,category_scale,$,ref_227_15_mat,227.15,LPSR_DIRECT,0,category_scaled +354,227.15_lab,146670.7044,227.1_lab,category_scale,$,ref_227_15_lab,227.15,LPSR_DIRECT,0,category_scaled +355,227.16_fac,841507.4498,227.1_fac,category_scale,$,ref_227_16_fac,227.16,LPSR_DIRECT,0,category_scaled +356,227.16_mat,29789.75467,227.1_mat,category_scale,$,ref_227_16_mat,227.16,LPSR_DIRECT,0,category_scaled +357,227.16_lab,573931.4903,227.1_lab,category_scale,$,ref_227_16_lab,227.16,LPSR_DIRECT,0,category_scaled +358,227.17_fac,805269.6058,227.1_fac,category_scale,$,ref_227_17_fac,227.17,LPSR_DIRECT,0,category_scaled +359,227.17_mat,29789.75467,227.1_mat,category_scale,$,ref_227_17_mat,227.17,LPSR_DIRECT,0,category_scaled +360,227.17_lab,573931.4903,227.1_lab,category_scale,$,ref_227_17_lab,227.17,LPSR_DIRECT,0,category_scaled +361,227.18_fac,1007976.135,227.1_fac,category_scale,$,ref_227_18_fac,227.18,LPSR_DIRECT,0,category_scaled +362,227.18_mat,21971.66031,227.1_mat,category_scale,$,ref_227_18_mat,227.18,LPSR_DIRECT,0,category_scaled +363,227.18_lab,446391.7474,227.1_lab,category_scale,$,ref_227_18_lab,227.18,LPSR_DIRECT,0,category_scaled +364,227.19_fac,657982.8142894737,227.1_fac,category_scale,$,"ref_227_19_fac, scale_n_crs",227.19,LPSR_DIRECT,0,category_scaled +365,227.19_mat,9497.674219473683,227.1_mat,category_scale,$,"ref_227_19_mat, scale_n_crs",227.19,LPSR_DIRECT,0,category_scaled +366,227.19_lab,192990.9733368421,227.1_lab,category_scale,$,"ref_227_19_lab, scale_n_crs",227.19,LPSR_DIRECT,0,category_scaled +367,227.2_fac,6575350.648,227_fac,category_scale,$,ref_227_2_fac,227.2,LPSR_DIRECT,0,category_scaled +368,227.2_mat,89960.81599,227_mat,category_scale,$,ref_227_2_mat,227.2,LPSR_DIRECT,0,category_scaled +369,227.2_lab,913902.4667,227_lab,category_scale,$,ref_227_2_lab,227.2,LPSR_DIRECT,0,category_scaled +370,227.3_fac,6821452.5089,227_fac,category_scale,$,ref_227_3_fac,227.3,LPSR_DIRECT,0,collapsed_category_scaled +371,227.3_mat,141557.21612300002,227_mat,category_scale,$,ref_227_3_mat,227.3,LPSR_DIRECT,0,collapsed_category_scaled +372,227.3_lab,2569941.7028400004,227_lab,category_scale,$,ref_227_3_lab,227.3,LPSR_DIRECT,0,collapsed_category_scaled +373,227.4_fac,6578958.462052632,227_fac,category_scale,$,"ref_227_4_fac, scale_n_crs",227.4,LPSR_DIRECT,0,collapsed_category_scaled +374,227.4_mat,231764.0694947368,227_mat,category_scale,$,"ref_227_4_mat, scale_n_crs",227.4,LPSR_DIRECT,0,collapsed_category_scaled +375,227.4_lab,2354463.598226316,227_lab,category_scale,$,"ref_227_4_lab, scale_n_crs",227.4,LPSR_DIRECT,0,collapsed_category_scaled +376,227.5_fac,527288.0859105263,227_fac,category_scale,$,"ref_227_5_fac, scale_n_crs",227.5,LPSR_DIRECT,0,category_scaled +377,227.5_mat,1054159.797131579,227_mat,category_scale,$,"ref_227_5_mat, scale_n_crs",227.5,LPSR_DIRECT,0,category_scaled +378,227.5_lab,10807359.919578947,227_lab,category_scale,$,"ref_227_5_lab, scale_n_crs",227.5,LPSR_DIRECT,0,category_scaled +379,227.9_fac,6317727.380631579,227_fac,category_scale,$,"ref_227_9_fac, scale_n_crs",227.9,LPSR_DIRECT,0,category_scaled +380,227.9_mat,379941.66633684206,227_mat,category_scale,$,"ref_227_9_mat, scale_n_crs",227.9,LPSR_DIRECT,0,category_scaled +381,227.9_lab,3859771.400368421,227_lab,category_scale,$,"ref_227_9_lab, scale_n_crs",227.9,LPSR_DIRECT,0,category_scaled +382,228_fac,0.0,22_fac,,$,,228,LPSR_DIRECT,0,collapsed_rollup_zero +383,228_mat,7193434.601400001,22_mat,category_scale,$,ref_228_mat,228,LPSR_DIRECT,0,collapsed_category_scaled +384,228_lab,13169656.351,22_lab,category_scale,$,ref_228_lab,228,LPSR_DIRECT,0,collapsed_category_scaled +385,229_fac,0.0,22_fac,,$,,229,LPSR_DIRECT,0,collapsed_rollup_zero +386,229_mat,0.0,22_mat,,$,,229,LPSR_DIRECT,0,collapsed_rollup_zero +387,229_lab,0.0,22_lab,,$,,229,LPSR_DIRECT,0,collapsed_rollup_zero +388,23_fac,390994355.4347473,2_fac,category_scale,$,"ref_23_fac, scale_elec_P",23,LPSR_DIRECT,0,collapsed_category_scaled +389,23_mat,25120067.25584304,2_mat,category_scale,$,"ref_23_mat, scale_elec_P",23,LPSR_DIRECT,0,collapsed_category_scaled +390,23_lab,165956705.163624,2_lab,category_scale,$,"ref_23_lab, scale_elec_P",23,LPSR_DIRECT,0,collapsed_category_scaled +391,24_fac,29436588.96398727,2_fac,,$,,24,LPSR_DIRECT,0,rollup_from_subaccounts +392,24_mat,26808881.84739582,2_mat,,$,,24,LPSR_DIRECT,0,rollup_from_subaccounts +393,24_lab,89078027.15386322,2_lab,,$,,24,LPSR_DIRECT,0,rollup_from_subaccounts +394,241_fac,13383265.041500611,24_fac,category_scale,$,"ref_241_fac, scale_tur_plant_equip_elec_P, f_elec_swgr",241,LPSR_DIRECT,0,collapsed_category_scaled +395,241_mat,105054.74681666934,24_mat,category_scale,$,"ref_241_mat, scale_tur_plant_equip_elec_P, f_elec_swgr",241,LPSR_DIRECT,0,collapsed_category_scaled +396,241_lab,731146.3223681122,24_lab,category_scale,$,"ref_241_lab, scale_tur_plant_equip_elec_P, f_elec_swgr",241,LPSR_DIRECT,0,collapsed_category_scaled +397,242_fac,10635016.715895744,24_fac,category_scale,$,"ref_242_fac, scale_tur_plant_equip_elec_P, f_elec_st_serv",242,LPSR_DIRECT,0,collapsed_category_scaled +398,242_mat,189558.1954428846,24_mat,category_scale,$,"ref_242_mat, scale_tur_plant_equip_elec_P, f_elec_st_serv",242,LPSR_DIRECT,0,collapsed_category_scaled +399,242_lab,997429.9659796514,24_lab,category_scale,$,"ref_242_lab, scale_tur_plant_equip_elec_P, f_elec_st_serv",242,LPSR_DIRECT,0,collapsed_category_scaled +400,243_fac,3088404.796542287,24_fac,category_scale,$,"ref_243_fac, scale_tur_plant_equip_elec_P, f_elec_switchboards",243,LPSR_DIRECT,0,collapsed_category_scaled +401,243_mat,62329.08170593352,24_mat,category_scale,$,"ref_243_mat, scale_tur_plant_equip_elec_P, f_elec_switchboards",243,LPSR_DIRECT,0,collapsed_category_scaled +402,243_lab,688103.6038249799,24_lab,category_scale,$,"ref_243_lab, scale_tur_plant_equip_elec_P, f_elec_switchboards",243,LPSR_DIRECT,0,collapsed_category_scaled +403,244_fac,0.0,24_fac,,$,,244,LPSR_DIRECT,0,collapsed_rollup_zero +404,244_mat,3873950.3324222136,24_mat,category_scale,$,"ref_244_mat, scale_tur_plant_equip_elec_P, f_elec_prot",244,LPSR_DIRECT,0,collapsed_category_scaled +405,244_lab,7150832.4945418965,24_lab,category_scale,$,"ref_244_lab, scale_tur_plant_equip_elec_P, f_elec_prot",244,LPSR_DIRECT,0,collapsed_category_scaled +406,245_fac,0.0,24_fac,,$,,245,LPSR_DIRECT,0,collapsed_rollup_zero +407,245_mat,8515139.456262374,24_mat,category_scale,$,"ref_245_mat, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont",245,LPSR_DIRECT,0,collapsed_category_scaled +408,245_lab,50939192.372033656,24_lab,category_scale,$,"ref_245_lab, scale_tur_plant_equip_elec_P, f_elec_str_wir_cont",245,LPSR_DIRECT,0,collapsed_category_scaled +409,246_fac,2329902.410048628,24_fac,category_scale,$,"ref_246_fac, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir",246,LPSR_DIRECT,0,collapsed_category_scaled +410,246_mat,14062850.034745743,24_mat,category_scale,$,"ref_246_mat, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir",246,LPSR_DIRECT,0,collapsed_category_scaled +411,246_lab,28571322.39511492,24_lab,category_scale,$,"ref_246_lab, scale_tur_plant_equip_elec_P, f_elec_P_ctrl_wir",246,LPSR_DIRECT,0,collapsed_category_scaled +412,25_fac,38416698.32520889,2_fac,,$,,25,LPSR_DIRECT,0,rollup_from_subaccounts +413,25_mat,11747093.468184102,2_mat,,$,,25,LPSR_DIRECT,0,rollup_from_subaccounts +414,25_lab,80027526.34271017,2_lab,,$,,25,LPSR_DIRECT,0,rollup_from_subaccounts +415,251_fac,11089163.658378892,25_fac,,$,,251,LPSR_DIRECT,0,rollup_from_subaccounts +416,251_mat,259432.67340749945,25_mat,,$,,251,LPSR_DIRECT,0,rollup_from_subaccounts +417,251_lab,2488193.091137278,25_lab,,$,,251,LPSR_DIRECT,0,rollup_from_subaccounts +418,251.1_fac,11089163.658378892,251_fac,,$,,251.1,LPSR_DIRECT,0,rollup_from_subaccounts +419,251.1_mat,259432.67340749945,251_mat,,$,,251.1,LPSR_DIRECT,0,rollup_from_subaccounts +420,251.1_lab,2488193.091137278,251_lab,,$,,251.1,LPSR_DIRECT,0,rollup_from_subaccounts +421,251.11_fac,3903693.019735131,251.1_fac,category_scale,$,"ref_251_11_fac, scale_P",251.11,LPSR_DIRECT,0,collapsed_category_scaled +422,251.11_mat,63127.3794053202,251.1_mat,category_scale,$,"ref_251_11_mat, scale_P",251.11,LPSR_DIRECT,0,collapsed_category_scaled +423,251.11_lab,605456.436651082,251.1_lab,category_scale,$,"ref_251_11_lab, scale_P",251.11,LPSR_DIRECT,0,collapsed_category_scaled +424,251.12_fac,5576704.31390733,251.1_fac,category_scale,$,"ref_251_12_fac, scale_P",251.12,LPSR_DIRECT,0,category_scaled +425,251.12_mat,126254.75877079969,251.1_mat,category_scale,$,"ref_251_12_mat, scale_P",251.12,LPSR_DIRECT,0,category_scaled +426,251.12_lab,1210901.1673027962,251.1_lab,category_scale,$,"ref_251_12_lab, scale_P",251.12,LPSR_DIRECT,0,category_scaled +427,251.16_fac,671880.0,251.1_fac,category_scale,$,ref_251_16_fac,251.16,LPSR_DIRECT,0,category_scaled +428,251.16_mat,59651.36136,251.1_mat,category_scale,$,ref_251_16_mat,251.16,LPSR_DIRECT,0,category_scaled +429,251.16_lab,572112.3209,251.1_lab,category_scale,$,ref_251_16_lab,251.16,LPSR_DIRECT,0,category_scaled +430,251.17_fac,936886.3247364314,251.1_fac,category_scale,$,"ref_251_17_fac, scale_P",251.17,LPSR_DIRECT,0,category_scaled +431,251.17_mat,10399.173871379557,251.1_mat,category_scale,$,"ref_251_17_mat, scale_P",251.17,LPSR_DIRECT,0,category_scaled +432,251.17_lab,99723.16628339975,251.1_lab,category_scale,$,"ref_251_17_lab, scale_P",251.17,LPSR_DIRECT,0,category_scaled +433,252_fac,18234671.28257056,25_fac,,$,,252,LPSR_DIRECT,0,rollup_from_subaccounts +434,252_mat,9738804.697073834,25_mat,,$,,252,LPSR_DIRECT,0,rollup_from_subaccounts +435,252_lab,63419707.86294556,25_lab,,$,,252,LPSR_DIRECT,0,rollup_from_subaccounts +436,252.1_fac,3221068.4523098907,252_fac,category_scale,$,"ref_252_1_fac, scale_V_of_212_213_215_216_217",252.1,LPSR_DIRECT,0,collapsed_category_scaled +437,252.1_mat,673761.8570905332,252_mat,category_scale,$,"ref_252_1_mat, scale_V_of_212_213_215_216_217",252.1,LPSR_DIRECT,0,collapsed_category_scaled +438,252.1_lab,15837189.48628141,252_lab,category_scale,$,"ref_252_1_lab, scale_V_of_212_213_215_216_217",252.1,LPSR_DIRECT,0,collapsed_category_scaled +439,252.2_fac,10315415.353044972,252_fac,category_scale,$,"ref_252_2_fac, scale_V_of_212_213_215_216_217",252.2,LPSR_DIRECT,0,collapsed_category_scaled +440,252.2_mat,8361373.834305692,252_mat,category_scale,$,"ref_252_2_mat, scale_V_of_212_213_215_216_217",252.2,LPSR_DIRECT,0,collapsed_category_scaled +441,252.2_lab,39774923.871399626,252_lab,category_scale,$,"ref_252_2_lab, scale_V_of_212_213_215_216_217",252.2,LPSR_DIRECT,0,collapsed_category_scaled +442,252.3_fac,4698187.477215703,252_fac,category_scale,$,"ref_252_3_fac, scale_V_of_212_213_215_216_217",252.3,LPSR_DIRECT,0,collapsed_category_scaled +443,252.3_mat,432800.98174760776,252_mat,category_scale,$,"ref_252_3_mat, scale_V_of_212_213_215_216_217",252.3,LPSR_DIRECT,0,collapsed_category_scaled +444,252.3_lab,7323253.888364514,252_lab,category_scale,$,"ref_252_3_lab, scale_V_of_212_213_215_216_217",252.3,LPSR_DIRECT,0,collapsed_category_scaled +445,252.4_fac,0.0,252_fac,,$,,252.4,LPSR_DIRECT,0,collapsed_rollup_zero +446,252.4_mat,270868.02393,252_mat,category_scale,$,ref_252_4_mat,252.4,LPSR_DIRECT,0,collapsed_category_scaled +447,252.4_lab,484340.6169,252_lab,category_scale,$,ref_252_4_lab,252.4,LPSR_DIRECT,0,collapsed_category_scaled +448,253_fac,3460827.43404369,25_fac,category_scale,$,"ref_253_fac, scale_V_of_212_213_215_216_217",253,LPSR_DIRECT,0,collapsed_category_scaled +449,253_mat,1165404.5140454122,25_mat,category_scale,$,"ref_253_mat, scale_V_of_212_213_215_216_217",253,LPSR_DIRECT,0,collapsed_category_scaled +450,253_lab,8439054.116516044,25_lab,category_scale,$,"ref_253_lab, scale_V_of_212_213_215_216_217",253,LPSR_DIRECT,0,collapsed_category_scaled +451,254_fac,3963181.950215752,25_fac,category_scale,$,"ref_254_fac, scale_V_of_212_213_215_216_217",254,LPSR_DIRECT,0,collapsed_category_scaled +452,254_mat,130196.58375735312,25_mat,category_scale,$,"ref_254_mat, scale_V_of_212_213_215_216_217",254,LPSR_DIRECT,0,collapsed_category_scaled +453,254_lab,1127418.773111296,25_lab,category_scale,$,"ref_254_lab, scale_V_of_212_213_215_216_217",254,LPSR_DIRECT,0,collapsed_category_scaled +454,255_fac,1668854.0,25_fac,category_scale,$,ref_255_fac,255,LPSR_DIRECT,0,category_scaled +455,255_mat,453254.9999,25_mat,category_scale,$,ref_255_mat,255,LPSR_DIRECT,0,category_scaled +456,255_lab,4553152.499,25_lab,category_scale,$,ref_255_lab,255,LPSR_DIRECT,0,category_scaled +457,26_fac,70104925.57582445,2_fac,,$,,26,LPSR_DIRECT,0,rollup_from_subaccounts +458,26_mat,8565146.74783129,2_mat,,$,,26,LPSR_DIRECT,0,rollup_from_subaccounts +459,26_lab,52487330.30253166,2_lab,,$,,26,LPSR_DIRECT,0,rollup_from_subaccounts +460,261_fac,393999.2808784443,26_fac,category_scale,$,"ref_261_fac, scale_rej_th_P",261,LPSR_DIRECT,0,collapsed_category_scaled +461,261_mat,3935091.3269656086,26_mat,category_scale,$,"ref_261_mat, scale_rej_th_P",261,LPSR_DIRECT,0,collapsed_category_scaled +462,261_lab,9157392.084261214,26_lab,category_scale,$,"ref_261_lab, scale_rej_th_P",261,LPSR_DIRECT,0,collapsed_category_scaled +463,262_fac,69710926.294946,26_fac,,$,,262,LPSR_DIRECT,0,rollup_from_subaccounts +464,262_mat,4630055.420865682,26_mat,,$,,262,LPSR_DIRECT,0,rollup_from_subaccounts +465,262_lab,43329938.21827044,26_lab,,$,,262,LPSR_DIRECT,0,rollup_from_subaccounts +466,262.1_fac,69710926.294946,262_fac,,$,,262.1,LPSR_DIRECT,0,rollup_from_subaccounts +467,262.1_mat,4630055.420865682,262_mat,,$,,262.1,LPSR_DIRECT,0,rollup_from_subaccounts +468,262.1_lab,43329938.21827044,262_lab,,$,,262.1,LPSR_DIRECT,0,rollup_from_subaccounts +469,262.11_fac,821716.7943638151,262.1_fac,category_scale,$,"ref_262_11_fac, scale_rej_th_P",262.11,LPSR_DIRECT,0,category_scaled +470,262.11_mat,31498.703837626967,262.1_mat,category_scale,$,"ref_262_11_mat, scale_rej_th_P",262.11,LPSR_DIRECT,0,category_scaled +471,262.11_lab,299903.0234635871,262.1_lab,category_scale,$,"ref_262_11_lab, scale_rej_th_P",262.11,LPSR_DIRECT,0,category_scaled +472,262.12_fac,19786129.24,262.1_fac,category_scale,$,ref_262_12_fac,262.12,LPSR_DIRECT,0,category_scaled +473,262.12_mat,2229912.276,262.1_mat,category_scale,$,ref_262_12_mat,262.12,LPSR_DIRECT,0,category_scaled +474,262.12_lab,15368420.84,262.1_lab,category_scale,$,ref_262_12_lab,262.12,LPSR_DIRECT,0,category_scaled +475,262.13_fac,46373708.0116178,262.1_fac,category_scale,$,"ref_262_13_fac, scale_rej_th_P",262.13,LPSR_DIRECT,0,category_scaled +476,262.13_mat,2145876.2276741937,262.1_mat,category_scale,$,"ref_262_13_mat, scale_rej_th_P",262.13,LPSR_DIRECT,0,category_scaled +477,262.13_lab,26981789.27575636,262.1_lab,category_scale,$,"ref_262_13_lab, scale_rej_th_P",262.13,LPSR_DIRECT,0,category_scaled +478,262.14_fac,0.0,262.1_fac,,$,,262.14,LPSR_DIRECT,0,category_scaled +479,262.14_mat,117794.90776448436,262.1_mat,category_scale,$,"ref_262_14_mat, scale_rej_th_P",262.14,LPSR_DIRECT,0,category_scaled +480,262.14_lab,130629.59200136008,262.1_lab,category_scale,$,"ref_262_14_lab, scale_rej_th_P",262.14,LPSR_DIRECT,0,category_scaled +481,262.15_fac,2729372.248964384,262.1_fac,category_scale,$,"ref_262_15_fac, scale_rej_th_P",262.15,LPSR_DIRECT,0,category_scaled +482,262.15_mat,104973.30558937664,262.1_mat,category_scale,$,"ref_262_15_mat, scale_rej_th_P",262.15,LPSR_DIRECT,0,category_scaled +483,262.15_lab,549195.4870491357,262.1_lab,category_scale,$,"ref_262_15_lab, scale_rej_th_P",262.15,LPSR_DIRECT,0,category_scaled +484,219_fac,0.0,21_fac,,$,,219,LPSR_DIRECT,0,collapsed_rollup_zero +485,219_mat,0.0,21_mat,,$,,219,LPSR_DIRECT,0,collapsed_rollup_zero +486,219_lab,0.0,21_lab,,$,,219,LPSR_DIRECT,0,collapsed_rollup_zero diff --git a/tutorial/accert/ref_tables/lpsr_direct_variables.csv b/tutorial/accert/ref_tables/lpsr_direct_variables.csv new file mode 100644 index 0000000..85436dc --- /dev/null +++ b/tutorial/accert/ref_tables/lpsr_direct_variables.csv @@ -0,0 +1,959 @@ +ind,var_name,var_description,var_value,var_unit,var_alg,var_need,user_input,v_linked +1,adm_bldg_bldg_vol,Building volume for 219.142,0.0,m^3,,,0,scale_adm_bldg_bldg_vol +2,S,General Yardwork Area for 211.1,23.0,m^2,,,0,scale_S +3,bldg_V,Structural & Miscellaneous Steel Building volume for 213.142,194392.0,m^3,,,0,scale_bldg_V +4,cont_D_D,LPSR A.212.15 containment cylinder/dome diameter D,44.2,m,,,1,sup_str_S +5,cont_hatch_ms_bldg_vol,Building volume for 219.142,0.0,m^3,,,0,scale_cont_hatch_ms_bldg_vol +6,cont_H_H,LPSR A.212.15 containment cylinder height H,45.7,m,,,1,sup_str_S +7,cont_V,Containment Spray System Containment volume for 223.4,86163.9381112316,m^3,,,0,scale_cont_V +8,cr_dg_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 218142,2660.0,m^3,,,0,scale_cr_dg_bldg_bldg_vol +9,cr_dg_bldg_sub_S,Roofing & Flashing Substructure S for 218145,380.0,m^2,,,0,scale_cr_dg_bldg_sub_S +10,cr_dg_bldg_sub_vol,Substructure Concrete Substructure volume for 21813,228.0,m^3,,,0,scale_cr_dg_bldg_sub_vol +11,cr_dg_bldg_sup_S,Painting Superstructure S for 218149,546.0,m^2,,,0,scale_cr_dg_bldg_sup_S +12,cr_dg_bldg_sup_vol,Concrete Work Superstructure volume for 218141,163.79999999999998,m^3,,,0,scale_cr_dg_bldg_sup_vol +13,elec_P,"Input unit value for Electric power scale, source account 231.; also used for new_base_turbine_plant_equipment_elec_P",1117.0,MWe,,,0,"rej_th_P, scale_elec_P, scale_tur_plant_equip_elec_P" +14,elec_tunnel_bldg_vol,Building volume for 219.142,0.0,m^3,,,0,scale_elec_tunnel_bldg_vol +15,frm_flow,Fluid Circulation Drive System Flow rate for 222.11,5000.0,kg/s,,,0,scale_frm_flow +16,frm_fuel_cask_cap,Spent Fuel Cask Crane Fuel cask capacity for 225.114,113.0,tonne,,,0,scale_frm_fuel_cask_cap +17,frm_fuel_crane_cap,New & Spent Fuel Crane Fuel crane capacity for 225.111,2.0,tonne,,,0,scale_frm_fuel_crane_cap +18,frm_ht_S,Steam Generator Equipment HT surface S for 222.13,11477.0,m^2,,,0,scale_frm_ht_S +19,frm_prz_M,Pressurizing System Pressurizer mass for 222.14,106000.0,kg,,,0,scale_frm_prz_M +20,frm_S,Passive cooling pool Surface S for 212.3,1000.0,m^2,,,0,scale_frm_S +21,frm_S_9_71886e_06,Storage Pool Liner - S.S. Surface S for 217.3,480.0,m^2,,,0,scale_frm_S_9_71886e_06 +22,frm_vsl_M,Reactor Vessel + Accessory Vessel mass for 221.1,352000.0,kg,,,0,scale_frm_vsl_M +23,fuel_stor_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 217.142,18900.0,m^3,,,0,scale_fuel_stor_bldg_bldg_vol +24,fuel_stor_bldg_sub_S,Roofing & Flashing Substructure S for 217.145,700.0,m^2,,,0,scale_fuel_stor_bldg_sub_S +25,fuel_stor_bldg_sub_vol,Substructure Concrete Substructure volume for 217.13,420.0,m^3,,,0,scale_fuel_stor_bldg_sub_vol +26,fuel_stor_bldg_sup_S,Painting Superstructure S for 217.149,2862.0,m^2,,,0,scale_fuel_stor_bldg_sup_S +27,fuel_stor_bldg_sup_vol,Concrete Work Superstructure volume for 217.141,858.6,m^3,,,0,scale_fuel_stor_bldg_sup_vol +28,mc_piping_M,Reactor Coolant Piping System MC piping mass for 222.12,77000.0,kg,,,0,scale_mc_piping_M +29,non_ess_swgr_bldg_bldg_vol,Building volume for 219.142,0.0,m^3,,,0,scale_non_ess_swgr_bldg_bldg_vol +30,n_crs,Reactor Control Devices Number of CRs for 221.2,69.0,,,,0,scale_n_crs +31,pri_aux_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 215.142,13357.0,m^3,,,0,scale_pri_aux_bldg_bldg_vol +32,pri_aux_bldg_sub_S,Roofing & Flashing Substructure S for 215.145,703.0,m^2,,,0,scale_pri_aux_bldg_sub_S +33,pri_aux_bldg_sub_vol,Substructure Concrete Substructure volume for 215.13,843.6,m^3,,,0,scale_pri_aux_bldg_sub_vol +34,pri_aux_bldg_sup_S,Painting Superstructure S for 215.149,2128.0,m^2,,,0,scale_pri_aux_bldg_sup_S +35,pri_aux_bldg_sup_vol,Concrete Work Superstructure volume for 215.141,1276.8,m^3,,,0,scale_pri_aux_bldg_sup_vol +36,pri_flow,Liquid Waste System Primary flowrate for 224.1,19880.0,kg/s,,,0,scale_pri_flow +37,rx_D,Vessel Internals Reactor diameter (m) for 221.3,4.5,m,,,0,scale_rx_D +38,rej_th_P,Rejected thermal power for 261.1,2283.0,MWt,calc_rej_th_P,"rx_P, elec_P",0,scale_rej_th_P +39,rx_P,"Input unit value for Plant power scale, source account 212.22; also used for new_base_rx_P; also used for new_base_yardwork_rx_P",3400.0,MWt,,,0,"rej_th_P, scale_P" +40,sfp_V,"Fuel Storage, Cleaning, & Inspection Equipment SFP volume for 225.4",750.0,m^3,,,0,scale_sfp_V +41,sub_str_S,Roof Deck Substructure S for 213.144,4136.0,m^2,,,0,scale_sub_str_S +42,sub_str_V,Substructure Concrete Substructure volume for 212.13,4603.155803819373,m^3,,,0,scale_sub_str_V +43,sup_const,Interior Concrete Building volume for 212.140,92728.01635916138,m^3,,,0,scale_sup_const +44,sup_str_S,Calculated containment superstructure S for cylinder with dome: pi*D^2/2 + pi*D*H,9414.59920057175,m^2,cal_sup_str_S,"cont_D_D, cont_H_H",0,"scale_sup_str_S, scale_sup_str_V" +45,turb_gen_bldg_sub_vol,Substructure Concrete Substructure volume for 213.13,1240.8,m^3,,,0,scale_turb_gen_bldg_sub_vol +46,turb_gen_bldg_sup_S,Exterior Walls Superstructure S for 213.143,12690.0,m^2,,,0,scale_turb_gen_bldg_sup_S +47,turb_gen_bldg_sup_vol,Concrete Work Superstructure volume for 213.141,3807.0,m^3,,,0,scale_turb_gen_bldg_sup_vol +48,uc_frm_flow,"Unit-cost coefficient for Flow rate scale, source account 222.11",9054.0,kg/s,,,0,scale_frm_flow +49,uc_frm_fuel_cap,Unit cost coefficient for fuel cask and crane capacity direct formula scale,411796.0,$/tonne,,,0,"scale_frm_fuel_cask_cap, scale_frm_fuel_crane_cap" +50,uc_frm_ht_S,"Unit-cost coefficient for HT surface S scale, source account 222.13",31688.0,m^2,,,0,scale_frm_ht_S +51,uc_frm_prz_M,"Unit-cost coefficient for Pressurizer mass scale, source account 222.14",13128.0,kg,,,0,scale_frm_prz_M +52,uc_frm_S,"Unit-cost coefficient for Surface S scale, source account 212.3",17866.0,m^2,,,0,scale_frm_S +53,uc_frm_S_9_71886e_06,"Unit-cost coefficient for Surface S scale, source account 217.3",17866.0,m^2,,,0,scale_frm_S_9_71886e_06 +54,uc_frm_vsl_M,"Unit-cost coefficient for Vessel mass scale, source account 221.1",13128.0,kg,,,0,scale_frm_vsl_M +55,V_of_212_213_215_216_217,"Fill & Backfill (Place/Comp) Volume of 212, 213, 215, 216, 217 for 211.712",336225.0163591613,m^3,,,0,scale_V_of_212_213_215_216_217 +56,waste_bldg_bldg_vol,Structural & Miscellaneous Steel Building volume for 216.142,16848.0,m^3,,,0,scale_waste_bldg_bldg_vol +57,waste_bldg_sub_S,Roof Deck Substructure S for 216.144,1296.0,m^2,,,0,scale_waste_bldg_sub_S +58,waste_bldg_sub_vol,Substructure Concrete Substructure volume for 216.13,1555.2,m^3,,,0,scale_waste_bldg_sub_vol +59,waste_bldg_sup_S,Exterior Walls Superstructure S for 216.143,2028.0,m^2,,,0,scale_waste_bldg_sup_S +60,waste_bldg_sup_vol,Concrete Work Superstructure volume for 216.141,1216.8,m^3,,,0,scale_waste_bldg_sup_vol +61,wwt_bldg_bldg_vol,Building volume for 219.142,0.0,m^3,,,0,scale_wwt_bldg_bldg_vol +62,adj_212_14112_lab,Adjustment factor for 212.14112_lab,0.1686319183939024,1,,,0,ce_212_14112_lab +63,adj_212_14122_lab,Adjustment factor for 212.14122_lab,0.4545732208217065,1,,,0,ce_212_14122_lab +64,adj_cont_mat_1_48,"Adjustment factor for 212.14112_mat, 212.14122_mat",1.48,1,,,0,"ce_212_14112_mat, ce_212_14122_mat" +65,adj_half,"Adjustment factor for 222.132_fac, 222.132_lab, 222.132_mat, 222.139_fac, 222.139_lab, 222.139_mat",0.5,1,,,0,"ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab" +66,adj_none,"Adjustment factor for 212.14111_lab, 212.14111_mat, 212.14117_lab, 212.14117_mat, 212.14121_lab, 212.14121_mat, 212.14127_lab, 212.14127_mat",0.0,1,,,0,"ce_212_14111_mat, ce_212_14111_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14127_mat, ce_212_14127_lab" +67,adj_rx_aux_0_25,"Adjustment factor for 222.111_fac, 222.111_lab, 222.111_mat, 222.119_fac, 222.119_lab, 222.119_mat",0.2499999999999999,1,,,0,"ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab" +68,count_222_11,Count per plant for 222.11,4.0,1,,,0,"ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab" +69,count_222_13,Count per plant for 222.13,2.0,1,,,0,"ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab" +70,exp_lin,Linear scaling exponent used by unit-cost/geometry scale laws where exponent = 1,1.0,1,,,0,"scale_adm_bldg_bldg_vol, scale_S, scale_bldg_V, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_cr_dg_bldg_bldg_vol, scale_cr_dg_bldg_sub_S, scale_cr_dg_bldg_sub_vol, scale_cr_dg_bldg_sup_S, scale_cr_dg_bldg_sup_vol, scale_elec_tunnel_bldg_vol, scale_fuel_stor_bldg_bldg_vol, scale_fuel_stor_bldg_sub_S, scale_fuel_stor_bldg_sub_vol, scale_fuel_stor_bldg_sup_S, scale_fuel_stor_bldg_sup_vol, scale_mc_piping_M, scale_non_ess_swgr_bldg_bldg_vol, scale_n_crs, scale_pri_aux_bldg_bldg_vol, scale_pri_aux_bldg_sub_S, scale_pri_aux_bldg_sub_vol, scale_pri_aux_bldg_sup_S, scale_pri_aux_bldg_sup_vol, scale_sub_str_S, scale_sub_str_V, scale_sup_const, scale_sup_str_S, scale_sup_str_V, scale_turb_gen_bldg_sub_vol, scale_turb_gen_bldg_sup_S, scale_turb_gen_bldg_sup_vol, scale_V_of_212_213_215_216_217, scale_waste_bldg_bldg_vol, scale_waste_bldg_sub_S, scale_waste_bldg_sub_vol, scale_waste_bldg_sup_S, scale_waste_bldg_sup_vol, scale_wwt_bldg_bldg_vol" +71,exp_elec_P,"Exponent for Electric power scale, source account 231.",0.8,1,,,0,scale_elec_P +72,exp_P,"Exponent for Plant power scale, source account 212.22; also used for exp_rej_th_P; also used for exp_rx_P; also used for exp_yardwork_rx_P",0.8,1,,,0,"scale_P, scale_rej_th_P" +73,exp_pri_flow,"Exponent for Primary flowrate scale, source account 224.1",0.75,1,,,0,scale_pri_flow +74,exp_rx_D,"Exponent for Reactor diameter (m) scale, source account 221.3",2.0,1,,,0,scale_rx_D +75,exp_sfp_V,"Exponent for SFP volume scale, source account 225.4",0.75,1,,,0,scale_sfp_V +76,exp_tur_plant_equip_elec_P,"Exponent for Electric power scale, source account 241.",0.6,1,,,0,scale_tur_plant_equip_elec_P +77,f_elec_P_ctrl_wir,Passive safety factor: [Electrical] A.246 Power & Control Wiring,0.6050901652907004,1,,,0, +78,f_elec_prot,Passive safety factor: [Electrical] A.244 Protective Equipment,1.0099306954615697,1,,,0, +79,f_elec_st_serv,Passive safety factor: [Electrical] A.242 Station Service Equipment,0.2678830011089926,1,,,0, +80,f_elec_str_wir_cont,Passive safety factor: [Electrical] A.245 Electrical Structures & Wiring Container,0.5783708145703973,1,,,0, +81,f_elec_switchboards,Passive safety factor: [Electrical] A.243 Switchboards,0.9062342772269472,1,,,0, +82,f_elec_swgr,Passive safety factor: [Electrical] A.241 Switchgear,0.548339438854262,1,,,0, +83,f_simp_fuel_hndl,Design simplifications factor: [Simple] A.225 Fuel Handling & Storage,0.52,1,,,0,"ce_225_111_fac, ce_225_111_mat, ce_225_111_lab, ce_225_112_fac, ce_225_112_mat, ce_225_112_lab, ce_225_113_fac, ce_225_113_mat, ce_225_113_lab, ce_225_114_fac, ce_225_114_mat, ce_225_114_lab" +84,f_simp_other_rx_equip,Design simplifications factor: [Simple] A.226 Other Reactor Equipment,0.5,1,,,0, +85,f_simp_radw,Design simplifications factor: [Simple] A.224 Radwaste Processing,0.76,1,,,0, +86,f_simp_sfgd,Design simplifications factor: [Simple] A.223 Safeguards system,0.71,1,,,0, +87,f_ss_cont_fac,Standalone steel containment factor: 212.15 Factory cost mult,3.25,1,,,0, +88,f_ss_cont_lab,Standalone steel containment factor: 212.15 Labor cost mult,4.56,1,,,0, +89,f_ss_cont_mat,Standalone steel containment factor: 212.15 Material cost mult,28.98,1,,,0, +90,lrn_222_11_fac,Factory learning factor for 222.11 grouped accounts,0.996281,1,,,0,"ce_222_111_fac, ce_222_119_fac" +91,lrn_222_11_lab,Labor learning factor for 222.11 grouped accounts,0.856159,1,,,0,"ce_222_111_lab, ce_222_119_lab" +92,lrn_222_11_mat,Material learning factor for 222.11 grouped accounts,0.920467,1,,,0,"ce_222_111_mat, ce_222_119_mat" +93,lrn_222_13_fac,Factory learning factor for 222.13 grouped accounts,0.99875,1,,,0,"ce_222_132_fac, ce_222_139_fac" +94,lrn_222_13_lab,Labor learning factor for 222.13 grouped accounts,0.9345,1,,,0,"ce_222_132_lab, ce_222_139_lab" +95,lrn_222_13_mat,Material learning factor for 222.13 grouped accounts,0.9645,1,,,0,"ce_222_132_mat, ce_222_139_mat" +96,ref_211_1_fac,Reference factory equipment cost for 211.1,627151.8,$,,,0, +97,ref_211_1_lab,Reference site labor cost for 211.1,10886491.93,$,,,0, +98,ref_211_1_mat,Reference site material cost for 211.1,8218524.721,$,,,0, +99,ref_211_4_lab,Reference site labor cost for 211.4,4995516.913,$,,,0, +100,ref_211_4_mat,Reference site material cost for 211.4,3721250.597,$,,,0, +101,ref_211_711_lab,Aggregated reference lab cost for 211.711,15125864.0,$,,,0,ce_211_711_lab +102,ref_211_711_mat,Aggregated reference mat cost for 211.711,4440332.0,$,,,0,ce_211_711_mat +103,ref_211_712_fac,Reference factory equipment cost for 211.712,245650.0,$,,,0,ce_211_712_fac +104,ref_211_712_lab,Reference site labor cost for 211.712,15646213.59,$,,,0,ce_211_712_lab +105,ref_211_712_mat,Reference site material cost for 211.712,13402579.35,$,,,0,ce_211_712_mat +106,ref_212_13_lab,Aggregated reference lab cost for 212.13,11129822.1873,$,,,0, +107,ref_212_13_mat,Aggregated reference mat cost for 212.13,8063843.09228,$,,,0, +108,ref_212_140_fac,Aggregated reference fac cost for 212.140,3367569.015,$,,,0,ce_212_140_fac +109,ref_212_140_lab,Aggregated reference lab cost for 212.140,45289162.7362,$,,,0,ce_212_140_lab +110,ref_212_140_mat,Aggregated reference mat cost for 212.140,13223212.03753,$,,,0,ce_212_140_mat +111,ref_212_14111_lab,Reference site labor cost for 212.14111,6302007.272,$,,,0,ce_212_14111_lab +112,ref_212_14111_mat,Reference site material cost for 212.14111,524742.3561,$,,,0,ce_212_14111_mat +113,ref_212_14112_lab,Reference site labor cost for 212.14112,11084965.36,$,,,0,ce_212_14112_lab +114,ref_212_14112_mat,Reference site material cost for 212.14112,6765223.382,$,,,0,ce_212_14112_mat +115,ref_212_14113_lab,Reference site labor cost for 212.14113,3211170.735,$,,,0,ce_212_14113_lab +116,ref_212_14113_mat,Reference site material cost for 212.14113,1638426.483,$,,,0,ce_212_14113_mat +117,ref_212_14114_lab,Reference site labor cost for 212.14114,543039.3004,$,,,0,ce_212_14114_lab +118,ref_212_14114_mat,Reference site material cost for 212.14114,197744.5645,$,,,0,ce_212_14114_mat +119,ref_212_14115_lab,Reference site labor cost for 212.14115,445996.7844,$,,,0,ce_212_14115_lab +120,ref_212_14115_mat,Reference site material cost for 212.14115,26315.43756,$,,,0,ce_212_14115_mat +121,ref_212_14116_lab,Reference site labor cost for 212.14116,45146.76643,$,,,0,ce_212_14116_lab +122,ref_212_14116_mat,Reference site material cost for 212.14116,17199.01812,$,,,0,ce_212_14116_mat +123,ref_212_14117_lab,Reference site labor cost for 212.14117,3895733.578,$,,,0,ce_212_14117_lab +124,ref_212_14117_mat,Reference site material cost for 212.14117,1567178.29,$,,,0,ce_212_14117_mat +125,ref_212_14118_lab,Reference site labor cost for 212.14118,713911.3336,$,,,0,ce_212_14118_lab +126,ref_212_14118_mat,Reference site material cost for 212.14118,293260.4893,$,,,0,ce_212_14118_mat +127,ref_212_14121_lab,Reference site labor cost for 212.14121,1742460.39,$,,,0,ce_212_14121_lab +128,ref_212_14121_mat,Reference site material cost for 212.14121,152723.5216,$,,,0,ce_212_14121_mat +129,ref_212_14122_lab,Reference site labor cost for 212.14122,4112162.548,$,,,0,ce_212_14122_lab +130,ref_212_14122_mat,Reference site material cost for 212.14122,2509679.642,$,,,0,ce_212_14122_mat +131,ref_212_14123_lab,Reference site labor cost for 212.14123,1154019.463,$,,,0,ce_212_14123_lab +132,ref_212_14123_mat,Reference site material cost for 212.14123,588811.3045,$,,,0,ce_212_14123_mat +133,ref_212_14125_lab,Reference site labor cost for 212.14125,159284.254,$,,,0,ce_212_14125_lab +134,ref_212_14125_mat,Reference site material cost for 212.14125,9398.370557,$,,,0,ce_212_14125_mat +135,ref_212_14127_lab,Reference site labor cost for 212.14127,3161753.91,$,,,0,ce_212_14127_lab +136,ref_212_14127_mat,Reference site material cost for 212.14127,1271912.815,$,,,0,ce_212_14127_mat +137,ref_212_14128_lab,Reference site labor cost for 212.14128,141092.5413,$,,,0,ce_212_14128_lab +138,ref_212_14128_mat,Reference site material cost for 212.14128,57956.61844,$,,,0,ce_212_14128_mat +139,ref_212_1419_lab,Reference site labor cost for 212.1419,796421.27,$,,,0,ce_212_1419_lab +140,ref_212_1419_mat,Reference site material cost for 212.1419,232647.2648,$,,,0,ce_212_1419_mat +141,ref_212_142_lab,Aggregated reference lab cost for 212.142,2909128.75293,$,,,0,ce_212_142_lab +142,ref_212_142_mat,Aggregated reference mat cost for 212.142,3818022.67745,$,,,0,ce_212_142_mat +143,ref_212_149_lab,Reference site labor cost for 212.149,12549840.5,$,,,0,ce_212_149_lab +144,ref_212_149_mat,Reference site material cost for 212.149,2458081.163,$,,,0,ce_212_149_mat +145,ref_212_15_fac,Reference factory equipment cost for 212.15,26940552.12,$,,,0, +146,ref_212_15_lab,Reference site labor cost for 212.15,32653359.39,$,,,0, +147,ref_212_15_mat,Reference site material cost for 212.15,1254917.429,$,,,0, +148,ref_212_21_fac,Aggregated reference fac cost for 212.21,150540.9459,$,,,0, +149,ref_212_21_lab,Aggregated reference lab cost for 212.21,1048615.7536,$,,,0, +150,ref_212_21_mat,Aggregated reference mat cost for 212.21,205092.46699,$,,,0, +151,ref_212_22_fac,Aggregated reference fac cost for 212.22,241104.968599,$,,,0, +152,ref_212_22_lab,Aggregated reference lab cost for 212.22,67726.426102,$,,,0, +153,ref_212_22_mat,Aggregated reference mat cost for 212.22,7237.3718877,$,,,0, +154,ref_212_23_fac,Aggregated reference fac cost for 212.23,1058293.9284,$,,,0, +155,ref_212_23_lab,Aggregated reference lab cost for 212.23,3960991.54051,$,,,0, +156,ref_212_23_mat,Aggregated reference mat cost for 212.23,898681.3347659999,$,,,0, +157,ref_212_24_lab,Reference site labor cost for 212.24,3463484.69,$,,,0, +158,ref_212_24_mat,Reference site material cost for 212.24,1345201.309,$,,,0, +159,ref_212_25_fac,Reference factory equipment cost for 212.25,198384.6399,$,,,0, +160,ref_212_25_lab,Reference site labor cost for 212.25,112115.1431,$,,,0, +161,ref_212_25_mat,Reference site material cost for 212.25,9150.880133,$,,,0, +162,ref_212_3_lab,Reference site labor cost for 212.3,0.316078208,$,,,0, +163,ref_212_3_mat,Reference site material cost for 212.3,0.683921792,$,,,0, +164,ref_213_13_lab,Aggregated reference lab cost for 213.13,14910944.50129,$,,,0, +165,ref_213_13_mat,Aggregated reference mat cost for 213.13,6302087.867887,$,,,0, +166,ref_213_141_lab,Aggregated reference lab cost for 213.141,1639765.2804,$,,,0,ce_213_141_lab +167,ref_213_141_mat,Aggregated reference mat cost for 213.141,635828.117868,$,,,0,ce_213_141_mat +168,ref_213_142_lab,Aggregated reference lab cost for 213.142,15453101.32427,$,,,0,ce_213_142_lab +169,ref_213_142_mat,Aggregated reference mat cost for 213.142,24471194.7413,$,,,0,ce_213_142_mat +170,ref_213_143_lab,Aggregated reference lab cost for 213.143,2115226.0423,$,,,0,ce_213_143_lab +171,ref_213_143_mat,Aggregated reference mat cost for 213.143,2442554.0654,$,,,0,ce_213_143_mat +172,ref_213_144_lab,Aggregated reference lab cost for 213.144,892268.4508999999,$,,,0,ce_213_144_lab +173,ref_213_144_mat,Aggregated reference mat cost for 213.144,925648.43823,$,,,0,ce_213_144_mat +174,ref_213_145_lab,Aggregated reference lab cost for 213.145,472841.2125,$,,,0,ce_213_145_lab +175,ref_213_145_mat,Aggregated reference mat cost for 213.145,438974.2566,$,,,0,ce_213_145_mat +176,ref_213_146_lab,Aggregated reference lab cost for 213.146,444065.4916,$,,,0,ce_213_146_lab +177,ref_213_146_mat,Aggregated reference mat cost for 213.146,284016.34398,$,,,0,ce_213_146_mat +178,ref_213_147_lab,Aggregated reference lab cost for 213.147,643802.58411,$,,,0,ce_213_147_lab +179,ref_213_147_mat,Aggregated reference mat cost for 213.147,985426.29479,$,,,0,ce_213_147_mat +180,ref_213_149_lab,Reference site labor cost for 213.149,2200909.113,$,,,0,ce_213_149_lab +181,ref_213_149_mat,Reference site material cost for 213.149,126843.2998,$,,,0,ce_213_149_mat +182,ref_213_21_fac,Aggregated reference fac cost for 213.21,26947.48846,$,,,0, +183,ref_213_21_lab,Aggregated reference lab cost for 213.21,3854846.85311,$,,,0, +184,ref_213_21_mat,Aggregated reference mat cost for 213.21,945580.448013,$,,,0, +185,ref_213_22_fac,Aggregated reference fac cost for 213.22,1201173.23833,$,,,0, +186,ref_213_22_lab,Aggregated reference lab cost for 213.22,1721625.6382600002,$,,,0, +187,ref_213_22_mat,Aggregated reference mat cost for 213.22,285222.9706872,$,,,0, +188,ref_213_24_lab,Reference site labor cost for 213.24,1445761.913,$,,,0, +189,ref_213_24_mat,Reference site material cost for 213.24,579979.5412,$,,,0, +190,ref_213_25_fac,Aggregated reference fac cost for 213.25,227987.5151,$,,,0, +191,ref_213_25_lab,Aggregated reference lab cost for 213.25,98331.51715,$,,,0, +192,ref_213_25_mat,Aggregated reference mat cost for 213.25,9377.073373,$,,,0, +193,ref_214_fac,Aggregated reference fac cost for 214,171454.8001,$,,,0, +194,ref_214_lab,Aggregated reference lab cost for 214,3253960.2307,$,,,0, +195,ref_214_mat,Aggregated reference mat cost for 214,1107592.1165,$,,,0, +196,ref_215_13_lab,Aggregated reference lab cost for 215.13,1486017.87709,$,,,0, +197,ref_215_13_mat,Aggregated reference mat cost for 215.13,1063359.167139,$,,,0, +198,ref_215_141_lab,Aggregated reference lab cost for 215.141,27007537.62763,$,,,0,ce_215_141_lab +199,ref_215_141_mat,Aggregated reference mat cost for 215.141,8497619.987044,$,,,0,ce_215_141_mat +200,ref_215_142_lab,Aggregated reference lab cost for 215.142,1853103.9549,$,,,0,ce_215_142_lab +201,ref_215_142_mat,Aggregated reference mat cost for 215.142,2944695.17141,$,,,0,ce_215_142_mat +202,ref_215_145_lab,Aggregated reference lab cost for 215.145,76768.47522,$,,,0,ce_215_145_lab +203,ref_215_145_mat,Aggregated reference mat cost for 215.145,71195.84809,$,,,0,ce_215_145_mat +204,ref_215_146_lab,Aggregated reference lab cost for 215.146,239093.8907,$,,,0,ce_215_146_lab +205,ref_215_146_mat,Aggregated reference mat cost for 215.146,218695.0725,$,,,0,ce_215_146_mat +206,ref_215_147_lab,Aggregated reference lab cost for 215.147,81713.87408400001,$,,,0,ce_215_147_lab +207,ref_215_147_mat,Aggregated reference mat cost for 215.147,88183.79654499999,$,,,0,ce_215_147_mat +208,ref_215_149_lab,Reference site labor cost for 215.149,681097.8721,$,,,0,ce_215_149_lab +209,ref_215_149_mat,Reference site material cost for 215.149,143973.4822,$,,,0,ce_215_149_mat +210,ref_215_21_fac,Aggregated reference fac cost for 215.21,7810.607011,$,,,0, +211,ref_215_21_lab,Aggregated reference lab cost for 215.21,1525771.05875,$,,,0, +212,ref_215_21_mat,Aggregated reference mat cost for 215.21,359094.32621,$,,,0, +213,ref_215_221_fac,Reference factory equipment cost for 215.221,2531710.025,$,,,0,ce_215_221_fac +214,ref_215_221_lab,Reference site labor cost for 215.221,336370.6056,$,,,0,ce_215_221_lab +215,ref_215_221_mat,Reference site material cost for 215.221,28979.80565,$,,,0,ce_215_221_mat +216,ref_215_222_fac,Reference factory equipment cost for 215.222,1936413.245,$,,,0,ce_215_222_fac +217,ref_215_222_lab,Reference site labor cost for 215.222,330613.6164,$,,,0,ce_215_222_lab +218,ref_215_222_mat,Reference site material cost for 215.222,28475.24377,$,,,0,ce_215_222_mat +219,ref_215_223_fac,Reference factory equipment cost for 215.223,39410.05189,$,,,0,ce_215_223_fac +220,ref_215_223_lab,Reference site labor cost for 215.223,30190.24938,$,,,0,ce_215_223_lab +221,ref_215_223_mat,Reference site material cost for 215.223,2535.191287,$,,,0,ce_215_223_mat +222,ref_215_224_fac,Reference factory equipment cost for 215.224,469880.2213,$,,,0,ce_215_224_fac +223,ref_215_224_lab,Reference site labor cost for 215.224,91838.71282,$,,,0,ce_215_224_lab +224,ref_215_224_mat,Reference site material cost for 215.224,7912.025553,$,,,0,ce_215_224_mat +225,ref_215_225_fac,Reference factory equipment cost for 215.225,563080.5444,$,,,0,ce_215_225_fac +226,ref_215_225_lab,Reference site labor cost for 215.225,5046207.644,$,,,0,ce_215_225_lab +227,ref_215_225_mat,Reference site material cost for 215.225,1111705.045,$,,,0,ce_215_225_mat +228,ref_215_226_fac,Reference factory equipment cost for 215.226,278882.4965,$,,,0,ce_215_226_fac +229,ref_215_226_lab,Reference site labor cost for 215.226,109065.2075,$,,,0,ce_215_226_lab +230,ref_215_226_mat,Reference site material cost for 215.226,9251.182873,$,,,0,ce_215_226_mat +231,ref_215_227_fac,Reference factory equipment cost for 215.227,216644.9347,$,,,0,ce_215_227_fac +232,ref_215_228_fac,Reference factory equipment cost for 215.228,27640.01302,$,,,0,ce_215_228_fac +233,ref_215_228_lab,Reference site labor cost for 215.228,17549.12426,$,,,0,ce_215_228_lab +234,ref_215_228_mat,Reference site material cost for 215.228,1492.017338,$,,,0,ce_215_228_mat +235,ref_215_23_fac,Aggregated reference fac cost for 215.23,884219.7209,$,,,0, +236,ref_215_23_lab,Aggregated reference lab cost for 215.23,385833.83039,$,,,0, +237,ref_215_23_mat,Aggregated reference mat cost for 215.23,33063.408132,$,,,0, +238,ref_215_24_lab,Reference site labor cost for 215.24,1326729.092,$,,,0, +239,ref_215_24_mat,Reference site material cost for 215.24,465212.2443,$,,,0, +240,ref_215_25_fac,Reference factory equipment cost for 215.25,319933.1507,$,,,0, +241,ref_215_25_lab,Reference site labor cost for 215.25,156591.6954,$,,,0, +242,ref_215_25_mat,Reference site material cost for 215.25,14127.73264,$,,,0, +243,ref_216_13_lab,Aggregated reference lab cost for 216.13,3214628.4545400003,$,,,0, +244,ref_216_13_mat,Aggregated reference mat cost for 216.13,2101391.698654,$,,,0, +245,ref_216_141_lab,Aggregated reference lab cost for 216.141,24018213.09312,$,,,0,ce_216_141_lab +246,ref_216_141_mat,Aggregated reference mat cost for 216.141,7145811.159576,$,,,0,ce_216_141_mat +247,ref_216_142_lab,Aggregated reference lab cost for 216.142,2119078.08444,$,,,0,ce_216_142_lab +248,ref_216_142_mat,Aggregated reference mat cost for 216.142,3438706.40915,$,,,0,ce_216_142_mat +249,ref_216_143_lab,Aggregated reference lab cost for 216.143,486639.2798,$,,,0,ce_216_143_lab +250,ref_216_143_mat,Aggregated reference mat cost for 216.143,585894.164,$,,,0,ce_216_143_mat +251,ref_216_144_lab,Aggregated reference lab cost for 216.144,307576.92005,$,,,0,ce_216_144_lab +252,ref_216_144_mat,Aggregated reference mat cost for 216.144,294801.07175,$,,,0,ce_216_144_mat +253,ref_216_145_lab,Aggregated reference lab cost for 216.145,147358.83791,$,,,0,ce_216_145_lab +254,ref_216_145_mat,Aggregated reference mat cost for 216.145,128467.43138,$,,,0,ce_216_145_mat +255,ref_216_146_lab,Aggregated reference lab cost for 216.146,4599.644948,$,,,0,ce_216_146_lab +256,ref_216_146_mat,Aggregated reference mat cost for 216.146,4245.149031,$,,,0,ce_216_146_mat +257,ref_216_147_lab,Aggregated reference lab cost for 216.147,66380.321837,$,,,0,ce_216_147_lab +258,ref_216_147_mat,Aggregated reference mat cost for 216.147,75023.07197,$,,,0,ce_216_147_mat +259,ref_216_148_lab,Aggregated reference lab cost for 216.148,10525.09202,$,,,0,ce_216_148_lab +260,ref_216_148_mat,Aggregated reference mat cost for 216.148,585.0991923,$,,,0,ce_216_148_mat +261,ref_216_149_lab,Reference site labor cost for 216.149,558657.9279,$,,,0,ce_216_149_lab +262,ref_216_149_mat,Reference site material cost for 216.149,92591.94718,$,,,0,ce_216_149_mat +263,ref_216_21_lab,Aggregated reference lab cost for 216.21,1275085.66255,$,,,0, +264,ref_216_21_mat,Aggregated reference mat cost for 216.21,252355.59431,$,,,0, +265,ref_216_22_fac,Aggregated reference fac cost for 216.22,1134425.198653,$,,,0, +266,ref_216_22_lab,Aggregated reference lab cost for 216.22,2551554.280197,$,,,0, +267,ref_216_22_mat,Aggregated reference mat cost for 216.22,674600.376062,$,,,0, +268,ref_216_24_lab,Reference site labor cost for 216.24,900566.6295,$,,,0, +269,ref_216_24_mat,Reference site material cost for 216.24,341357.6804,$,,,0, +270,ref_216_25_fac,Aggregated reference fac cost for 216.25,356469.3827,$,,,0, +271,ref_216_25_lab,Aggregated reference lab cost for 216.25,174564.4207,$,,,0, +272,ref_216_25_mat,Aggregated reference mat cost for 216.25,16775.69577,$,,,0, +273,ref_217_13_lab,Aggregated reference lab cost for 217.13,1232836.386079,$,,,0, +274,ref_217_13_mat,Aggregated reference mat cost for 217.13,627561.8008828,$,,,0, +275,ref_217_141_lab,Aggregated reference lab cost for 217.141,9200530.16508,$,,,0,ce_217_141_lab +276,ref_217_141_mat,Aggregated reference mat cost for 217.141,2452036.602684,$,,,0,ce_217_141_mat +277,ref_217_142_lab,Aggregated reference lab cost for 217.142,633635.00593,$,,,0,ce_217_142_lab +278,ref_217_142_mat,Aggregated reference mat cost for 217.142,893582.71994,$,,,0,ce_217_142_mat +279,ref_217_145_lab,Aggregated reference lab cost for 217.145,57111.30589,$,,,0,ce_217_145_lab +280,ref_217_145_mat,Aggregated reference mat cost for 217.145,46465.14193,$,,,0,ce_217_145_mat +281,ref_217_147_lab,Aggregated reference lab cost for 217.147,24768.323956,$,,,0,ce_217_147_lab +282,ref_217_147_mat,Aggregated reference mat cost for 217.147,32682.194583,$,,,0,ce_217_147_mat +283,ref_217_149_lab,Reference site labor cost for 217.149,142759.9868,$,,,0,ce_217_149_lab +284,ref_217_149_mat,Reference site material cost for 217.149,18023.85423,$,,,0,ce_217_149_mat +285,ref_217_21_fac,Aggregated reference fac cost for 217.21,7511.892017,$,,,0, +286,ref_217_21_lab,Aggregated reference lab cost for 217.21,352553.670738,$,,,0, +287,ref_217_21_mat,Aggregated reference mat cost for 217.21,150303.6021081,$,,,0, +288,ref_217_22_fac,Aggregated reference fac cost for 217.22,193909.35968,$,,,0, +289,ref_217_22_lab,Aggregated reference lab cost for 217.22,1238929.99335,$,,,0, +290,ref_217_22_mat,Aggregated reference mat cost for 217.22,277171.759642,$,,,0, +291,ref_217_23_fac,Aggregated reference fac cost for 217.23,2014572.9974,$,,,0, +292,ref_217_23_lab,Aggregated reference lab cost for 217.23,140460.02199,$,,,0, +293,ref_217_23_mat,Aggregated reference mat cost for 217.23,10611.438864,$,,,0, +294,ref_217_24_lab,Reference site labor cost for 217.24,292416.1971,$,,,0, +295,ref_217_24_mat,Reference site material cost for 217.24,110230.206,$,,,0, +296,ref_217_3_lab,Reference site labor cost for 217.3,3071920.9,$,,,0, +297,ref_217_3_mat,Reference site material cost for 217.3,6646942.405,$,,,0, +298,ref_218A_13_lab,Aggregated reference lab cost for 218A.13,1340415.61944,$,,,0,ce_218A_13_lab +299,ref_218A_13_mat,Aggregated reference mat cost for 218A.13,770875.072923,$,,,0,ce_218A_13_mat +300,ref_218A_141_lab,Aggregated reference lab cost for 218A.141,28840436.40199,$,,,0,ce_218A_141_lab +301,ref_218A_141_mat,Aggregated reference mat cost for 218A.141,8429857.722799,$,,,0,ce_218A_141_mat +302,ref_218A_142_lab,Aggregated reference lab cost for 218A.142,3003877.75743,$,,,0,ce_218A_142_lab +303,ref_218A_142_mat,Aggregated reference mat cost for 218A.142,4757094.74969,$,,,0,ce_218A_142_mat +304,ref_218A_145_lab,Aggregated reference lab cost for 218A.145,152808.8951,$,,,0,ce_218A_145_lab +305,ref_218A_145_mat,Aggregated reference mat cost for 218A.145,136116.6424,$,,,0,ce_218A_145_mat +306,ref_218A_146_lab,Aggregated reference lab cost for 218A.146,2477305.33398,$,,,0,ce_218A_146_lab +307,ref_218A_146_mat,Aggregated reference mat cost for 218A.146,1820301.470124,$,,,0,ce_218A_146_mat +308,ref_218A_147_lab,Aggregated reference lab cost for 218A.147,95330.97808,$,,,0,ce_218A_147_lab +309,ref_218A_147_mat,Aggregated reference mat cost for 218A.147,96193.631163,$,,,0,ce_218A_147_mat +310,ref_218A_148_lab,Aggregated reference lab cost for 218A.148,252960.648296,$,,,0,ce_218A_148_lab +311,ref_218A_148_mat,Aggregated reference mat cost for 218A.148,121610.011216,$,,,0,ce_218A_148_mat +312,ref_218A_149_lab,Reference site labor cost for 218A.149,628859.4648,$,,,0,ce_218A_149_lab +313,ref_218A_149_mat,Reference site material cost for 218A.149,76797.00963,$,,,0,ce_218A_149_mat +314,ref_218A_21_lab,Aggregated reference lab cost for 218A.21,2360426.5826000003,$,,,0,ce_218A_21_lab +315,ref_218A_21_mat,Aggregated reference mat cost for 218A.21,658362.32472,$,,,0,ce_218A_21_mat +316,ref_218A_231_fac,Reference factory equipment cost for 218A.231,926649.8252,$,,,0,ce_218A_231_fac +317,ref_218A_231_lab,Reference site labor cost for 218A.231,114723.9584,$,,,0,ce_218A_231_lab +318,ref_218A_231_mat,Reference site material cost for 218A.231,9480.524141,$,,,0,ce_218A_231_mat +319,ref_218A_232_fac,Reference factory equipment cost for 218A.232,801211.4132,$,,,0,ce_218A_232_fac +320,ref_218A_232_lab,Reference site labor cost for 218A.232,193144.9921,$,,,0,ce_218A_232_lab +321,ref_218A_232_mat,Reference site material cost for 218A.232,15969.88507,$,,,0,ce_218A_232_mat +322,ref_218A_233_fac,Reference factory equipment cost for 218A.233,3070.170928,$,,,0,ce_218A_233_fac +323,ref_218A_233_lab,Reference site labor cost for 218A.233,8103.008536,$,,,0,ce_218A_233_lab +324,ref_218A_233_mat,Reference site material cost for 218A.233,653.3598834,$,,,0,ce_218A_233_mat +325,ref_218A_234_fac,Reference factory equipment cost for 218A.234,193498.1677,$,,,0,ce_218A_234_fac +326,ref_218A_234_lab,Reference site labor cost for 218A.234,75100.20088,$,,,0,ce_218A_234_lab +327,ref_218A_234_mat,Reference site material cost for 218A.234,6213.724724,$,,,0,ce_218A_234_mat +328,ref_218A_235_fac,Reference factory equipment cost for 218A.235,1240903.304,$,,,0,ce_218A_235_fac +329,ref_218A_235_lab,Reference site labor cost for 218A.235,7537476.269,$,,,0,ce_218A_235_lab +330,ref_218A_235_mat,Reference site material cost for 218A.235,1213347.277,$,,,0,ce_218A_235_mat +331,ref_218A_236_fac,Reference factory equipment cost for 218A.236,267144.7431,$,,,0,ce_218A_236_fac +332,ref_218A_236_lab,Reference site labor cost for 218A.236,168717.358,$,,,0,ce_218A_236_lab +333,ref_218A_236_mat,Reference site material cost for 218A.236,13831.86384,$,,,0,ce_218A_236_mat +334,ref_218A_237_fac,Reference factory equipment cost for 218A.237,34666.4281,$,,,0,ce_218A_237_fac +335,ref_218A_238_fac,Reference factory equipment cost for 218A.238,319916.9706,$,,,0,ce_218A_238_fac +336,ref_218A_238_lab,Reference site labor cost for 218A.238,65280.56113,$,,,0,ce_218A_238_lab +337,ref_218A_238_mat,Reference site material cost for 218A.238,2664.483275,$,,,0,ce_218A_238_mat +338,ref_218A_24_lab,Reference site labor cost for 218A.24,2024660.407,$,,,0,ce_218A_24_lab +339,ref_218A_24_mat,Reference site material cost for 218A.24,621004.9575,$,,,0,ce_218A_24_mat +340,ref_218B_22_fac,Aggregated reference fac cost for 218B.22,1866506.932348,$,,,0,ce_218B_22_fac +341,ref_218B_22_lab,Aggregated reference lab cost for 218B.22,3131658.99519,$,,,0,ce_218B_22_lab +342,ref_218B_22_mat,Aggregated reference mat cost for 218B.22,457290.8982603,$,,,0,ce_218B_22_mat +343,ref_218B_23_fac,Aggregated reference fac cost for 218B.23,23772.3181215,$,,,0,ce_218B_23_fac +344,ref_218B_23_lab,Aggregated reference lab cost for 218B.23,23161.106682,$,,,0,ce_218B_23_lab +345,ref_218B_23_mat,Aggregated reference mat cost for 218B.23,1732.6566528,$,,,0,ce_218B_23_mat +346,ref_218B_24_lab,Reference site labor cost for 218B.24,970307.7957,$,,,0,ce_218B_24_lab +347,ref_218B_24_mat,Reference site material cost for 218B.24,379587.355,$,,,0,ce_218B_24_mat +348,ref_218B_25_fac,Reference factory equipment cost for 218B.25,88303.82096,$,,,0,ce_218B_25_fac +349,ref_218B_25_lab,Reference site labor cost for 218B.25,45810.80044,$,,,0,ce_218B_25_lab +350,ref_218B_25_mat,Reference site material cost for 218B.25,3586.127801,$,,,0,ce_218B_25_mat +351,ref_218D_fac,Reference factory equipment cost for 218D,87852.60004,$,,,0, +352,ref_218D_lab,Reference site labor cost for 218D,784039.4097,$,,,0, +353,ref_218D_mat,Reference site material cost for 218D,353929.4,$,,,0, +354,ref_218E_fac,Aggregated reference fac cost for 218E,49512.3482421,$,,,0, +355,ref_218E_lab,Aggregated reference lab cost for 218E,95924.246122,$,,,0, +356,ref_218E_mat,Aggregated reference mat cost for 218E,18264.7292811,$,,,0, +357,ref_218F_lab,Reference site labor cost for 218F,1988491.89,$,,,0, +358,ref_218F_mat,Reference site material cost for 218F,643590.2,$,,,0, +359,ref_218G_fac,Reference factory equipment cost for 218G,24217.6,$,,,0, +360,ref_218G_lab,Reference site labor cost for 218G,121782.08,$,,,0, +361,ref_218G_mat,Reference site material cost for 218G,45674.19999,$,,,0, +362,ref_218H_fac,Reference factory equipment cost for 218H,43003.39998,$,,,0, +363,ref_218H_lab,Reference site labor cost for 218H,951888.6302,$,,,0, +364,ref_218H_mat,Reference site material cost for 218H,633998.2,$,,,0, +365,ref_218J_fac,Aggregated reference fac cost for 218J,77809.66993,$,,,0, +366,ref_218J_lab,Aggregated reference lab cost for 218J,477499.37046,$,,,0, +367,ref_218J_mat,Aggregated reference mat cost for 218J,52345.446996,$,,,0, +368,ref_218K_lab,Reference site labor cost for 218K,643823.0399,$,,,0, +369,ref_218K_mat,Reference site material cost for 218K,262017.8,$,,,0, +370,ref_218L_fac,Reference factory equipment cost for 218L,137163.4,$,,,0, +371,ref_218L_lab,Reference site labor cost for 218L,1478143.59,$,,,0, +372,ref_218L_mat,Reference site material cost for 218L,667730.7999,$,,,0, +373,ref_218P_lab,Reference site labor cost for 218P,439306.5601,$,,,0, +374,ref_218P_mat,Reference site material cost for 218P,127124.8,$,,,0, +375,ref_218S_fac,Reference factory equipment cost for 218S,18293.0,$,,,0, +376,ref_218S_lab,Reference site labor cost for 218S,1325719.33,$,,,0, +377,ref_218S_mat,Reference site material cost for 218S,668122.4,$,,,0, +378,ref_218T_fac,Aggregated reference fac cost for 218T,94454.799961,$,,,0, +379,ref_218T_lab,Aggregated reference lab cost for 218T,150357.879252,$,,,0, +380,ref_218T_mat,Aggregated reference mat cost for 218T,34382.9686994,$,,,0, +381,ref_218V_lab,Reference site labor cost for 218V,172589.34,$,,,0, +382,ref_218V_mat,Reference site material cost for 218V,67568.60003,$,,,0, +383,ref_221_1_fac,Aggregated reference fac cost for 221.1,54943623.46,$,,,0, +384,ref_221_1_lab,Aggregated reference lab cost for 221.1,6959303.009000001,$,,,0, +385,ref_221_1_mat,Aggregated reference mat cost for 221.1,13117014.5191,$,,,0, +386,ref_221_2_fac,Aggregated reference fac cost for 221.2,29518644.19,$,,,0, +387,ref_221_2_lab,Aggregated reference lab cost for 221.2,1128496.709,$,,,0, +388,ref_221_2_mat,Aggregated reference mat cost for 221.2,106736.278,$,,,0, +389,ref_221_3_fac,Reference factory equipment cost for 221.3,48271430.44,$,,,0, +390,ref_221_3_lab,Reference site labor cost for 221.3,1305834.897,$,,,0, +391,ref_221_3_mat,Reference site material cost for 221.3,121580.4158,$,,,0, +392,ref_222_111_fac,Reference factory equipment cost for 222.111,96235783.51,$,,,0,ce_222_111_fac +393,ref_222_111_lab,Reference site labor cost for 222.111,3849475.091,$,,,0,ce_222_111_lab +394,ref_222_111_mat,Reference site material cost for 222.111,389420.0622,$,,,0,ce_222_111_mat +395,ref_222_119_fac,Reference factory equipment cost for 222.119,2899631.744,$,,,0,ce_222_119_fac +396,ref_222_119_lab,Reference site labor cost for 222.119,4571014.442,$,,,0,ce_222_119_lab +397,ref_222_119_mat,Reference site material cost for 222.119,456144.5743,$,,,0,ce_222_119_mat +398,ref_222_12_fac,Aggregated reference fac cost for 222.12,12181696.7822,$,,,0, +399,ref_222_12_lab,Aggregated reference lab cost for 222.12,21860871.5365,$,,,0, +400,ref_222_12_mat,Aggregated reference mat cost for 222.12,2154574.6244,$,,,0, +401,ref_222_132_fac,Reference factory equipment cost for 222.132,115107954.9,$,,,0,ce_222_132_fac +402,ref_222_132_lab,Reference site labor cost for 222.132,3379073.239,$,,,0,ce_222_132_lab +403,ref_222_132_mat,Reference site material cost for 222.132,358033.9676,$,,,0,ce_222_132_mat +404,ref_222_139_fac,Reference factory equipment cost for 222.139,57628.3032,$,,,0,ce_222_139_fac +405,ref_222_139_lab,Reference site labor cost for 222.139,507890.4935,$,,,0,ce_222_139_lab +406,ref_222_139_mat,Reference site material cost for 222.139,50682.73048,$,,,0,ce_222_139_mat +407,ref_222_14_fac,Aggregated reference fac cost for 222.14,7810895.18558,$,,,0, +408,ref_222_14_lab,Aggregated reference lab cost for 222.14,554399.45973,$,,,0, +409,ref_222_14_mat,Aggregated reference mat cost for 222.14,54698.157812,$,,,0, +410,ref_223_1_fac,Aggregated reference fac cost for 223.1,9125519.8133,$,,,0, +411,ref_223_1_lab,Aggregated reference lab cost for 223.1,7673809.6359,$,,,0, +412,ref_223_1_mat,Aggregated reference mat cost for 223.1,643801.125867,$,,,0, +413,ref_223_3_fac,Aggregated reference fac cost for 223.3,17995520.495,$,,,0, +414,ref_223_3_lab,Aggregated reference lab cost for 223.3,12484140.12657,$,,,0, +415,ref_223_3_mat,Aggregated reference mat cost for 223.3,1849558.449168,$,,,0, +416,ref_223_4_fac,Aggregated reference fac cost for 223.4,7178727.713500001,$,,,0, +417,ref_223_4_lab,Aggregated reference lab cost for 223.4,12825487.28281,$,,,0, +418,ref_223_4_mat,Aggregated reference mat cost for 223.4,1137444.056296,$,,,0, +419,ref_223_5_fac,Aggregated reference fac cost for 223.5,2020969.93592,$,,,0, +420,ref_223_5_lab,Aggregated reference lab cost for 223.5,1237700.47984,$,,,0, +421,ref_223_5_mat,Aggregated reference mat cost for 223.5,107715.599041,$,,,0, +422,ref_224_1_fac,Aggregated reference fac cost for 224.1,17578043.84462,$,,,0, +423,ref_224_1_lab,Aggregated reference lab cost for 224.1,23504618.58384,$,,,0, +424,ref_224_1_mat,Aggregated reference mat cost for 224.1,2415803.7008854,$,,,0, +425,ref_224_2_fac,Aggregated reference fac cost for 224.2,3090436.715,$,,,0, +426,ref_224_2_lab,Aggregated reference lab cost for 224.2,1216147.837,$,,,0, +427,ref_224_2_mat,Aggregated reference mat cost for 224.2,75770.24729,$,,,0, +428,ref_224_3_fac,Aggregated reference fac cost for 224.3,17307453.167600002,$,,,0, +429,ref_224_3_lab,Aggregated reference lab cost for 224.3,3175748.8484,$,,,0, +430,ref_224_3_mat,Aggregated reference mat cost for 224.3,313011.354128,$,,,0, +431,ref_225_111_fac,Reference factory equipment cost for 225.111,237225.8382,$,,,0,ce_225_111_fac +432,ref_225_111_lab,Reference site labor cost for 225.111,142693.1867,$,,,0,ce_225_111_lab +433,ref_225_111_mat,Reference site material cost for 225.111,11385.05953,$,,,0,ce_225_111_mat +434,ref_225_112_fac,Reference factory equipment cost for 225.112,31779.3104,$,,,0,ce_225_112_fac +435,ref_225_112_lab,Reference site labor cost for 225.112,28538.63734,$,,,0,ce_225_112_lab +436,ref_225_112_mat,Reference site material cost for 225.112,2275.585206,$,,,0,ce_225_112_mat +437,ref_225_113_fac,Reference factory equipment cost for 225.113,78282.49207,$,,,0,ce_225_113_fac +438,ref_225_113_lab,Reference site labor cost for 225.113,142693.1867,$,,,0,ce_225_113_lab +439,ref_225_113_mat,Reference site material cost for 225.113,11281.55898,$,,,0,ce_225_113_mat +440,ref_225_114_fac,Reference factory equipment cost for 225.114,1423355.029,$,,,0,ce_225_114_fac +441,ref_225_114_lab,Reference site labor cost for 225.114,395150.3632,$,,,0,ce_225_114_lab +442,ref_225_114_mat,Reference site material cost for 225.114,31522.91857,$,,,0,ce_225_114_mat +443,ref_225_12_fac,Reference factory equipment cost for 225.12,311913.9315,$,,,0, +444,ref_225_12_lab,Reference site labor cost for 225.12,40279.58386,$,,,0, +445,ref_225_12_mat,Reference site material cost for 225.12,3213.639922,$,,,0, +446,ref_225_13_fac,Aggregated reference fac cost for 225.13,435399.74599,$,,,0, +447,ref_225_13_lab,Aggregated reference lab cost for 225.13,1025848.6056,$,,,0, +448,ref_225_13_mat,Aggregated reference mat cost for 225.13,77501.834251,$,,,0, +449,ref_225_3_fac,Aggregated reference fac cost for 225.3,227028.0975,$,,,0, +450,ref_225_3_lab,Aggregated reference lab cost for 225.3,143339.4107,$,,,0, +451,ref_225_3_mat,Aggregated reference mat cost for 225.3,10769.08215,$,,,0, +452,ref_225_4_fac,Aggregated reference fac cost for 225.4,4553380.16247,$,,,0, +453,ref_225_4_lab,Aggregated reference lab cost for 225.4,2057890.48916,$,,,0, +454,ref_225_4_mat,Aggregated reference mat cost for 225.4,226720.594276,$,,,0, +455,ref_226_1_fac,Aggregated reference fac cost for 226.1,1768563.444,$,,,0, +456,ref_226_1_lab,Aggregated reference lab cost for 226.1,2571525.626,$,,,0, +457,ref_226_1_mat,Aggregated reference mat cost for 226.1,200061.0012,$,,,0, +458,ref_226_3_fac,Aggregated reference fac cost for 226.3,2016124.88944,$,,,0, +459,ref_226_3_lab,Aggregated reference lab cost for 226.3,3000197.53557,$,,,0, +460,ref_226_3_mat,Aggregated reference mat cost for 226.3,628917.8974236,$,,,0, +461,ref_226_4_fac,Aggregated reference fac cost for 226.4,24729843.087,$,,,0, +462,ref_226_4_lab,Aggregated reference lab cost for 226.4,35691506.611,$,,,0, +463,ref_226_4_mat,Aggregated reference mat cost for 226.4,4098205.311,$,,,0, +464,ref_226_6_fac,Aggregated reference fac cost for 226.6,381757.8008,$,,,0, +465,ref_226_6_lab,Aggregated reference lab cost for 226.6,93253.8854,$,,,0, +466,ref_226_6_mat,Aggregated reference mat cost for 226.6,3658.72934,$,,,0, +467,ref_226_71_fac,Aggregated reference fac cost for 226.71,13497035.8998,$,,,0, +468,ref_226_71_lab,Aggregated reference lab cost for 226.71,29663437.3234,$,,,0, +469,ref_226_71_mat,Aggregated reference mat cost for 226.71,2285411.729199,$,,,0, +470,ref_226_72_fac,Aggregated reference fac cost for 226.72,12452416.7199,$,,,0, +471,ref_226_72_lab,Aggregated reference lab cost for 226.72,17484840.09237,$,,,0, +472,ref_226_72_mat,Aggregated reference mat cost for 226.72,1360292.762976,$,,,0, +473,ref_226_8_fac,Aggregated reference fac cost for 226.8,7867871.49,$,,,0, +474,ref_226_8_lab,Aggregated reference lab cost for 226.8,355003.30216,$,,,0, +475,ref_226_8_mat,Aggregated reference mat cost for 226.8,2008164.99365,$,,,0, +476,ref_226_9_fac,Aggregated reference fac cost for 226.9,895545.655225,$,,,0, +477,ref_226_9_lab,Aggregated reference lab cost for 226.9,1385536.3887,$,,,0, +478,ref_226_9_mat,Aggregated reference mat cost for 226.9,116782.23729,$,,,0, +479,ref_227_11_fac,Reference factory equipment cost for 227.11,2348124.118,$,,,0, +480,ref_227_11_lab,Reference site labor cost for 227.11,956553.3662,$,,,0, +481,ref_227_11_mat,Reference site material cost for 227.11,47080.64023,$,,,0, +482,ref_227_15_fac,Reference factory equipment cost for 227.15,201316.7982,$,,,0, +483,ref_227_15_lab,Reference site labor cost for 227.15,146670.7044,$,,,0, +484,ref_227_15_mat,Reference site material cost for 227.15,7611.624429,$,,,0, +485,ref_227_16_fac,Reference factory equipment cost for 227.16,841507.4498,$,,,0, +486,ref_227_16_lab,Reference site labor cost for 227.16,573931.4903,$,,,0, +487,ref_227_16_mat,Reference site material cost for 227.16,29789.75467,$,,,0, +488,ref_227_17_fac,Reference factory equipment cost for 227.17,805269.6058,$,,,0, +489,ref_227_17_lab,Reference site labor cost for 227.17,573931.4903,$,,,0, +490,ref_227_17_mat,Reference site material cost for 227.17,29789.75467,$,,,0, +491,ref_227_18_fac,Reference factory equipment cost for 227.18,1007976.135,$,,,0, +492,ref_227_18_lab,Reference site labor cost for 227.18,446391.7474,$,,,0, +493,ref_227_18_mat,Reference site material cost for 227.18,21971.66031,$,,,0, +494,ref_227_19_fac,Reference factory equipment cost for 227.19,543551.0205,$,,,0, +495,ref_227_19_lab,Reference site labor cost for 227.19,159427.3258,$,,,0, +496,ref_227_19_mat,Reference site material cost for 227.19,7845.90479,$,,,0, +497,ref_227_2_fac,Reference factory equipment cost for 227.2,6575350.648,$,,,0, +498,ref_227_2_lab,Reference site labor cost for 227.2,913902.4667,$,,,0, +499,ref_227_2_mat,Reference site material cost for 227.2,89960.81599,$,,,0, +500,ref_227_3_fac,Aggregated reference fac cost for 227.3,6821452.5089,$,,,0, +501,ref_227_3_lab,Aggregated reference lab cost for 227.3,2569941.70284,$,,,0, +502,ref_227_3_mat,Aggregated reference mat cost for 227.3,141557.216123,$,,,0, +503,ref_227_4_fac,Aggregated reference fac cost for 227.4,5434791.773,$,,,0, +504,ref_227_4_lab,Aggregated reference lab cost for 227.4,1944991.6681,$,,,0, +505,ref_227_4_mat,Aggregated reference mat cost for 227.4,191457.2748,$,,,0, +506,ref_227_5_fac,Reference factory equipment cost for 227.5,435585.8101,$,,,0, +507,ref_227_5_lab,Reference site labor cost for 227.5,8927819.064,$,,,0, +508,ref_227_5_mat,Reference site material cost for 227.5,870827.6585,$,,,0, +509,ref_227_9_fac,Reference factory equipment cost for 227.9,5218992.184,$,,,0, +510,ref_227_9_lab,Reference site labor cost for 227.9,3188506.809,$,,,0, +511,ref_227_9_mat,Reference site material cost for 227.9,313864.8548,$,,,0, +512,ref_228_lab,Aggregated reference lab cost for 228,13169656.351,$,,,0, +513,ref_228_mat,Aggregated reference mat cost for 228,7193434.6014,$,,,0, +514,ref_23_fac,Aggregated reference fac cost for 23,398537111.53,$,,,0, +515,ref_23_lab,Aggregated reference lab cost for 23,169158211.60999998,$,,,0, +516,ref_23_mat,Aggregated reference mat cost for 23,25604663.869,$,,,0, +517,ref_241_fac,Aggregated reference fac cost for 241,24759182.802,$,,,0, +518,ref_241_lab,Aggregated reference lab cost for 241,1352628.48,$,,,0, +519,ref_241_mat,Aggregated reference mat cost for 241,194352.4,$,,,0, +520,ref_242_fac,Aggregated reference fac cost for 242,40273254.999,$,,,0, +521,ref_242_lab,Aggregated reference lab cost for 242,3777121.6009,$,,,0, +522,ref_242_mat,Aggregated reference mat cost for 242,717829.2001,$,,,0, +523,ref_243_fac,Aggregated reference fac cost for 243,3457143.7988,$,,,0, +524,ref_243_lab,Aggregated reference lab cost for 243,770259.4911,$,,,0, +525,ref_243_mat,Aggregated reference mat cost for 243,69770.84044999999,$,,,0, +526,ref_244_lab,Aggregated reference lab cost for 244,7182716.802999999,$,,,0, +527,ref_244_mat,Aggregated reference mat cost for 244,3891223.5978,$,,,0, +528,ref_245_lab,Aggregated reference lab cost for 245,89344823.69,$,,,0, +529,ref_245_mat,Aggregated reference mat cost for 245,14935133.401,$,,,0, +530,ref_246_fac,Aggregated reference fac cost for 246,3906081.919,$,,,0, +531,ref_246_lab,Aggregated reference lab cost for 246,47899828.477,$,,,0, +532,ref_246_mat,Aggregated reference mat cost for 246,23576371.2735,$,,,0, +533,ref_251_11_fac,Aggregated reference fac cost for 251.11,3919300.0,$,,,0, +534,ref_251_11_lab,Aggregated reference lab cost for 251.11,607877.0538999999,$,,,0, +535,ref_251_11_mat,Aggregated reference mat cost for 251.11,63379.76292,$,,,0, +536,ref_251_12_fac,Reference factory equipment cost for 251.12,5599000.0,$,,,0, +537,ref_251_12_lab,Reference site labor cost for 251.12,1215742.355,$,,,0, +538,ref_251_12_mat,Reference site material cost for 251.12,126759.5258,$,,,0, +539,ref_251_16_fac,Reference factory equipment cost for 251.16,671880.0,$,,,0, +540,ref_251_16_lab,Reference site labor cost for 251.16,572112.3209,$,,,0, +541,ref_251_16_mat,Reference site material cost for 251.16,59651.36136,$,,,0, +542,ref_251_17_fac,Reference factory equipment cost for 251.17,940632.0,$,,,0, +543,ref_251_17_lab,Reference site labor cost for 251.17,100121.8599,$,,,0, +544,ref_251_17_mat,Reference site material cost for 251.17,10440.74981,$,,,0, +545,ref_252_1_fac,Aggregated reference fac cost for 252.1,3990340.548,$,,,0, +546,ref_252_1_lab,Aggregated reference lab cost for 252.1,19619508.343,$,,,0, +547,ref_252_1_mat,Aggregated reference mat cost for 252.1,834673.121,$,,,0, +548,ref_252_2_fac,Aggregated reference fac cost for 252.2,12778995.778,$,,,0, +549,ref_252_2_lab,Aggregated reference lab cost for 252.2,49274175.28300001,$,,,0, +550,ref_252_2_mat,Aggregated reference mat cost for 252.2,10358280.0372,$,,,0, +551,ref_252_3_fac,Aggregated reference fac cost for 252.3,5820232.71781,$,,,0, +552,ref_252_3_lab,Aggregated reference lab cost for 252.3,9072230.95898,$,,,0, +553,ref_252_3_mat,Aggregated reference mat cost for 252.3,536164.732992,$,,,0, +554,ref_252_4_lab,Aggregated reference lab cost for 252.4,484340.6169,$,,,0, +555,ref_252_4_mat,Aggregated reference mat cost for 252.4,270868.02393,$,,,0, +556,ref_253_fac,Aggregated reference fac cost for 253,4287360.0,$,,,0, +557,ref_253_lab,Aggregated reference lab cost for 253,10454512.323,$,,,0, +558,ref_253_mat,Aggregated reference mat cost for 253,1443732.4,$,,,0, +559,ref_254_fac,Aggregated reference fac cost for 254,4909689.3994,$,,,0, +560,ref_254_lab,Aggregated reference lab cost for 254,1396674.709504,$,,,0, +561,ref_254_mat,Aggregated reference mat cost for 254,161290.79995349998,$,,,0, +562,ref_255_fac,Reference factory equipment cost for 255,1668854.0,$,,,0, +563,ref_255_lab,Reference site labor cost for 255,4553152.499,$,,,0, +564,ref_255_mat,Reference site material cost for 255,453254.9999,$,,,0, +565,ref_261_fac,Aggregated reference fac cost for 261,392618.03808,$,,,0, +566,ref_261_lab,Aggregated reference lab cost for 261,9125289.026,$,,,0, +567,ref_261_mat,Aggregated reference mat cost for 261,3921296.0821,$,,,0, +568,ref_262_11_fac,Reference factory equipment cost for 262.11,818836.1028,$,,,0, +569,ref_262_11_lab,Reference site labor cost for 262.11,298851.6538,$,,,0, +570,ref_262_11_mat,Reference site material cost for 262.11,31388.27887,$,,,0, +571,ref_262_12_fac,Reference factory equipment cost for 262.12,19786129.24,$,,,0, +572,ref_262_12_lab,Reference site labor cost for 262.12,15368420.84,$,,,0, +573,ref_262_12_mat,Reference site material cost for 262.12,2229912.276,$,,,0, +574,ref_262_13_fac,Reference factory equipment cost for 262.13,46211135.76,$,,,0, +575,ref_262_13_lab,Reference site labor cost for 262.13,26887199.25,$,,,0, +576,ref_262_13_mat,Reference site material cost for 262.13,2138353.432,$,,,0, +577,ref_262_14_lab,Reference site labor cost for 262.14,130171.644,$,,,0, +578,ref_262_14_mat,Reference site material cost for 262.14,117381.9543,$,,,0, +579,ref_262_15_fac,Reference factory equipment cost for 262.15,2719803.892,$,,,0, +580,ref_262_15_lab,Reference site labor cost for 262.15,547270.1731,$,,,0, +581,ref_262_15_mat,Reference site material cost for 262.15,104605.3008,$,,,0, +582,ref_S,Reference Area for General Yardwork 211.1,62.0,m^2,,,0,scale_S +583,ref_bldg_V,Reference Building volume for Structural & Miscellaneous Steel 213.142,212000.0,m^3,,,0,scale_bldg_V +584,ref_cmn_bldg_vol,Reference common containment/auxiliary building volume,92268.0,m^3,,,0,"scale_adm_bldg_bldg_vol, scale_cont_hatch_ms_bldg_vol, scale_cont_V, scale_elec_tunnel_bldg_vol, scale_non_ess_swgr_bldg_bldg_vol, scale_sup_const, scale_wwt_bldg_bldg_vol" +585,ref_cr_dg_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 218142,48762.0,m^3,,,0,scale_cr_dg_bldg_bldg_vol +586,ref_cr_dg_bldg_sub_S,Reference Substructure S for Roofing & Flashing 218145,1890.0,m^2,,,0,scale_cr_dg_bldg_sub_S +587,ref_cr_dg_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 21813,2268.0,m^3,,,0,scale_cr_dg_bldg_sub_vol +588,ref_cr_dg_bldg_sup_S,Reference Superstructure S for Painting 218149,6258.0,m^2,,,0,scale_cr_dg_bldg_sup_S +589,ref_cr_dg_bldg_sup_vol,Reference Superstructure volume for Concrete Work 218141,3755.0,m^3,,,0,scale_cr_dg_bldg_sup_vol +590,ref_direct_cost_frm_flow,"Reference direct cost basis for Flow rate scale, source account 222.11",108401469.0,kg/s,,,0,scale_frm_flow +591,ref_direct_cost_frm_fuel_cask_cap,"Reference direct cost basis for Fuel cask capacity scale, source account 225.114",1850028.0,tonne,,,0,scale_frm_fuel_cask_cap +592,ref_direct_cost_frm_fuel_crane_cap,"Reference direct cost basis for Fuel crane capacity scale, source account 225.111",391304.0,tonne,,,0,scale_frm_fuel_crane_cap +593,ref_direct_cost_frm_ht_S,"Reference direct cost basis for HT surface S scale, source account 222.13",119461264.0,m^2,,,0,scale_frm_ht_S +594,ref_direct_cost_frm_prz_M,"Reference direct cost basis for Pressurizer mass scale, source account 222.14",8419993.0,kg,,,0,scale_frm_prz_M +595,ref_direct_cost_frm_S,"Reference direct cost basis for Surface S scale, source account 212.3",1.0,m^2,,,0,scale_frm_S +596,ref_direct_cost_frm_S_9_71886e_06,"Reference direct cost basis for Surface S scale, source account 217.3",9718863.0,m^2,,,0,scale_frm_S_9_71886e_06 +597,ref_direct_cost_frm_vsl_M,"Reference direct cost basis for Vessel mass scale, source account 221.1",75019941.0,kg,,,0,scale_frm_vsl_M +598,ref_elec_P,Reference electric power used by electric-power scale laws,1144.0,MWe,,,0,"scale_elec_P, scale_tur_plant_equip_elec_P" +599,ref_fuel_stor_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 217.142,28800.0,m^3,,,0,scale_fuel_stor_bldg_bldg_vol +600,ref_fuel_stor_bldg_sub_S,Reference Substructure S for Roofing & Flashing 217.145,900.0,m^2,,,0,scale_fuel_stor_bldg_sub_S +601,ref_fuel_stor_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 217.13,1080.0,m^3,,,0,scale_fuel_stor_bldg_sub_vol +602,ref_fuel_stor_bldg_sup_S,Reference Superstructure S for Painting 217.149,3840.0,m^2,,,0,scale_fuel_stor_bldg_sup_S +603,ref_fuel_stor_bldg_sup_vol,Reference Superstructure volume for Concrete Work 217.141,2304.0,m^3,,,0,scale_fuel_stor_bldg_sup_vol +604,ref_mc_piping_M,Reference MC piping mass for Reactor Coolant Piping System 222.12,154000.0,kg,,,0,scale_mc_piping_M +605,ref_n_crs,Reference Number of CRs for Reactor Control Devices 221.2,57.0,,,,0,scale_n_crs +606,ref_pri_aux_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 215.142,36232.0,m^3,,,0,scale_pri_aux_bldg_bldg_vol +607,ref_pri_aux_bldg_sub_S,Reference Substructure S for Roofing & Flashing 215.145,1294.0,m^2,,,0,scale_pri_aux_bldg_sub_S +608,ref_pri_aux_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 215.13,1553.0,m^3,,,0,scale_pri_aux_bldg_sub_vol +609,ref_pri_aux_bldg_sup_S,Reference Superstructure S for Painting 215.149,5544.0,m^2,,,0,scale_pri_aux_bldg_sup_S +610,ref_pri_aux_bldg_sup_vol,Reference Superstructure volume for Concrete Work 215.141,3326.0,m^3,,,0,scale_pri_aux_bldg_sup_vol +611,ref_pri_flow,Reference Primary flowrate for Liquid Waste System 224.1,23872.0,kg/s,,,0,scale_pri_flow +612,ref_rx_D,Reference Reactor diameter (m) for Vessel Internals 221.3,4.6,m,,,0,scale_rx_D +613,ref_rej_th_P,Reference Rejected thermal power for 261.1,2273.0,MWt,,,0,scale_rej_th_P +614,ref_rx_P,Reference reactor/plant thermal power used by RX/plant-power scale laws,3417.0,MWt,,,0,scale_P +615,ref_sfp_V,"Reference SFP volume for Fuel Storage, Cleaning, & Inspection Equipment 225.4",1056.0,m^3,,,0,scale_sfp_V +616,ref_sub_str_S,Reference Substructure S for Roof Deck 213.144,6100.0,m^2,,,0,scale_sub_str_S +617,ref_sub_str_V,Reference Substructure volume for Substructure Concrete 212.13,4603.0,m^3,,,0,scale_sub_str_V +618,ref_sup_str_S,Reference Superstructure S for Painting 212.149,9373.0,m^2,,,0,scale_sup_str_S +619,ref_sup_str_V,Reference Superstructure volume for Concrete Work 212.141,11248.0,m^3,,,0,scale_sup_str_V +620,ref_turb_gen_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 213.13,1830.0,m^3,,,0,scale_turb_gen_bldg_sub_vol +621,ref_turb_gen_bldg_sup_S,Reference Superstructure S for Exterior Walls 213.143,17040.0,m^2,,,0,scale_turb_gen_bldg_sup_S +622,ref_turb_gen_bldg_sup_vol,Reference Superstructure volume for Concrete Work 213.141,5112.0,m^3,,,0,scale_turb_gen_bldg_sup_vol +623,ref_V_of_212_213_215_216_217,"Reference Volume of 212, 213, 215, 216, 217 for Fill & Backfill (Place/Comp) 211.712",416524.0,m^3,,,0,scale_V_of_212_213_215_216_217 +624,ref_waste_bldg_bldg_vol,Reference Building volume for Structural & Miscellaneous Steel 216.142,53328.0,m^3,,,0,scale_waste_bldg_bldg_vol +625,ref_waste_bldg_sub_S,Reference Substructure S for Roof Deck 216.144,1728.0,m^2,,,0,scale_waste_bldg_sub_S +626,ref_waste_bldg_sub_vol,Reference Substructure volume for Substructure Concrete 216.13,2074.0,m^3,,,0,scale_waste_bldg_sub_vol +627,ref_waste_bldg_sup_S,Reference Superstructure S for Exterior Walls 216.143,7380.0,m^2,,,0,scale_waste_bldg_sup_S +628,ref_waste_bldg_sup_vol,Reference Superstructure volume for Concrete Work 216.141,4428.0,m^3,,,0,scale_waste_bldg_sup_vol +629,scale_adm_bldg_bldg_vol,Admin Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_admin_bldg,"adm_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin",0,"ce_218B_24_mat, ce_218B_24_lab" +630,scale_S,Site Area scale factor = (new base unit value / Reference unit value)^exponent.,0.3709677419354839,1,scale_law_site_S,"S, ref_S, exp_lin",0, +631,scale_bldg_V,Building Volume scale factor = (new base unit value / Reference unit value)^exponent.,0.9169433962264152,1,scale_law_bldg_V,"bldg_V, ref_bldg_V, exp_lin",0,"ce_213_142_mat, ce_213_142_lab, ce_213_146_mat, ce_213_146_lab, ce_213_147_mat, ce_213_147_lab" +632,scale_cont_hatch_ms_bldg_vol,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_containment,"cont_hatch_ms_bldg_vol, ref_cmn_bldg_vol, exp_lin",0, +633,scale_cont_V,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.933844215884506,1,scale_law_containment,"cont_V, ref_cmn_bldg_vol, exp_lin",0, +634,scale_cr_dg_bldg_bldg_vol,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0545506747057134,1,scale_law_control_dg_bldg,"cr_dg_bldg_bldg_vol, ref_cr_dg_bldg_bldg_vol, exp_lin",0,"ce_218A_142_mat, ce_218A_142_lab, ce_218A_146_mat, ce_218A_146_lab, ce_218A_147_mat, ce_218A_147_lab, ce_218A_148_mat, ce_218A_148_lab, ce_218A_21_mat, ce_218A_21_lab, ce_218A_235_fac, ce_218A_235_mat, ce_218A_235_lab, ce_218A_236_fac, ce_218A_236_mat, ce_218A_236_lab, ce_218A_237_fac, ce_218A_24_mat, ce_218A_24_lab" +635,scale_cr_dg_bldg_sub_S,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.201058201058201,1,scale_law_control_dg_bldg,"cr_dg_bldg_sub_S, ref_cr_dg_bldg_sub_S, exp_lin",0,"ce_218A_145_mat, ce_218A_145_lab" +636,scale_cr_dg_bldg_sub_vol,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.1005291005291005,1,scale_law_control_dg_bldg,"cr_dg_bldg_sub_vol, ref_cr_dg_bldg_sub_vol, exp_lin",0,"ce_218A_13_mat, ce_218A_13_lab" +637,scale_cr_dg_bldg_sup_S,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.087248322147651,1,scale_law_control_dg_bldg,"cr_dg_bldg_sup_S, ref_cr_dg_bldg_sup_S, exp_lin",0,"ce_218A_149_mat, ce_218A_149_lab" +638,scale_cr_dg_bldg_sup_vol,Control Dg Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0436218375499334,1,scale_law_control_dg_bldg,"cr_dg_bldg_sup_vol, ref_cr_dg_bldg_sup_vol, exp_lin",0,"ce_218A_141_mat, ce_218A_141_lab" +639,scale_elec_P,Electric Power scale factor = (new base unit value / Reference unit value)^exponent.,0.9810738928018627,1,scale_law_elec_P,"elec_P, ref_elec_P, exp_elec_P",0, +640,scale_elec_tunnel_bldg_vol,Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_electrical_bldg,"elec_tunnel_bldg_vol, ref_cmn_bldg_vol, exp_lin",0, +641,scale_frm_flow,Formula Flow Rate direct formula scale factor.,0.9285660117258324,1,formula_scale_flow_rate,"uc_frm_flow, frm_flow, ref_direct_cost_frm_flow",0,"ce_222_111_fac, ce_222_111_mat, ce_222_111_lab, ce_222_119_fac, ce_222_119_mat, ce_222_119_lab" +642,scale_frm_fuel_cask_cap,Formula Fuel Cask Capacity direct formula scale factor.,1.0032384136058523,1,formula_scale_fuel_cask_capacity,"uc_frm_fuel_cap, frm_fuel_cask_cap, ref_direct_cost_frm_fuel_cask_cap",0,"ce_225_114_fac, ce_225_114_mat, ce_225_114_lab" +643,scale_frm_fuel_crane_cap,Formula Fuel Crane Capacity direct formula scale factor.,1.0752528615939023,1,formula_scale_fuel_crane_capacity,"uc_frm_fuel_cap, frm_fuel_crane_cap, ref_direct_cost_frm_fuel_crane_cap",0,"ce_225_111_fac, ce_225_111_mat, ce_225_111_lab" +644,scale_frm_ht_S,Formula Ht Surface Area direct formula scale factor.,1.3013555355784228,1,formula_scale_ht_surface_S,"uc_frm_ht_S, frm_ht_S, ref_direct_cost_frm_ht_S",0,"ce_222_132_fac, ce_222_132_mat, ce_222_132_lab, ce_222_139_fac, ce_222_139_mat, ce_222_139_lab" +645,scale_frm_prz_M,Formula Pressurizer Mass direct formula scale factor.,1.1148404907542149,1,formula_scale_pressurizer_mass,"uc_frm_prz_M, frm_prz_M, ref_direct_cost_frm_prz_M",0, +646,scale_frm_S,Formula Surface Area direct formula scale factor.,17866000.0,1,formula_scale_surface_S,"uc_frm_S, frm_S, ref_direct_cost_frm_S",0, +647,scale_frm_S_9_71886e_06,Formula Surface Area 9 71886E 06 direct formula scale factor.,0.8823748210052966,1,formula_scale_surface_S_9_71886e_06,"uc_frm_S_9_71886e_06, frm_S_9_71886e_06, ref_direct_cost_frm_S_9_71886e_06",0, +648,scale_frm_vsl_M,Formula Vessel Mass direct formula scale factor.,0.90910052524507,1,formula_scale_vessel_mass,"uc_frm_vsl_M, frm_vsl_M, ref_direct_cost_frm_vsl_M",0, +649,scale_fuel_stor_bldg_bldg_vol,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.65625,1,scale_law_fuel_storage,"fuel_stor_bldg_bldg_vol, ref_fuel_stor_bldg_bldg_vol, exp_lin",0,"ce_217_142_mat, ce_217_142_lab, ce_217_147_mat, ce_217_147_lab" +650,scale_fuel_stor_bldg_sub_S,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.7777777777777778,1,scale_law_fuel_storage,"fuel_stor_bldg_sub_S, ref_fuel_stor_bldg_sub_S, exp_lin",0,"ce_217_145_mat, ce_217_145_lab" +651,scale_fuel_stor_bldg_sub_vol,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.3888888888888889,1,scale_law_fuel_storage,"fuel_stor_bldg_sub_vol, ref_fuel_stor_bldg_sub_vol, exp_lin",0, +652,scale_fuel_stor_bldg_sup_S,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.7453125,1,scale_law_fuel_storage,"fuel_stor_bldg_sup_S, ref_fuel_stor_bldg_sup_S, exp_lin",0,"ce_217_149_mat, ce_217_149_lab" +653,scale_fuel_stor_bldg_sup_vol,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.37265625,1,scale_law_fuel_storage,"fuel_stor_bldg_sup_vol, ref_fuel_stor_bldg_sup_vol, exp_lin",0,"ce_217_141_mat, ce_217_141_lab" +654,scale_mc_piping_M,Piping Mass scale factor = (new base unit value / Reference unit value)^exponent.,0.5,1,scale_law_piping_mass,"mc_piping_M, ref_mc_piping_M, exp_lin",0, +655,scale_non_ess_swgr_bldg_bldg_vol,Electrical Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_electrical_bldg,"non_ess_swgr_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin",0, +656,scale_n_crs,Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.,1.2105263157894737,1,scale_law_reactor_equipment,"n_crs, ref_n_crs, exp_lin",0, +657,scale_P,Power scale factor for plant/reactor thermal power based direct-cost accounts,0.996017916397094,1,scale_law_power,"rx_P, ref_rx_P, exp_P",0,"ce_211_711_mat, ce_211_711_lab, ce_215_221_fac, ce_215_221_mat, ce_215_221_lab, ce_215_222_fac, ce_215_222_mat, ce_215_222_lab, ce_215_223_fac, ce_215_223_mat, ce_215_223_lab, ce_215_224_fac, ce_215_224_mat, ce_215_224_lab, ce_215_228_fac, ce_215_228_mat, ce_215_228_lab, ce_218A_231_fac, ce_218A_231_mat, ce_218A_231_lab, ce_218A_232_fac, ce_218A_232_mat, ce_218A_232_lab, ce_218A_233_fac, ce_218A_233_mat, ce_218A_233_lab, ce_218A_234_fac, ce_218A_234_mat, ce_218A_234_lab, ce_218A_238_fac, ce_218A_238_mat, ce_218A_238_lab, ce_218B_22_fac, ce_218B_22_mat, ce_218B_22_lab, ce_218B_23_fac, ce_218B_23_mat, ce_218B_23_lab" +658,scale_pri_aux_bldg_bldg_vol,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.368652020313535,1,scale_law_primary_aux_bldg,"pri_aux_bldg_bldg_vol, ref_pri_aux_bldg_bldg_vol, exp_lin",0,"ce_215_142_mat, ce_215_142_lab, ce_215_146_mat, ce_215_146_lab, ce_215_147_mat, ce_215_147_lab, ce_215_225_fac, ce_215_225_mat, ce_215_225_lab, ce_215_226_fac, ce_215_226_mat, ce_215_226_lab, ce_215_227_fac" +659,scale_pri_aux_bldg_sub_S,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.5432766615146831,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sub_S, ref_pri_aux_bldg_sub_S, exp_lin",0,"ce_215_145_mat, ce_215_145_lab" +660,scale_pri_aux_bldg_sub_vol,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.5432066967160335,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sub_vol, ref_pri_aux_bldg_sub_vol, exp_lin",0, +661,scale_pri_aux_bldg_sup_S,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.3838383838383838,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sup_S, ref_pri_aux_bldg_sup_S, exp_lin",0,"ce_215_149_mat, ce_215_149_lab" +662,scale_pri_aux_bldg_sup_vol,Primary Aux Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.3838845460012026,1,scale_law_primary_aux_bldg,"pri_aux_bldg_sup_vol, ref_pri_aux_bldg_sup_vol, exp_lin",0,"ce_215_141_mat, ce_215_141_lab" +663,scale_pri_flow,Flow Rate scale factor = (new base unit value / Reference unit value)^exponent.,0.8717574764492064,1,scale_law_flow_rate,"pri_flow, ref_pri_flow, exp_pri_flow",0, +664,scale_rx_D,Reactor Equipment scale factor = (new base unit value / Reference unit value)^exponent.,0.9569943289224956,1,scale_law_reactor_equipment,"rx_D, ref_rx_D, exp_rx_D",0, +665,scale_rej_th_P,Heat Rejection scale factor = (new base unit value / Reference unit value)^exponent.,1.003518031940659,1,scale_law_heat_rejection,"rej_th_P, ref_rej_th_P, exp_P",0, +666,scale_sfp_V,Fuel Storage scale factor = (new base unit value / Reference unit value)^exponent.,0.773656197537358,1,scale_law_fuel_storage,"sfp_V, ref_sfp_V, exp_sfp_V",0, +667,scale_sub_str_S,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.6780327868852459,1,scale_law_containment,"sub_str_S, ref_sub_str_S, exp_lin",0,"ce_213_144_mat, ce_213_144_lab, ce_213_145_mat, ce_213_145_lab" +668,scale_sub_str_V,Containment scale factor = (new base unit value / Reference unit value)^exponent.,1.0000338483205242,1,scale_law_containment,"sub_str_V, ref_sub_str_V, exp_lin",0, +669,scale_sup_const,Containment scale factor = (new base unit value / Reference unit value)^exponent.,1.0049856543889688,1,scale_law_containment,"sup_const, ref_cmn_bldg_vol, exp_lin",0,"ce_212_140_fac, ce_212_140_mat, ce_212_140_lab, ce_212_142_mat, ce_212_142_lab" +670,scale_sup_str_S,Containment scale factor = (new base unit value / Reference unit value)^exponent.,1.0044381948758936,1,scale_law_containment,"sup_str_S, ref_sup_str_S, exp_lin",0,"ce_212_149_mat, ce_212_149_lab" +671,scale_sup_str_V,Containment scale factor = (new base unit value / Reference unit value)^exponent.,0.837002062639736,1,scale_law_containment,"sup_str_S, ref_sup_str_V, exp_lin",0,"ce_212_14111_mat, ce_212_14111_lab, ce_212_14112_mat, ce_212_14112_lab, ce_212_14113_mat, ce_212_14113_lab, ce_212_14114_mat, ce_212_14114_lab, ce_212_14115_mat, ce_212_14115_lab, ce_212_14116_mat, ce_212_14116_lab, ce_212_14117_mat, ce_212_14117_lab, ce_212_14118_mat, ce_212_14118_lab, ce_212_14121_mat, ce_212_14121_lab, ce_212_14122_mat, ce_212_14122_lab, ce_212_14123_mat, ce_212_14123_lab, ce_212_14125_mat, ce_212_14125_lab, ce_212_14127_mat, ce_212_14127_lab, ce_212_14128_mat, ce_212_14128_lab, ce_212_1419_mat, ce_212_1419_lab" +672,scale_turb_gen_bldg_sub_vol,Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.6780327868852459,1,scale_law_turbine_bldg,"turb_gen_bldg_sub_vol, ref_turb_gen_bldg_sub_vol, exp_lin",0, +673,scale_turb_gen_bldg_sup_S,Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.7447183098591549,1,scale_law_turbine_bldg,"turb_gen_bldg_sup_S, ref_turb_gen_bldg_sup_S, exp_lin",0,"ce_213_143_mat, ce_213_143_lab, ce_213_149_mat, ce_213_149_lab" +674,scale_turb_gen_bldg_sup_vol,Turbine Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.7447183098591549,1,scale_law_turbine_bldg,"turb_gen_bldg_sup_vol, ref_turb_gen_bldg_sup_vol, exp_lin",0,"ce_213_141_mat, ce_213_141_lab" +675,scale_tur_plant_equip_elec_P,Turbine Equipment scale factor = (new base unit value / Reference unit value)^exponent.,0.9857715709124324,1,scale_law_turbine_equipment,"elec_P, ref_elec_P, exp_tur_plant_equip_elec_P",0, +676,scale_V_of_212_213_215_216_217,Volume Of 212 213 215 216 217 scale factor = (new base unit value / Reference unit value)^exponent.,0.8072164301676766,1,scale_law_V_of_212_213_215_216_217,"V_of_212_213_215_216_217, ref_V_of_212_213_215_216_217, exp_lin",0,"ce_211_712_fac, ce_211_712_mat, ce_211_712_lab" +677,scale_waste_bldg_bldg_vol,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.3159315931593159,1,scale_law_waste_bldg,"waste_bldg_bldg_vol, ref_waste_bldg_bldg_vol, exp_lin",0,"ce_216_142_mat, ce_216_142_lab, ce_216_146_mat, ce_216_146_lab, ce_216_147_mat, ce_216_147_lab, ce_216_148_mat, ce_216_148_lab" +678,scale_waste_bldg_sub_S,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.75,1,scale_law_waste_bldg,"waste_bldg_sub_S, ref_waste_bldg_sub_S, exp_lin",0,"ce_216_144_mat, ce_216_144_lab, ce_216_145_mat, ce_216_145_lab" +679,scale_waste_bldg_sub_vol,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.7498553519768564,1,scale_law_waste_bldg,"waste_bldg_sub_vol, ref_waste_bldg_sub_vol, exp_lin",0, +680,scale_waste_bldg_sup_S,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.2747967479674796,1,scale_law_waste_bldg,"waste_bldg_sup_S, ref_waste_bldg_sup_S, exp_lin",0,"ce_216_143_mat, ce_216_143_lab, ce_216_149_mat, ce_216_149_lab" +681,scale_waste_bldg_sup_vol,Waste Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.2747967479674796,1,scale_law_waste_bldg,"waste_bldg_sup_vol, ref_waste_bldg_sup_vol, exp_lin",0,"ce_216_141_mat, ce_216_141_lab" +682,scale_wwt_bldg_bldg_vol,Wastewater Bldg scale factor = (new base unit value / Reference unit value)^exponent.,0.0,1,scale_law_wastewater_bldg,"wwt_bldg_bldg_vol, ref_cmn_bldg_vol, exp_lin",0, +683,ce_211_711_fac,Open Cut factory equipment cost for 211.711,0.0,$,,,0, +684,ce_211_711_mat,Open Cut site material cost for 211.711,4422650.2267513415,$,category_scale,"ref_211_711_mat, scale_P",0, +685,ce_211_711_lab,Open Cut site labor cost for 211.711,15065631.544985814,$,category_scale,"ref_211_711_lab, scale_P",0, +686,ce_211_712_fac,Fill & Backfill (Place/Comp) factory equipment cost for 211.712,198292.71607068976,$,category_scale,"ref_211_712_fac, scale_V_of_212_213_215_216_217",0, +687,ce_211_712_mat,Fill & Backfill (Place/Comp) site material cost for 211.712,10818782.25794602,$,category_scale,"ref_211_712_mat, scale_V_of_212_213_215_216_217",0, +688,ce_211_712_lab,Fill & Backfill (Place/Comp) site labor cost for 211.712,12629880.679760788,$,category_scale,"ref_211_712_lab, scale_V_of_212_213_215_216_217",0, +689,ce_212_141_fac,Concrete Work factory equipment cost for 212.141,0.0,$,sum_all,"ce_212_1411_fac, ce_212_1412_fac, ce_212_1419_fac",0, +690,ce_212_141_mat,Concrete Work site material cost for 212.141,14052106.242877116,$,sum_all,"ce_212_1411_mat, ce_212_1412_mat, ce_212_1419_mat",0, +691,ce_212_141_lab,Concrete Work site labor cost for 212.141,9164034.594639374,$,sum_all,"ce_212_1411_lab, ce_212_1412_lab, ce_212_1419_lab",0, +692,ce_212_1411_fac,Containment Shell factory equipment cost for 212.1411,0.0,$,sum_all,"ce_212_14111_fac, ce_212_14112_fac, ce_212_14113_fac, ce_212_14114_fac, ce_212_14115_fac, ce_212_14116_fac, ce_212_14117_fac, ce_212_14118_fac",0,ce_212_141_fac +693,ce_212_1411_mat,Containment Shell site material cost for 212.1411,10199269.046640312,$,sum_all,"ce_212_14111_mat, ce_212_14112_mat, ce_212_14113_mat, ce_212_14114_mat, ce_212_14115_mat, ce_212_14116_mat, ce_212_14117_mat, ce_212_14118_mat",0,ce_212_141_mat +694,ce_212_1411_lab,Containment Shell site labor cost for 212.1411,5715505.323950599,$,sum_all,"ce_212_14111_lab, ce_212_14112_lab, ce_212_14113_lab, ce_212_14114_lab, ce_212_14115_lab, ce_212_14116_lab, ce_212_14117_lab, ce_212_14118_lab",0,ce_212_141_lab +695,ce_212_14111_fac,Formwork factory equipment cost for 212.14111,0.0,$,,,0,ce_212_1411_fac +696,ce_212_14111_mat,Formwork site material cost for 212.14111,0.0,$,category_scale,"ref_212_14111_mat, scale_sup_str_V, adj_none",0,ce_212_1411_mat +697,ce_212_14111_lab,Formwork site labor cost for 212.14111,0.0,$,category_scale,"ref_212_14111_lab, scale_sup_str_V, adj_none",0,ce_212_1411_lab +698,ce_212_14112_fac,Reinforcing Steel factory equipment cost for 212.14112,0.0,$,,,0,ce_212_1411_fac +699,ce_212_14112_mat,Reinforcing Steel site material cost for 212.14112,8380508.768929804,$,category_scale,"ref_212_14112_mat, scale_sup_str_V, adj_cont_mat_1_48",0,ce_212_1411_mat +700,ce_212_14112_lab,Reinforcing Steel site labor cost for 212.14112,1564590.3568760036,$,category_scale,"ref_212_14112_lab, scale_sup_str_V, adj_212_14112_lab",0,ce_212_1411_lab +701,ce_212_14113_fac,Concrete factory equipment cost for 212.14113,0.0,$,,,0,ce_212_1411_fac +702,ce_212_14113_mat,Concrete site material cost for 212.14113,1371366.3457545682,$,category_scale,"ref_212_14113_mat, scale_sup_str_V",0,ce_212_1411_mat +703,ce_212_14113_lab,Concrete site labor cost for 212.14113,2687756.528683357,$,category_scale,"ref_212_14113_lab, scale_sup_str_V",0,ce_212_1411_lab +704,ce_212_14114_fac,Embedded Steel factory equipment cost for 212.14114,0.0,$,,,0,ce_212_1411_fac +705,ce_212_14114_mat,Embedded Steel site material cost for 212.14114,165512.6083622963,$,category_scale,"ref_212_14114_mat, scale_sup_str_V",0,ce_212_1411_mat +706,ce_212_14114_lab,Embedded Steel site labor cost for 212.14114,454525.0145292392,$,category_scale,"ref_212_14114_lab, scale_sup_str_V",0,ce_212_1411_lab +707,ce_212_14115_fac,Rubbing Surfaces factory equipment cost for 212.14115,0.0,$,,,0,ce_212_1411_fac +708,ce_212_14115_mat,Rubbing Surfaces site material cost for 212.14115,22026.07551698718,$,category_scale,"ref_212_14115_mat, scale_sup_str_V",0,ce_212_1411_mat +709,ce_212_14115_lab,Rubbing Surfaces site labor cost for 212.14115,373300.2284734896,$,category_scale,"ref_212_14115_lab, scale_sup_str_V",0,ce_212_1411_lab +710,ce_212_14116_fac,Waterproofing factory equipment cost for 212.14116,0.0,$,,,0,ce_212_1411_fac +711,ce_212_14116_mat,Waterproofing site material cost for 212.14116,14395.613641818194,$,category_scale,"ref_212_14116_mat, scale_sup_str_V",0,ce_212_1411_mat +712,ce_212_14116_lab,Waterproofing site labor cost for 212.14116,37787.93662342439,$,category_scale,"ref_212_14116_lab, scale_sup_str_V",0,ce_212_1411_lab +713,ce_212_14117_fac,Cadwelds factory equipment cost for 212.14117,0.0,$,,,0,ce_212_1411_fac +714,ce_212_14117_mat,Cadwelds site material cost for 212.14117,0.0,$,category_scale,"ref_212_14117_mat, scale_sup_str_V, adj_none",0,ce_212_1411_mat +715,ce_212_14117_lab,Cadwelds site labor cost for 212.14117,0.0,$,category_scale,"ref_212_14117_lab, scale_sup_str_V, adj_none",0,ce_212_1411_lab +716,ce_212_14118_fac,Construction Joints factory equipment cost for 212.14118,0.0,$,,,0,ce_212_1411_fac +717,ce_212_14118_mat,Construction Joints site material cost for 212.14118,245459.63443483823,$,category_scale,"ref_212_14118_mat, scale_sup_str_V",0,ce_212_1411_mat +718,ce_212_14118_lab,Construction Joints site labor cost for 212.14118,597545.2587650847,$,category_scale,"ref_212_14118_lab, scale_sup_str_V",0,ce_212_1411_lab +719,ce_212_1412_fac,Containment Dome factory equipment cost for 212.1412,0.0,$,sum_all,"ce_212_14121_fac, ce_212_14122_fac, ce_212_14123_fac, ce_212_14125_fac, ce_212_14127_fac, ce_212_14128_fac",0,ce_212_141_fac +720,ce_212_1412_mat,Containment Dome site material cost for 212.1412,3658110.955731712,$,sum_all,"ce_212_14121_mat, ce_212_14122_mat, ce_212_14123_mat, ce_212_14125_mat, ce_212_14127_mat, ce_212_14128_mat",0,ce_212_141_mat +721,ce_212_1412_lab,Containment Dome site labor cost for 212.1412,2781923.024968618,$,sum_all,"ce_212_14121_lab, ce_212_14122_lab, ce_212_14123_lab, ce_212_14125_lab, ce_212_14127_lab, ce_212_14128_lab",0,ce_212_141_lab +722,ce_212_14121_fac,Formwork factory equipment cost for 212.14121,0.0,$,,,0,ce_212_1412_fac +723,ce_212_14121_mat,Formwork site material cost for 212.14121,0.0,$,category_scale,"ref_212_14121_mat, scale_sup_str_V, adj_none",0,ce_212_1412_mat +724,ce_212_14121_lab,Formwork site labor cost for 212.14121,0.0,$,category_scale,"ref_212_14121_lab, scale_sup_str_V, adj_none",0,ce_212_1412_lab +725,ce_212_14122_fac,Reinforcing Steel factory equipment cost for 212.14122,0.0,$,,,0,ce_212_1412_fac +726,ce_212_14122_mat,Reinforcing Steel site material cost for 212.14122,3108898.414640052,$,category_scale,"ref_212_14122_mat, scale_sup_str_V, adj_cont_mat_1_48",0,ce_212_1412_mat +727,ce_212_14122_lab,Reinforcing Steel site labor cost for 212.14122,1564590.3568760036,$,category_scale,"ref_212_14122_lab, scale_sup_str_V, adj_212_14122_lab",0,ce_212_1412_lab +728,ce_212_14123_fac,Concrete factory equipment cost for 212.14123,0.0,$,,,0,ce_212_1412_fac +729,ce_212_14123_mat,Concrete site material cost for 212.14123,492836.2763720937,$,category_scale,"ref_212_14123_mat, scale_sup_str_V",0,ce_212_1412_mat +730,ce_212_14123_lab,Concrete site labor cost for 212.14123,965916.6708574004,$,category_scale,"ref_212_14123_lab, scale_sup_str_V",0,ce_212_1412_lab +731,ce_212_14125_fac,Rubbing Surfaces factory equipment cost for 212.14125,0.0,$,,,0,ce_212_1412_fac +732,ce_212_14125_mat,Rubbing Surfaces site material cost for 212.14125,7866.455541661565,$,category_scale,"ref_212_14125_mat, scale_sup_str_V",0,ce_212_1412_mat +733,ce_212_14125_lab,Rubbing Surfaces site labor cost for 212.14125,133321.2491440316,$,category_scale,"ref_212_14125_lab, scale_sup_str_V",0,ce_212_1412_lab +734,ce_212_14127_fac,Cadwelds factory equipment cost for 212.14127,0.0,$,,,0,ce_212_1412_fac +735,ce_212_14127_mat,Cadwelds site material cost for 212.14127,0.0,$,category_scale,"ref_212_14127_mat, scale_sup_str_V, adj_none",0,ce_212_1412_mat +736,ce_212_14127_lab,Cadwelds site labor cost for 212.14127,0.0,$,category_scale,"ref_212_14127_lab, scale_sup_str_V, adj_none",0,ce_212_1412_lab +737,ce_212_14128_fac,Construction Joints factory equipment cost for 212.14128,0.0,$,,,0,ce_212_1412_fac +738,ce_212_14128_mat,Construction Joints site material cost for 212.14128,48509.80917790416,$,category_scale,"ref_212_14128_mat, scale_sup_str_V",0,ce_212_1412_mat +739,ce_212_14128_lab,Construction Joints site labor cost for 212.14128,118094.74809118216,$,category_scale,"ref_212_14128_lab, scale_sup_str_V",0,ce_212_1412_lab +740,ce_212_140_fac,Interior Concrete factory equipment cost for 212.140,3384358.55023979,$,category_scale,"ref_212_140_fac, scale_sup_const",0, +741,ce_212_140_mat,Interior Concrete site material cost for 212.140,13289138.402661176,$,category_scale,"ref_212_140_mat, scale_sup_const",0, +742,ce_212_140_lab,Interior Concrete site labor cost for 212.140,45514958.84916846,$,category_scale,"ref_212_140_lab, scale_sup_const",0, +743,ce_212_1419_fac,Removable Plugs factory equipment cost for 212.1419,0.0,$,,,0,ce_212_141_fac +744,ce_212_1419_mat,Removable Plugs site material cost for 212.1419,194726.24050509284,$,category_scale,"ref_212_1419_mat, scale_sup_str_V",0,ce_212_141_mat +745,ce_212_1419_lab,Removable Plugs site labor cost for 212.1419,666606.2457201581,$,category_scale,"ref_212_1419_lab, scale_sup_str_V",0,ce_212_141_lab +746,ce_212_142_fac,Structural & Miscellaneous Steel factory equipment cost for 212.142,0.0,$,,,0, +747,ce_212_142_mat,Structural & Miscellaneous Steel site material cost for 212.142,3837058.018969012,$,category_scale,"ref_212_142_mat, scale_sup_const",0, +748,ce_212_142_lab,Structural & Miscellaneous Steel site labor cost for 212.142,2923632.663465121,$,category_scale,"ref_212_142_lab, scale_sup_const",0, +749,ce_212_149_fac,Painting factory equipment cost for 212.149,0.0,$,,,0, +750,ce_212_149_mat,Painting site material cost for 212.149,2468990.6062221574,$,category_scale,"ref_212_149_mat, scale_sup_str_S",0, +751,ce_212_149_lab,Painting site labor cost for 212.149,12605539.137800382,$,category_scale,"ref_212_149_lab, scale_sup_str_S",0, +752,ce_213_141_fac,Concrete Work factory equipment cost for 213.141,0.0,$,,,0, +753,ce_213_141_mat,Concrete Work site material cost for 213.141,473512.8412995845,$,category_scale,"ref_213_141_mat, scale_turb_gen_bldg_sup_vol",0, +754,ce_213_141_lab,Concrete Work site labor cost for 213.141,1221163.2281852113,$,category_scale,"ref_213_141_lab, scale_turb_gen_bldg_sup_vol",0, +755,ce_213_142_fac,Structural & Miscellaneous Steel factory equipment cost for 213.142,0.0,$,,,0, +756,ce_213_142_mat,Structural & Miscellaneous Steel site material cost for 213.142,22438700.415805608,$,category_scale,"ref_213_142_mat, scale_bldg_V",0, +757,ce_213_142_lab,Structural & Miscellaneous Steel site labor cost for 213.142,14169619.210507048,$,category_scale,"ref_213_142_lab, scale_bldg_V",0, +758,ce_213_143_fac,Exterior Walls factory equipment cost for 213.143,0.0,$,,,0, +759,ce_213_143_mat,Exterior Walls site material cost for 213.143,1819014.735324296,$,category_scale,"ref_213_143_mat, scale_turb_gen_bldg_sup_S",0, +760,ce_213_143_lab,Exterior Walls site labor cost for 213.143,1575247.5631917254,$,category_scale,"ref_213_143_lab, scale_turb_gen_bldg_sup_S",0, +761,ce_213_144_fac,Roof Deck factory equipment cost for 213.144,0.0,$,,,0, +762,ce_213_144_mat,Roof Deck site material cost for 213.144,627619.9902490623,$,category_scale,"ref_213_144_mat, scale_sub_str_S",0, +763,ce_213_144_lab,Roof Deck site labor cost for 213.144,604987.2644135082,$,category_scale,"ref_213_144_lab, scale_sub_str_S",0, +764,ce_213_145_fac,Roofing & Flashing factory equipment cost for 213.145,0.0,$,,,0, +765,ce_213_145_mat,Roofing & Flashing site material cost for 213.145,297638.9385733771,$,category_scale,"ref_213_145_mat, scale_sub_str_S",0, +766,ce_213_145_lab,Roofing & Flashing site labor cost for 213.145,320601.8450655738,$,category_scale,"ref_213_145_lab, scale_sub_str_S",0, +767,ce_213_146_fac,Interior Walls & Partition factory equipment cost for 213.146,0.0,$,,,0, +768,ce_213_146_mat,Interior Walls & Partition site material cost for 213.146,260426.9110328309,$,category_scale,"ref_213_146_mat, scale_bldg_V",0, +769,ce_213_146_lab,Interior Walls & Partition site labor cost for 213.146,407182.9200146566,$,category_scale,"ref_213_146_lab, scale_bldg_V",0, +770,ce_213_147_fac,Doors & Windows factory equipment cost for 213.147,0.0,$,,,0, +771,ce_213_147_mat,Doors & Windows site material cost for 213.147,903580.1334755552,$,category_scale,"ref_213_147_mat, scale_bldg_V",0, +772,ce_213_147_lab,Doors & Windows site labor cost for 213.147,590330.5279731657,$,category_scale,"ref_213_147_lab, scale_bldg_V",0, +773,ce_213_149_fac,Painting factory equipment cost for 213.149,0.0,$,,,0, +774,ce_213_149_mat,Painting site material cost for 213.149,94462.52784401408,$,category_scale,"ref_213_149_mat, scale_turb_gen_bldg_sup_S",0, +775,ce_213_149_lab,Painting site labor cost for 213.149,1639057.3147869715,$,category_scale,"ref_213_149_lab, scale_turb_gen_bldg_sup_S",0, +776,ce_215_141_fac,Concrete Work factory equipment cost for 215.141,0.0,$,,,0, +777,ce_215_141_mat,Concrete Work site material cost for 215.141,3262104.990817132,$,category_scale,"ref_215_141_mat, scale_pri_aux_bldg_sup_vol",0, +778,ce_215_141_lab,Concrete Work site labor cost for 215.141,10367776.320793144,$,category_scale,"ref_215_141_lab, scale_pri_aux_bldg_sup_vol",0, +779,ce_215_142_fac,Structural & Miscellaneous Steel factory equipment cost for 215.142,0.0,$,,,0, +780,ce_215_142_mat,Structural & Miscellaneous Steel site material cost for 215.142,1085567.8241478077,$,category_scale,"ref_215_142_mat, scale_pri_aux_bldg_bldg_vol",0, +781,ce_215_142_lab,Structural & Miscellaneous Steel site labor cost for 215.142,683150.5168248869,$,category_scale,"ref_215_142_lab, scale_pri_aux_bldg_bldg_vol",0, +782,ce_215_145_fac,Roofing & Flashing factory equipment cost for 215.145,0.0,$,,,0, +783,ce_215_145_mat,Roofing & Flashing site material cost for 215.145,38679.04266404173,$,category_scale,"ref_215_145_mat, scale_pri_aux_bldg_sub_S",0, +784,ce_215_145_lab,Roofing & Flashing site labor cost for 215.145,41706.52092709427,$,category_scale,"ref_215_145_lab, scale_pri_aux_bldg_sub_S",0, +785,ce_215_146_fac,Interior Walls & Partition factory equipment cost for 215.146,0.0,$,,,0, +786,ce_215_146_mat,Interior Walls & Partition site material cost for 215.146,80622.38030974001,$,category_scale,"ref_215_146_mat, scale_pri_aux_bldg_bldg_vol",0, +787,ce_215_146_lab,Interior Walls & Partition site labor cost for 215.146,88142.44585117852,$,category_scale,"ref_215_146_lab, scale_pri_aux_bldg_bldg_vol",0, +788,ce_215_147_fac,Doors & Windows factory equipment cost for 215.147,0.0,$,,,0, +789,ce_215_147_mat,Doors & Windows site material cost for 215.147,32509.13475523197,$,category_scale,"ref_215_147_mat, scale_pri_aux_bldg_bldg_vol",0, +790,ce_215_147_lab,Doors & Windows site labor cost for 215.147,30123.984768712413,$,category_scale,"ref_215_147_lab, scale_pri_aux_bldg_bldg_vol",0, +791,ce_215_149_fac,Painting factory equipment cost for 215.149,0.0,$,,,0, +792,ce_215_149_mat,Painting site material cost for 215.149,55262.54872323232,$,category_scale,"ref_215_149_mat, scale_pri_aux_bldg_sup_S",0, +793,ce_215_149_lab,Painting site labor cost for 215.149,261431.50646262625,$,category_scale,"ref_215_149_lab, scale_pri_aux_bldg_sup_S",0, +794,ce_215_221_fac,Rotating Machinery factory equipment cost for 215.221,2521628.5440221345,$,category_scale,"ref_215_221_fac, scale_P",0, +795,ce_215_221_mat,Rotating Machinery site material cost for 215.221,28864.40564110573,$,category_scale,"ref_215_221_mat, scale_P",0, +796,ce_215_221_lab,Rotating Machinery site labor cost for 215.221,335031.1497269407,$,category_scale,"ref_215_221_lab, scale_P",0, +797,ce_215_222_fac,Heat Transfer Equipment factory equipment cost for 215.222,1928702.285568636,$,category_scale,"ref_215_222_fac, scale_P",0, +798,ce_215_222_mat,Heat Transfer Equipment site material cost for 215.222,28361.852968694733,$,category_scale,"ref_215_222_mat, scale_P",0, +799,ce_215_222_lab,Heat Transfer Equipment site labor cost for 215.222,329297.08533923613,$,category_scale,"ref_215_222_lab, scale_P",0, +800,ce_215_223_fac,Tanks & Pressure Vessels factory equipment cost for 215.223,39253.11776857916,$,category_scale,"ref_215_223_fac, scale_P",0, +801,ce_215_223_mat,Tanks & Pressure Vessels site material cost for 215.223,2525.0959433458074,$,category_scale,"ref_215_223_mat, scale_P",0, +802,ce_215_223_lab,Tanks & Pressure Vessels site labor cost for 215.223,30070.029282976266,$,category_scale,"ref_215_223_lab, scale_P",0, +803,ce_215_224_fac,Purification & Filtration Equipment factory equipment cost for 215.224,468009.1189754314,$,category_scale,"ref_215_224_fac, scale_P",0, +804,ce_215_224_mat,Purification & Filtration Equipment site material cost for 215.224,7880.519205779626,$,category_scale,"ref_215_224_mat, scale_P",0, +805,ce_215_224_lab,Purification & Filtration Equipment site labor cost for 215.224,91473.00338756749,$,category_scale,"ref_215_224_lab, scale_P",0, +806,ce_215_225_fac,Piping & Ductwork factory equipment cost for 215.225,207580.7802923052,$,category_scale,"ref_215_225_fac, scale_pri_aux_bldg_bldg_vol",0, +807,ce_215_225_mat,Piping & Ductwork site material cost for 215.225,409832.3108319993,$,category_scale,"ref_215_225_mat, scale_pri_aux_bldg_bldg_vol",0, +808,ce_215_225_lab,Piping & Ductwork site labor cost for 215.225,1860294.642882204,$,category_scale,"ref_215_225_lab, scale_pri_aux_bldg_bldg_vol",0, +809,ce_215_226_fac,Valves & Dampers factory equipment cost for 215.226,102810.59576480737,$,category_scale,"ref_215_226_fac, scale_pri_aux_bldg_bldg_vol",0, +810,ce_215_226_mat,Valves & Dampers site material cost for 215.226,3410.467256421423,$,category_scale,"ref_215_226_mat, scale_pri_aux_bldg_bldg_vol",0, +811,ce_215_226_lab,Valves & Dampers site labor cost for 215.226,40207.10909078991,$,category_scale,"ref_215_226_lab, scale_pri_aux_bldg_bldg_vol",0, +812,ce_215_227_fac,Piping & Miscellaneous Items factory equipment cost for 215.227,79866.59286784887,$,category_scale,"ref_215_227_fac, scale_pri_aux_bldg_bldg_vol",0, +813,ce_215_227_mat,Piping & Miscellaneous Items site material cost for 215.227,0.0,$,,,0, +814,ce_215_227_lab,Piping & Miscellaneous Items site labor cost for 215.227,0.0,$,,,0, +815,ce_215_228_fac,Instrumentation & Control factory equipment cost for 215.228,27529.948177368948,$,category_scale,"ref_215_228_fac, scale_P",0, +816,ce_215_228_mat,Instrumentation & Control site material cost for 215.228,1486.0760002230988,$,category_scale,"ref_215_228_mat, scale_P",0, +817,ce_215_228_lab,Instrumentation & Control site labor cost for 215.228,17479.242180038895,$,category_scale,"ref_215_228_lab, scale_P",0, +818,ce_216_141_fac,Concrete Work factory equipment cost for 216.141,0.0,$,,,0, +819,ce_216_141_mat,Concrete Work site material cost for 216.141,1963645.6682412096,$,category_scale,"ref_216_141_mat, scale_waste_bldg_sup_vol",0, +820,ce_216_141_lab,Concrete Work site labor cost for 216.141,6600126.849979317,$,category_scale,"ref_216_141_lab, scale_waste_bldg_sup_vol",0, +821,ce_216_142_fac,Structural & Miscellaneous Steel factory equipment cost for 216.142,0.0,$,,,0, +822,ce_216_142_mat,Structural & Miscellaneous Steel site material cost for 216.142,1086395.99424991,$,category_scale,"ref_216_142_mat, scale_waste_bldg_bldg_vol",0, +823,ce_216_142_lab,Structural & Miscellaneous Steel site labor cost for 216.142,669483.7152461205,$,category_scale,"ref_216_142_lab, scale_waste_bldg_bldg_vol",0, +824,ce_216_143_fac,Exterior Walls factory equipment cost for 216.143,0.0,$,,,0, +825,ce_216_143_mat,Exterior Walls site material cost for 216.143,161001.8109203252,$,category_scale,"ref_216_143_mat, scale_waste_bldg_sup_S",0, +826,ce_216_143_lab,Exterior Walls site labor cost for 216.143,133726.89152227642,$,category_scale,"ref_216_143_lab, scale_waste_bldg_sup_S",0, +827,ce_216_144_fac,Roof Deck factory equipment cost for 216.144,0.0,$,,,0, +828,ce_216_144_mat,Roof Deck site material cost for 216.144,221100.8038125,$,category_scale,"ref_216_144_mat, scale_waste_bldg_sub_S",0, +829,ce_216_144_lab,Roof Deck site labor cost for 216.144,230682.6900375,$,category_scale,"ref_216_144_lab, scale_waste_bldg_sub_S",0, +830,ce_216_145_fac,Roofing & Flashing factory equipment cost for 216.145,0.0,$,,,0, +831,ce_216_145_mat,Roofing & Flashing site material cost for 216.145,96350.573535,$,category_scale,"ref_216_145_mat, scale_waste_bldg_sub_S",0, +832,ce_216_145_lab,Roofing & Flashing site labor cost for 216.145,110519.1284325,$,category_scale,"ref_216_145_lab, scale_waste_bldg_sub_S",0, +833,ce_216_146_fac,Interior Walls & Partition factory equipment cost for 216.146,0.0,$,,,0, +834,ce_216_146_mat,Interior Walls & Partition site material cost for 216.146,1341.176696562556,$,category_scale,"ref_216_146_mat, scale_waste_bldg_bldg_vol",0, +835,ce_216_146_lab,Interior Walls & Partition site labor cost for 216.146,1453.1731563888388,$,category_scale,"ref_216_146_lab, scale_waste_bldg_bldg_vol",0, +836,ce_216_147_fac,Doors & Windows factory equipment cost for 216.147,0.0,$,,,0, +837,ce_216_147_mat,Doors & Windows site material cost for 216.147,23702.15865118812,$,category_scale,"ref_216_147_mat, scale_waste_bldg_bldg_vol",0, +838,ce_216_147_lab,Doors & Windows site labor cost for 216.147,20971.64083239153,$,category_scale,"ref_216_147_lab, scale_waste_bldg_bldg_vol",0, +839,ce_216_148_fac,"Wall, Floor, & Ceiling Finishing factory equipment cost for 216.148",0.0,$,,,0, +840,ce_216_148_mat,"Wall, Floor, & Ceiling Finishing site material cost for 216.148",184.851319979568,$,category_scale,"ref_216_148_mat, scale_waste_bldg_bldg_vol",0, +841,ce_216_148_lab,"Wall, Floor, & Ceiling Finishing site labor cost for 216.148",3325.2090900270023,$,category_scale,"ref_216_148_lab, scale_waste_bldg_bldg_vol",0, +842,ce_216_149_fac,Painting factory equipment cost for 216.149,0.0,$,,,0, +843,ce_216_149_mat,Painting site material cost for 216.149,25443.96597304065,$,category_scale,"ref_216_149_mat, scale_waste_bldg_sup_S",0, +844,ce_216_149_lab,Painting site labor cost for 216.149,153517.38181317074,$,category_scale,"ref_216_149_lab, scale_waste_bldg_sup_S",0, +845,ce_217_141_fac,Concrete Work factory equipment cost for 217.141,0.0,$,,,0, +846,ce_217_141_mat,Concrete Work site material cost for 217.141,913766.7652189594,$,category_scale,"ref_217_141_mat, scale_fuel_stor_bldg_sup_vol",0, +847,ce_217_141_lab,Concrete Work site labor cost for 217.141,3428635.069330594,$,category_scale,"ref_217_141_lab, scale_fuel_stor_bldg_sup_vol",0, +848,ce_217_142_fac,Structural & Miscellaneous Steel factory equipment cost for 217.142,0.0,$,,,0, +849,ce_217_142_mat,Structural & Miscellaneous Steel site material cost for 217.142,586413.659960625,$,category_scale,"ref_217_142_mat, scale_fuel_stor_bldg_bldg_vol",0, +850,ce_217_142_lab,Structural & Miscellaneous Steel site labor cost for 217.142,415822.97264156246,$,category_scale,"ref_217_142_lab, scale_fuel_stor_bldg_bldg_vol",0, +851,ce_217_145_fac,Roofing & Flashing factory equipment cost for 217.145,0.0,$,,,0, +852,ce_217_145_mat,Roofing & Flashing site material cost for 217.145,36139.55483444445,$,category_scale,"ref_217_145_mat, scale_fuel_stor_bldg_sub_S",0, +853,ce_217_145_lab,Roofing & Flashing site labor cost for 217.145,44419.90458111112,$,category_scale,"ref_217_145_lab, scale_fuel_stor_bldg_sub_S",0, +854,ce_217_147_fac,Doors & Windows factory equipment cost for 217.147,0.0,$,,,0, +855,ce_217_147_mat,Doors & Windows site material cost for 217.147,21447.69019509375,$,category_scale,"ref_217_147_mat, scale_fuel_stor_bldg_bldg_vol",0, +856,ce_217_147_lab,Doors & Windows site labor cost for 217.147,16254.212596125,$,category_scale,"ref_217_147_lab, scale_fuel_stor_bldg_bldg_vol",0, +857,ce_217_149_fac,Painting factory equipment cost for 217.149,0.0,$,,,0, +858,ce_217_149_mat,Painting site material cost for 217.149,13433.403855796876,$,category_scale,"ref_217_149_mat, scale_fuel_stor_bldg_sup_S",0, +859,ce_217_149_lab,Painting site labor cost for 217.149,106400.80266187502,$,category_scale,"ref_217_149_lab, scale_fuel_stor_bldg_sup_S",0, +860,ce_218A_13_fac,Substructure Concrete factory equipment cost for 218A.13,0.0,$,,,0, +861,ce_218A_13_mat,Substructure Concrete site material cost for 218A.13,77495.37770125395,$,category_scale,"ref_218A_13_mat, scale_cr_dg_bldg_sub_vol",0, +862,ce_218A_13_lab,Substructure Concrete site labor cost for 218A.13,134750.7765574603,$,category_scale,"ref_218A_13_lab, scale_cr_dg_bldg_sub_vol",0, +863,ce_218A_14_fac,Superstructure factory equipment cost for 218A.14,0.0,$,sum_all,"ce_218A_141_fac, ce_218A_142_fac, ce_218A_145_fac, ce_218A_146_fac, ce_218A_147_fac, ce_218A_148_fac, ce_218A_149_fac",0, +864,ce_218A_14_mat,Superstructure site material cost for 218A.14,772476.3988869898,$,sum_all,"ce_218A_141_mat, ce_218A_142_mat, ce_218A_145_mat, ce_218A_146_mat, ce_218A_147_mat, ce_218A_148_mat, ce_218A_149_mat",0, +865,ce_218A_14_lab,Superstructure site labor cost for 218A.14,1661665.025356886,$,sum_all,"ce_218A_141_lab, ce_218A_142_lab, ce_218A_145_lab, ce_218A_146_lab, ce_218A_147_lab, ce_218A_148_lab, ce_218A_149_lab",0, +866,ce_218A_141_fac,Concrete Work factory equipment cost for 218A.141,0.0,$,,,0,ce_218A_14_fac +867,ce_218A_141_mat,Concrete Work site material cost for 218A.141,367725.8841529896,$,category_scale,"ref_218A_141_mat, scale_cr_dg_bldg_sup_vol",0,ce_218A_14_mat +868,ce_218A_141_lab,Concrete Work site labor cost for 218A.141,1258072.831596794,$,category_scale,"ref_218A_141_lab, scale_cr_dg_bldg_sup_vol",0,ce_218A_14_lab +869,ce_218A_142_fac,Structural & Miscellaneous Steel factory equipment cost for 218A.142,0.0,$,,,0,ce_218A_14_fac +870,ce_218A_142_mat,Structural & Miscellaneous Steel site material cost for 218A.142,259502.7282345966,$,category_scale,"ref_218A_142_mat, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_mat +871,ce_218A_142_lab,Structural & Miscellaneous Steel site labor cost for 218A.142,163863.558401292,$,category_scale,"ref_218A_142_lab, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_lab +872,ce_218A_145_fac,Roofing & Flashing factory equipment cost for 218A.145,0.0,$,,,0,ce_218A_14_fac +873,ce_218A_145_mat,Roofing & Flashing site material cost for 218A.145,27367.367255026456,$,category_scale,"ref_218A_145_mat, scale_cr_dg_bldg_sub_S",0,ce_218A_14_mat +874,ce_218A_145_lab,Roofing & Flashing site labor cost for 218A.145,30723.48155449735,$,category_scale,"ref_218A_145_lab, scale_cr_dg_bldg_sub_S",0,ce_218A_14_lab +875,ce_218A_146_fac,Interior Walls & Partition factory equipment cost for 218A.146,0.0,$,,,0,ce_218A_14_fac +876,ce_218A_146_mat,Interior Walls & Partition site material cost for 218A.146,99298.67336306634,$,category_scale,"ref_218A_146_mat, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_mat +877,ce_218A_146_lab,Interior Walls & Partition site labor cost for 218A.146,135138.67742067183,$,category_scale,"ref_218A_146_lab, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_lab +878,ce_218A_147_fac,Doors & Windows factory equipment cost for 218A.147,0.0,$,,,0,ce_218A_14_fac +879,ce_218A_147_mat,Doors & Windows site material cost for 218A.147,5247.427482334195,$,category_scale,"ref_218A_147_mat, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_mat +880,ce_218A_147_lab,Doors & Windows site labor cost for 218A.147,5200.369174619581,$,category_scale,"ref_218A_147_lab, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_lab +881,ce_218A_148_fac,"Wall, Floor, & Ceiling Finishing factory equipment cost for 218A.148",0.0,$,,,0,ce_218A_14_fac +882,ce_218A_148_mat,"Wall, Floor, & Ceiling Finishing site material cost for 218A.148",6633.908162802182,$,category_scale,"ref_218A_148_mat, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_mat +883,ce_218A_148_lab,"Wall, Floor, & Ceiling Finishing site labor cost for 218A.148",13799.17403854149,$,category_scale,"ref_218A_148_lab, scale_cr_dg_bldg_bldg_vol",0,ce_218A_14_lab +884,ce_218A_149_fac,Painting factory equipment cost for 218A.149,0.0,$,,,0,ce_218A_14_fac +885,ce_218A_149_mat,Painting site material cost for 218A.149,6700.410236174496,$,category_scale,"ref_218A_149_mat, scale_cr_dg_bldg_sup_S",0,ce_218A_14_mat +886,ce_218A_149_lab,Painting site labor cost for 218A.149,54866.9331704698,$,category_scale,"ref_218A_149_lab, scale_cr_dg_bldg_sup_S",0,ce_218A_14_lab +887,ce_218A_21_fac,Plumbing & Drains factory equipment cost for 218A.21,0.0,$,,,0, +888,ce_218A_21_mat,Plumbing & Drains site material cost for 218A.21,35914.109014298025,$,category_scale,"ref_218A_21_mat, scale_cr_dg_bldg_bldg_vol",0, +889,ce_218A_21_lab,Plumbing & Drains site labor cost for 218A.21,128762.8626741315,$,category_scale,"ref_218A_21_lab, scale_cr_dg_bldg_bldg_vol",0, +890,ce_218A_23_fac,Special HVAC (Safety Related) factory equipment cost for 218A.23,2319565.4875418823,$,sum_all,"ce_218A_231_fac, ce_218A_232_fac, ce_218A_233_fac, ce_218A_234_fac, ce_218A_235_fac, ce_218A_236_fac, ce_218A_237_fac, ce_218A_238_fac",0, +891,ce_218A_23_mat,Special HVAC (Safety Related) site material cost for 218A.23,101786.12605361892,$,sum_all,"ce_218A_231_mat, ce_218A_232_mat, ce_218A_233_mat, ce_218A_234_mat, ce_218A_235_mat, ce_218A_236_mat, ce_218A_237_mat, ce_218A_238_mat",0, +892,ce_218A_23_lab,Special HVAC (Safety Related) site labor cost for 218A.23,874913.5481241005,$,sum_all,"ce_218A_231_lab, ce_218A_232_lab, ce_218A_233_lab, ce_218A_234_lab, ce_218A_235_lab, ce_218A_236_lab, ce_218A_237_lab, ce_218A_238_lab",0, +893,ce_218A_231_fac,Rotating Machinery factory equipment cost for 218A.231,922959.8281254354,$,category_scale,"ref_218A_231_fac, scale_P",0,ce_218A_23_fac +894,ce_218A_231_mat,Rotating Machinery site material cost for 218A.231,9442.77190127117,$,category_scale,"ref_218A_231_mat, scale_P",0,ce_218A_23_mat +895,ce_218A_231_lab,Rotating Machinery site labor cost for 218A.231,114267.1180063949,$,category_scale,"ref_218A_231_lab, scale_P",0,ce_218A_23_lab +896,ce_218A_232_fac,Heat Transfer Equipment factory equipment cost for 218A.232,798020.9223690351,$,category_scale,"ref_218A_232_fac, scale_P",0,ce_218A_23_fac +897,ce_218A_232_mat,Heat Transfer Equipment site material cost for 218A.232,15906.29165252246,$,category_scale,"ref_218A_232_mat, scale_P",0,ce_218A_23_mat +898,ce_218A_232_lab,Heat Transfer Equipment site labor cost for 218A.232,192375.8725939752,$,category_scale,"ref_218A_232_lab, scale_P",0,ce_218A_23_lab +899,ce_218A_233_fac,Tanks & Pressure Vessels factory equipment cost for 218A.233,3057.9452506894927,$,category_scale,"ref_218A_233_fac, scale_P",0,ce_218A_23_fac +900,ce_218A_233_mat,Tanks & Pressure Vessels site material cost for 218A.233,650.7581497215162,$,category_scale,"ref_218A_233_mat, scale_P",0,ce_218A_23_mat +901,ce_218A_233_lab,Tanks & Pressure Vessels site labor cost for 218A.233,8070.741678574587,$,category_scale,"ref_218A_233_lab, scale_P",0,ce_218A_23_lab +902,ce_218A_234_fac,Purification & Filtration Equipment factory equipment cost for 218A.234,192727.64181920947,$,category_scale,"ref_218A_234_fac, scale_P",0,ce_218A_23_fac +903,ce_218A_234_mat,Purification & Filtration Equipment site material cost for 218A.234,6188.981152663588,$,category_scale,"ref_218A_234_mat, scale_P",0,ce_218A_23_mat +904,ce_218A_234_lab,Purification & Filtration Equipment site labor cost for 218A.234,74801.14560150082,$,category_scale,"ref_218A_234_lab, scale_P",0,ce_218A_23_lab +905,ce_218A_235_fac,Piping & Ductwork factory equipment cost for 218A.235,67692.11247774906,$,category_scale,"ref_218A_235_fac, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_fac +906,ce_218A_235_mat,Piping & Ductwork site material cost for 218A.235,66188.91261269021,$,category_scale,"ref_218A_235_mat, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_mat +907,ce_218A_235_lab,Piping & Ductwork site labor cost for 218A.235,411174.41605225386,$,category_scale,"ref_218A_235_lab, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_lab +908,ce_218A_236_fac,Valves & Dampers factory equipment cost for 218A.236,14572.925980189491,$,category_scale,"ref_218A_236_fac, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_fac +909,ce_218A_236_mat,Valves & Dampers site material cost for 218A.236,754.5375049095608,$,category_scale,"ref_218A_236_mat, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_mat +910,ce_218A_236_lab,Valves & Dampers site labor cost for 218A.236,9203.645713465405,$,category_scale,"ref_218A_236_lab, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_lab +911,ce_218A_237_fac,Piping & Miscellaneous Items factory equipment cost for 218A.237,1891.0770424921045,$,category_scale,"ref_218A_237_fac, scale_cr_dg_bldg_bldg_vol",0,ce_218A_23_fac +912,ce_218A_237_mat,Piping & Miscellaneous Items site material cost for 218A.237,0.0,$,,,0,ce_218A_23_mat +913,ce_218A_237_lab,Piping & Miscellaneous Items site labor cost for 218A.237,0.0,$,,,0,ce_218A_23_lab +914,ce_218A_238_fac,Instrumentation & Control factory equipment cost for 218A.238,318643.0344770824,$,category_scale,"ref_218A_238_fac, scale_P",0,ce_218A_23_fac +915,ce_218A_238_mat,Instrumentation & Control site material cost for 218A.238,2653.8730798404054,$,category_scale,"ref_218A_238_mat, scale_P",0,ce_218A_23_mat +916,ce_218A_238_lab,Instrumentation & Control site labor cost for 218A.238,65020.608477935726,$,category_scale,"ref_218A_238_lab, scale_P",0,ce_218A_23_lab +917,ce_218A_24_fac,Lighting & Service Power factory equipment cost for 218A.24,0.0,$,,,0, +918,ce_218A_24_mat,Lighting & Service Power site material cost for 218A.24,33876.239427217915,$,category_scale,"ref_218A_24_mat, scale_cr_dg_bldg_bldg_vol",0, +919,ce_218A_24_lab,Lighting & Service Power site labor cost for 218A.24,110446.59125179442,$,category_scale,"ref_218A_24_lab, scale_cr_dg_bldg_bldg_vol",0, +920,ce_218B_21_fac,Plumbing & Drains factory equipment cost for 218B.21,0.0,$,,,0, +921,ce_218B_21_mat,Plumbing & Drains site material cost for 218B.21,0.0,$,,,0, +922,ce_218B_21_lab,Plumbing & Drains site labor cost for 218B.21,0.0,$,,,0, +923,ce_218B_22_fac,"Heating, Ventilation, & Air Conditioning factory equipment cost for 218B.22",1859074.345697987,$,category_scale,"ref_218B_22_fac, scale_P",0, +924,ce_218B_22_mat,"Heating, Ventilation, & Air Conditioning site material cost for 218B.22",455469.92767257954,$,category_scale,"ref_218B_22_mat, scale_P",0, +925,ce_218B_22_lab,"Heating, Ventilation, & Air Conditioning site labor cost for 218B.22",3119188.467255361,$,category_scale,"ref_218B_22_lab, scale_P",0, +926,ce_218B_23_fac,Special HVAC (Safety Related) factory equipment cost for 218B.23,23677.654763305312,$,category_scale,"ref_218B_23_fac, scale_P",0, +927,ce_218B_23_mat,Special HVAC (Safety Related) site material cost for 218B.23,1725.7570691534193,$,category_scale,"ref_218B_23_mat, scale_P",0, +928,ce_218B_23_lab,Special HVAC (Safety Related) site labor cost for 218B.23,23068.87721885645,$,category_scale,"ref_218B_23_lab, scale_P",0, +929,ce_218B_24_fac,Lighting & Service Power factory equipment cost for 218B.24,0.0,$,,,0, +930,ce_218B_24_mat,Lighting & Service Power site material cost for 218B.24,0.0,$,category_scale,"ref_218B_24_mat, scale_adm_bldg_bldg_vol",0, +931,ce_218B_24_lab,Lighting & Service Power site labor cost for 218B.24,0.0,$,category_scale,"ref_218B_24_lab, scale_adm_bldg_bldg_vol",0, +932,ce_218B_25_fac,Elevator factory equipment cost for 218B.25,88303.82096,$,category_scale,ref_218B_25_fac,0, +933,ce_218B_25_mat,Elevator site material cost for 218B.25,3586.127801,$,category_scale,ref_218B_25_mat,0, +934,ce_218B_25_lab,Elevator site labor cost for 218B.25,45810.80044,$,category_scale,ref_218B_25_lab,0, +935,ce_222_111_fac,Rotating Machinery factory equipment cost for 222.111,89028940.41572173,$,category_scale,"ref_222_111_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25",0, +936,ce_222_111_mat,Rotating Machinery site material cost for 222.111,332843.02111349395,$,category_scale,"ref_222_111_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25",0, +937,ce_222_111_lab,Rotating Machinery site labor cost for 222.111,3060334.6829829933,$,category_scale,"ref_222_111_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25",0, +938,ce_222_119_fac,Foundations/Skids factory equipment cost for 222.119,2682485.9979166314,$,category_scale,"ref_222_119_fac, scale_frm_flow, count_222_11, lrn_222_11_fac, adj_rx_aux_0_25",0, +939,ce_222_119_mat,Foundations/Skids site material cost for 222.119,389873.4372256505,$,category_scale,"ref_222_119_mat, scale_frm_flow, count_222_11, lrn_222_11_mat, adj_rx_aux_0_25",0, +940,ce_222_119_lab,Foundations/Skids site labor cost for 222.119,3633958.8392127496,$,category_scale,"ref_222_119_lab, scale_frm_flow, count_222_11, lrn_222_11_lab, adj_rx_aux_0_25",0, +941,ce_222_132_fac,Heat Transfer Equipment factory equipment cost for 222.132,149609146.48186994,$,category_scale,"ref_222_132_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half",0, +942,ce_222_132_mat,Heat Transfer Equipment site material cost for 222.132,449388.9889203872,$,category_scale,"ref_222_132_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half",0, +943,ce_222_132_lab,Heat Transfer Equipment site labor cost for 222.132,4109347.55865987,$,category_scale,"ref_222_132_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half",0, +944,ce_222_139_fac,Foundations/Skids factory equipment cost for 222.139,74901.1765732484,$,category_scale,"ref_222_139_fac, scale_frm_ht_S, count_222_13, lrn_222_13_fac, adj_half",0, +945,ce_222_139_mat,Foundations/Skids site material cost for 222.139,63614.80492704986,$,category_scale,"ref_222_139_mat, scale_frm_ht_S, count_222_13, lrn_222_13_mat, adj_half",0, +946,ce_222_139_lab,Foundations/Skids site labor cost for 222.139,617654.1352943376,$,category_scale,"ref_222_139_lab, scale_frm_ht_S, count_222_13, lrn_222_13_lab, adj_half",0, +947,ce_225_111_fac,New & Spent Fuel Crane factory equipment cost for 225.111,132640.43591165225,$,category_scale,"ref_225_111_fac, scale_frm_fuel_crane_cap, f_simp_fuel_hndl",0, +948,ce_225_111_mat,New & Spent Fuel Crane site material cost for 225.111,6365.745276305703,$,category_scale,"ref_225_111_mat, scale_frm_fuel_crane_cap, f_simp_fuel_hndl",0, +949,ce_225_111_lab,New & Spent Fuel Crane site labor cost for 225.111,79784.25381114653,$,category_scale,"ref_225_111_lab, scale_frm_fuel_crane_cap, f_simp_fuel_hndl",0, +950,ce_225_112_fac,Monorails & Hoists factory equipment cost for 225.112,16525.241407999998,$,category_scale,"ref_225_112_fac, f_simp_fuel_hndl",0, +951,ce_225_112_mat,Monorails & Hoists site material cost for 225.112,1183.3043071200002,$,category_scale,"ref_225_112_mat, f_simp_fuel_hndl",0, +952,ce_225_112_lab,Monorails & Hoists site labor cost for 225.112,14840.091416800002,$,category_scale,"ref_225_112_lab, f_simp_fuel_hndl",0, +953,ce_225_113_fac,New Fuel Elevator factory equipment cost for 225.113,40706.8958764,$,category_scale,"ref_225_113_fac, f_simp_fuel_hndl",0, +954,ce_225_113_mat,New Fuel Elevator site material cost for 225.113,5866.4106696,$,category_scale,"ref_225_113_mat, f_simp_fuel_hndl",0, +955,ce_225_113_lab,New Fuel Elevator site labor cost for 225.113,74200.457084,$,category_scale,"ref_225_113_lab, f_simp_fuel_hndl",0, +956,ce_225_114_fac,Spent Fuel Cask Crane factory equipment cost for 225.114,742541.5094717735,$,category_scale,"ref_225_114_fac, scale_frm_fuel_cask_cap, f_simp_fuel_hndl",0, +957,ce_225_114_mat,Spent Fuel Cask Crane site material cost for 225.114,16445.0014655645,$,category_scale,"ref_225_114_mat, scale_frm_fuel_cask_cap, f_simp_fuel_hndl",0, +958,ce_225_114_lab,Spent Fuel Cask Crane site labor cost for 225.114,206143.6122265231,$,category_scale,"ref_225_114_lab, scale_frm_fuel_cask_cap, f_simp_fuel_hndl",0, diff --git a/tutorial/accert/user_defined/user_defined.sql b/tutorial/accert/user_defined/user_defined.sql deleted file mode 100644 index 6393307..0000000 --- a/tutorial/accert/user_defined/user_defined.sql +++ /dev/null @@ -1,57 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `accert_db`; -USE `accert_db`; - -DROP TABLE IF EXISTS `user_defined_account`; -CREATE TABLE `user_defined_account` ( - `ind` int DEFAULT NULL, - `code_of_account` varchar(20) NOT NULL, - `account_description` text, - `total_cost` double DEFAULT NULL, - `level` int DEFAULT NULL, - `supaccount` text, - `review_status` text, - `prn` double DEFAULT NULL, - `alg_name` text, - `fun_unit` text, - `variables` text, - PRIMARY KEY (`code_of_account`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - -LOCK TABLES `user_defined_account` WRITE; -INSERT INTO `user_defined_account` VALUES (1,'2','User defined direct cost',1000000000,0,'','Unchanged',1,'','',''),(2,'21','User defined total cost 21',700000000,1,'2','Unchanged',0.7,'','',''),(3,'211','User defined total cost 211',100000000,2,'21','Unchanged',0.1,'ud211','million','v1, v2, v3'),(4,'212','User defined total cost 212',200000000,2,'21','Unchanged',0.2,'ud212','dollar','v5, v8, v7'),(5,'213','User defined total cost 213',400000000,2,'21','Unchanged',0.4,'','',''),(7,'2131','User defined total cost 2131',150000000,3,'213','Unchanged',0.15,'ud2131','optional input','v3, v2, v5'),(8,'2132','User defined total cost 27',250000000,3,'213','Unchanged',0.25,'ud2132','million','v8, v4, v6'),(9,'22','example account without algorithm',300000000,1,'2','Unchanged',0.3,'','',''); -UNLOCK TABLES; - -DROP TABLE IF EXISTS `user_defined_algorithm`; -CREATE TABLE `user_defined_algorithm` ( - `ind` int DEFAULT NULL, - `alg_name` varchar(50) NOT NULL, - `alg_for` text, - `alg_description` text, - `alg_python` text, - `alg_formulation` text, - `alg_units` text, - PRIMARY KEY (`alg_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - -LOCK TABLES `user_defined_algorithm` WRITE; -INSERT INTO `user_defined_algorithm` VALUES (5,'ud_cal_v6','v','description of ud_cal_v6 optional','user_defined_func','formulation of ud_cal_v6 optional','million'),(1,'ud211','c','description of ud211 optional','user_defined_func','formulation of ud211 optional','million'),(2,'ud212','c','description of ud212 optional','user_defined_func','formulation of ud212 optional','dollar'),(3,'ud2131','c','description of ud2131 optional','user_defined_func','formulation of ud2131 optional','million'),(4,'ud2132','c','description of ud2132 optional','user_defined_func','formulation of ud2132 optional','million'); -UNLOCK TABLES; - -DROP TABLE IF EXISTS `user_defined_variable`; - -CREATE TABLE `user_defined_variable` ( - `ind` int DEFAULT NULL, - `var_name` varchar(20) NOT NULL, - `var_description` text, - `var_value` double DEFAULT NULL, - `var_unit` text, - `var_alg` text, - `var_need` text, - `v_linked` text, - `user_input` int DEFAULT NULL, - PRIMARY KEY (`var_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; - -LOCK TABLES `user_defined_variable` WRITE; -INSERT INTO `user_defined_variable` VALUES (1,'v1','description of v1 optional',20,'million','','','v6',0),(2,'v2','description of v2 optional',50,'million','','','',0),(3,'v3','description of v3 optional',30,'million','','','v6',0),(4,'v4','description of v4 optional',2.5,'km','','','',0),(5,'v5','description of v5 optional',1500,'m','','','',0),(6,'v6','description of v6 optional',50,'million','ud_cal_v6','v1, v3','',0),(7,'v7','description of v7 optional',50000000,'dollar','','','',0),(8,'v8','description of v8 optional',100000,'$/m','','','',0); -UNLOCK TABLES; diff --git a/tutorial/combined/accert_ap1000_iat_crf_workflow.ipynb b/tutorial/combined/accert_ap1000_iat_crf_workflow.ipynb new file mode 100644 index 0000000..5915844 --- /dev/null +++ b/tutorial/combined/accert_ap1000_iat_crf_workflow.ipynb @@ -0,0 +1,1613 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "workflow-title", + "metadata": {}, + "source": [ + "# ACCERT AP1000 to IAT China to CRF\n", + "\n", + "This notebook runs the three-tool workflow:\n", + "\n", + "1. Run the ACCERT AP1000 model and generate account CSV files.\n", + "2. Convert the ACCERT account output into a CRF/IAT baseline, then run IAT for China.\n", + "3. Use the China-adjusted CSV as the CRF baseline to evaluate FOAK-to-NOAK results.\n", + "\n", + "The AP1000 CRF base case uses a well-executed FOAK construction duration of 76 months.\n", + "\n", + "Source note: the AP1000 and LPSR direct-cost basis used in this workflow follows:\n", + "\n", + "[1]Spangler, Ryan, et al. \"Potential Cost Reduction in New Nuclear Deployments Based on Recent AP1000 Experience.\" , Jun. 2025. https://doi.org/10.2172/2571083\n", + "[2]Stewart W.R. and Shirvan K., \"Capital cost estimation for advanced nuclear power plants,\" *Renewable and Sustainable Energy Reviews*, Nov. 2021, 111880, https://doi.org/10.1016/j.rser.2021.111880\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "setup-paths", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(PosixPath('/Users/jia.zhou/projects/ACCERT/tutorial/accert/AP1000.son'),\n", + " PosixPath('/Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook'))" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pathlib import Path\n", + "import os\n", + "import shutil\n", + "import subprocess\n", + "import sys\n", + "import tempfile\n", + "\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from IPython.display import Image, display\n", + "\n", + "REPO_ROOT = Path.cwd()\n", + "if not (REPO_ROOT / \"src\" / \"Main.py\").exists():\n", + " REPO_ROOT = Path.cwd().parents[1]\n", + "\n", + "SRC_PATH = REPO_ROOT / \"src\"\n", + "if str(SRC_PATH) not in sys.path:\n", + " sys.path.insert(0, str(SRC_PATH))\n", + "\n", + "from crf import accert_output_to_crf_baseline, run_one_scenario, results_to_dataframe, print_scenario_result, save_dashboard, waterfall_to_dataframe\n", + "from crf.io.excel_inputs import InputStore\n", + "from iat import level_account_summary, run_adjustment\n", + "\n", + "OUTPUT_DIR = Path(os.environ.get(\n", + " \"ACCERT_WORKFLOW_OUTPUT_DIR\",\n", + " REPO_ROOT / \"tutorial\" / \"combined\" / \"outputs\" / \"ap1000_china_notebook\",\n", + "))\n", + "OUTPUT_DIR.mkdir(parents=True, exist_ok=True)\n", + "\n", + "ACCERT_INPUT = REPO_ROOT / \"tutorial\" / \"accert\" / \"AP1000.son\"\n", + "REACTOR_TYPE = \"AP1000\"\n", + "COUNTRY = \"China\"\n", + "YEAR_DOLLAR = 2024\n", + "CONSTRUCTION_DURATION_MONTHS = 76\n", + "\n", + "ACCERT_INPUT, OUTPUT_DIR" + ] + }, + { + "cell_type": "markdown", + "id": "run-accert-heading", + "metadata": {}, + "source": [ + "## 1. Run ACCERT AP1000\n", + "\n", + "The ACCERT run uses a temporary SQLite database copy so the reference database in `src/accertdb.sqlite` is not modified." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "run-accert-ap1000", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ACCERT account CSV: /Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook/ap1000_upd_acc_20260519_002909.csv\n", + "ACCERT cost element CSV: /Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook/ap1000_upd_ce_20260519_002909.csv\n", + "ACCERT post-process CSV: /Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook/ap1000_post_20260519_002909.csv\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
code_of_accountaccount_descriptiontotal_costlevelreview_statustotal_cost_2024
02Total Direct Cost6.673724e+090Updated8.336979e+09
121Structures and Improvements1.873208e+091Updated2.340057e+09
2211Yardwork1.687825e+082Updated2.108472e+08
3211.1General Yardwork2.089185e+073Unchanged2.609861e+07
4211.4Railroads2.477928e+073Unchanged3.095488e+07
5211.7Structure Associated Yardwork1.231114e+083Updated1.537937e+08
6212Reactor Containment Building1.230414e+092Updated1.537064e+09
7212.1Building Structure1.142969e+093Updated1.427825e+09
8212.2Building Services3.645450e+073Updated4.553985e+07
9212.3Passive cooling pool5.099098e+073Unchanged6.369917e+07
\n", + "
" + ], + "text/plain": [ + " code_of_account account_description total_cost level \\\n", + "0 2 Total Direct Cost 6.673724e+09 0 \n", + "1 21 Structures and Improvements 1.873208e+09 1 \n", + "2 211 Yardwork 1.687825e+08 2 \n", + "3 211.1 General Yardwork 2.089185e+07 3 \n", + "4 211.4 Railroads 2.477928e+07 3 \n", + "5 211.7 Structure Associated Yardwork 1.231114e+08 3 \n", + "6 212 Reactor Containment Building 1.230414e+09 2 \n", + "7 212.1 Building Structure 1.142969e+09 3 \n", + "8 212.2 Building Services 3.645450e+07 3 \n", + "9 212.3 Passive cooling pool 5.099098e+07 3 \n", + "\n", + " review_status total_cost_2024 \n", + "0 Updated 8.336979e+09 \n", + "1 Updated 2.340057e+09 \n", + "2 Updated 2.108472e+08 \n", + "3 Unchanged 2.609861e+07 \n", + "4 Unchanged 3.095488e+07 \n", + "5 Updated 1.537937e+08 \n", + "6 Updated 1.537064e+09 \n", + "7 Updated 1.427825e+09 \n", + "8 Updated 4.553985e+07 \n", + "9 Unchanged 6.369917e+07 " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "with tempfile.TemporaryDirectory() as tmp:\n", + " db_path = Path(tmp) / \"accertdb.sqlite\"\n", + " shutil.copy2(REPO_ROOT / \"src\" / \"accertdb.sqlite\", db_path)\n", + " env = {**os.environ, \"ACCERT_SQLITE_DB\": str(db_path)}\n", + " subprocess.run(\n", + " [sys.executable, str(REPO_ROOT / \"src\" / \"Main.py\"), \"-i\", str(ACCERT_INPUT)],\n", + " cwd=OUTPUT_DIR,\n", + " env=env,\n", + " check=True,\n", + " )\n", + "\n", + "accert_account_csv = sorted(OUTPUT_DIR.glob(\"ap1000_upd_acc_*.csv\"))[-1]\n", + "accert_cost_element_csv = sorted(OUTPUT_DIR.glob(\"ap1000_upd_ce_*.csv\"))[-1]\n", + "accert_post_csv = sorted(OUTPUT_DIR.glob(\"ap1000_post_*.csv\"))[-1]\n", + "\n", + "print(\"ACCERT account CSV:\", accert_account_csv)\n", + "print(\"ACCERT cost element CSV:\", accert_cost_element_csv)\n", + "print(\"ACCERT post-process CSV:\", accert_post_csv)\n", + "\n", + "pd.read_csv(accert_account_csv).head(10)" + ] + }, + { + "cell_type": "markdown", + "id": "iat-heading", + "metadata": {}, + "source": [ + "## 2. Convert ACCERT Output and Run IAT for China\n", + "\n", + "The converter maps ACCERT AP1000 accounts into the CRF/IAT account layout, keeps the ACCERT direct-account cost basis, and distributes the user-assigned total 20s labor hours using AP1000 baseline labor-hour proportions." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "convert-accert-output", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Assigned total 20s labor hours: 28,902,455.46\n", + "Converted CRF/IAT baseline CSV: /Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook/ap1000_accert_for_iat_crf.csv\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AccountTitleTotal Cost (USD)Factory Equipment CostSite Labor HoursSite Labor CostSite Material Cost
011Land & Land Rights2.661073e+060.000000e+000.000000e+000.000000e+000.000000e+00
112Site Permits0.000000e+000.000000e+000.000000e+000.000000e+000.000000e+00
213Plant Licensing1.909501e+080.000000e+000.000000e+000.000000e+000.000000e+00
314Plant Permits2.058822e+070.000000e+000.000000e+000.000000e+000.000000e+00
415Plant Studies0.000000e+000.000000e+000.000000e+000.000000e+000.000000e+00
516Plant Reports0.000000e+000.000000e+000.000000e+000.000000e+000.000000e+00
618Other Pre-Construction Costs6.431742e+070.000000e+000.000000e+000.000000e+000.000000e+00
721Structures & Improvements1.873208e+093.140387e+081.244309e+071.066480e+094.926890e+08
8211Site Preparation/Yard Work1.687825e+081.229953e+061.335573e+061.047723e+086.278024e+07
9212Reactor Containment Building1.230414e+092.653541e+088.215502e+066.998343e+082.652260e+08
10213Turbine Room and Heater Bay2.044695e+084.135808e+061.174398e+061.064907e+089.384296e+07
11214Buildings to Support Main Function1.959397e+083.858726e+071.181442e+061.068872e+085.046516e+07
12215Supply Chain Buildings6.066395e+074.242238e+064.342058e+053.920828e+071.721343e+07
13216Human Resources Buildings1.293756e+074.893461e+051.019706e+059.287059e+063.161155e+06
14217Miscellaneous Other Structures0.000000e+000.000000e+000.000000e+000.000000e+000.000000e+00
\n", + "
" + ], + "text/plain": [ + " Account Title Total Cost (USD) \\\n", + "0 11 Land & Land Rights 2.661073e+06 \n", + "1 12 Site Permits 0.000000e+00 \n", + "2 13 Plant Licensing 1.909501e+08 \n", + "3 14 Plant Permits 2.058822e+07 \n", + "4 15 Plant Studies 0.000000e+00 \n", + "5 16 Plant Reports 0.000000e+00 \n", + "6 18 Other Pre-Construction Costs 6.431742e+07 \n", + "7 21 Structures & Improvements 1.873208e+09 \n", + "8 211 Site Preparation/Yard Work 1.687825e+08 \n", + "9 212 Reactor Containment Building 1.230414e+09 \n", + "10 213 Turbine Room and Heater Bay 2.044695e+08 \n", + "11 214 Buildings to Support Main Function 1.959397e+08 \n", + "12 215 Supply Chain Buildings 6.066395e+07 \n", + "13 216 Human Resources Buildings 1.293756e+07 \n", + "14 217 Miscellaneous Other Structures 0.000000e+00 \n", + "\n", + " Factory Equipment Cost Site Labor Hours Site Labor Cost \\\n", + "0 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "1 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "2 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "3 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "4 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "5 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "6 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "7 3.140387e+08 1.244309e+07 1.066480e+09 \n", + "8 1.229953e+06 1.335573e+06 1.047723e+08 \n", + "9 2.653541e+08 8.215502e+06 6.998343e+08 \n", + "10 4.135808e+06 1.174398e+06 1.064907e+08 \n", + "11 3.858726e+07 1.181442e+06 1.068872e+08 \n", + "12 4.242238e+06 4.342058e+05 3.920828e+07 \n", + "13 4.893461e+05 1.019706e+05 9.287059e+06 \n", + "14 0.000000e+00 0.000000e+00 0.000000e+00 \n", + "\n", + " Site Material Cost \n", + "0 0.000000e+00 \n", + "1 0.000000e+00 \n", + "2 0.000000e+00 \n", + "3 0.000000e+00 \n", + "4 0.000000e+00 \n", + "5 0.000000e+00 \n", + "6 0.000000e+00 \n", + "7 4.926890e+08 \n", + "8 6.278024e+07 \n", + "9 2.652260e+08 \n", + "10 9.384296e+07 \n", + "11 5.046516e+07 \n", + "12 1.721343e+07 \n", + "13 3.161155e+06 \n", + "14 0.000000e+00 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ap1000_baseline, _ = InputStore().get_baseline(REACTOR_TYPE)\n", + "total_20s_labor_hours = float(\n", + " ap1000_baseline.loc[\n", + " ap1000_baseline[\"Account\"].astype(str).isin([\"21\", \"22\", \"23\", \"24\", \"26\"]),\n", + " \"Site Labor Hours\",\n", + " ].sum()\n", + ")\n", + "\n", + "converted_baseline_csv = OUTPUT_DIR / \"ap1000_accert_for_iat_crf.csv\"\n", + "converted_baseline = accert_output_to_crf_baseline(\n", + " accert_account_csv,\n", + " converted_baseline_csv,\n", + " reactor_type=REACTOR_TYPE,\n", + " total_20s_labor_hours=total_20s_labor_hours,\n", + ")\n", + "\n", + "print(f\"Assigned total 20s labor hours: {total_20s_labor_hours:,.2f}\")\n", + "print(\"Converted CRF/IAT baseline CSV:\", converted_baseline_csv)\n", + "converted_baseline.head(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "run-iat-china", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "China-adjusted IAT CSV: /Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook/ap1000_accert_china_iat.csv\n", + "Input OCC: 14,015,836,005.53\n", + "Adjusted OCC: 9,952,955,444.02\n", + "Adjustment ratio of OCC: 0.7101\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
COALevelTitleOriginal Total CostAdjusted Total CostDifferenceAdjustment Ratio
0101Capitalized Pre-Construction Costs2.785168e+082.290786e+08-4.943816e+070.822495
1201Capitalized Direct Costs6.673724e+094.824292e+09-1.849431e+090.722879
2301Capitalized Indirect Services Costs6.921703e+094.763508e+09-2.158196e+090.688199
3501Capitalized Supplementary Costs1.418922e+081.360766e+08-5.815550e+060.959014
4601Capitalized Financial Costs7.519444e+097.519444e+090.000000e+001.000000
5112Land & Land Rights2.661073e+062.661073e+060.000000e+001.000000
6122Site Permits0.000000e+000.000000e+000.000000e+000.000000
7132Plant Licensing1.909501e+081.499531e+08-4.099699e+070.785300
8142Plant Permits2.058822e+071.214705e+07-8.441172e+060.590000
9152Plant Studies0.000000e+000.000000e+000.000000e+000.000000
10162Plant Reports0.000000e+000.000000e+000.000000e+000.000000
11182Other Pre-Construction Costs6.431742e+076.431742e+070.000000e+001.000000
12212Structures & Improvements1.873208e+091.331538e+09-5.416694e+080.710833
13222Reactor System1.978564e+091.432353e+09-5.462118e+080.723935
14232Energy Conversion System2.035611e+091.474546e+09-5.610642e+080.724375
15242Electrical Equipment4.147647e+083.065305e+08-1.082342e+080.739047
16252Initial fuel inventory0.000000e+000.000000e+000.000000e+000.000000
17262Miscellaneous Equipment3.715763e+082.793246e+08-9.225168e+070.751729
18282Simulator0.000000e+000.000000e+000.000000e+000.000000
19312Factory & Field Indirect Costs3.530992e+092.380223e+09-1.150769e+090.674095
20322Factory and construction supervision2.576943e+091.804054e+09-7.728884e+080.700075
21332Start-Up Costs1.084121e+087.712372e+07-3.128842e+070.711394
22342Shipping & Transportation Costs9.128423e+066.814586e+06-2.313837e+060.746524
23352Engineering Services6.962282e+084.952924e+08-2.009358e+080.711394
24512Taxes3.326341e+043.326341e+040.000000e+001.000000
25522Insurance1.246348e+081.258811e+081.246348e+061.010000
26542Decommissioning1.722414e+071.016224e+07-7.061897e+060.590000
27622Interest7.519444e+097.519444e+090.000000e+001.000000
\n", + "
" + ], + "text/plain": [ + " COA Level Title Original Total Cost \\\n", + "0 10 1 Capitalized Pre-Construction Costs 2.785168e+08 \n", + "1 20 1 Capitalized Direct Costs 6.673724e+09 \n", + "2 30 1 Capitalized Indirect Services Costs 6.921703e+09 \n", + "3 50 1 Capitalized Supplementary Costs 1.418922e+08 \n", + "4 60 1 Capitalized Financial Costs 7.519444e+09 \n", + "5 11 2 Land & Land Rights 2.661073e+06 \n", + "6 12 2 Site Permits 0.000000e+00 \n", + "7 13 2 Plant Licensing 1.909501e+08 \n", + "8 14 2 Plant Permits 2.058822e+07 \n", + "9 15 2 Plant Studies 0.000000e+00 \n", + "10 16 2 Plant Reports 0.000000e+00 \n", + "11 18 2 Other Pre-Construction Costs 6.431742e+07 \n", + "12 21 2 Structures & Improvements 1.873208e+09 \n", + "13 22 2 Reactor System 1.978564e+09 \n", + "14 23 2 Energy Conversion System 2.035611e+09 \n", + "15 24 2 Electrical Equipment 4.147647e+08 \n", + "16 25 2 Initial fuel inventory 0.000000e+00 \n", + "17 26 2 Miscellaneous Equipment 3.715763e+08 \n", + "18 28 2 Simulator 0.000000e+00 \n", + "19 31 2 Factory & Field Indirect Costs 3.530992e+09 \n", + "20 32 2 Factory and construction supervision 2.576943e+09 \n", + "21 33 2 Start-Up Costs 1.084121e+08 \n", + "22 34 2 Shipping & Transportation Costs 9.128423e+06 \n", + "23 35 2 Engineering Services 6.962282e+08 \n", + "24 51 2 Taxes 3.326341e+04 \n", + "25 52 2 Insurance 1.246348e+08 \n", + "26 54 2 Decommissioning 1.722414e+07 \n", + "27 62 2 Interest 7.519444e+09 \n", + "\n", + " Adjusted Total Cost Difference Adjustment Ratio \n", + "0 2.290786e+08 -4.943816e+07 0.822495 \n", + "1 4.824292e+09 -1.849431e+09 0.722879 \n", + "2 4.763508e+09 -2.158196e+09 0.688199 \n", + "3 1.360766e+08 -5.815550e+06 0.959014 \n", + "4 7.519444e+09 0.000000e+00 1.000000 \n", + "5 2.661073e+06 0.000000e+00 1.000000 \n", + "6 0.000000e+00 0.000000e+00 0.000000 \n", + "7 1.499531e+08 -4.099699e+07 0.785300 \n", + "8 1.214705e+07 -8.441172e+06 0.590000 \n", + "9 0.000000e+00 0.000000e+00 0.000000 \n", + "10 0.000000e+00 0.000000e+00 0.000000 \n", + "11 6.431742e+07 0.000000e+00 1.000000 \n", + "12 1.331538e+09 -5.416694e+08 0.710833 \n", + "13 1.432353e+09 -5.462118e+08 0.723935 \n", + "14 1.474546e+09 -5.610642e+08 0.724375 \n", + "15 3.065305e+08 -1.082342e+08 0.739047 \n", + "16 0.000000e+00 0.000000e+00 0.000000 \n", + "17 2.793246e+08 -9.225168e+07 0.751729 \n", + "18 0.000000e+00 0.000000e+00 0.000000 \n", + "19 2.380223e+09 -1.150769e+09 0.674095 \n", + "20 1.804054e+09 -7.728884e+08 0.700075 \n", + "21 7.712372e+07 -3.128842e+07 0.711394 \n", + "22 6.814586e+06 -2.313837e+06 0.746524 \n", + "23 4.952924e+08 -2.009358e+08 0.711394 \n", + "24 3.326341e+04 0.000000e+00 1.000000 \n", + "25 1.258811e+08 1.246348e+06 1.010000 \n", + "26 1.016224e+07 -7.061897e+06 0.590000 \n", + "27 7.519444e+09 0.000000e+00 1.000000 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "iat_china_csv = OUTPUT_DIR / \"ap1000_accert_china_iat.csv\"\n", + "iat_result = run_adjustment(\n", + " {\n", + " \"reactor_type\": \"ACCERT output-LR\",\n", + " \"country\": COUNTRY,\n", + " \"year_dollar\": YEAR_DOLLAR,\n", + " \"input_csv\": converted_baseline_csv,\n", + " \"output_csv\": iat_china_csv,\n", + " }\n", + ")\n", + "\n", + "print(\"China-adjusted IAT CSV:\", iat_china_csv)\n", + "print(f\"Input OCC: {iat_result['input_occ']:,.2f}\")\n", + "print(f\"Adjusted OCC: {iat_result['adjusted_occ']:,.2f}\")\n", + "print(f\"Adjustment ratio of OCC: {iat_result['occ_adjustment_ratio']:.4f}\")\n", + "\n", + "level_account_summary(iat_result[\"adjusted_costs\"], max_level=2)" + ] + }, + { + "cell_type": "markdown", + "id": "iat-visual-heading", + "metadata": {}, + "source": [ + "### IAT Visualization\n", + "\n", + "The chart below compares the ACCERT-derived AP1000 baseline against the China-adjusted IAT baseline by top-level COA group." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "visualize-iat", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rVWrVhbL4eHhkmTVUKXmzZurUKFCt33vpUuXNGzYMJUrV06FCxdW4cKF5enpqcuXLyshIeGO2/jqq6+UkpKinj17mst69uxpPqYZ4uLiJEmdO3e2eH+nTp3uuA1b1KxZUzt37lS/fv20YsWKu/rsIiIizJP2JalSpUqS/hnK8u9f3DPKM47nwYMHtXfvXvM+3rx50/xq1qyZTp48qX379llsy57P93YaNGigEiVKmJcLFSqkDh066ODBg+ahO3Xr1tXDDz+sKVOmmOt98sknMplMeuGFF+za/t0wDEMmk8m8nJiYqLi4OLVt29Y8yb5du3by8vKyejhUVgYPHixnZ2fz69bPQJKeeeYZi+WMv99bhzjVrFlTlSpV0po1a+46nk6dOlnsd3BwsGrVqmXeJgDHIrEAYJO1a9cqMTFR7dq1U0pKis6fP6/z58+rffv2unLliubNm2f3NjLmTiQmJtr0vmLFilksu7q6SpLF8Bt73tupUyd99NFH6t27t1asWKEtW7Zo69at8vf3t2obsbGxcnNzU5MmTczHLTw8XCEhIZoxY4Z5mM3ff/+twoULZ4opMDDwjtuwxfDhw/Xee+9p8+bNatq0qYoVK6YGDRrYdAvcokWLWiy7uLjctvzatWuS/rmtqSS9+uqrFheuzs7O6tevnyRlGjJjz+d7O1kd14yyv//+21w2cOBArVmzRvv27dONGzf02Wef6dlnn73j51K6dGmdPn1aly9fvmMs1v7tHzlyREFBQeblL774QoZh6NlnnzX/bd24cUOtWrXShg0btHfvXqtivHLlikX5kCFDtHXrVm3dujXbuRe3lmccs6zqlypVyuKY2iq7z8qeNgHkHBILADbJmA/wwQcfyM/Pz/x66aWXLNbbo3HjxpKkb775xu62csqFCxf0/fffa+jQoXr99dfVoEEDPfroo6patarOnj17x/fv379fv/zyi65du6bSpUtbHLukpCQdP35cK1askPTPBfTNmzczXSwlJydbFaubm5tSU1Mzld96oV64cGENHjxY27dv19mzZzVv3jwdO3ZMjRs3znSBmdOKFy8u6Z/kJuPC9dZXRERErsaQIavjmlH272SmU6dOKlasmKZMmaKFCxcqOTlZ0dHRd2y/cePGSktL03fffXfHuiVLllSVKlW0cuXKbD+DTZs26a+//jL3GKanp5vnpLRt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yaT09HSb6mckM9I/PSCnT59WTEyMgoOD5erqqsjISF2/fl2SNHr0aIuhU5K0efNmPffccxo1apQaN24sHx8fzZ8/36a5CVlxcnKyiE2SxXwALy8vbd++XevWrdPKlSv13//+VyNHjtTWrVszDRnLkJ6erpYtW2r8+PGZ1pUsWTJHh/xkJIcZ/73TsQ0KCtK+ffu0atUqrV69Wv369dO7776r9evXKz09XYUKFVJ8fLxFYiDJpgnat/t7yaltAACAgonEIo8pWrSoGjdurClTpmjgwIGZ5lmcP38+24vmnPDzzz9r6tSpatasmSTp2LFjFhObAwICFBAQYPGeDRs2KDg4WG+++aa57MiRIxZ1KlWqpM2bN6tbt27mslsnot/K39/fYmJ5Wlqadu/erXr16pnLChcurIYNG6phw4YaMWKEfH19tXbtWrVt21YuLi5KS0uzaLN69epatGiRQkJCVLhw5j//cuXKydnZWZs3b1bp0qUlSefOndP+/ftVp06d28Z79OhRnThxwjyMaNOmTXJyclL58uUl3fnYSlKRIkXUqlUrtWrVStHR0apYsaJ+//13VatWTWlpaTp16pSefPLJ28Zxt+7FNgAAwP2LoVB50NSpU5WWlqaaNWtq0aJFOnDggBISEjRp0iS7hw/dSbly5TR79mwlJCTo119/VefOnVWkSJE7vufo0aOaP3++Dh06pEmTJmnJkiUWdV5++WV98cUX+uKLL7R//36NGDFCf/zxx23brV+/vn744Qf98MMP2rt3r/r162dxl6Xvv/9ekyZN0o4dO3TkyBHNmjVL6enp5mFLISEh+vXXX5WUlKQzZ84oPT1d0dHROnv2rDp27KgtW7bo8OHDWrlypXr27Km0tDR5enqqV69eeu2117RmzRrt3r1bPXr0kJPTnU8VNzc3de/eXTt37tTPP/+sgQMHqn379uY5Hnc6tjNmzFBsbKx2796tw4cPa/bs2SpSpIiCg4NVvnx5de7cWd26ddPixYuVmJiorVu3avz48Vq2bNkdY7PGvdgGAAC4f5FY5EFlypTR9u3bVa9ePQ0ZMkRhYWGKiorSmjVr9PHHH+fqtr/44gudO3dO1apVU9euXTVw4MBMPRS3evrpp/XKK6+of//+ioiI0MaNG/XWW29Z1OnQoYP++9//atiwYXrkkUd05MgRvfTSS7dtt2fPnure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gLX4boY1SCyQ53AxAtwf3N3dtW3btmwvNHbv3q2aNWvqypUr9zgyALbiuxnWYI4F8pxff/1V27Zty/Q/LklycXHRG2+8oZo1azogMgC28PPz04EDB7JNLA4ePCg/P797HBWAu8F3M6zBXaGQ52RcjGSHixEgf+jTp4+6d++u9957Tzt37lRycrL++usv7dy5U++995569uypF1980dFhArAC382wBj0WyHMyLkb+85//KCoqSiVKlJDJZFJycrJWrVqld955R4MGDXJ0mADuYOTIkSpSpIg++OADDR06VCaTSZJkGIYCAwP1+uuva+jQoQ6OEoA1+G6GNZhjgTxp/PjxmjhxovmuE9L/XYwMGjSIixEgn0lMTFRycrIkKTAwUGXKlHFwRABsxXcz7oTEAnkaFyMAAOQtfDcjO8yxQJ5WpkwZRUZGKjIy0vw/rmPHjqlnz54OjgyANa5evapffvlFe/bsybTu2rVrmjVrlgOiAnA3EhISNH36dF2/fl2RkZHy8/PThAkT1LNnT61du9bR4SEPoMcC+c7OnTtVvXp1paWlOToUALexf/9+NWrUSEePHpXJZNKTTz6pefPmqWTJkpKkv/76S6VKleJcBvKB5cuX6+mnn5anp6euXLmiJUuWqFu3bnr44YdlGIbWr1+vFStWqH79+o4OFQ5EYoE8Z+nSpbddf/jwYQ0ZMoSLESCPa9OmjW7evKnp06fr/PnzGjx4sHbv3q1169apdOnSJBZAPlKrVi3Vr19fY8aM0fz589WvXz+99NJLGjt2rCTpzTff1NatW7Vy5UoHRwpHIrFAnuPk5CSTyaTb/WmaTCYuRoA8rkSJElq9erWqVq1qLouOjtb333+vuLg4eXh4kFgA+YSPj4/i4+NVrlw5paeny9XVVb/++quqV68u6Z8HXjZs2NA89wIFE3MskOeULFlSixYtUnp6epav7du3OzpEAFa4evWqChe2vKv5lClT1KpVK9WpU0f79+93UGQA7OHk5CQ3Nzf5+vqay7y8vHThwgXHBYU8gcQCec4jjzxy2+ThTr0ZAPKGihUratu2bZnKJ0+erKefflqtWrVyQFQA7kZISIgOHjxoXt60aZNKly5tXj527Jh5/hQKLhIL5DmvvfaaatWqle36cuXKKS4u7h5GBOButGnTRvPmzcty3UcffaSOHTvyIwGQT7z00ksW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "iat_summary = level_account_summary(iat_result[\"adjusted_costs\"], max_level=1)\n", + "plot_df = iat_summary.loc[iat_summary[\"COA\"].isin([\"10\", \"20\", \"30\"])].copy()\n", + "plot_df = plot_df.set_index(\"COA\")[[\"Original Total Cost\", \"Adjusted Total Cost\"]] / 1e9\n", + "\n", + "ax = plot_df.plot(kind=\"bar\", figsize=(8, 4), color=[\"#4C78A8\", \"#F58518\"])\n", + "ax.set_title(\"IAT China Adjustment by COA Group\")\n", + "ax.set_ylabel(\"Cost (billion 2024 USD)\")\n", + "ax.set_xlabel(\"COA group\")\n", + "ax.legend([\"ACCERT AP1000 baseline\", \"China-adjusted baseline\"])\n", + "ax.grid(axis=\"y\", alpha=0.3)\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "id": "crf-heading", + "metadata": {}, + "source": [ + "## 3. Run CRF with the China-Adjusted Baseline\n", + "\n", + "CRF reads the IAT CSV through `baseline_csv`. Because the IAT output includes adjusted cost columns, CRF uses those adjusted columns as the new baseline." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "run-crf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Results by plant number:\n", + "\n", + " Plant_number OCC TCI duration STAUP D10s D20s D30s D50s D60s D20_equip D20_mat D20_labor\n", + " 1 7104.56 7743.32 88.19 25.00 102.54 3538.83 3424.13 39.06 638.76 1569.67 314.13 1655.03\n", + " 2 3746.02 3977.27 65.06 17.50 102.54 2175.58 1443.88 24.01 231.25 1119.05 201.69 854.84\n", + " 3 2946.74 3096.58 58.80 14.20 102.54 1813.47 1010.29 20.43 149.84 1001.65 169.80 642.03\n", + " 4 2753.73 2876.85 54.98 12.25 102.54 1739.77 891.85 19.57 123.13 995.01 161.49 583.26\n", + " 5 2618.61 2724.06 52.18 10.92 102.54 1686.65 810.46 18.96 105.44 989.91 155.33 541.41\n", + " 6 2516.74 2609.33 50.01 9.94 102.54 1645.69 750.00 18.51 92.59 985.77 150.47 509.46\n", + " 7 2436.11 2518.84 48.24 9.18 102.54 1612.68 702.75 18.14 82.73 982.28 146.48 483.91\n", + " 8 2370.06 2446.81 46.76 8.57 102.54 1585.21 664.46 17.85 76.74 979.27 143.11 462.82\n", + " 9 2314.56 2385.89 45.49 8.07 102.54 1561.83 632.59 17.60 71.33 976.63 140.20 444.99\n", + " 10 2266.99 2333.76 44.38 7.64 102.54 1541.55 605.51 17.39 66.78 974.28 137.65 429.62\n", + "\n", + "Summary metrics:\n", + "\n", + "cons_duration_cumulative_wz_startup: 188.03\n", + "occLastUnit: 2266.99\n", + "occNOAKUnit: 2753.73\n", + "occ_reduction_from_FOAK_to_NOAK_percent: 61.24\n", + "TCILastUnit: 2333.76\n", + "durationsLastUnit: 44.38\n", + "avg_OCC: 3107.41\n", + "avg_TCI: 3271.27\n", + "avg_duration: 55.41\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Plant numberOCCNet OCCTCINCIConstruction durationStartup durationPreconstruction costsDirect costsDirect costs: equipmentDirect costs: materialDirect costs: laborIndirect costsSupplementary costsFinancing costsOCC reduction from FOAKTCI reduction from FOAK
017104.562325NaN7743.317622NaN88.18843825.000000102.5419163538.8306161569.667247314.1345751655.0287943424.13157439.058219638.7552970.0000000.000000
123746.015509NaN3977.269899NaN65.06041417.500000102.5419162175.5832191119.053249201.690397854.8395731443.87790924.012465231.25439047.27309948.636100
232946.739722NaN3096.584353NaN58.79776714.204508102.5419161813.4724441001.647423169.797416642.0276051010.29352620.431836149.84463158.52327660.009591
342753.725509NaN2876.853528NaN54.97634612.250000102.5419161739.769400995.014501161.492221583.262678891.84703019.567164123.12801961.24004062.847275
452618.613943NaN2724.056091NaN52.18410710.921161102.5419161686.652642989.910375155.331000541.411266810.45750018.961885105.44214863.14179864.820556
562516.744396NaN2609.329565NaN50.0082879.943156102.5419161645.693402985.766244150.471818509.455340750.00355318.50552692.58516964.57565966.302176
672436.113504NaN2518.840360NaN48.2395889.184917102.5419161612.676009982.280731146.482224483.913054702.75126718.14431282.72685765.71057667.470786
782370.064468NaN2446.806908NaN46.7581178.575000102.5419161585.211594979.274928143.111884462.824782664.46253417.84842376.74244166.64024768.401052
892314.559874NaN2385.885755NaN45.4891778.070722102.5419161561.825172976.633968140.203460444.987744632.59301517.59977171.32588167.42149969.187810
9102266.985188NaN2333.762357NaN44.3832807.644812102.5419161541.546908974.279734137.651906429.615267605.50972017.38664466.77716968.09113569.860950
\n", + "
" + ], + "text/plain": [ + " Plant number OCC Net OCC TCI NCI \\\n", + "0 1 7104.562325 NaN 7743.317622 NaN \n", + "1 2 3746.015509 NaN 3977.269899 NaN \n", + "2 3 2946.739722 NaN 3096.584353 NaN \n", + "3 4 2753.725509 NaN 2876.853528 NaN \n", + "4 5 2618.613943 NaN 2724.056091 NaN \n", + "5 6 2516.744396 NaN 2609.329565 NaN \n", + "6 7 2436.113504 NaN 2518.840360 NaN \n", + "7 8 2370.064468 NaN 2446.806908 NaN \n", + "8 9 2314.559874 NaN 2385.885755 NaN \n", + "9 10 2266.985188 NaN 2333.762357 NaN \n", + "\n", + " Construction duration Startup duration Preconstruction costs \\\n", + "0 88.188438 25.000000 102.541916 \n", + "1 65.060414 17.500000 102.541916 \n", + "2 58.797767 14.204508 102.541916 \n", + "3 54.976346 12.250000 102.541916 \n", + "4 52.184107 10.921161 102.541916 \n", + "5 50.008287 9.943156 102.541916 \n", + "6 48.239588 9.184917 102.541916 \n", + "7 46.758117 8.575000 102.541916 \n", + "8 45.489177 8.070722 102.541916 \n", + "9 44.383280 7.644812 102.541916 \n", + "\n", + " Direct costs Direct costs: equipment Direct costs: material \\\n", + "0 3538.830616 1569.667247 314.134575 \n", + "1 2175.583219 1119.053249 201.690397 \n", + "2 1813.472444 1001.647423 169.797416 \n", + "3 1739.769400 995.014501 161.492221 \n", + "4 1686.652642 989.910375 155.331000 \n", + "5 1645.693402 985.766244 150.471818 \n", + "6 1612.676009 982.280731 146.482224 \n", + "7 1585.211594 979.274928 143.111884 \n", + "8 1561.825172 976.633968 140.203460 \n", + "9 1541.546908 974.279734 137.651906 \n", + "\n", + " Direct costs: labor Indirect costs Supplementary costs Financing costs \\\n", + "0 1655.028794 3424.131574 39.058219 638.755297 \n", + "1 854.839573 1443.877909 24.012465 231.254390 \n", + "2 642.027605 1010.293526 20.431836 149.844631 \n", + "3 583.262678 891.847030 19.567164 123.128019 \n", + "4 541.411266 810.457500 18.961885 105.442148 \n", + "5 509.455340 750.003553 18.505526 92.585169 \n", + "6 483.913054 702.751267 18.144312 82.726857 \n", + "7 462.824782 664.462534 17.848423 76.742441 \n", + "8 444.987744 632.593015 17.599771 71.325881 \n", + "9 429.615267 605.509720 17.386644 66.777169 \n", + "\n", + " OCC reduction from FOAK TCI reduction from FOAK \n", + "0 0.000000 0.000000 \n", + "1 47.273099 48.636100 \n", + "2 58.523276 60.009591 \n", + "3 61.240040 62.847275 \n", + "4 63.141798 64.820556 \n", + "5 64.575659 66.302176 \n", + "6 65.710576 67.470786 \n", + "7 66.640247 68.401052 \n", + "8 67.421499 69.187810 \n", + "9 68.091135 69.860950 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "crf_config = {\n", + " \"reactor_type\": REACTOR_TYPE,\n", + " \"baseline_csv\": str(iat_china_csv),\n", + " \"f_22\": 250_000_000,\n", + " \"f_2321\": 150_000_000,\n", + " \"land_cost_per_acre_0\": 22_000,\n", + " \"construction_duration_0\": CONSTRUCTION_DURATION_MONTHS,\n", + " \"startup_0\": 25,\n", + " \"staggering_ratio\": 0.75,\n", + "}\n", + "\n", + "crf_levers = {\n", + " \"num_orders\": 10,\n", + " \"num_NOAK\": 4,\n", + " \"itc_percent\": 0,\n", + " \"n_itc\": 0,\n", + " \"interest_percent\": 3,\n", + " \"design_completion_percent\": 70,\n", + " \"design_maturity\": 1,\n", + " \"proc_exp\": 1,\n", + " \"N_proc\": 2,\n", + " \"ce_exp\": 1,\n", + " \"N_cons\": 3,\n", + " \"ae_exp\": 1,\n", + " \"N_AE\": 4,\n", + " \"standardization_percent\": 80,\n", + " \"modularity_code\": 0,\n", + " \"bop_grade_code\": 0,\n", + " \"rb_grade_code\": 0,\n", + "}\n", + "\n", + "crf_result = run_one_scenario(crf_config, crf_levers)\n", + "print_scenario_result(crf_result)\n", + "results_to_dataframe(crf_result)" + ] + }, + { + "cell_type": "markdown", + "id": "crf-visual-heading", + "metadata": {}, + "source": [ + "### CRF Visualization\n", + "\n", + "The dashboard and trend plots summarize FOAK-to-NOAK changes using the China-adjusted AP1000 baseline." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "visualize-crf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CRF dashboard: /Users/jia.zhou/projects/ACCERT/tutorial/combined/outputs/ap1000_china_notebook/ap1000_china_crf_dashboard.png\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAADiEAAAqdCAYAAADM6mUpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAXEgAAFxIBZ5/SUgABAABJREFUeJzs3Xd4VFX+x/FPOqmUBAIESOi9F+kgIIiAdEQFBQXLWtayIrq6IurPsrr2higgqFQpIiIgvYTeewkEAoRUQnqb3x9IZDL3TiZhkqC+X8+T53HOOfeeMzP33hl253O/LhaLxSIAAAAAAAAAAAAAAAAAAAAAAAAAAIB8XEt7AQAAAAAAAAAAAAAAAAAAAAAAAAAA4OZECBEAAAAAAAAAAAAAAAAAAAAAAAAAABgihAgAAAAAAAAAAAAAAAAAAAAAAAAAAAwRQgQAAAAAAAAAAAAAAAAAAAAAAAAAAIYIIQIAAAAAAAAAAAAAAAAAAAAAAAAAAEOEEAEAAAAAAAAAAAAAAAAAAAAAAAAAgCFCiAAAAAAAAAAAAAAAAAAAAAAAAAAAwBAhRAAAAAAAAAAAAAAAAAAAAAAAAAAAYIgQIgAAAAAAAAAAAAAAAAAAAAAAAAAAMEQIEQAAAAAAAAAAAAAAAAAAAAAAAAAAGCKECAAAAAAAAAAAAAAAAAAAAAAAAAAADBFCBAAAAAAAAAAAAAAAAAAAAAAAAAAAhgghAgAAAAAAAAAAAAAAAAAAAAAAAAAAQ4QQAQAAAAAAAAAAAAAAAAAAAAAAAACAIUKIAAAAAAAAAAAAAAAAAAAAAAAAAADAkHtpLwAAAAAAAAAAgMK4ePGitm3bpujoaMXGxiogIEDBwcFq1KiRGjVq5LR5EhIStGXLFl28eFGXLl2Sj4+PgoODVbduXbVs2VIuLi5OmSclJUWbN2/W+fPnFR0dLQ8PDwUHB6tmzZpq166d3NzcnDLPjUpJSdGOHTsUHR2tuLg4JSQkyNPTU/7+/qpRo4YaNmyo0NDQAl+X6dOna+zYsYZ9ERERCgsLc9qau3fvrnXr1tm0d+vWTWvXrnXaPCgZCQkJ2rVrl2JiYhQXF6fExESVKVNGAQEBqlmzpho1aqSqVas6ZS6LxaIDBw7o1KlTiouLU3x8vLKysuTv76+goCA1bNhQ9evXV5kyZZwyH3AzycjI0M6dO3X+/HnFx8crLi5Obm5u8vf3V9WqVdWoUSPVrl1brq7c7xYlo6Q+z0+fPq2aNWsa9k2bNk1jxoxx2lxwLrNjJDQ0VKdPny75BQEAAAAAAADAXxAhRAAAAAAAAAAoARaLRbVr11ZERITpmJCQEEVGRhb6R/2TJk3Sq6++6vB4d3d3BQQEqFy5cmrYsKFatmypgQMHqk2bNoWaNzExUTt37tSOHTu0fft27dixQ2fOnDEce6M/ErdYLJoxY4Y+//xzbd++XRaLxXBcrVq1dO+99+r555+Xr69vkeZasmSJ3n//fW3cuFHZ2dmGY6pWrarhw4frpZdeUlBQUJHm2bhxo958802tXr1a6enphmMCAwN155136pVXXlFoaGiR5rkR0dHR+uyzz7R8+XLt2rXL9PW4Jjg4WL1799awYcPUr1+/myZACedITk5W5cqVlZKSYjqmffv22rJli9PmPHXqlD777DOtWrVK+/btMz33rwkNDVWfPn101113qUePHoWaKycnR3PnztXs2bO1YcMGJSQk2B3v6empzp07q1+/frrvvvtMrwVjxozRjBkzCrUWM/ZCMIUJRnt7e8vX11dBQUGqX7++WrRooQEDBqh169aG4+0Fc5ypKEFke2sravjklVde0eTJk+2OWb58ufr06WPYZy9s7SzODtZcvnxZU6ZM0dKlS7V161ZlZGTYHV+uXDn16tVLgwYN0rBhw+Tl5WU4LiwszPS7QX5eXl7y8/NT+fLlVa9ePTVt2lT9+vVTp06dCvXdyFk3CZBU4DWnMAo6LlxdXeXh4SEPDw/5+vqqfPnyCgwMVGhoqOrUqaO2bduqU6dOKl++vNPWBAAAAAAAAAAA4ChuTwkAAAAAAAAAJWDt2rV2A4iSFBUVpZUrVxb7WrKzsxUfH69Tp07p559/1uuvv662bduqWbNmWr16dYHbb9myRfXq1VOFChXUq1cvTZw4UQsWLHA4ZFBYJ06cUPv27TV27Fht27bNbiDg1KlTeu2119SgQQOtWLGiUPPExMSob9++GjhwoNauXWs3cHf+/Hl9+OGHqlevnmbNmlWoeVJTUzV69Gh16dJFy5YtMw0gSlJcXJymTZumhg0b6t133y3UPDciJiZGjzzyiMLCwjR58mRt27atwACidDW0OHPmTA0cOFA1a9ZUTExMCawWJWXevHl2A4iSFB4erqNHj97wXBEREbr77rtVr149vffee9q7d69DYaAzZ85oypQp6tmzpxo2bOjwfF999ZXq1q2re+65R0uWLCkwgChJmZmZWr16tZ599llVq1bNaUHDkpCWlqbY2FgdOXJEixcv1quvvqo2bdqodevWhpWk/k4sFotmzpxZ4Ljp06cX/2JKQEpKiiZOnKgaNWpowoQJWr9+fYEBROnqjQjmz5+vUaNGqVq1ajpw4MANryUjI0NxcXE6ceKEli1bprfffltdu3ZV/fr1tXDhwhve/80uNzdXGRkZSk5OVnR0tI4cOaJNmzbp+++/1+TJkzVgwAAFBwdrwIABDn1fAwAAAAAAAAAAcCZCiAAAAAAAAABQAhwNK5RmqGH//v3q2bOnXnjhBbvjoqOjdfz4cadWBzJz9OhRdevWTdu2bSvUdufOndOAAQO0ZMkSh8ZHR0ere/fuWr58eaHmSUhI0H333afPPvvMofHJycm64447Ch1cTEtL03PPPaeJEycWarui2Lhxo1q2bKkvv/zSbkCyIGfPni0wsIY/l5K6ji1atEitWrXS7NmzlZOTU+T9HDlypMAxiYmJGjRokB566KECg+L2ZGRk3ND2N4tdu3apZ8+e+vbbb0t7KaXGkZsGSFeP08TExOJfUDE6dOiQ2rZtq7fffltJSUlF3k9sbKxiY2OduDJrJ06c0JAhQ/TGG28U2xx/FllZWVq6dKl69uypvn376uzZs6W9JAAAAAAAAAAA8DdBCBEAAAAAAAAAillycrIWLFjg0NibIdTw1ltv6c033yzVNUhXX7c+ffro/PnzRdo+MzNTw4YN0759++yOy8nJ0YABA3To0KEizWOxWPTYY49p2bJlBY69//77b6jK2Ntvv63PP/+8yNsXZM6cObr11lsVFRVVbHPgzykiIkIbNmxwaOzMmTOVm5tbpHnee+89DR48uESug5cuXVLbtm21ePHiYp/rzyQnJ0fjx493SkXLPyNHQ7Tp6emaM2dO8S6mGG3YsEFt27bV4cOHS3spDnvppZe0du3a0l7GTWP58uVq1aqVNm3aVNpLAQAAAAAAAAAAfwPupb0AAAAAAAAAAPirmzdvnsMV4a6FGh5++GGnzF2/fn01aNAg73FWVpbOnDmjEydOKCMjw3S7V199VSNGjFDt2rUdnqtq1aqKi4uzu9/C+Pe//60zZ84Y9jVq1Ej/+te/1LBhQ0VHR+vrr7/WTz/9ZDMuKytL48aNU3h4uFxdje/L99FHH2n79u2GfdWrV9fzzz+vli1bKikpSbNnz9aMGTMMxz766KM6ePCg/Pz8DPsXLlyoH3/80bCvQoUKmjBhgjp27KjMzEwtXbpUH3/8sWEVuIkTJ+rOO+9USEiI4b6KasuWLRozZoyys7NNx5QrV06DBg1Sz549FRISIl9fX8XGxioyMlIbNmzQypUrFRMT49R13QjCKs4zffp0h6ufRkVFaeXKlerTp0+h5vjxxx/13HPP2R1TuXJlDRkyRN26dVPlypXl6emp2NhYnTp1SuvWrdOqVascquiWnp6ugQMH6sSJE3bH9ezZU/3791f9+vUVFBSkK1eu6NKlS9q+fbtWr16tPXv2FOYplpqBAwfm/XdGRobOnj2rQ4cOmb6nmZmZeuedd/T111+X1BJvCoW5aYB09bxw1ud1STpx4oQGDx6s1NRU0zHe3t6688471bt3b9WoUUNly5ZVfHy8oqKitGnTJq1cufKGq/Dddttt8vHxkXT18/r8+fPav3+/3Qqor732mrp3735D8/6VxMbGqm/fvtq0aZOaNm1a2ssBAAAAAAAAAAB/YYQQAQAAAAAAAKCYOVpV6frxzgo1jBw5UpMmTbJpj46O1r///W/TgElGRoa++eYbvfHGG4b9lSpVUuvWrdWmTRu1bdtWbdu2VeXKlRUWFmYaHCyMM2fO6JNPPjHsa9KkiTZv3ix/f/+8toEDB2r8+PGaOnWqzfjt27drzpw5uvvuu236UlJSDF8f6WrYadu2bapcuXJe2+233666devqpZdeshkfGRmpjz/+WC+88IJNn8Vi0YQJEwzn8fb21oYNG9SoUaO8tp49e6pNmzYaNWqUzfikpCRNnjxZX375peH+iiIpKUmDBw9Wenq66Zjx48frrbfeUoUKFQz7H3nkEWVmZmru3Ll66623dPDgwRte17lz57Rp0yZFRUUpNzdXlStXVteuXVWjRo0b3veNSk9P19q1a3X69GklJCSoQoUKatasmW655RbTwKs9Fy9e1IkTJxQVFaXo6GilpaUpKytLfn5+CggIUFhYmFq2bKny5csXw7Oxz2KxaObMmYXaZvr06YUKIZ4+fVqjR482DcW5uLjoxRdf1IsvvpgXWsrvySefVHJysr799lu9/fbbioyMNJ3vmWeeUXh4uGl/o0aN9PXXX6t9+/aG/SNHjpQk7dy5U//73//0ww8/mO7LnmnTpmnMmDFF2rYwFi1aZNN29OhRDR8+XPv37zfc5ueff87777CwMIdCqC4uLqZ9joZYS1NhbhogSeHh4Tp69Kjq169v1T5mzJgC39e1a9fq1ltvNezr1q1bsYWoc3JyNHjwYMXFxZmOGThwoD7++GNVr17dsP+BBx5Qbm6uli5dqrffflubN28u0lqmTJmisLAwq7aoqCiNGjXK9PmvX79eV65csfoOUBg363F4//33531fzMzMVEJCgs6ePastW7Zo/vz5Wr9+vem2V65cUb9+/bR9+3YFBwc7NN/Zs2d18uRJnT9/XjExMUpLS1NOTo78/f0VEBCgOnXqqEWLFqY3VnBEWlqaDhw4oKNHjyouLk7JyclydXWVr6+vqlSpoho1aqhhw4YKCAgo8hz5WSwWhYeH68iRI7p48aL8/f1Vu3ZtdevWzfSzo6ji4+O1bt06nTt3TmlpaQoJCVHHjh1Vs2bNG9pvTk6Odu3apWPHjuW9bmXLllVgYKAaN26sJk2a2L3WFqQk3nt7Lly4oE2bNunChQuKj4+Xv7+/Hn/8cXl6ehqOt1gs2rp1qw4ePKiYmBgFBQWpdu3a6tKli9zd+bkLAAAAAAAAAJQoCwAAAAAAAACg2Jw6dcri4uJikWTz16RJE8N2SZYjR444PMcrr7xiup9XXnnF7rb9+vUz3bZVq1aG22RnZ5vuLzQ01HBf3bp1c/j5WCwWy6RJk0zXtWzZMsNtEhMTLd7e3obb9OzZ03Cb6dOnm87z2WefmT7/6tWrG25Tp04dw23Wrl1rOs+ECRNMX4cOHToYbhMQEGBJSUkp4FV0nL1jSJJl8uTJhdpfZmam5e2337acP3/epm/atGmm80RERFgsFotl+/btlm7dupmeO3369HHoHOnWrVuhj8eCzqXLly9bnnzySUtAQIDhuJCQEMusWbMKXFt6errlP//5j6VXr16W8uXL2339r/9r0aKF5eOPP7akpqYWOIezrF692nQ9ZtexMmXKWBISEhye4/7777f7vGfMmFGoNScnJ1uee+45w77jx49b3N3dTedq06aNJT4+vlDzbdiwwfLDDz8U+rlNmzatUPPYY+/1M7Njxw672xX2OlOUNdyoiIgI0zlDQ0MLta+uXbsa7qdu3boWT09Pw76JEycWad1r1qwxXXdhPzMLw941WJJl3LhxlpycHIf3l5uba/n6668tu3btMuw3+15w/TU/vwsXLtg9Rw8ePGh3TaVxHDrC3mt///33291206ZNlpo1a9p9bg8++KDp9jExMZbnn3/e0rlzZ4u/v79DnzcuLi6Wzp07W2bMmGH3u19+O3futAwdOtTi4+Pj0BxhYWGWe+65x/Lll1+a7rOgz/OcnBzLRx99ZPr9zMfHx/LSSy9ZMjIy7K7d3vXk2vU6MjLSMmzYMIuHh4fhuC5dulh2797t8Ot1zY4dOywjRowo8P2pUKGCZdy4cZZjx445tN+SeO8ded0OHjxo6dWrl8XV1dVmjNn3hVmzZpleQypVqmR57bXXLFlZWRaLxfwYKeznAAAAAAAAAADAXOFvxQsAAAAAAAAAcNj06dMNq+64urpq1qxZphU8Cls9sajuvfde0z6zKmJubm7FtZw8s2bNMmwvX768evfubdhXtmxZ077Vq1crKirK4XlcXFw0YsQIwz43NzcNGTLEsO/EiRPasmWLw/NIf1RUM2K2hqSkJC1evNh0u8JITEzU+++/b9rfv39/vfzyy4Xap4eHhyZMmKAqVaoUej2vvfaabrnlFq1bt860YtWvv/6qjh07ateuXYXe/43YuXOnGjVqpI8++khJSUmGY65V8TKrsHnNlStXNHnyZK1atUoJCQkOr2HPnj164okn1Lp1a+3du7cwyy8ys+tR2bJl9dVXXxn2paena86cOQ7t//jx43bPkccff1z33XefQ/u6xtfXV++8845h3+TJk5WdnW3Y5+/vr7lz5xa64mTnzp3tnss3q9atW9utQlaYY/PPLiIiQhs2bDDse/DBB3X77bcb9s2cOVO5ubnFuTSnycnJ0auvvmra37JlS3322WeFqubq4uKiBx54QC1btnTGEiVdrUTcsGFD0/6/03F5TceOHbVz5041aNDAdMz06dN19OhRw77Tp0/r7bff1saNG3XlyhWH5rRYLNq4caPuv/9+denSxaFK1++8847atGmjBQsWKDU11aE5Tp8+re+//77IVcBjY2PVqVMnPfnkkzp79qzhmNTUVL3++usaMGCAMjMzizSPJC1btkxNmjTR/PnzlZWVZThmw4YNatu2rcPf5VNTU3XfffepTZs2mjt3boHvT3x8vKZOnaoGDRrohRdeUE5Ojt3xJfXe2/P999+rVatWWrVqlUPXy9zcXN1///0aNWqU6dyXLl3Syy+/rA4dOtit7AoAAAAAAAAAcB5CiAAAAAAAAABQTCwWi2bOnGnY161bNzVv3ly9evUy7C+pUENgYKBpn1nIqrjFxMToxIkThn2tW7e2G4Js27atYbvFYlF4eLhVW25urk3bNbVr17b72pjNI0mbN292qE2SypQpo6ZNmzptnqL45ZdfTN9rFxcXuwFFZ5s4caL+85//OHTsx8fHa+TIkUpLSyuBlUk7duxQz549DcOsRl599VWtWrWq2NZz+PBh9enTxzQs7CzJyclasGCBYd+QIUPUvn1701CMowGM+fPnm4Yo/Pz89Prrrzu0H0dkZWVp4cKFpv1PPfWUatas6bT5/gz8/PxM+8qWLVuCKyldZjcNcHFx0ciRI3XPPfcYbhcVFaWVK1cW9/KcYtu2bTp9+rRp/7vvvisPD4+SW5Ad/v7+pn1/p+PyeuXLl9fixYtN36OcnBx9+eWXxTL3li1bdPvtt+vy5cumYxYuXKjnn3/e9AYCxSEuLk7du3c3/T6X34oVK/Taa68Vaa5169Zp6NChDn0/zs7O1oMPPmj6+XlNXFyc2rdvb/rvBXtyc3P11ltvqX///qaBSGdw5L23Z/Xq1RozZowyMjIc3ubRRx/Vt99+69DYHTt2qG/fvkpOTi7S+gAAAAAAAAAAjiOECAAAAAAAAADFZO3atYqIiDDsuxZmuPvuuw37SyrUcOzYMdO+ihUrFvv8Rnbu3GnaV69ePbvb2uvPv99jx46Z/mDZmfOkpqbqyJEjhmNr1aplWg2zsPMU1YoVK0z7evXqpTp16jhlHkc4WjnvmuPHjzv8I/Ub9fPPPxf6B/iFrSBZWNHR0Xr88ceLdY558+YpJSXFsK+g61h4eLhpVa7r2TsG7777bqcGjjZv3mx63ru4uBS5EtefVUZGhmJjYw37QkND7QYU/0rs3TSgY8eOCg0N1YABA0xfj5KqXnyj7J1r9erVU48ePUpwNfadO3fOsN3T01N169Yt4dXcPOrVq6fRo0eb9v/666/FNveRI0fsfq4VVAG4OBw4cEAHDx4s1DbvvfeeEhMTCz3X9OnTlZ6e7vD43NxcPfTQQ4qOjjbsz87O1vDhw7V///5Cr+V6y5cv1xNPPHFD+yhIQe+9PTNnzixUSHLp0qWaMmVKoebYvn27074XAwAAAAAAAADMEUIEAAAAAAAAgGJiFkrw9PTU0KFDJUmDBw9WmTJlCrW9s1y+fFkffvihaX/Dhg2LdX4zhw4dMu2rUqWK3W2Dg4Md3m9JzXPkyBHTyn4FzRMUFGQaUrS3/sJYv369aV/Pnj2dMkdhde/eXXPmzFF4eLhmzpxpN3BSlOpBN6JSpUp69913tXHjRq1cuVIjR440HRseHm5a1fN6lStX1pgxY/Thhx9q2bJl2rRpk3bs2KHffvtNn332mW677TbTbZcuXarDhw8X6bk4wuw6VLlyZd16662SzEOI9ra/Jicnx25VT2cfg/aO9/r16yskJMSp8xVk7NixcnFxcehv0KBBTp9/zpw5yszMNOy79jn1d+DITQN8fHx05513Go5ZtGhRkUJNJc3e8X8zBRDXr19vWuW1f//+8vLyKvK+HT3fXFxctGjRoiLPU5xGjBhh2nfo0CFdvHjR7vY1a9bUww8/rM8//1zLly/X5s2btX37dq1YsULvv/++brnlFtNtp06dqvj4eJv2CxcuaN++fYbbDB06VD/88IPWr1+vbdu2aeXKlZo6daqefvpptWvXzm6Fa0d5eHjo6aef1qpVq7Rx40a99NJLphUj09LSNH/+/CLP1bRpU33zzTfasmWLli9frkceeUSursY/u4iPj9d//vMfw77PP/9ca9asMexzcXHRqFGjtGTJEm3dulVz585Vnz59TNf05ZdfavXq1QWuvTjee0e5u7vrgQce0MKFCxUeHq6ff/5Zb7/9tlVF8NzcXP3zn/803UeFChX01ltvacOGDVq3bp1ee+01BQQEFHlNAAAAAAAAAIDCMb+9MgAAAAAAAACgyJKTk7VgwQLDvttvv13ly5eXJPn7+6t///6GP4a+FmooV66c09aVlZWlyMhIbdy4UZMnT9apU6dMxxZH4MURCQkJpn0FvRbXXldH9vtnmMfFxUUBAQGGP/pOSkpSbm6u6Q/fHXX+/HnTvtatW9/Qvoti3LhxmjJlilxcXCRJt9xyi2677TY1atTI8HXYuXOnsrOz7VaUdJYaNWpoy5Ytqlq1al5br1695Obmpu+++85wm/DwcMNqki4uLurZs6defPFFde/e3fR97NGjhx599FF99NFHhj/Mt1gsWr58ebGEhiMiIrRhwwbDvhEjRuQFR+rWras2bdpox44dNuNmzpypN954w/T5xcbGmobgJOcfgzfb8V4aMjMzFRkZqYULF5pWLitfvrwmTJhQsgsrRWZhWXd3dw0fPjzv8T333KPvv//eZlx6errmzJlz01fSvJmP/+zsbJ0/f17Lly/Xv//9b8Mxnp6eevXVV0t4ZTefTp062e2PjIxU5cqVrdpcXV01dOhQTZgwQe3atTPd9rbbbtNTTz2lZ555Ru+//75Nf1pamtatW6fBgwdbtZtVrhw4cGCBgb/ExEQtWrSoyJWNPTw8tHz5cqsgbadOnRQaGqrx48cbbhMeHq5x48YVeq5u3brp119/tQrC9unTRz169DANh86aNUvvvPOOVVXfjIwMvfXWW6bzTJ06VQ888EDe43bt2mn48OF69tln9b///c9wm1dffdUwTFzc770jAgICtHz5cnXo0MGq/Y477rD6rFmxYoXpv00CAwNtvlN17dpVQ4YMUYcOHZSUlFTodQEAAAAAAAAACodKiAAAAAAAAABQDObNm6eUlBTDvmtVla4xqyJ2LdRwI1599VWrqj6enp6qU6eOxowZYzeAWKNGDY0ZM+aG5i6qy5cvm/YVVP3IXn/+/f4Z5rE3xmKx3PAPrpOTk5Wenm7aHxQUdEP7L6yQkBB99NFHeQHEa4KDgzVw4EDDbdLT03X69OkSWJ308ccfWwUQr3nooYdMtzly5Ihhe2BgoFatWqUePXo4FCR98sknTav0bdmypcDti2L69OmyWCyGfY5ex6KiorRy5UrTOWJiYuyuwdnHoL35Svp4L0nXfw54eXmpbt26mjBhglJTU23Gli1bVosXL7Zb8fWvxN5NA3r16qWKFSvmPe7du7cCAwMNxxZ39WJnuNmO/5o1a+Ydlx4eHgoNDdXDDz+s2NhYm7FeXl6aNWuWmjRpUuLrvNn4+fnJ39/ftN/ofW7VqpXmz59vN4R2vddee02enp6GfUafOWafFWbny/XKlSunMWPGOFTJz8jjjz9uGL67//77Tb9DmX022+Pq6qqpU6ca7nP48OGmlVJTU1O1bNkyq7bVq1ebhoL79OljFUC83ptvvqmwsDDDvvXr1+vs2bM27cX93jviww8/tAkgGjG7FkvSf/7zH8ObOjRq1OhvFZoHAAAAAAAAgNJECBEAAAAAAAAAioFZGMHPz08DBgywauvXr59VdRRH9lOcvL29NX36dPn6+pb43JIMQzHXFFTtzsPDw7QvOTn5TzdPYecqLHsBSUl2Qw7FYfTo0fL29jbsq1evnul2iYmJxbSiP1StWtXm3L2mpNZWq1Ytw/aoqCinzXGNxWLRzJkzTddxyy23WLXdddddpmFKe9exkj4G7c1X0sf7zcbFxUWDBg3Srl271KVLl9JeTokpzE0DPDw8NHToUMOx4eHhOnr0qNPX50x/1uO/e/fuCg8Pt6pK+Xdn7/0q6LrqCF9fX9MgstFnTo0aNQzHTp8+Xc8995w2bdpktzL0jTCrQOrh4WEa2CvKZ3Pnzp0NQ3DX3H///aZ94eHhVo/tBS7NAojS1Wqgo0aNMu0vapDzeoV97wtStWpV3XfffQ6NNQs5urq66t577zXdztH9AwAAAAAAAABuDCFEAAAAAAAAAHCyiIgIbdiwwbBv4MCB8vHxsWrz8vLS4MGDDceXdKihatWqWrZsmW699dYSmzO//K/P9bKysuxum5mZadrn5+f3p5unsHMVlln49ZobDTkWVufOnU37AgICTPvMAkTO1LFjR5sKjdfc6Np27typyZMna/DgwWrcuLEqVaokX19fq+p1Li4upteV4gh2rF27VhEREYZ9RlUPQ0JC1LVrV8PxixYtMg18lPQxaG++kj7ebzbPPPOMZsyYYRp2LQ6nT5+2Oc7t/RVHMN9sn97e3ho0aJBNe/5goiP7cpbp06cX6vXKXyX2z3j8jxo1SnPmzFGLFi1Keyk3FXtBw3Llypn25eTkaMOGDXrxxRfVv39/1a9fX0FBQfL29rY5foyq6knGnzmVK1c2rFKZm5urd999V507d1aFChVUvnx5dejQQQ888IA++eQT7d+/37SKoiOCgoJUv359036zz+eifG9o37693f62bdua9h08eNDq8f79+4s8j71+e/strve+IL1793ao4rPFYjGtUFmrVi27VTWrV6/+t6neCwAAAAAAAACliRAiAAAAAAAAADjZ9OnTTX9QbRZeMAr1XL+/4lajRg29/PLLOnLkiLp3717s89ljLyRhL5AnSRkZGQ7v988wj725XFxc7IbfHOHn56cyZcqY9sfExNzQ/gvLrGKRdDWsa+ZGAgyOKo61bdy4Ue3atVObNm30yiuvaNGiRTp06JBiYmLsVtDMLy0tzeGxjrJ33SnsdSw9PV1z5swx7KtYsaLddTj7GLQ3X0kf75I0bdo0WSwWh/4WLVpUrGt577331KJFC+3du7dY57mZ2LtpQP/+/Q2rzXXp0kUhISGG28ycOVO5ublOXaMz3WzHvyNmzZqlxo0bO6XCmySHzzeLxWIYQr0ZXLlyxW6Izux9XrJkiRo3bqyuXbvqzTff1M8//6xjx44pLi5O6enpDs9v9pkzadKkArdNTExUeHi4pk2bpieeeELNmjVTvXr19P777zt0Y4b87H02S+afz0X53lC9enW7/dWqVTO9WUF8fLzVY7PzzcXFpcB5zKpOSlJsbKxhe3G/9/Y0atTIoXGXL19WTk6OYV+1atUK3N6RMQAAAAAAAACAG0MIEQAAAAAAAACcyGKxaObMmYZ9QUFB6t27t2Ffz549ValSJcO+Gwk11K9fXwMHDrT6GzZsmMaOHatnnnlGX331lXbu3KnTp09r8uTJhoGLkla+fHnTvri4OLvb5v+R9/XyVwb6M8yTm5trWu3I39/focoyBalatapp365du254/4Vhr2qkM57rjbC3Njc3t0Lvb+7cuerRo4e2b99+I8uS5PwQZnJyshYsWGDY17x5c9NAwbBhw+Th4WHYZxZqDAoKkqenp+lanH0M3kzHe0m6dv3v1q2b3dcgIiJCPXv2NK2C+VdTlJsGuLq66q677jLsi4qK0sqVK522Pme72Y7/2267TQMHDlTPnj3thsliY2PVr18/bdu2reQWdxMzC85eYxRSe//99zVo0CCnVNc2O2eGDh2q9957z/RzwMyJEyf0zDPPqFOnTkpKSirUtvY+myXnfnfw9va22+/i4mIaerxy5YrVY7Pn6eXlZRpkvMbeczb6zlgS77099ipzXs9eNdaCXntHxwAAAAAAAAAAbox7aS8AAAAAAAAAAP5K1q5daxreiI2NLfQPs6U/Qg19+vQp9LYjR450qDLNzcRexZSLFy/a3TY6Otq0r3HjxqUyT/369eXq6moYJC1onpiYGNMAav55iqpr1646deqUYd9vv/2mCRMmOGUeR9j74X1BP8ovbs6cPyoqSuPGjStS1aeSMG/ePNMqW3v37i3SaxEeHq6jR4+qfv36Vu1ubm7q2LGj1q5da7jdb7/9phEjRhR6PjNdu3Y17Tty5IjOnz9vN6j1Z3V9FcXc3FwtWLBA48ePNwysxMXF6b777tP69etL/bwrTvZuGiBJgwcPLtJ+p0+fXqTP65LQtWtX04qCzqo0WBhTpkyxCh+uWrVKY8eO1blz52zGpqen65577tGBAwfsVvD9O5g7d65pX+PGjRUcHGzVtnv3bj333HMlUjX4mWeeUb9+/fTRRx9pwYIFdr8v5bd9+3b961//0pQpUxzepqBrlDOvYQVVAbRYLKbVq/Pf5MOsknVGRoYsFovdddurlJy/+nZJvvdmHP23j5+fn2mfIxUYi6MqNAAAAAAAAADAGpUQAQAAAAAAAMCJzKp93az7vRm1bt3atK+gKi6HDx92eL/16tUz/cGzM+fx9fVVgwYNDMeeOnXKbhCtMPMUlVl1TulqIOTkyZNOmQd/mDZtmk1VpGuaN2+u+fPn68KFC8rOzpbFYsn7sxegc6aSvo7ZOwa///77QlfGsqdjx46m573FYtGXX37ptLluVq6urho+fLh+/PFH06DLxo0b9f3335fwykqWvZsG3IhFixYpMTHR6ft1Bnvn2tGjR7VmzZoSXI2tXr166ddffzWtaHby5Em99957Jbyqm8vRo0f13XffmfYbvceffvqpcnJyDMd369ZNv/zyi2JiYpSTk2P1mWNUUdER9evX16effqoLFy5o//79mjlzpl588UUNHz5cLVq0sFv9dvr06XYr4pWms2fPFthvFvarUKGC1eOKFSsajrNYLAXOExkZadoXFBRk9bik3/sbUbZsWdPK0gW9Jo6OAQAAAAAAAADcGEKIAAAAAAAAAOAkycnJWrBgQbHs+2YONThbxYoVVadOHcO+3bt3Kzs723Tb7du3G7a7uLioffv2Vm2urq42bddEREQoJiam0PNIUocOHWzaOnbsaDg2MzNTe/fuddo8RdG3b1/Tijy5ubl69tlnnTIP/mBWcax8+fJat26dhg4dqsqVK9v8GP/ChQvFvraIiAht2LChWPY9c+ZMw8qew4YNMw0eJCcn6+WXX3baGjw8POxWuPvggw905swZp813M+vRo4fGjRtn2v/yyy/bvd46Q1hYmFXwpaC/MWPGOG3u4grbpqena86cOcWy7zFjxhTq9bq+yqAktWvXzqbtes8991ypV2ht1KiRXnrpJdP+d955RwkJCSW4optHQkKCBg0aZHpeurm56eGHH7ZpN/vMqV+/vlauXKnbb79dQUFBcnX946cD2dnZdr8HOcLFxUVNmjTRqFGj9MYbb2ju3LnavXu3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AAAAMEQIEQAAAAAAAAAAAAAAAAAAAAAAAAAAGCKECAAAAAAAAAAAAAAAAAAAAAAAAAAADBFCBAAAAAAAAAAAAAAAAAAAAAAAAAAAhgghAgAAAAAAAAAAAAAAAAAAAAAAAAAAQ4QQAQAAAAAAAAAAAAAAAAAAAAAAAACAIUKIAAAAAAAAAAAAAAAAAAAAAAAAAADAECFEAAAAAAAAAAAAAAAAAAAAAAAAAABgiBAiAAAAAAAAAAAAAAAAAAAAAAAAAAAwRAgRAAAAAAAAAAAAAAAAAAAAAAAAAAAYIoQIAAAAAAAAAAAAAAAAAAAAAAAAAAAMEUIEAAAAAAAAAAAAAAAAAAAAAAAAAACGCCECAAAAAAAAAAAAAAAAAAAAAAAAAABDhBABAAAAAAAAAAAAAAAAAAAAAAAAAIAhQogAAAAAAAAAAAAAAAAAAAAAAAAAAMAQIUQAAAAAAAAAAAAAAAAAAAAAAAAAAGCIECIAAAAAAAAAAAAAAAAAAAAAAAAAADBECBEAAAAAAAAAAAAAAAAAAAAAAAAAABgihAgAAAAAAAAAAAAAAAAAAAAAAAAAAAwRQgQAAAAAAAAAAAAAAAAAAAAAAAAAAIYIIQIAAAAAAAAAAAAAAAAAAAAAAAAAAEOEEAEAAAAAAAAAAAAAAAAAAAAAAAAAgCFCiAAAAAAAAAAAAAAAAAAAAAAAAAAAwBAhRAAAAAAAAAAAAAAAAAAAAAAAAAAAYIgQIgAAAAAAAAAAAAAAAAAAAAAAAAAAMEQIEQAAAAAAAAAAAAAAAAAAAAAAAAAAGCKECAAAAAAAAAAAAAAAAAAAAAAAAAAADBFCBAAAAAAAAAAAAAAAAAAAAAAAAAAAhgghAgAAAAAAAAAAAAAAAAAAAAAAAAAAQ4QQAQAAAAAAAAAAAAAAAAAAAAAAAACAIUKIAAAAAAAAAAAAAAAAAAAAAAAAAADAECFEAAAAAAAAAAAAAAAAAAAAAAAAAABgiBAiAAAAAAAAAAAAAAAAAAAAAAAAAAAwRAgRAAAAAAAAAAAAAAAAAAAAAAAAAAAYIoQIAAAAAAAAAAAAAAAAAAAAAAAAAAAMEUIEAAAAAAAAAAAAAAAAAAAAAAAAAACGCCECAAAAAAAAAAAAAAAAAAAAAAAAAABDhBABAAAAAAAAAAAAAAAAAAAAAAAAAIAhQogAAAAAAAAAAAAAAAAAAAAAAAAAAMAQIUQAAAAAAAAAAAAAAAAAAAAAAAAAAGCIECIAAAAAAAAAAAAAAAAAAAAAAAAAADBECBEAAAAAAAAAAAAAAAAAAAAAAAAAABgihAgAAAAAAAAAAAAAAAAAAAAAAAAAAAwRQgQAAAAAAAAAAAAAAAAAAAAAAAAAAIYIIQIAAAAAAAAAAAAAAAAAAAAAAAAAAEOEEAEAAAAAAAAAAAAAAAAAAAAAAAAAgCFCiAAAAAAAAAAAAAAAAAAAAAAAAAAAwBAhRAAAAAAAAAAAAAAAAAAAAAAAAAAAYIgQIgAAAAAAAAAAAAAAAAAAAAAAAAAAMEQIEQAAAAAAAAAAAAAAAAAAAAAAAAAAGCKECAAAAAAAAAAAAAAAAAAAAAAAAAAADBFCBAAAAAAAAAAAAAAAAAAAAAAAAAAAhgghAgAAAAAAAAAAAAAAAAAAAAAAAAAAQ4QQAQAAAAAAAAAAAAAAAAAAAAAAAACAIUKIAAAAAAAAAAAAAAAAAAAAAAAAAADAECFEAAAAAAAAAAAAAAAAAAAAAAAAAABgiBAiAAAAAAAAAAAAAAAAAAAAAAAAAAAwRAgRAAAAAAAAAAAAAAAAAAAAAAAAAAAYIoQIAAAAAAAAAAAAAAAAAAAAAAAAAAAMEUIEAAAAAAAAAAAAAAAAAAAAAAAAAACGCCECAAAAAAAAAAAAAAAAAAAAAAAAAABD/8/efQdEca19HP/Se0dARARExS723nuLMTGa3nu9KTftvfcmN73Xmx5jejRqEo1GY+y9VxRFBVGR3nt9/0DGXVkQFBXj7/PX7uyZmTOL+zhzznnOURKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWKQkRBEREREREREREREREREREREREREREREREREREbFISYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJikZIQRURERERERERERERERERERERERERERERERERExCIlIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhFSkIUERERERERERERERERERERERERERERERERERERi5SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhYpCVFEREREREREREREREREREREREREREREREREREQsUhKiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIWGR7sSsg9VdRUUFFRcXFroaIXOZMY5GVlRVWVlYXuUYicjlSLBKRxkCx6O/F2vrUfE3l5eXVPjf9G5v+3c+ktn8nps/4pz/vV9Wnpv1Pr+Pp9bO0z+ntCrUdTy4dikUXjul3e/r3XPUbqu13Zel3bbrd0j6Wjlfb77qm89SnXjWVrU/MqMv5aju+JTV9b3X9Ps/0vcm5USyS09Xl3qSmmFdb3LBEv2mpoljU8M70nFRTeUu/y5p+/zXtU5d7kqr9LL2u7RiWPq8pltT2HdT3vutczn+uz4b1vQ45e4pFItIYKBaJSGOgWCQijYFikYg0BopFItKYnG0cUhLiJaiiooKoqKiLXQ0RERERERGRvxVPT0+aN29uvD/92dva2pqIiAhsbGwASEpKws7ODh8fnzMe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0OPHj+X3++V0OpWfn68DBw4oNjZ2WflI210A1ieyCIAZkEUAzOLp06eqq6tTT0+PJicnNTc3J7vdrtTUVBUXFysvLy+kfCT50dXVpW+++UYjIyOKiYlRTk6Ojh8/vmwMraqqSnV1dTp9+rRKSkp+8t8M4OVqamrStWvXnltm7969+vnPfy5Jevz4sT755JOQ+x999JGSk5OXPXf79m3V1NRIkhwOh/74xz8+93t8Pp++++47tbW1aXx8XHNzc4qLi1N8fLxSU1O1a9cuFRYWhv38Z6moqNCRI0eeWwZA9JFFAMyALAKwXrxIfzRzr2EGzGYDNpDR0VH985//1MzMjHEtEAior69PfX19GhoaUmVlZRRrCGAtGxkZUXNzc8i1ubk5jY6OanR0VC6XS++//76SkpJUXV2t+vp65eXl6cCBA/r666918+ZNWa1WlZaWGs9/8803evr0qU6fPk0jGNjAfD6fbt++/cLlBwcH9a9//Uuzs7PGNbfbrba2NnV2durs2bPKzc017vn9fv373/9Wb2/vss8ZHBxUb2+v0RkZDAZ1+fJlDQ0N6ejRo8rMzNSXX36pS5cu6b333lN6erpR7saNG5KkN954gwWIAJa5d++e7t27F3ItEAhoeHhYw8PDevjwoc6dOyer1RqlGgJYK1YzT27duqXa2tqQa2NjY6qpqVFHR4d+85vfyG63G/cibXcBWL/IIgBmQBYBMIOnT5/q008/lcfjCbnudrvV3d2t7u5uHT16VIcOHZIUWX4MDw/r0qVLstvtevfddzUwMKDq6mqNjo7qvffeM/qhnzx5om+//VaZmZkqLi5+Sb8cgJktHceXpJaWFh07duxHfW4gENCFCxc0NDQUct3tdsvtduvJkyeanJwMmWwPYOMiiwCYAVkEwIxetD+audcwAxYhAhvI//2//9dYgLh9+3aVl5drZmZGX3/9tWZmZlRfX6+cnJxlb/EBgBcRFxenvXv3avv27XI4HAoGg3r06JHu3r0rSfJ4PGpqatLRo0flcrkkSeXl5UpPT9e+ffvU19en1tZWoyHMACmABRaLRdu2bVN6erq2bdum69evP7Ps3Nycrl69akzY2L17t4qKitTR0aGmpiYFAgH95z//0e9//3tjolhdXZ2xADE+Pl4nTpyQz+fTzZs35ff71dLSop07d6qwsFDj4+MaGhpSbGys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AAAAAAAAAACgJEWIAAAAAAAAAAAAAAAAAEBJihABAAAAAAAAAAAAAAAAgJIUIQIAAAAAAAAAAAAAAAAAJSlCBAAAAAAAAAAAAAAAAABKUoQIAAAAAAAAAAAAAAAAAJSkCBEAAAAAAAAAAAAAAAAAKEkRIgAAAAAAAAAAAAAAAABQkiJEAAAAAAAAAAAAAAAAAKAkRYgAAAAAAAAAAAAAAAAAQEmKEAEAAAAAAAAAAAAAAACAkhQhAgAAAAAAAAAAAAAAAAAlKUIEAAAAAAAAAAAAAAAAAEpShAgAAAAAAAAAAAAAAAAAlKQIEQAAAAAAAAAAAAAAAAAoSREiAAAAAAAAAAAAAAAAAFCSIkQAAAAAAAAAAAAAAAAAoCRFiAAAAAAAAAAAAAAAAABASYoQAQAAAAAAAAAAAAAAAICSFCECAAAAAAAAAAAAAAAAACUpQgQAAAAAAAAAAAAAAAAASlKECAAAAAAAAAAAAAAAAACUpAgRAAAAAAAAAAAAAAAAAChJESIAAAAAAAAAAAAAAAAAUJIiRAAAAAAAAAAAAAAAAACgJEWIAAAAAAAAAAAAAAAAAEBJihABAAAAAAAAAAAAAAAAgJIUIQIAAAAAAAAAAAAAAAAAJSlCBAAAAAAAAAAAAAAAAABKUoQIAAAAAAAAAAAAAAAAAJSkCBEAAAAAAAAAAAAAAAAAKEkRIgAAAAAAAAAAAAAAAABQkiJEAAAAAAAAAAAAAAAAAKAkRYgAAAAAAAAAAAAAAAAAQEmKEAEAAAAAAAAAAAAAAACAkhQhAgAAAAAAAAAAAAAAAAAlKUIEAAAAAAAAAAAAAAAAAEpShAgAAAAAAAAAAAAAAAAAlKQIEQAAAAAAAAAAAAAAAAAoSREiAAAAAAAAAAAAAAAAAFCSIkQAAAAAAAAAAAAAAAAAoCRFiAAAAAAAAAAAAAAAAABASYoQAQAAAAAAAAAAAAAAAICSFCECAAAAAAAAAAAAAAAAACUpQgQAAAAAAAAAAAAAAAAASlKECAAAAAAAAAAAAAAAAACUpAgRAAAAAAAAAAAAAAAAAChJESIAAAAAAAAAAAAAAAAAUJIiRAAAAAAAAAAAAAAAAACgJEWIAAAAAAAAAAAAAAAAAEBJihABAAAAAAAAAAAAAAAAgJIUIQIAAAAAAAAAAAAAAAAAJSlCBAAAAAAAAAAAAAAAAABKUoQIAAAAAAAAAAAAAAAAAJSkCBEAAAAAAAAAAAAAAAAAKEkRIgAAAAAAAAAAAAAAAABQkiJEAAAAAAAAAAAAAAAAAKAkRYgAAAAAAAAAAAAAAAAAQEmKEAEAAAAAAAAAAAAAAACAkhQhAgAAAAAAAAAAAAAAAAAlKUIEAAAAAAAAAAAAAAAAAEpShAgAAAAAAAAAAAAAAAAAlKQIEQAAAAAAAAAAAAAAAAAoSREiAAAAAAAAAAAAAAAAAFCSIkQAAAAAAAAAAAAAAAAAoCRFiAAAAAAAAAAAAAAAAABASYoQAQAAAAAAAAAAAAAAAICSFCECAAAAAAAAAAAAAAAAACUpQgQAAAAAAAAAAAAAAAAASlKECAAAAAAAAAAAAAAAAACUpAgRAAAAAAAAAAAAAAAAAChJESIAAAAAAAAAAAAAAAAAUJIiRAAAAAAAAAAAAAAAAACgJEWIAAAAAAAAAAAAAAAAAEBJihABAAAAAAAAAAAAAAAAgJIUIQIAAAAAAAAAAAAAAAAAJSlCBAAAAAAAAAAAAAAAAABKUoQIAAAAAAAAAAAAAAAAAJSkCBEAAAAAAAAAAAAAAAAAKEkRIgAAAAAAAAAAAAAAAABQkiJEAAAAAAAAAAAAAAAAAKAkRYgAAAAAAAAAAAAAAAAAQEmKEAEAAAAAAAAAAAAAAACAkhQhAgAAAAAAAAAAAAAAAAAlKUIEAAAAAAAAAAAAAAAAAEpShAgAAAAAAAAAAAAAAAAAlKQIEQAAAAAAAAAAAAAAAAAoSREiAAAAAAAAAAAAAAAAAFCSIkQAAAAAAAAAAAAAAAAAoCRFiAAAAAAAAAAAAAAAAABASYoQAQAAAAAAAAAAAAAAAICSFCECAAAAAAAAAAAAAAAAACUpQgQAAAAAAAAAAAAAAAAASlKECAAAAAAAAAAAAAAAAACUpAgRAAAAAAAAAAAAAAAAAChJESIAAAAAAAAAAAAAAAAAUJIiRAAAAAAAAAAAAAAAAACgJEWIAAAAAAAAAAAAAAAAAEBJihABAAAAAAAAAAAAAAAAgJIUIQIAAAAAAAAAAAAAAAAAJSlCBAAAAAAAAAAAAAAAAABKUoQIAAAAAAAAAAAAAAAAAJSkCBEAAPivN3To0JSVlaWsrCxDhw79nzs+LAtdu3ZNWVlZevTosaxDAQAAAAAAqDYDBw4s5v7gx+SG//v07NkzZWVlad++/bIOBQAAlilFiAAAwEKZOXNm7rvvvhxxxBHp2LFjmjVrljp16mSllVZKly5d8oc//CHvv//+sg6zyoYOHZoePXr8ZAqlhgwZkvPPPz/bbrtt2rRpk7p166Zx48ZZa621ctBBB+XOO+/MpEmTlnWYGThwYHr06JGePXsu1eM+++yzOeGEE7LuuuumWbNmqVevXlZZZZXsscceueGGGzJ58uQqj1Vdz/q7776bs846K5tvvnlatWqVOnXqpGnTpllvvfVy5JFH5uGHH8706dMX57T/K8yZsF+UPz9O4n7//fe59NJLs8suu6Rdu3apX79+GjZsmPbt22fvvffOTTfdlLFjx84VR48ePXxxAAAAAAAAqsni/O5/UfJMb7/9dnr06JGrr7662s9lSfhfySP17NkzPXr0yMCBA5d1KIulIq/831pc2L59+7k+h7Vr106LFi3SoUOH7LnnnjnvvPPy9ttvL+tQq8VP7bsCAACwrJUVCoXCsg4CAAD4aXj55Zdz5JFH5pNPPiluq127dho3bpyxY8dm1qxZxe377rtv7r777tSpU2dZhFrJN998k5122ilJ0q9fv7Rt27a4b+DAgdlhhx2SJEvq/x4NHTo0q6++epLZRYSLMkPi9OnTc+aZZ+b666/PjBkzitubNm2a6dOnVyo8bN26dW6++ebsscceix37ourRo0cuuOCCbL/99kslmThq1KgcccQReeKJJ4rb6tatm3r16mXcuHHFbW3bts1tt92WXXbZZb7jVcezPmHChJx44om5++67i89WWVlZmjZtmsmTJ2fq1KnFth06dMidd96ZLbbYYtEuwHKoa9euefbZZ3P++edXKXH30ksvZd999y25b/To0Zk+fXpq166d5s2bl2zz2muvZZVVVkmhUMgll1ySP//5z5U+F40aNUpZWVkmTJhQ3Na0adNceeWVOeaYY4rbKp7dZMm9EwAAAAAA4H9F69atS26fOHFiysvLkyStWrUq2eaaa67JQQcdtFDH69mzZ44++uisttpqS6xQrDryi/9reaSFzRstryomsRwwYEC6du1ass38ctPLu/bt2+fLL79MvXr10rRp0ySzn/Hx48dnypQpldpuueWWufHGG9OpU6dlEWq1qOpnuXfv3vnDH/6Qtm3bpl+/fksrPAAAWO5YCREAAKiSRx99NF27ds0nn3ySFi1a5JJLLsknn3ySadOmZdSoUZk2bVpee+21nH322WnSpEkefPDB5WJFvmR24dlHH32Ujz766CeV5Kkwbdq07LbbbrnmmmsyY8aM7L777nnyySdTXl6esWPHpry8PCNHjsxdd92VbbfdNsOHD0/fvn2XddhLzYgRI7LlllvmiSeeSM2aNXPKKadk8ODBmTJlSsaOHZsxY8bktttuyyqrrJJvvvkm3bp1y3333TfP8arjWR8zZky22mqr3HXXXUmSgw8+OM8++2ymTJmSMWPGZMqUKfnmm29y8803p1OnTvn8888zaNCgJXqdlndbb711hg8fXvLP1ltvvcA2FQWIhx9+eM4555xMmjQpW2yxRR544IGMGTMmEyZMyPjx4zNu3Lj07t07v/jFLzJu3Lg88sgjy/jMAQAAAADgv9e8fq9/xhlnLLDNwhYg/lTII/13+6nnppPkoIMOKn4OR4wYkcmTJ2fcuHHp379/jjvuuNStWzcvv/xyNttsszz22GPLOtwlbp999slHH32kABEAgP95ihABAIAF+vTTT3PYYYdl6tSpWW+99fL222/n7LPPzlprrVVsU7NmzWy66aa55JJLMmTIkOy1117LMOL/Lr/97W8zYMCAJMmVV16ZJ598MrvvvnsaNGhQbNOyZcsccsghee6559KrV6+ssMIKyyrcpapQKOSXv/xlPvvss9SuXTu9e/fOtddem/XWW6/YplmzZjnqqKPy1ltvZaONNsqMGTNyzDHH5KOPPpprvOp61g899NAMHjw4tWrVyr333pu777472223XaXVEtu0aZNjjz02b7/9dv7xj3+kXr161Xx1/vdcfvnlufPOO5Mkp556agYNGpR99903zZo1K7Zp0qRJ9t577zzyyCN59tln065du2UULQAAAAAA8L9IHomfoiZNmmSHHXbITTfdlFdffTWrrLJKpk0/SZobAAEAAElEQVSbloMPPjiffvrpsg4PAABYChQhAgAAC3Tuuedm/PjxqVevXnr37r3Aop3mzZvnoYceStOmTYvbZs2alRdffDFnn312ttxyy7Rr1y516tRJixYtsv322+ef//xnpk+fXnK8oUOHpqysLGVlZRk6dGg+/fTTHHXUUWnXrl3q1q2bVVddNSeeeGK++eabKvWv0L59++ywww7FnyvaVPw56qijivumT5+evn375je/+U023XTTrLzyyqlTp05WWmml7Lbbbrn77rtTKBSqcDUXzgcffJAbb7wxSXLMMcfktNNOW2Cf/fbbL3/6059K7nvwwQez5557plWrVqlTp05atWqVPffcM717957vmH369Mm+++5bvG9NmjTJGmuskV133TV//etfM3r06CT//1pfcMEFSZJnn312ruvas2fPhbgC8/fYY4+lf//+SZJzzjknv/jFL+bZtkWLFrn//vtTr169lJeXl7xG1fGsP/nkk3nyySeTJOedd14OOOCA+Y5RVlaWk046Kccff/x82/3YV199leuvvz577LFHOnbsmIYNG6ZRo0ZZb731cuqpp+arr76aZ9+uXbumrKwsPXr0SKFQyL/+9a9sscUWadKkSRo3bpytttoq//nPf+Z7/JkzZ+a6667LxhtvnIYNG6Z58+bp2rVrevXqtVDnUV1++OGHXHTRRUmSnXbaKVdeeWXKysrm22e77bbLtddeuzTCAwAAAAAAFtJbb72VI444Iquttlrq1auXFVZYIVtvvXWuvvrqTJ06da72ZWVlOfroo5MkX3755Vw5qh49ehTbTp48OY888kiOO+64dO7cOSuuuGLq1q2bNm3aZO+99y7meqpbdeaRZs6cmVtvvTU77rhjWrZsmbp166Zt27Y54IADMnDgwHmOubh5ohkzZuSmm25K165d07Jly9SuXTstWrTI2muvnYMOOii33nprsW3Pnj1TVlaWZ599NklywQUXzHVf5szfVmwbOHBgvv/++5x++unp2LFjGjRoUCnvM+c5zEuPHj1SVlaWrl27zrPN119/nd///vfp3LlzmjZtmvr166dDhw7Za6+9cscdd2TKlClJkqOOOqrS8XfYYYdK59C+ffvivnnlpuc0bty4XHjhhdl4443TpEmT1K9fP2uttVZOOumkfPHFF/OMd87rM2HChJx77rlZZ511Ur9+/bRo0SJ77rlnXnnllXn2ry6dOnVKr169UlZWlvLy8lx44YVztWnfvv0Cc8MV13XOvHyp/hMnTsx5552XDTfcMI0bN650bRc1j78w3xWoeI7nvM8/9vnnn+ekk07KWmutlfr166dJkybZeOONc+GFF2b8+PEl+wwcOLB4vCT57LPPcswxx2SVVVZJ3bp1065duxx33HHz/B4EAAAsbbWWdQAAAMDybcSIEcWiokMPPTQdO3asct85EzFfffVVunTpUvy5Vq1aadCgQUaPHp3nnnsuzz33XO6666706dMn9evXn+eYr7zySo477rhMmDAhjRo1Ss2aNfP111/nxhtvzP3335++fftm4403rlJ8K664YsaPH58xY8YkSVq1alVp/5yFZS+++GJ23XXX4s9169ZN3bp1M3LkyDz99NN5+umn07t379xzzz2pUaP65nu5/vrrUygUUqNGjZx33nlV7vfjGKZNm5Yjjjgi9957b3F/06ZN88MPP+Txxx/P448/nkMOOSS33357ateuXanvhRdemPPPP7/4c4MGDVIoFDJkyJAMGTIkffv2zaabbpquXbumZs2aadWqVSZOnJjy8vLUrl07zZs3rzTenPd36NChWX311ZMk559//nwThaX84x//SJI0btw4v/vd7xbYfq211sohhxyS2267LQ8++GCGDx+e1q1bJ6m+Z/26665LMvv5Of3006s8xsI+N0cccUQxYVtxvAkTJuTDDz/Mhx9+mJ49e+axxx6r9Ln7sZkzZ2afffbJww8/XPxMTpgwIS+//HJefvnlfPrpp8WC0jlNnTo1e+21V/r06VOMvU6dOnnuuefy7LPP5qyzzlqoc6kOt912W8rLy5P8/6RyVVTn5xUAAAAAAKgeV199dU4//fRi8VDTpk1TXl6eQYMGZdCgQbntttvy1FNPZeWVVy72adWqVSZPnpzx48enRo0aWXHFFSuN2ahRo+Lf77333mLBYjI7f1WrVq189913efjhh/Pwww/nd7/7Xf76179W63lVVx5p3Lhx2XvvvYvFhjVr1kzjxo3z3XffpVevXunVq1fOOOOMXHHFFfMcc1HyRDNnzky3bt3St2/f4raKezN69Oh88sknue+++3LMMcckmX1dW7VqldGjR2f69OnFSTXnVLNmzbli++yzz3LwwQdnxIgRqVev3lz5y+rw73//O8cff3yx0LBOnTqpX79+vvjii3zxxRd55JFH0qlTp2KBYqtWrTJixIgkyQorrFBp5cofP2vzM3jw4Oy+++4ZNmxYkhTP77PPPstnn32W2267LXfeeWf222+/eY7x3XffZeONN85nn32WevXqpUaNGhk9enQef/zxPP3003n00Uez2267LcplqbLNN9883bp1y+OPP5777rsvN91003zz/Itq1KhR2WSTTfLJJ5+kTp06adCgQaX9i5rHX5jvCizIfffdlyOOOKJYHN24ceNMmzYtb731Vt56663cfPPN6dOnT9Zdd915jjFgwIB07949EydOTOPGjTNr1qx88803ufnmm/PEE0/k1VdfTdu2bascEwAALAm+aQcAAMzXgAEDMmvWrCTJPvvss8jj1KpVK3vttVfuvffefPPNN5k6dWrGjRuXCRMm5LbbbkubNm3y/PPP55xzzpnvOCeccEJWX331vPLKK5kwYULKy8vTp0+frLrqqhk9enT22WefTJgwoUoxvfbaa3nwwQeLPw8fPrzSn2uuuaa4r379+vnlL3+Zxx9/PMOHD8/kyZMzYcKEjBo1Ktdcc02aNGmS+++/v5g4rC79+vVLkmy88cZZbbXVFnmcP/7xj7n33ntTVlaWP/3pTxk1alRGjx6dH374IX/84x+TJHffffdcqwN++eWXxeTi6aefnm+++Sbl5eWZMGFCxo4dm+effz4nn3xyGjdunCRZZZVVMnz48JxxxhlJkq233nqu63rQQQct8nnMacaMGXn++eeTJLvuuutcCct52XfffZPMXp1zziK+6njWZ8yYkeeeey5Jsssuu6Rhw4aLNE5VbLDBBrn00kvzwQcfZNKkSRk7dmymTp2aV155JbvvvnvGjRuXgw46KJMnT57nGNdff30GDhyYnj17Zvz48Rk3bly+/vrr4oqSF198cT799NO5+v3hD39Inz59UlZWlosvvjhjxozJmDFjMnz48Jx00km57LLL8vbbby+pUy+p4rPSsmXL+RZeAgAAAAAAy7fHHnssp512WgqFQvbaa6988cUXGTt2bCZOnJg77rgjjRs3zrvvvpv9998/M2fOLPabM79XkbOa809F/ipJmjVrluOPPz4DBgzIDz/8kEmTJqW8vDzffvttLrjggtSuXTt/+9vf8sgjj1TbeVVnHunYY4/NwIEDU6dOnVx77bXFYqpvv/22WAD417/+Nf/85z/nOcai5Inuvvvu9O3bN/Xq1cvNN99czBlOnjw5I0aMyIMPPlipeO6ggw7K8OHDs/XWWydJzjjjjLnuyyqrrDJXbKeddlqaNWuWfv36pby8POPHj8/HH3+8yNfrx5544okceeSRmTJlSrbZZps8//zzmTx5csaOHZtx48blueeey3HHHVcsNLzmmmsyfPjwYv+KyU4r/rz22mtVOu6ECRPyi1/8IsOGDUvbtm3z+OOPF8/v7bffzpZbbpmpU6fm0EMPzTvvvDPPcX7961+nTp066d+/f8rLyzNx4sS8+uqrWXvttTN9+vSccMIJxbznkrTHHnskmT0h7ssvv7xEjtGjR4+MHz8+Dz74YCZOnJgxY8bk66+/zkorrZRk0fP4C/Ndgfl58803c9hhh2Xq1KnZZptt8s4772T8+PGZNGlSHnnkkay88srFz9XEiRPnOc5+++2XHXfcMR9++GHGjx+f8vLy3HvvvWncuHG+/fbb/OEPf1iEqwcAANVLESIAADBfgwcPLv79Zz/72SKP065duzz00EM58MAD06ZNm+Isg40aNcpRRx2Vhx9+OEly0003FWebLKVWrVrp27dvNt988ySzV6Dbdddd89RTT6VOnTr56quv5ptMW1RbbLFF7rzzznTr1i2tWrUqrrLWvHnz/OY3v8ktt9ySJLn22mur7ZgzZszIJ598kmTxrv0333xTTJKcffbZufDCC9OsWbMks2fp/POf/1ycafXKK6/Md999V+z7yiuvZNasWenYsWP+9re/pU2bNsV9TZs2TZcuXXL99ddnk002WeT4FtXQoUOLK98tzPXp3Llz8e/vv/9+8e/V8ax/+eWXxeTR4tyzqrjuuuty1llnZd111y3OKlqrVq1svvnmeeyxx9KpU6d8++23eeCBB+Y5xpgxY9K7d+8ceeSRxTHatWuX+++/P23atMmsWbNy3333Verz7bff5u9//3uS5Nxzz80555yTJk2aJElWWmml/OMf/8ghhxyScePGLYnTnqeK+7ekrzsAAAAAALBknXXWWUmSLl265IEHHsjqq6+eZPZKdYcffnjuvPPOJMlLL72U3r17L9Ix9t5779x4443p2rVrWrRoUdy+8sor57zzzstf/vKXJNWb+6uuPNKrr75azP/8/e9/zymnnFJcHa5169a55ZZbioWAf/rTn+aZe12UPNFLL72UJDniiCNy7LHHFicJLSsry0orrZR99tknvXr1WuRzq1CjRo0888wz2XHHHYt55Y4dOy72uMnsHOz//d//pVAopEuXLunfv3+6dOlSPE6TJk2y7bbb5qabbsp6661XLces8I9//CNDhgxJ7dq189RTT6Vbt27F42600UZ5+umn0759+0ydOnW+k/fWqlUrAwYMyA477JAaNWqkrKwsm222We6///4ks5+1QYMGVWvspWy00UbFv3/++edL5BiTJ0/OE088kX322ae4Ima7du2Kz/yyyOPP6Zxzzsn06dOz5ppr5umnn06nTp2SzH6Gf/GLX+Txxx9PrVq18vnnn8/3ewydO3dO7969s8466ySZ/b478MAD8+c//zlJ0qtXr8yYMWOJnAMAAFSVIkQAAGC+Ro0aVfx78+bNl9hxNt1006y00kopLy+f7wpqJ554YnFWwzmtu+662X///ZMk99xzz5IKc54qZnn8/PPPKxXxLY7Ro0enUCgkWbxr/8ADD2TGjBmpV69ezj777JJtzj333NStWzfTp0+vlBisKFasWHWyurVv3z6FQiGFQiE9evRYqL5zPptzJocXpGXLliXHqI5nfWl9XhakZs2a2X333ZMkL7zwwjzbbbPNNtlhhx3m2l63bt3stttuSZJ333230r6KBFf9+vUrzRg8p4W9l9Wh4tovy+sOAAAAAAAsnnfffTcffPBBktkFdDVr1pyrzS9+8YvihKV33333EomjIvc3aNCgSqstLo7qyiNV5ELbtWuXX/3qVyXbXHTRRUmSH374IX379i3ZZlHyRBW5wzlXBVwSDj/88LRr126JjD1gwIAMGTIkSXLVVVcVVztcGu69994kyf77758NNthgrv2NGzfO73//+yTJk08+Oc9JP48//viSOfMNN9ywWLT743u3JMz5HI8ePXqJHGP33XdfrKLdJZHHrzB27Nj06dMnSXLmmWcWCyPn9LOf/Sz77rtvkvm/r/74xz8WC1LntNdeeyWZXYz545VJAQBgaVOECAAAzFdFEVx1mDZtWv75z39m1113TZs2bVKvXr2UlZUV/3z//fdJkmHDhs1zjB133HGB+959991Mnz692uKuMGHChFxxxRXZfvvts9JKK6VOnTrF2OdMKHzzzTfVcrw5r33FjI2L4vXXX0+SbLbZZsUV635shRVWyKabblqpfZJsvvnmadmyZb777rtsscUWue666/LRRx9V63NRHRbn+lSojnOqrntWVc8//3yOOuqorLPOOmnUqFGlz9Pll1+eZP6fpy222GKe+ypWvfxxwrDi+dh0003n+Tx17Ngxbdu2XahzqS5L47oDAAAAAABLRkUeolatWtl+++3n2W6XXXap1H5RjBgxIueff3622mqrtGjRIrVq1SrmWSpWwJs0aVLGjBmzyMeYU3Xn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Tp06JUn69es3z3YVz16NGjWy8cYbL/RxlpZXX301TzzxRJLk4IMPTr169SrtX9A9mjVr1kJf/x9b3Dx+Vb4rMD8bb7xxcYyq3NONNtqoyt9jAACA5ZEiRAAAYIEuvvjiNGrUKJMnT86+++67wBXOxowZk/32269Y8NakSZNiQuadd96Zq/2MGTNyzjnnVCmWf/7znyVXTPz444/Tq1evJMlBBx1UpbEqYqswduzYkm2aNm1a/Hup+CdMmJCLL764ysdcGOuvv36OO+64JMmtt96aq6++eoF9HnrooUrx7LfffqlVq1amTJmSyy67rGSfv/zlL5k6dWpq165dLMRLMt8ZZpOkfv36STLXKnwV13Ve17S6/OIXvyiuZvjnP/85jz322Dzbjho1KgcccECmTJmSBg0a5KKLLpqrzeI+60nSrVu37LrrrkmSCy+8sPhczs9NN92Uf/3rXwtsV6HimSz1PCazPydffPFFlcdbGBXP0+TJk/O3v/2tZJuFKZitLi1btsy5556bZHaS73e/+90Ck4Uvvvhifvvb3y6N8AAAAAAAgCro1KlT1ltvvSSz8zYzZ86cq80TTzxRLDA75JBDKu2rSo6qIs8yYsSIjBgxYq79w4YNy7XXXrtI8S9IdeSRDj744CTJN998k5tvvrlkn/POOy/J7PzJzjvvvLhhFy0vucONNtooSdKnT5+SK0r2798/gwYNKtl3hx12yBprrJEkOe200zJt2rQqH3dxz6Pi3vXq1Svvv//+XPsnTpyYyy+/PMnsZ2XOPPXy5L333sv++++fQqGQhg0b5k9/+tNcbSruUe/evUvm7G6//fbFntR0cfP4VfmuwPw0a9Ysu+22W5LkiiuuyKRJk+Zq88477+SBBx5IMvf7CgAAfmoUIQIAAAvUsWPH/Pvf/06dOnUyePDgdO7cOZdddlk+++yzYpuZM2fmrbfeynnnnZc11lgjDz74YHFfo0aNirNenn766enfv39xVs73338/3bp1y+uvv56GDRsuMJbp06dnl112yWuvvZZk9oyEzzzzTHbbbbdMnTo1q6yySk488cSFOrc6deokSW6++eaSCZD11lsvq666apLkmGOOyRtvvFHcN2jQoHTt2jVjxoyp8jEX1rXXXpttt902yexEWLdu3dKnT59Mnjy52Gb06NG5//77s+OOO2afffbJ6NGji/vatm1bLLS69NJLc/755xeTKGPHjs2f/vSnXHHFFUlm35+VV1652Peyyy7Lz3/+8/z73/+ulASaOnVq7rvvvmK/bt26VYp5gw02SJIMHjw4L7300jzPbejQoSkrK0tZWVl69OixsJcmZWVlufvuu7PGGmtk+vTp2WefffLb3/42H374YbHNuHHjcvvtt2fjjTfOO++8k5o1a+bmm2/OuuuuO9d4i/usV7jrrruy7rrrZsaMGTnwwANz6KGH5vnnn8/06dOLbb777rvcfvvt2WSTTXLCCSdUup8LsvvuuydJnnzyyVx00UXF5OrYsWPzl7/8JaecckpatGhR5fEWRtu2bXPyyScnSS666KJccsklxRURR44cmf/7v//Lf/7zn2WSFD377LOLRchXXXVVttlmm/Tu3Tvjx48vtpkwYUIee+yx7Lvvvtl2223nO0MuAAAAAACw9FVMqvn8889n//33z5AhQ5LMzhPeeeedxUKerbfeOnvvvXelvhU5qvHjx+e+++4rOX6XLl3SsGHDFAqFHHjggfnkk0+SzM4B9enTJ127di1OsLokLG4eafPNNy9OKnrKKafkuuuuKxY/DR8+PMcdd1zuv//+JLNzOT9eoW5x7L333jnmmGPy5JNPViraGj16dC6++OLianDzyh0+8cQTC5wEtCoOPPDA1KhRI6NGjcohhxxSzGNOnjw5t99+e/bZZ580b968ZN+aNWvmuuuuS1lZWV544YXstNNOeeGFF4r56/Hjx2fgwIE57LDD8sEHH5Q8jzvvvLNkwdmCnHTSSVl99dUzffr0/PznP8+TTz5ZPO57772X3XbbLUOGDEmdOnWW2CS4i2rChAkZOHBgTjjhhGy++eb5+uuvU6dOndx///3p0KHDXO0rPqcffvhhjj/++IwaNSrJ7Ot71VVX5cQTT5znPaqqxc3jV+W7Agvy5z//ObVr185nn32W3XbbLe+9916S2Ss9PvHEE+nWrVtmzJiRDh065IQTTljo8QEAYLlSAAAAqKIXXnihsOaaaxaSFP/UqVOn0Lx580KNGjWK28rKygqHHHJIYdq0acW+r7/+eqFhw4bFNnXr1i00bty4kKRQq1atwh133FFYbbXVCkkKt912W6XjDhkypNjvnnvuKfZr1KhRoUGDBsV9zZo1K7z22mtzxT1n/yFDhsy1/9hjjy3ub9CgQWHVVVctrLbaaoXf/e53xTaPPvpooVatWpXaVRy7QYMGhWeeeaa4b8CAAQt1/KqYOnVq4de//nWlGJIUmjZtWum6Jim0a9eu8NRTT83V/8ADDyy2qVGjRmGFFVaodN9+fM8KhULh/PPPrzR2/fr1C82bNy+UlZUVt6277rqF7777rlK/6dOnF9Zee+1imxVWWKGw2mqrFVZbbbXC/fffX/LanH/++Yt0bQqFQuH7778v7LbbbpVirVevXqFZs2aVtq288sqFJ598coHjLc6zXmHcuHGFAw88sNK1KisrK6ywwgqFevXqVRp73XXXLbz++utVPt9p06YVtt1227nGrYhtjz32KJx77rmFJIXtt99+rv7bb7/9Aq95xb0v1X/y5MmFnXfeuXj8mjVrFlZYYYXiuZ511llVOkZVVYxVKpYfmzVrVuGCCy4o1K9fv9I1bty4cfHdUfGnefPmhTvuuKPkefuVCQAAAAAALDkL+n38lVdeWSnH0qxZs0KdOnWKP2+44YaFb775pmTfnXbaqVJ+oCJHddVVVxXb3HDDDZVyBo0aNSrmb1q2bFl45JFH5pnfGzBgwGLnEhY3jzR27Nhi/qQi3zpnriZJ4Ywzzih57MXJE815zCSFJk2aFJo0aVJp2/7771+YOXNmpX6ffPJJ8bxq1KhRaNWqVfG+fP3118V288q3lvKnP/1prrxpRS517733nm+urFAoFG6//fZC3bp1K+Wvf5xbfOuttyr1+fe//13cV7t27ULbtm0Lq622WmGbbbYptllQbvi9994rtG3btlJOc85rWLdu3Ur51DlV5fosTo6uIl9fr169QqtWrQqtWrUqrLTSSpVy8hV/tt5668J777033/GOOOKISn2aNWtWzGf+3//9X+HII48sJCkceeSR84zlx98d+LHFyeMXClX7rsBtt91WSFJYbbXVSsZwzz33VHo/NWnSpNLneJVVVil88MEHc/Wr6rtkYT4XAACwJFkJEQAAqLJtttkmH330Ue6+++4ceuihWXPNNVOvXr1MmDAhzZs3T5cuXXLOOefkww8/zF133ZXatWsX+26yySZ59dVXc+CBB6Zly5aZNWtWGjdunAMPPDAvvfRSDj/88CrFsMUWW+T111/PEUcckaZNm2bGjBlp27ZtjjvuuLz33nvZdNNNF/q8rr/++vTo0aM4c+VXX32VL7/8Mj/88EOxzZ577pnnnnsue+yxR5o1a5YZM2akZcuWOfroo/Pmm29mp512WujjLow6derkuuuuy8cff5xzzz03W2+9dVq1alWcYXPNNdfMwQcfnHvuuac4y+KP+99777154IEH8vOf/zwtWrTIhAkT0qJFi/z85z/Pgw8+ONc9S5Ljjz8+N910Uw455JBssMEGadCgQcaPH58VVlgh2267ba6++uq8+eabad26daV+tWrVSr9+/fKrX/0q7du3T3l5eb788st8+eWXmThxYrVfnxVXXDFPPfVU+vfvn1/96ldZe+21U6dOnUyePDlt27bNz3/+81x//fX57LPPiqsIzs/iPOsVmjRpknvvvTdvvfVWzjjjjGy66aZp2bJlJkyYkNq1a2fdddfNkUcemcceeyzvvfdeNtlkkyqfb+3atfP000/n/PPPT8eOHVO7du0UCoVsvvnmueGGG/LII4+kZs2aC3UNF0a9evXy5JNP5pprrknnzp1Tp06dFAqFbLvttrnvvvty6aWXLrFjL0hZWVnOO++8fPHFF/nLX/6SHXfcMW3atMm0adMyY8aMrLbaatl7771z8803Z+jQoVV+9wAAAAAAAEvPaaedltdffz2HHXZYVllllUyaNCn169fPlltumSuvvDKvvvpq2rRpU7Jvr169ctppp6Vjx46ZPn16MUc158p9J554Yh5//PF07do1jRo1KuYcTznllLzzzjvZcMMNl+j5LW4eqWnTpunXr19uueWWdO3aNY0bN87EiRPTunXr7LfffhkwYECuuOKKao/773//ey677LJ069Yta621VgqFQiZPnpw2bdqke/fueeCBB3L//fenRo3KX01da621MmDAgHTv3j0rrrhiRo0aVbwvM2bMWKRYLrzwwvz73//OlltumYYNG2bmzJnp3Llz/vnPf+bBBx9cYK7siCOOyEcffZRTTz016623XmrVqpVp06alQ4cO2XvvvfPvf/876667bqU+hx12WP7973+nS5cuadCgQb777rt8+eWXxZUYq2KDDTbI4MGD06NHj3Tu3Dm1atXK1KlT06FDh5x44okZPHhw9t9//0W6JtVlypQpGTFiREaMGJHRo0enbt26WWONNbLHHnvkT3/6U95+++28+OKLxfz6vNx6663FfGL9+vUza9asbLPNNrn33nvz97//vVpiXdw8flW+K7AgBx10UAYPHpwTTjghHTp0yNSpU1OrVq107tw5F1xwQd5///25niUAAPgpKisUFmH9cAAAgKVo6NChWX311ZMkQ4YMSfv27ZdtQAAAAAAAAAAAAADwP8JKiAAAAAAAAAAAAAAAAABASYoQAQAAAAAAAAAAAAAAAICSFCECAAAAAAAAAAAAAAAAACUpQgQAAAAAAAAAAAAAAAAASiorFAqFZR0EAAAAAAAAAAAAAAAAALD8sRIiAAAAAAAAAAAAAAAAAFCSIkQAAAAAAAAAAAAAAAAAoCRFiAAAAAAAAAAAAAAAAABASYoQAQAAAAAAAAAAAAAAAICSFCECAAAAAAAAAAAAAAAAACUpQvyJ6t69e7p3776swwAAAAAAAAD+i8lLAgAAAAAAUGtZB8Ci+fzzz5d1CAAAAAAAAMB/OXlJAAAAAAAAftIrIb788svZb7/90rp169SuXTvNmzfPTjvtlF69es2zzx133JHNN988jRo1SvPmzdOtW7e89NJL8z3OSy+9lG7duqV58+Zp1KhRNt9889x+++3z7TNs2LAcc8wxadOmTerVq5eOHTvmvPPOy5QpUxbpXAEAAAAAAAAAAAAAAABgaSsrFAqFZR3Eorj//vtz8MEHZ9asWdl0003ToUOHfPvtt3nxxRcza9asnHXWWbn00ksr9Tn99NNz1VVXpX79+tl1110zZcqU9OvXL4VCIffff3/22WefuY7Tu3fvHHDAAZk1a1a22267tGzZMv369cvYsWNz2mmn5corr5yrz+eff56tttoqI0eOzAYbbJD11lsvr7/+er744otstdVWGTBgQOrWrbtY57/++usnSQYPHrxY4wAAAAAAAADMi7wkAAAAAAAAP8kixBkzZqRNmzYZOXJk7rnnnhx00EHFfYMGDcqOO+6YqVOn5tNPP02HDh2SJP37989OO+2UFi1aZNCgQVlrrbWK7bt27Zr69etnyJAhWWGFFYpjjRkzJquvvnrGjRuXBx54IPvuu2+SZMSIEenSpUs+++yz9O/fPzvssEOl+Lbffvs899xz+c1vfpNrrrmmGPOBBx6Y3r1757zzzssFF1ywWNdAsg8AAAAAAABY0uQlAQAAAAAAqLGsA1gUH330UUaOHJl11lmnUgFikmy11VbZbbfdUigU8sYbbxS3/+1vf0uSnHvuucUCxIr2J554YsaNG5dbb7210lg333xzxo0bl7322qtYgJgkrVq1yuWXX54kc62E+Nprr+W5557LSiutVGyTJLVq1coNN9yQ2rVr5+9//3umT5++mFcBAAAAAAAAAAAAAAAAAJasn2QRYt26davUrnnz5kmSKVOmpF+/fkmS/ffff652FdseffTRStsfe+yxefbZY489Uq9evTzzzDOZMmXKXH1+8YtfzBVnq1atsu2222bMmDF58cUXq3QOAAAAAAAAAAAAAAAAALCs/CSLENdYY42sscYa+eijj3LfffdV2jdo0KD06dMnq6++erbbbrsks1dOnDp1alZcccW0a9durvE23njjJMm7775baXvFzxX751SnTp1ssMEGmTJlSj7++OPi9nfeeWeefebcXtEOAAAAAAAAAAAAAAAAAJZXP8kixJo1a6Znz55p2rRpDjrooGy22WY5+OCDs/3226dLly7p3Llznn766dSpUydJ8tVXXyVJyQLEJGnYsGGaNWuWMWPGZMKECUmS8ePHZ+zYsfPtV7G9YvyqHKtUHwAAAAAAAAAAAAAAAABYHtVa1gEsqm233TbPPvts9tlnn7z++ut5/fXXkySNGzfOzjvvnDZt2hTbTpw4MUnSoEGDeY7XsGHDjB07NhMnTkzjxo2LfebXr2HDhpXGr8qxSvWZn/XXX7/k9s8//zwdOnSo0hgAAAAAAAAAAAAAAAAAsCh+skWId999d44++uhsueWWueeee7L++uvn22+/zV//+tdcfPHF6devX5599tnUrl07hUIhSVJWVjbP8SrazOvnqvSZc9u8jlWVcQEAAABgeVYoFPyeCwBKKCsrm28+CgAAAAAAgKrx3QSYt2WRl/xJFiF++umnOfLII9OqVas8/vjjxdUF11prrdx444357rvv8uijj+a2227L8ccfn8aNGydJysvL5znmpEmTkiSNGjVKkmKfin1NmjRZYJ85+83rWKX6zM/gwYNLbp/XCokAAAAAsCTMnDkzo0aNyoQJEzJt2rRlHQ4ALLfq1KmTxo0bp0WLFqlZs+ayDgcAAAAAAOAnw3cToOqWdl6yxhI/whJwzz33ZPr06dl9992LBYhzOvDAA5MkAwcOTJKsuuqqSZJhw4aVHK+8vDxjx45Ns2bNikWETZo0SdOmTefbr2J7xfhVOVapPgAAAACwPJs5c2a++uqrjBo1yi/5AWABpk2bllGjRuWrr77KzJkzl3U4AAAAAAAAPwm+mwALZ2nnJX+SKyFWFPKVWp1wzu2jR49Okqy99tqpW7duRo4cmWHDhqVdu3aV2r/55ptJkk6dOlXavtFGG+W5557Lm2++mfXWW6/SvunTp+f9999P3bp1s/baa1fq8/DDDxfH/LF5HQsAAAAAllejRo3KlClTUrNmzbRq1SoNGzZMjRo/yfnNAGCJmjVrVsrLyzNixIhMmTIlo0aNykorrbSswwIAAAAAAFju+W4CVN2yyEv+JIsQW7dunSR5/fXXS+5/7bXXkiTt27dPktSvXz877rhjnnzyyfTq1Sunnnpqpfa9evVKkuy5556Vtu+xxx557rnn0qtXrxx22GGV9j322GOZMmVKunXrlnr16lXqc+GFF+bRRx/N1KlTU7du3eK+ESNG5Pnnn0/Tpk3TpUuXhT9xAAAAAFgGJkyYkCRp1apVmjZtuoyjAYDlV40aNYr/rfz2228zYcIERYgAAAAAAABV4LsJUHXLIi/5kywJ3muvvZIkzz33XG644YZK+15++eVcddVVSZL999+/uP30009Pklx88cX59NNPi9sHDRqUG2+8MU2aNMmxxx5baaxf/epXadKkSR5++OE8+OCDxe3ff/99fv/731cat8Lmm2+ebbbZJt9//33OOuus4vYZM2bk5JNPzvTp03PKKaekdu3ai3z+AAAAALC0FAqFTJs2LUnSsGHDZRwNAPw0VPw3c9q0aSkUCss4GgAAAAAAgOWb7ybAolmaecmfZBHixhtvnDPOOCNJcvLJJ2eDDTbIgQcemC5dumSbbbZJeXl5jj/++Oy8887FPjvvvHN++9vfZtSoUencuXP23nvvdOvWLdttt12mT5+eW2+9Nc2bN690nObNm+fWW29NjRo1sv/++2eHHXbIAQcckLXXXjufffZZfvOb32SnnXaaK77bbrstLVq0yDXXXJNOnTrl4IMPztprr50HH3wwW2yxRc4555wle4EAAAAAoJrM+QvKGjV+kr9OBIClbs7/ZipCBAAAAAAAmD/fTYBFszTzkj/ZT+YVV1yRBx98MLvuumuGDx+e3r1754MPPsj222+fO++8MzfeeONcfa6++urcdtttWXfdddO3b9+89NJL2WmnnfLss89mv/32K3mc/fbbL88991x22223vP3223niiSfSoUOH3HrrrbnmmmtK9llrrbXy1ltv5aijjsrIkSPTu3fvlJWV5dxzz82AAQNSr169ar0WAAAAAAAAAAAAAAAAALAklBVMv/qTtP766ydJBg8evIwjAQAAAOC/2axZs/Lxxx8nSdZee20zDgJAFfjvJ/9N5CUBAAAAAFjS5FZg0SzNz45PJQAAAAAAAAAAAAAAAABQkiJEAAAAAAAAAAAAAAAAAKAkRYgAAAAAAIvgjTfeyKWXXpp99903bdu2TVlZWerVq1elvnfccUc233zzNGrUKM2bN0+3bt3y0ksvLVY8w4cPz2mnnZaOHTumfv36ad68eTbZZJP8/ve/X6pxVEXXrl1TVla2UH+GDh26xOOqSsyLEsfXX3+ds846KxtvvHGaN2+eOnXqpFWrVtl1113zj3/8IxMnTqz+gKtgcc5pYZWVlaV9+/ZVbt+jR4+UlZWlR48eSywmlj8zZszI2muvna222ipJMnDgwIV+Vxx11FGVxuzTp08OO+ywrL766mnQoEEaNGiQjh075sgjj8wzzzxTqe3QoUNLPqtvvfVWysrKcsUVVyzJ0wcAAAAAAICSysvLc9VVV2WHHXZIq1atUqdOnaywwgrZaqutct555+Wrr75a1iH+1+vZs+f/fA671rIOAAAAAAD477Dh7Rsu6xAW6L0j36u2sS666KI8/PDDC93v9NNPz1VXXZX69etn1113zZQpU9K3b988/fTTuf/++7PPPvss9JiDBg1Kt27dMnbs2Ky33nrp3r17JkyYkA8++CBXXnllLr/88qUSR1XtvvvucxX5fPbZZ3nxxRfTqlWr7L777nP1adSoUZXH79q1a5599tkMGTJkoQrfloQbb7wxp556aqZMmZKVVlopW2+9dZo0aZLhw4fnhRdeSN++fXPhhRfm/fffT8uWLZdprBXKysqy2mqrLfPCz/9WPXr0yAUXXJDbbrttroK5n7KBAwdmhx12yJFHHpmePXsu0hg33nhjPvnkkzz55JNJktatW+fII4+cq12vXr1SXl6e3XbbLa1bt660r0uXLkmSiRMn5tBDD80jjzySJOnUqVM22WSTJMknn3ySO+64I3fccUeOOeaY3HLLLfON62c/+1m6d++ev/zlLzn22GPTvHnzRTo/AAAAAAAAFtPf1l/WEVTN7wZX21Avv/xy9t1333z33Xdp0KBBttxyy7Rq1Srjxo3La6+9lpdffjmXX355Hnvssey8887Vdtzq1L59+3z55ZcpFArLOpR5Ouqoo3L77bdnwIAB6dq167IOZ7mkCBEAAAAAYBFstdVW2WijjbLZZptls802m6sQppT+/fvnqquuSosWLTJo0KCstdZaSWYXEXbt2jVHH310unbtmhVWWKHKcXz77bfp1q1bpk6dmgcffHCu4sFXX311qcSxMM4+++y5tvXs2TMvvvhi1llnnUUuYFre3HzzzTnxxBPTqFGj3H777Tn88MNTVlZW3D9p0qRcf/31ueiiizJx4sSlXoR4xx13ZNKkSWnbtu1SPS6UMnXq1Fx44YXp3LlzsRB5Xu+DgQMHpry8PGeffXbJBODMmTOz55575tlnn80WW2yRW265JeuvXzkh/cknn+Scc87J559/XqX4/vCHP+SRRx7JZZddlssuu2yhzw8AAAAAAAAW1rvvvpsdd9wxkydPzllnnZU//elPadiwYXH/rFmz8tBDD+X3v/99hg0btgwj/e+3zz77ZMstt1xuJhdeFmos6wAAAAAAAH6KzjrrrFxwwQXZc88906pVqyr1+dvf/pYkOffcc4uFf8nsgsYTTzwx48aNy6233rpQcZx99tkZO3ZsLr/88pKrF26++eZLJQ4qGzZsWE455ZSUlZXlkUceyRFHHFGpADFJGjRokDPPPDOvvPJKmjZtutRjXHXVVbPOOuukdu3aS/3Y8GO9evXK999/nyOOOGKxx7r66qvz7LPPZv3110///v3nKkBMko4dO+b+++/Pn//85yqNueWWW2bNNdfMrbfemmnTpi12jAAAAAAAADA/hUIhhx12WCZPnpwePXrk0ksvrVSAmCQ1atTIvvvumzfeeCObbrrpMor0f0PTpk2zzjrrKEIEAAAAAGDJmjJlSvr165ck2X///efaX7Ht0UcfrfKYY8aMyX333ZemTZvmV7/61TKLY0mbMWNG/v73v2eTTTZJo0aN0qhRo2y++ea54YYbMnPmzGK7oUOHpqysLM8++2ySZPXVV09ZWVnxT4Xvvvsul19+ebbffvu0bds2derUSevWrbPvvvvmtddeq5aYr7vuukyZMiUHHnhgdthhh/m2XXfddSutOvn222/n97//fTbZZJOsuOKKqVu3btZYY42cfPLJ+fbbb+fqX3HeXbt2zfjx4/Pb3/42q6yySurVq5d11103V111VWbNmjVXv65du6asrCxDhw5NMns1yorr9OWXX1a6dnOuNrew8VWno446KmVlZRk4cGCee+657LjjjmncuHGaNGmSPfbYIx988EGl9hWFoP/85z/nOeb666+fsrKyfPLJJ5W2Dx06NCeccELat2+funXrZsUVV8z++++fd999t+Q4ffr0yW677ZZ27dqlbt26adOmTbp06ZILLrig2KZ9+/bFn48++uhK13jgwIFJ/v996NGjRz7//PMceOCBadmyZZo0aZKf//znxXOcMWNG/vKXv6Rjx46pV69e1lxzzfzjH/+Y53kuzPnMGcNXX32VX/7yl1lxxRVTv379bLrppnO9H4466qjic3777bdXOq8ePXrMM6Y53XzzzSkrK8shhxxSpfbzMnPmzFx55ZVJkr/+9a9p0KDBfNtvs802VR77kEMOyQ8//JDevXsvVowAAAAAAACwIH369Ml7772Xdu3a5Zxzzplv26ZNm2aDDTYo/jxp0qRcdNFF2WCDDVK/fv00bdo02223Xe65556S/du3b1/MFd98883p1KlT6tevn9atW+eEE07I2LFj5+pTXl6eyy67LJ07d06zZs3SqFGjdOjQIQcccED69OmTJBk4cGDKysry5ZdfJkmlPGL79u2LY82Zu77rrruy5ZZbpnHjxmnWrFmlcY466qiS8c+ZR/6xH374IX/4wx+ywQYbpGHDhmnWrFk6d+6cc845J6NGjSrGdfvttydJdthhh0px/jifXir/uTSu9/Kg1rIOAJaGDW/fcFmHsES9d+R7yzoEAAAAABbgo48+ytSpU7PiiiumXbt2c+3feOONk2SeBU6lvPjii5k6dWp23nnn1K5dO7169coLL7yQ6dOnZ5111smBBx441yqNSyKOJWnmzJnZa6+98sQTT6RJkybZeeedkyT9+/fPySefnL59+6ZXr16pUaNGGjVqlCOPPDJPPfVURowYkf322y+NGjWaa8yHH344Z511VtZcc81suOGGadKkST777LP07t07jz32WB577LHsuuuuixX3448/niT55S9/udB9L7300vTq1SsbbLBBttlmm5SVleXtt9/ODTfckIceeiivv/562rRpM1e/qVOnZscdd8znn3+eHXfcMdOmTUu/fv1y+umn5913381tt9023+OuueaaOfLII3P77benYcOGlYpU11lnncWOrzo9+uijueaaa7LBBhtkt912y3vvvZcnnngir7zySt5///20bt06SXLooYfmuuuuy5133pkTTzxxrnHefvvtfPDBB9lss83SsWPH4vYXXnghe+yxR8aPH5/1118/3bt3zzfffJMHH3wwTzzxRB5//PFKxaX//Oc/c9JJJ6Vu3brZdttts91222XkyJH58MMP06NHj5x//vlJZhf5PvPMM3nnnXeyzTbbZM011yyOURFzhSFDhmTzzTdPs2bNsv322+fTTz/NU089lTfeeCPvvvtuTjzxxPTv3z9bbbVV1lhjjQwYMCC//vWvU7t27Rx33HGVxlrY86kwdOjQbLbZZqlXr166dOmSESNGZNCgQdl7773z5JNPFj8nXbp0yfDhw9OnT5906NAhXbp0KY7RuXPnBd7PCRMm5Pnnn88666wz13VYWG+//Xa+/fbbtGjRYrE/xz/WtWvXXHTRRXn88cdz0EEHVevYwH+Pv/7qvmUdAkvRGTcfuKxDAAAAAAD+S1XknA844IDUqlX18q8JEyZkhx12yBtvvJEVV1wxe+65Z8rLy9O/f/88//zzefnll3P11VeX7Pv73/8+11xzTTbbbLPsvvvueemll3LTTTflww8/zLPPPlssnJs5c2Z23XXXvPTSS2nXrl26du2aOnXqZNiwYXnsscfSsGHD7LbbbmndunWOPPLI9OrVK+Xl5TnyyCOLxyq1ouAll1ySm2++Odtss0323HPPfP311wtxxeb2wQcfZNddd80333yTlVdeObvvvntmzpyZjz/+OH/5y1+yyy67pGvXrjnyyCPzwgsv5PPPPy/GXaHUdw7mtDSu9/JCESIAAAAAwFLw1VdfJUnJwr8kxRn3xowZkwkTJqRx48YLHHPw4MFJklatWmXbbbfNoEGDKu3/wx/+kNtuuy0HHHDAEo1jSbr66qvzxBNPZMMNN8wzzzyTlVZaKcns1Qx32GGH9O7dO//85z9z8sknp2XLlunZs2e6du2aESNG5K9//Wul2RMrbLPNNnnnnXfSqVOnStv79OmT7t275+STT86nn366yL/QnzZtWvHeVBR1Lozjjz8+V111VVZeeeXitlmzZuXiiy/O+eefn3PPPTe33nrrXP1efvnldOrUKZ9++mkxYfP5559nu+22S8+ePbPPPvuke/fu8zxuly5d0qVLl9x+++3Fa1md8VWnq6++Ov/5z3+Kq+bNnDkzBx10UB544IH84x//yIUXXpgk2XLLLdOhQ4e8+OKL+fLLL7PaaqtVGueuu+5KMrtYscL48eNzwAEHZPLkybn//vsrFWM+88wz2WOPPXL44Yfniy++SJ06dZLMLsxs0qRJ3nnnnUrPXKFQqDTb5l//+tf06NEj77zzTn71q1/Nc6bOJLnjjjty+umn54orrkiNGjVSKBRyzDHHpGfPntlpp51So0aNfPDBB8XPcr9+/bLzzjvnz3/+c6UixEU5nwq33357TjnllFx55ZXFxOY111yTU089NRdffHGxyO9Xv/pV1lxzzfTp0yddunSZ57MzLy+++GJmzpyZzTbbbKH6lfLWW28lmV38WKNGjcUeb06bbbZZatSokeeff75axwUAAAAAAIAfq8h7LWzO+Y9//GPeeOON7Lzzzundu3exiO6jjz7K9ttvn2uuuSa77rprunXrNlff//znP3nllVeKE43+8MMP2WqrrfL8889nwIAB2XHHHZMkzz//fF566aXstddeefDBByvl5caNG5fPPvssyezJbnv27JmBAwemvLx8gXnEO+64I/3798/222+/UOdcyowZM7Lffvvlm2++ye9+97tccsklqV27dnH/W2+9lRVXXDHJ7FUOjzrqqHz++ec5++yz07Vr1yofZ2lc7+VF9WZfAQAAAAAoaeLEiUmSBg0azLNNw4YNK7VdkDFjxiSZ/Yv4d999N7fccktGjhyZIUOG5PTTT095eXkOO+ywSqsaLok4lqRrr702yeyis4oCxCRZeeWVc8UVV1RqU1UbbrjhXAWISbLbbrvlgAMOyOeff573339/kWMeM2ZMCoVCkhSTFgtjxx13rFTglyQ1atTIeeedl7Zt2+bhhx+eZ9+//vWvlWaM7NChQ/70pz8lSa6//vqFjqW646suv/zlL4sFiElSs2bN/PGPf0ySPPfcc3O1LRQKufvuuyttLxQKueeee1KzZs1Kq9rdeuutGT58eM4444xKBXtJsvPOO+fkk0/ON998k8cee6y4/fvvv8/qq68+V9FrWVlZyRUGq6JDhw657LLLigm7srKynH766Ulmz9h57bXXViom3mmnnfKzn/0sX375ZYYOHbpY51NhjTXWyN/+9rdKM6v++te/zgorrJCXX34506ZNW6Rz+7GKd9Taa6+92GONGjUqyaJ99hakcePGWXnllTN06NCMHz++2scHAAAAAACACouS9yovL88tt9ySGjVq5B//+EelVfzWWWednHvuuUnmnWO/6KKLigVxyezVCk866aQklfOw33//fZKka9euc00M2rRp02yyySZVjnlOxx57bLUUICbJgw8+mI8++iidOnXK5ZdfXqkAMUl+9rOfzXPy5qpaWtd7eaEIEQAAAABgKagoSpvf6noVbapq5syZSWbP4HfllVfmmGOOScuWLdO+ffv87W9/y/77759p06bl8ssvX6JxLClfffVVvvrqq7Ru3brkDH977rlnmjVrlo8//jgjR45cqLGnTp2ahx9+OOecc06OP/74HHXUUTnqqKPy3nvvJUk+/fTTRY67Oq7fqFGjctttt+V3v/tdjj322GJ806dPz+jRozN69Oi5+jRv3jy77LLLXNt/+ctfJkleeumlaru3ixJfdapYgW9OHTt2TDJ7lcw5VaxyWLHqYYXnn38+X3/9dXbaaae0bt26uL1v375Jkr333rvksbt06ZIkee2114rbNtlkk7zzzjs5++yz8/nnny/k2ZTWtWvXSsV/yeyiwCSpU6dOyeRbhw4dklS+BotyPnPG8ONkXK1atbLGGmtk+vTpxcTn4qpIUq6wwgqLPdaSfn81b948SRb6nQMAAAAAAAALY1HyXm+88UYmT56czTffPGuttdZc+w8//PAkyYsvvlhy/KrmYTt37pwaNWrkiiuuyD333JMJEyYsdKyldO/evVrGSZJnnnkmSXLcccfNVShZXZbW9V5e1FpwEwAAAAAAFlfjxo2TzJ4Jb14mTZqUJMXZ8R566KE89NBDc7Xr2bNnpTFr1KiRI488cq52xxxzTHr16pWBAwcuVhzzc8YZZ+SHH36otK1Lly751a9+tcC+C/Ltt98myVyry1UoKyvLaqutlrFjx+bbb7+t8gyQ7733Xrp3715ptbgfW5wkSfPmzVNWVpZCoZCRI0cu9OyJd999d44//vj5rkQ5YcKEYjFUhdVWW61k2yZNmqRZs2YZO3Zsxo8fn6ZNmy5UPNUVX3UqdU0rntepU6dW2r722mtnk002yRtvvJH33nsvG264YZL/X5RYUaRYoeK52GKLLeYbw5zP/fXXX5+99947l112WS677LK0adMm2267bfbff//su+++i5TUatu27VzbKlYpbd26dckxK/bPeQ0W5XwqzOvZnde1XlTjxo1L8v/fT4ujYiXQJVUk2KRJkyT/P2YAAAAAAABYElq2bLnQE/IuKMferFmzNG3aNOPGjSuZO65qHrZjx4654oorcvbZZ+eQQw5JzZo1s8EGG2TnnXfO0UcfnfXXX7/KMc9p1VVXXaR+pXz99ddJ/v9ErkvC0rreywtFiAAAAAAAS0HFL8uHDRtWcn95eXnGjh2bZs2aFQtx3n777dx+++1zta0oQqz4RXbr1q1Tt27dudpV7K9YZWxR45ifXr165csvv5xre3UUIVaY36qNC9MmmT1b5IEHHpihQ4fmxBNPzIknnpg11lgjjRo1SllZWf74xz/mkksuWazV1OrUqZP11lsvgwcPzptvvrlQRYhffvlljjrqqBQKhVx99dXZY4890rZt29SvXz9JsvXWW2fQoEELHV91rQ63pOJbWFW93xUOPfTQvPHGG7nrrrtyySWXZPr06enVq1fq16+fffbZp1LbihVGDzjggDRo0GCeY85Z1NepU6d88MEHeeqpp/LEE0/k2Wefzb333pt77703Xbp0Sb9+/VKnTp2Finl+57gw578o57Mox1kcFcm28ePHL/ZYnTt3TjL7/VkoFKr9HCqKDxe3mBcAAAAAAADmp3PnznnxxRfz5ptv5rDDDluovouaY1+Y3Nrpp5+eAw44IA899FD69u2b559/Pn/7299y1VVX5dprr82vf/3rhYo5SerVq7fQfZJk1qxZ89y3NHKeS+N6Lw8UIQIAAAAALAVrr7126tatm5EjR2bYsGFzFaa9+eabSWYXM1Xo0aNHevToMc8xf/aznyVJxowZU7LYZtSoUUkqr2i4KHHMz/xWE1xcbdq0SZIMGTJknm2++uqrJMnKK69cpTE/+uijfPTRR9l0001zww03zLX/iy++WIRI57bHHntk8ODBueuuu9K9e/cq93viiScybdq0/O53v8tvf/vbhYqv4lr82Pjx4zNu3Lg0bNiwuIrbolqc+Jalgw8+OGeeeWbuuuuu/OUvf0mfPn0yatSoHHTQQXMV27Zr1y4ff/xxzj333Cp/DpLZCbG99947e++9d5Lkgw8+yCGHHJIXXnght9xyS0466aTqPKUqW9TzWZpWWmmlJMno0aMXe6yf/exnWXnllfPdd9+lT58+2X333Rd7zDmNGTMmSaq88ioAAAAAAAAsij322CPXX3997r///lx++eWpVWvBJWALyrGPGzeumDuuyqTEC7LKKqvklFNOySmnnJIZM2bknnvuydFHH53TTz89hx56aJo1a7bYx0hSnPB14sSJJfdXrHr449iS5LPPPquWGEpZ2td7WauxrAMAAAAAAPhfUL9+/ey4445JZq8e+GMV2/bcc88qj7nhhhtm9dVXz+TJk/PKK6/MtX/gwIFJko033niJxrGkrLrqqll11VUzfPjw9O/ff679jz/+eMaMGZO11167UkFQRQJixowZc/WpKCAqtTrhmDFj0rdv32qJ/f/+7/9St27d3HfffRkwYMB823700UfFuCr+tyIhMqfnnnsuI0aMmOc4o0aNyjPPPDPX9rvvvjvJ7FUKqzKTYu3atUteu8WNb1laeeWVs8MOO+Srr77Kiy++mLvuuivJ7BUSf2znnXdOkjz00EOLdcz11luvOLvne++9V9w+v+dzSaiu81mQxTmvjTbaKMnsz8LiqlmzZk477bQkyRlnnJFJkybNt/1LL71U5bHHjx+fb7/9NquvvvpiF/QCAAAAAADA/Oy+++5Zf/31M2zYsPz5z3+eb9vx48dn8ODB2WSTTVK/fv28+uqr+fTTT+dq95///CdJ0qVLl2pfha9WrVo57LDDstlmm2XatGn55JNPivsWN0daMSnxnGNWGDVqVHGy5TlV5ElvvvnmFAqFBR5jUWJcltd7WVCECAAAAACwlJx++ulJkosvvrjSL6AHDRqUG2+8MU2aNMmxxx67UGOeddZZSZLf/OY3+eGHH4rb33jjjfztb39Lkpx44olLPI4l5ZRTTkmSnHbaaRk5cmRx+/Dhw3PmmWdWalOhYrbBjz/+eK7x1lxzzdSoUSP9+/evdO5TpkzJiSeeWC0rsSWzi/SuvvrqFAqFdO/ePf/+97/nSmxMnjw5V199dbbYYouMGzcuSdKxY8cks5MR5eXlxbbffPPNXPexlDPPPLO4AmYye8bFiy66KEly8sknVyn2Nm3aZMSIERk7duxc+xY3vmWpouDwpptuyiOPPJLmzZuXXCXvhBNOyIorrpi//OUvue222+a6b+Xl5bnjjjsybNiwJMmkSZNy7bXXznW9Zs2alaeffjrJ7ILaCvN7PpeEhT2fRbU457X11lunZs2aefXVVxcrhgqnnXZaunTpksGDB2ennXbKBx98MFebL774IgcffHD++Mc/Vnnc1157LYVCIdtuu221xAkAAAAAAADzUlZWlv/85z+pV69eevTokT/84Q+VcrRJUigU8sgjj2TTTTfNa6+9loYNG+aYY47JrFmz8utf/7pS+08++SQXX3xxkrlz7AtrwIABeeaZZzJr1qxK27/88st8+OGHKSsrqzQx8OLmSFdfffWsuuqqee+99/Lwww8Xt5eXl+e4447L+PHj5+qz7777pmPHjnnnnXdy9tlnz1Vc+Pbbb1fKkS5KjEvrei8vFrwWJwAAAAAAc3n88ceLxV0Vpk2bli233LL485/+9KfssccexZ933nnn/Pa3v80111yTzp07Z5dddsm0adPSt2/fzJo1K3feeWeaN2++UHEcd9xx6devX+6///6svfba2XrrrTNx4sS89NJLmTZtWo477rjsv//+lfosiTiWlNNOOy39+/fPk08+mbXWWis77rhjCoVC+vXrlwkTJmTvvffOSSedVKlP9+7dc/vtt+eXv/xldt111zRt2jTJ7BkOV1pppRx77LH517/+lY022ig77rhj6tevn+effz4zZ87MUUcdlZ49e1ZL7CeeeGJmzZqV008/PUcccUTOPPPMbLbZZmnSpEmGDx+el19+OZMmTUqbNm3SqFGjYuzrr79+Xn/99ay55prZZpttMmXKlAwYMCCdO3fO1ltvPc+V27bccstMmzateJ2mTZuWfv36ZdKkSTnssMOy9957Vynu7t275+9//3s23njjbL311qlXr17WXnvtnHnmmYsV37K277775qSTTsq///3vJMnhhx+e2rVrz9VuhRVWSO/evdO9e/ccc8wxueCCC7LBBhukbt26+eqrr/Lhhx+mvLw8b731Vtq1a5dp06blt7/9bc4888xsvPHGad++faZNm5bXX389X331VdZYY42ccMIJxfF33XXX1KtXL1dddVXef//9tGnTJmVlZTnzzDOz9tprV/t5L+z5LKr27dunU6dOef3117P55ptn/fXXT82aNdO9e/d07959vn0bN26cbbfdNgMHDsywYcMWK45k9iyrjz/+eA455JA88cQT2WCDDbLRRhtlrbXWSqFQyKeffpp33nknyex3aFVVrC7brVu3xYoPAAAAAAAAqqJz58555plnst9+++XSSy/Ntddem6222iqtWrXKuHHj8vrrr2fEiBGpV69eVllllSTJJZdckpdffjl9+/bNGmuske233z7l5eXp379/pkyZkt/85jeVvsewKN55552cdtppWXHFFbPJJpukRYsWGTlyZJ577rlMmTIlp556arGoL5mdg3722Wez0047ZYcddkjDhg3TsmXLXHrppVU+Zo8ePXLMMcdkv/32y3bbbZdGjRrl1VdfTZMmTdK9e/c88sgjldrXqlUrDzzwQHbZZZdcfvnl+c9//pOtt946M2bMyMcff5wPP/wwAwYMKOYmf/GLX+TCCy/M7373u/Tt2zctW7ZMklx22WVp0aLFPONaGtd7eaEIEQAAAACoFu8d+d6yDmGpGjlyZF555ZVK2wqFQqVtc67cV+Hqq69O586dc91116Vv376pXbt2dtppp5x77rnp0qXLQsdRo0aN3HPPPenatWtuvvnm9O/fP2VlZdl0001z4okn5vDDDy/Zr7rjWFJq1qyZRx55JP/4xz/Ss2fP9OnTJ0my3nrr5eijj84JJ5yQGjVqVOqz77775qqrrsq//vWvPProo5k6dWqS2UWISXLDDTdknXXWyS233JJ+/fqladOm2XnnnfPnP/85t912W7XGf/LJJ2fPPffMddddl6effjrPP/98ysvL07x583Tp0iX77LNPDj/88DRs2DBJUqdOnTz//PM555xz8uSTT+axxx5L27Ztc8opp+S8886bb/FT3bp189RTT+WPf/xjHnroofzwww9ZffXVc9xxx+XUU0+tcsyXXHJJCoVCHn744dx7772ZMWNGtt9++5x55pmLFd+y1qRJk//H3p2HeV3V/eN/DgIDsoiA4kK4Ai6kiIYiiyBKBeKK5HYruOVtaYWmVuSemYmI5u1dKShZmqKI4JIIIiCgoIKp4YILX7IUcQYFGRaZ3x/+Zm6nGfZlXB6P65pLP+ec1zmv85nPwHVx5vU+6d27d+67774kyUknnbTKsR07dszf//733HDDDXn44Yczfvz4bLHFFtlhhx1yxBFH5Nhjj81ee+2VJKlfv35uueWWjBs3LrNmzcqLL76Y2rVrZ6eddspZZ52VH/7wh2nUqFH53DvssENGjRqVK6+8MpMnT86iRYuSJKeccsomKUJc1/1siPvvvz8//elPM2nSpDz33HNZuXJlmjdvvsYixOSzYsAJEybk7rvvLr/ldEM0bNgwDz/8cB599NH86U9/ypQpUzJ69Ojyp66edtppOe2009KtW7e1nvPuu+9O06ZNc8wxx2xwfgAAAAAAAKyHC16u7gw2u44dO+aNN97I73//+4wePTovvvhiioqKUr9+/bRu3TrnnHNOzjzzzPJiugYNGuSpp57KoEGD8te//jUPPfRQateunQMOOCDnnntuTjzxxA3O6YgjjsiCBQvy5JNPZtasWVmwYEG22WabdO7cOeeee26lB+Sef/75KSoqyt133537778/y5cvz0477bRORYj9+/dPQUFBBg0alKeffjpbb711evfunWuvvTYXXHBBlTFt2rTJzJkz89vf/jYPPfRQRo8enS233DI77bRTBg4cmH322ad87P7775+77rorgwYNyuOPP54lS5YkSQYOHLjaIsTN8X5/URSUlpaWVncSrLu99947SfLyy1+/P0DXxzfv/GZ1p7BJfd1+wQ8AAADYfFauXJlXX301SdK6detKxV5A9Xv77bezyy675JBDDim/qQ2+bJYuXZqddtop2267bV588cXqTqeSqVOn5uCDD85FF12U3/zmN2sc7+9PvkqcS66b68+8t7pTYDO68La+1Z0CAAAAAHwlOFuB9bM5f3b8VAIAAAAAAFCtCgsLc+mll+bvf/97HnnkkepOp5Jrr702jRo1ykUXXVTdqQAAAAAAAABsdooQAQAAAAAAqHZnn312WrVqlSuvvLK6U6nghRdeyEMPPZSf/exnadKkSXWnAwAAAAAAALDZ1azuBAAAAAAAAKBmzZp59dVXqzuNSvbbb7+UlpZWdxoAAAAAAAAA1UYRIgAAAAAAfIntvPPOCqQAAAAAAAAAgE2mRnUnAAAAAAAAAAAAAAAAAAB8MSlCBAAAAAAAAAAAAAAAAACqpAgRAAAAAAAAAAAAAAAAAKiSIkQAAAAAAAAAAAAAAAAAoEqKEAEAAAAAAAAAAAAAAACAKilCBAAAAAAAAAAAAAAAAACqpAgRAAAAAAAAAAAAAAAAAKiSIkQAAAAAAAAAAAAAAAAAoEqKEAEAAAAAAAAAAAAAAACAKilCBAAAAABYD88991yuvfbaHHvssdlxxx1TUFCQOnXqrFXs8OHD0759+9SvXz+NGzdOz549M2XKlPXKo2vXrikoKFjl12OPPbZZ8tgQy5cvz6233ppu3bpl2223TWFhYXbcccccd9xxGTNmzGbPZ3MoKCjIzjvvvMHzvP322ykoKEjXrl03eK51tWDBglx11VXp0KFDttlmm9SqVStNmzbNIYcckuuuuy7z58/f7DklSb9+/VJQUJAJEyZs8rV23nnnFBQUrFfsP/7xj5x//vlp06ZNttpqq/LP/ZFHHpnhw4dn2bJlGznbTau4uDhNmjTJiSeeuMoxU6ZMyamnnpqdd945derUSePGjXPQQQfl2muvzaJFi9a4xoZ85v72t7/llFNOyS677JItt9wyW265ZVq1apXTTjstTzzxRIWxL7zwQgoKCvLb3/527d8AAAAAAAAA2ETGjh2bo48+Otttt11q166dJk2aZK+99srJJ5+cP/7xj1+6s0W+nGpWdwIAAAAAwFfDzpc8XN0prNHb1/baaHNdddVVGTVq1DrHDRgwIIMHD07dunXTo0ePlJSUZOzYsXn88cdz33335ZhjjlmvfI477rjUr1+/UvuOO+64WfNYV++880569uyZV155JXXr1k2nTp3SpEmTvPPOO3nwwQfzwAMP5Ljjjstdd9211kWerFlBQUF22mmnvP322+sV/9BDD+XUU0/NwoUL06hRoxx44IFp3LhxFixYkGnTpmXixIn51a9+lSlTpmTvvffeuMmvp5133jnvvPNOSktLqzuVXHbZZfnVr36VTz/9NC1atEi3bt1St27d/L//9//y2GOPZfTo0bnyyivzxhtvbJZ87rjjjvTv3z+XXXZZLr/88vWa41e/+lWKi4vzy1/+slLfypUr8+Mf/zg333xzkmTffffNQQcdlEWLFmXy5Mn52c9+lt/97ncZM2ZM2rZtW+X86/uZW7RoUU4++eQ89NBDSZJ99tkn+++/f5Lktddey/DhwzN8+PCcfvrpuf3225Mk++23X4488shcc801OeOMM9K4ceP1ek8AAAAAAADYuK4/897qTmGtXHhb340212WXXZYrr7wySdKmTZt07NgxW2yxRV599dXcfffd+ctf/pLevXtnu+22S7LhZ8Hr4/LLL88VV1yRYcOGpV+/fpttXTYvRYgAAAAAAOuhQ4cO2XffffOtb30r3/rWt8r/QX91xo8fn8GDB6dJkyaZOnVqWrZsmSSZOnVqunbtmv79+6dr167Zeuut1zmf66+/fq1v1tuUeayLhQsXpmvXrnn77bfzve99L7feemuFNWfPnp0TTjgh999/f1auXJkHHnhgk+azOf3jH/9IrVq1qjuN9fK3v/0txxxzTGrUqJFBgwblvPPOq7CXZcuW5a677srPf/7zarkN8de//nUuueSStGjRYrOvvTYGDhyYX/3qV2nWrFmGDh2anj17VugvKirK9ddf/6W6he9f//pXbr755hx55JHZa6+9KvVfcMEFufnmm9OiRYvcc8896dChQ3lfSUlJLrnkkgwZMiTdunXLzJkzs9NOO1WIX9/P3KeffpojjjgiTz31VA488MDcfvvtlYpiX3vttfziF7/InDlzKrT/7Gc/y0MPPZTf/OY3+c1vfrNB7w8AAAAAAACsjxkzZuTKK69M7dq1M3LkyEpni//85z/zxz/+MYWFhdWUIV8nNao7AQAAAACAL6OLL744V1xxRY444og0a9ZsrWIGDRqU5LMipLLCv+SzgsZzzjknCxcuzNChQzdJvl/EPC6++OK8/fbb6dGjR/7yl79UKnrcY4898sQTT2S77bbLyJEj89e//nWT57S57LHHHtltt92qO4119sknn+TUU0/NypUrc9ttt2XAgAGViilr166d008/Pc8999xaF8ZuTNtvv3322GOPbLnllpt97TWZPn16rrnmmtStWzdPPvlkpUPCJNl6663zq1/9KuPHj6+GDNfP0KFDs3Tp0px66qmV+qZOnZohQ4akbt26GTt2bIUCxCSpU6dObrzxxpxxxhkpLi7OOeecU6F/Qz5zN954Y5566qnsvffeGT9+fJW3crZq1Sr33XdffvWrX1VoP+igg7L77rtn6NChWbZs2bq+JQAAAAAAALDBRo4cmSTp27dvlWeLO+64Yy6//PJN/oBhSBQhAgAAAABsFiUlJRk3blySpE+fPpX6y9pGjx79tchjwYIFufPOO5N8VihUo0bV/1zdtGnTXHrppUn+r3gySXr37p2CgoI89thjVcYtW7YsjRs3Tt26dfPRRx9V6Pv73/+ek08+OTvuuGMKCwuzww47pH///nn77bcrzXP55ZenoKAgd9xxR5599tkcccQRadKkSQoKCjJz5sxMmDAhBQUF6devXz788MP893//d7bffvsUFhamTZs2qyzmLCgoqLJAr7S0NLfeemvatGmTOnXqpHnz5vnxj3+cjz/+OF27dk1BQUGVeSbJkiVLcskll2SnnXZKYWFhdt999/zmN79JaWlp+Zg77rgjBQUFSZJ33nknBQUF5V9du3atct7PGz58eN5///0ceOCBOe2001Y7dscdd6ywxzfeeCOXX355OnTokO222y61a9dO8+bNc+qpp+a1116rco6y92nZsmW57LLLsttuu6VOnTrZddddc+mll6akpKRSTL9+/VJQUJAJEyYkSfn36J133imfs+xrQ/NbV4MGDUppaWnOP//87Lnnnqsd26lTp0ptr7zySk4++eRsv/32qV27dnbccceceuqpefXVV6uc45lnnskxxxxT/pnYbrvt0r59+/zsZz/LokWLkqT89tMkueKKKyq8P3fcccca91RaWprbb789jRo1Sq9evSr1Dx48OKWlpTnvvPPSqlWrVc5z3XXXpU6dOnnsscfy8ssvl7ev72fu008/zQ033JDks5ti11SU2rFjx0ptJ554Yj744IPyw10AAAAAAADYnObPn58k2WabbdY4dm3PgmfOnJmLLroo+++/f7bZZpsUFhZm1113zbnnnpt333230rxvv/12+RwfffRRLrjgguyyyy6pVatWfvzjH2fnnXfOFVdckSTp379/hXXLzmw/f+5elZ133rk89zKfP4v/17/+lX79+qVZs2apW7du2rVrl+HDh6/xPWHjqlndCQAAAAAAfB3Mnj07S5cuzTbbbJPmzZtX6m/Xrl2S5MUXX1yv+W+//fYsWLAgNWrUSKtWrXL00UenRYsWmz2PtfXkk0+mpKQkbdu2XWMx1gknnJAf/OAHmT59ehYsWJAmTZrk5JNPzpgxY/LnP/853/nOdyrFPPLIIykqKsrxxx+fhg0blrfff//9Oemkk7Js2bLsv//+OfjggzNnzpzccccdGT16dPmtaf9p4sSJOfvss9OqVav06NEj7777boXCyeLi4nTo0CELFy5M+/bts2jRokycODFnnHFGVq5cmTPPPHOt3pcf//jHuemmm1JYWJju3bunbt26+dOf/pQpU6akZs1V/5P+smXL0qNHj7z88stp37599txzzzz11FO55JJL8vHHH+fqq69Okuy+++457bTTcuedd6ZevXoVClH32GOPNeb38MMPJ0lOOumktdrP59122235zW9+k7322isHHHBA6tSpk1deeSV/+tOfMmrUqEyaNCn77LNPpbjS0tL06dMnTzzxRLp37562bdtm3LhxueqqqzJlypT87W9/yxZbbLHKdbfbbrucdtppGTFiRBYvXlyhkK1p06YbnN/aWrlyZXnR7Pq8f+PGjUvv3r2zZMmStGvXLl27ds3s2bPzpz/9KSNHjswjjzySzp07l49/+OGHc+SRR6agoCAdO3bMwQcfnKKiorz22mu59tpr8/3vfz/169fPd77znaxYsSJPP/109t1337Rt27Z8jt13332Neb3yyit566238t3vfje1a9eutOe//e1va7Xnxo0b5zvf+U4efPDBPPbYY+U/h+v7mZs5c2befffdNGnSJD169Fin2DJdu3bNVVddlYcffjjf+9731msOAAAAAAAAWF9lZ/r3339/fvazn622GHFtz4KvvfbajBgxIm3atEnHjh3LH8B766235sEHH8yMGTOyww47VJp/yZIlOeSQQ/LOO+/kkEMOSbt27bL11luXn+XOmjUrHTt2rHDGuN12223we/Dhhx/moIMOytKlS9O1a9cUFRXlySefzGmnnZa33norl1122QavwdpRhAgAAAAAsBnMnTs3Saos/EuSevXqpVGjRikqKsrHH3+cBg0arNP8ZUVmZS688ML88pe/zC9/+cvNmsfamjlzZpJk//33X+PYrbfeOrvuumvmzJmTmTNnpnv37jnqqKNSv379PPjgg/nkk08q3XL2l7/8JUly8sknl7e99dZbOfXUU1O3bt2MHTs2Xbp0Ke8bPnx4TjvttPTv3z/PPvtspRyGDRuW3/zmN7nooosqtJc9uXHUqFE57rjjyg90ytqOPvroXHXVVWtVhDh58uTcdNNNadq0aSZOnFhenFlUVJTDDz88U6dOXWXs1KlT07lz57z22mvlhXUzZsxIhw4dMnjw4FxyySWpX79+OnXqlE6dOuXOO+9M06ZN1+qmu8974YUXkvxfseq6OProo3PWWWdlt912q9A+bNiwnH766fnxj3+c8ePHV4qbO3duVq5cmZdeeim77rprks+e+HnooYdm3LhxueWWW3L++eevct099tgjd9xxRyZMmJDFixevcs/rm9/aevPNN7Nw4cIUFhZWWei6OosXL87JJ5+cJUuW5NZbb80555xT3jd48OAMGDAgJ510Ut54440UFhYmSX7729+mtLQ0zz77bKWfs2effTZNmjRJklxyySXZbrvt8vTTT+foo4/O5Zdfvk65TZo0KUnyrW99q1Lfm2++mY8++qj8ZtA12X///fPggw+W//mQrP9nriyubdu2q7xpdU2+9a1vpUaNGuV7BAAAAAAAgM3p5JNPzq9//evMnTs3u+++e44++uh07tw5HTp0yF577VXh9sC1PQs+++yzM3jw4Gy//fblbStXrszVV1+dyy67LAMHDszQoUMrxT377LPp0KFD3nzzzTRq1KhC3+WXX55Zs2blzDPPTL9+/TbG1suNHj06hx9+eEaOHFl+Fj99+vQceuihufLKK3PUUUdVeNAqm876nboCAAAAALBOFi1alCSViuU+r+wfzMvGro0uXbrkT3/6U+bMmZNPPvkkr776an71q1+lZs2aufTSSzNkyJDNkse6WrBgQZJk2223XavxZU90/OCDD5IkdevWzTHHHJNFixbloYceqjD2448/zpgxY7L11lvnu9/9bnn7kCFD8sknn+S6666rUICYJKeeemqOPvroTJ8+Pc8//3yl9du0aZOf/vSnq8yvYcOG+cMf/lD+3iXJUUcdlW9+85uZO3du3n777TXu8X//93+TJBdccEGF2yG33nrr/Pa3v11tbI0aNXLbbbdVuNnvgAMOyHe/+9188sknmTFjxhrXXxtl37fVPWFzVQ466KBKBX5J0r9//3Ts2DETJkzIwoULq4y99NJLywsQy9Yve09uueWWdc5lY+e3Nsreu6233nq1NzdW5d577817772Xzp07VyhATJKf/OQn2X///TNv3ryMHDmyvP3999/PVlttVWWhb/v27TdagXHZramtW7eu1Fe258aNG6/Vnv/z5/zzc6zrZ25DPqtlGjRokO233z5vv/12Pvroo/WeBwAAAAAAANbHbrvtllGjRmWHHXbIRx99lOHDh+ess85KmzZtst122+Wiiy5KcXHxOs156KGHVihATD47b7700kuz4447ZtSoUauMvemmmyoVIG5qBQUFufnmmyucxX/rW9/KD37wg6xcuTK33nrrZs3n60wRIgAAAADAZlBaWpokFZ5EuKox6+LKK6/MKaeckl133TV169ZNq1at8vOf/zwPPvhgkuSyyy7LkiVLNnke66psjbVdq6q8y245LLv1sMzIkSOzZMmSHH/88aldu3Z5+9ixY5N8VhxYlU6dOiX57KmJ/6l3796rfc8OOOCANG7cuFJ7q1atkiT/+te/VhlbZsqUKUmS448/vlJft27dym+uq8rOO+9cvtb6rr85LFq0KHfffXcuvvjinHXWWenXr1/69euXf/3rXyktLc2cOXOqjDvhhBMqtX3nO9/J1ltvnddeey3z58+v1vzWxob8XJXdxPf5mz0/75RTTqkwLvnsVsHi4uKcccYZeemll9Z77TV5//33k3xWXPmfNsbP+fraWH+Olf1cb6zPGAAAAAAAAKyLHj165M0338y9996bs846K/vss09q1KiR999/P7/97W/zrW99a53PshYsWJBhw4blggsuyBlnnFF+Lrp8+fJ8+OGH+fDDDyvFbL/99jnggAM21rbW2n777VflA1FPPPHEJMnkyZM3d0pfWzWrOwEAAAAAgK+DslvHFi9evMoxn3zySZKkfv36SZIHH3ywvJjw8+644441rtejR48ccMABmTFjRqZNm5Zu3bqtdx6rc+GFF1a4tSz5rJjvzDPPXG1c2Y19ZQVMa1J2aPL5QrzDDjsszZo1y2OPPZYPP/ywvFiorCjxPwu2ym4j3G677Va71n/uJ0latGix2pjmzZtX2V72Hi5dunS18Uny7rvvpqCgYJVztWjRovx2t02x/tpo0qRJ/vnPf2b+/PlVHvSszvjx43PCCSes9gDs448/rtS29dZbr/LWvp122ilFRUV59913N+jGuw3Jb22VfeaLiory6aefrtNtiO+++26Sz4pNq1LWXjYuSa655pr8/e9/z9ChQzN06NA0bdo0Bx98cI4++uicdNJJKSwsXL+N/Iey2yGr+h6V7fnDDz9cqz1X9XO+vp+5srU3tHiwYcOGSbJBt2ACAAAAAADAhigsLMzxxx9f/kDb+fPn54477sjll1+eN954Iz//+c/zxz/+ca3muvvuu3P22Wdn0aJFqxzz8ccfV3oI75rOzDeVnXbaqcr2qs5I2bQUIQIAAAAAbAZl/yA/b968KvsXL16c4uLiNGrUqLyYZ+bMmbnzzjsrjV2bIsQkadmyZWbMmFHhFrz1yWN1RowYkXfeeadS+5qKEPfdd98kyXPPPbfGNT788MO89dZbFeKSZIsttsj3vve93HTTTbnvvvvy/e9/P/Pnz8+4cePyjW98I507d64wz6effpqCgoKceuqpq11v7733rtRWp06d1cZsjJvb1mR1N7ttjvWTpG3btvnnP/+Z559/vvzmyLWxaNGi9O3bNwsWLMgvf/nLnHjiidlpp51St27dFBQU5KSTTsrdd9+9zrfXbazb7jZVfp+36667ZquttsrChQvz8ssvZ5999lnnOdb0ff58/ze+8Y3MmDEj48ePz5gxY/LUU09l9OjReeihh3LddddlypQpVd5euK622mqrJMlHH31UqW/XXXdNw4YN89FHH+Xvf/972rZtu9q5yv48+Py49f3Mlc0xc+bMlJaWrvfPSFnxYdk+AQAAAAAAoLpts802+elPf5q6devmvPPOy8MPP7xWce+880769euX0tLS3HjjjenVq1d23HHH1K1bN0ly8MEHZ+rUqVWei67pzHxDrFy5cpPNzcZTo7oTAAAAAAD4OmjdunUKCwszf/78KgsAn3/++SSpUJh0+eWXp7S0tNLX2ioqKkpS8UbD9cljdd5+++1K+a1NkeShhx6awsLCzJo1K6+88spqx95zzz0pLS3NAQccUH67WZmy2w7//Oc/J0n++te/ZsWKFTnppJMqFR01b948paWluemmm3LHHXes8uvoo49eq71vbNtvv31KS0tXWSC6qvbNqVevXkk+ezrmupg0aVIWLFiQ4447LldeeWX23HPPbLnlluXfozfffHOVsUVFRau8gXDu3LlJPnvvNsSG5Le2atSokW9/+9tJ/u+2zrW1ww47JEl5Me5/KisE/s/3oWbNmunRo0duuummzJo1K2+//XYOPfTQzJ49O9dee+26bqFK2267bZLPioX/U40aNXL44YcnWfNn5sMPP8zf/va3JCl/n5L1/8ztt99+2X777bNgwYLyeddH2Z+jG3rTJgAAAAAAAGxsXbt2TZJ88MEHazX+kUceybJly3L++efnRz/6UXbffffyAsRk45yLVqV27dpJUuXti59++mn+/e9/rzK2qocif7697CyVTU8RIgAAAADAZlC3bt0ceuihST67PfA/lbUdccQRG2W9+fPnZ9KkSUmSdu3aVVseq9KkSZPyGwl/8pOfrPLJhh988EGuuuqqJMmAAQMq9bdv3z4tW7bM5MmTM3fu3PLirrLixM877LDDkiQPPvjgxtjCRnfwwQcnqfr7MmHChLU+OFobtWrVyooVK9Y57tRTT80222yTadOmVXlL5+e9++67efvtt5P8XyHXN77xjUrj3njjjfLi11X561//Wqntb3/7W4qKitKyZcvyQrjVKTvYqmrfG5rf2howYEAKCgpy00035R//+Mdqx06ZMqX8/8tu9Swrtv1PZe3/efvnf2rRokUuvvjiJMnf//738vbVvTdrUnY76ezZs6vs/8lPfpIkufnmm/Paa6+tcp6LLrooJSUl6dGjR9q0aVPevr6fuS222KJ87QsvvDCffPLJamM//36X+eijj/Luu+9ml112ScOGDVcbDwAAAAAAABvbmh5SPGfOnCQVC/FWdxa8unPRiRMn5r333luvPNd03lj2MNWqzgvHjx+f5cuXr3LumTNnVhlX9hDTjh07rnO+rB9FiAAAAAAAm0lZEd3VV1+d119/vbx96tSp+f3vf5+GDRvmjDPOWOv5pk2blieffLLSwcPbb7+dY445JosXL86RRx6Z5s2bb9I81tdvfvObtGjRIo8//nhOOumk8gOPMq+++moOO+yw/Pvf/86RRx6ZE088scp5TjrppJSWlubXv/51pk6dmjZt2uSb3/xmpXEXXHBB6tatm5/85CcZPXp0pf4PP/ww//M//5MlS5ZsnA2uo7PPPjtJMmjQoLz66qvl7cXFxbnooos26lo77LBD3nvvvRQXF69TXL169XLHHXekRo0aOfPMMzN48OBKB0IrVqzI8OHDs//++5cXhLVq1SpJ8sADD2T+/PnlY4uLi3PGGWes9lApSa688sryuZLPilPL3pNzzz13rXIvO3j7/HtbZkPzW1sHHnhgLrrooixZsiSHHnpoHnnkkUpjFi5cmMsuuyzdunUrb+vbt2+aNWuWSZMm5Q9/+EOF8TfddFOmT5+e5s2b55hjjilvHzx4cJWHhI899liSzwoSy6zuvVmTssLHZ599tsr+jh075rzzzsuSJUvSo0ePTJs2rUJ/SUlJfvKTn+T222/PVlttlf/93/+t0L++n7nkswLITp065eWXX0737t2rvHX1zTffzAknnJCf//znlfqmT5+e0tLSNRZ3AgAAAAAAwKbwy1/+MhdddFHeeuutSn2vv/56LrjggiTJscceW96+urPgsnPRu+66K4sXLy5v/+c//5lzzjlnvfNc03njIYccUr7u58/z3nzzzZx33nmrnXvlypU5//zzKzx09Lnnnsstt9ySGjVq5Pvf//565826qVndCQAAAAAAfBk9/PDD5Tf0lVm2bFkOOuig8te//OUv06tXr/LXhx12WH70ox9lyJAhadu2bQ4//PAsW7YsY8eOzcqVK/PnP/85jRs3XuscZs+enf79+2f77bdPq1atst1222XevHl57rnnUlJSkr333jt//OMfK8Vt7DzW19Zbb50JEyakZ8+e+etf/5qHHnoonTt3TpMmTfLOO+9k2rRpWblyZY4++ujyGw6rcvLJJ+eKK64oL1465ZRTqhzXsmXL3HXXXTnllFNy5JFHpnXr1tlzzz1TWlqad955J6+88kqWLVuWk046KXXr1t0ke16dQw45JD/4wQ9yyy23pG3btunevXvq1q2bJ598MjvvvHMOOuigTJs2rfwpkhviyCOPzM0335x27drl4IMPTp06ddK6dev89Kc/XWNsz549M2LEiJx22mkZMGBArrzyyhx00EFp3LhxFixYkGeeeSbFxcVp1KhR+Q2FBxxwQA4//PCMHTs2rVq1SteuXZN8dsNj06ZNc9RRR2XUqFFVrteiRYvss88+2XvvvdO9e/fUqlUr48ePT3Fxcbp165Yf/vCHa73np556Kt27d0+3bt1Sr169NG3aNNdee+0G5beufv3rX6dmzZr59a9/nV69emWnnXbKfvvtl7p162bevHl55plnsmzZsrRs2bI8pl69evnzn/+c3r175/vf/37+8Ic/pFWrVpk9e3ZeeOGF1KtXL3/5y19SWFhYHnPFFVfkwgsvzL777puWLVumtLQ0L774Yl599dU0bdq0wvf6oIMOyrbbbpsRI0aka9eu2XXXXVOjRo2cfvrp5Td0rsqee+6ZXXbZJdOmTUtJSUnq1KlTacyNN96YFStW5NZbb02HDh2y3377pXXr1lm0aFEmT56c4uLibL/99hkzZkx22WWXSvHr85lLkpo1a+bhhx/OiSeemEceeSRt2rSp8H68/vrrmTVrVpLkrLPOqrTuhAkTytcHAAAAAACAzW3RokUZMmRIrr/++vLz7Vq1amXu3Ll59tlns3Llyuy///657LLLymNWdxZ85JFHZu+9986MGTOy++67p2PHjikpKcmTTz6Ztm3b5uCDD86UKVPWOc8ePXqkTp06GTx4cF566aXssMMOKSgoyE9/+tO0bt06u+66a0499dQMHz48bdu2TZcuXbJ48eJMmzYtvXr1SklJSd55550q5z7iiCPy4osvZrfddkuXLl2ycOHC8tsTBw4cmP3333+931/WzZfyJsQJEyakoKBgjV9XXnllpdjhw4enffv2qV+/fho3bpyePXuu8QdkypQp6dmzZxo3bpz69eunffv2ufPOO1cbM2/evJx++unZYYcdUqdOnbRq1SqXXnppSkpKNmjvAAAAAMAXw/z58/PMM8+UfyVJaWlphbbP36hW5sYbb8ywYcOy5557ZuzYsZkyZUq6d++ep556Kscdd9w65XDggQfmv//7v7P99tvnlVdeyf3335+XXnopbdu2zaBBgzJ9+vQKBTmbKo8Nscsuu2TWrFm55ZZb0r59+zz33HMZMWJE3nrrrRx55JEZNWpURo4cudqiwJYtW+Zb3/pWkqSgoGCVNyYmnz0BctasWfn+97+f5cuX59FHH82ECROydOnSnHzyyRkzZky22mqrjb7PtXXzzTfn5ptvzi677FL+fTnhhBMyfvz4fPDBBykoKMjWW2+9wev8+te/zg9/+MOsWLEif/3rX3P77bfn4YcfXuv4Y445Jm+++WYuv/zytG7dOs8++2zuvffezJgxI/vss09++9vfZs6cOdlrr73KY0aNGpVf/OIX2WabbfLoo4/mueeeywknnJBp06alUaNGq1yroKAgI0aMyI9//OP8/e9/L/8e/eIXv8jDDz+cmjXX7nmL559/fgYOHJj69evn/vvvz+2335577rlng/NbVwUFBbn66qvz4osv5gc/+EG23HLLjBs3LiNGjMicOXPy7W9/O3fddVdefvnlCnHdu3fP9OnTc+KJJ2bevHkZMWJE/v3vf+eUU07Jc889V+m2vptvvjknnHBCPvnkkzz66KN57LHHssUWW+TCCy8sP6QrU6dOnTz88MM5/PDDM3PmzNxxxx25/fbb89prr63Vfs4888x8/PHHVd4wmiQ1atTI//zP/2TSpEk5+eST88EHH2TkyJGZNGlSWrZsmWuuuSavvvpq2rVrt8p11uczlyQNGzbMww8/nEceeSQnnHBCioqKMnr06Dz88MP55JNPctppp2X8+PGVbphMkrvvvjtNmzatcMMkAAAAAAAAbC4DBw7M8OHDc9JJJ6VmzZp56qmn8sADD+SNN97IIYcckltuuSVTpkypcMa9urPg2rVrZ9KkSfnv//7v1KlTJ2PGjMk//vGPnHfeeRk7dmxq1aq1XnnusMMOGTVqVA466KBMnjw5Q4cOze23355//etf5WP++Mc/5pJLLknDhg3zt7/9Le+8805+/vOf5+67717t3E2aNMnUqVNz2GGH5cknn8yECROy1157ZdiwYZUeHM2mVVBaWlpa3Umsq9mzZ+faa6+tsu/TTz/NXXfdlSQZP358unXrVt43YMCADB48OHXr1k2PHj1SUlKScePGpbS0NPfdd1+Vh8gjR47M8ccfn5UrV6ZLly5p2rRpxo0bl+Li4vzkJz/JDTfcUClmzpw56dChQ+bPn582bdpkr732yowZM/Lmm2+mQ4cOefLJJys8jXh97L333klS6ZcQqNo37/xmdaewSX38j6p/Hr4q3r6215oHAQAAAJvEypUr8+qrryZJWrdunRo1vpTPNYMvvX/+85/Zeeeds/vuu+cf//hHdaez2RQUFGSnnXbK22+/Xd2psBr//ve/s8suu+Twww/PQw89VN3pbBRTp07NwQcfnIsuuii/+c1v1jne3598lTiXXDfXn3lvdafAZnThbX2rOwUAAAAA+EpwtsJ/mjBhQrp165bTTjstd9xxR3Wn84W1OX921u7xwF8we+yxxyo/QI8++mjuuuuufOMb38ghhxxS3j5+/PgMHjy4vAK2ZcuWST47RO7atWv69++frl27VniCdFFRUfr3759PP/00999/f4499tgkyXvvvZdOnTpl8ODB6d27d4VCxyQ5/fTTM3/+/Jx//vkZMmRIkmTFihXp27dvRo4cmWuuuSZXXHHFxnxLAAAAAAD4Cpg9e3Z22mmnCjc/zp8/P/3798+KFSty0kknVWN2ULXtttsu5513Xq6//vq8/PLL5QVLX2bXXnttGjVqlIsuuqi6UwEAAAAAAACodl+50uCyWxBPPvnkCtWbgwYNSvLZVaRlBYhJ0qFDh5xzzjlZuHBhhg4dWmGu2267LQsXLsxRRx1VXoCYJM2aNct1112XJJVuQpw+fXomTpyYbbfdtnxMktSsWTO33npratWqlZtvvjnLly/fSDsGAAAAAOCr4sYbb0yzZs1yyCGH5IQTTki3bt2y++67Z+zYsWnXrl0uvPDC6k4RqvTzn/88W2+9da666qrqTmWDvfDCC3nooYfys5/9LE2aNKnudAAAAAAAAACq3VeqCHHx4sUZNWpUkuSUU04pby8pKcm4ceOSJH369KkUV9Y2evToCu1jxoxZZUyvXr1Sp06dPPHEEykpKakU07t37xQWFlaIadasWTp37pyioqI8/fTT67w/AAAAAAC+2o499th07do1c+bMyYMPPphnn302O+20Uy6//PI89dRTFW5IhC+SRo0aZcGCBbnnnnuqO5UNtt9++6W0tNQtiAAAAAAAAAD/v5rVncDG9MADD2Tx4sXZb7/9svfee5e3z549O0uXLs0222yT5s2bV4pr165dkuTFF1+s0F72uqz/82rXrp02bdpkxowZefXVV7PvvvsmSWbNmrXKmLL28ePHZ9asWenateu6bxIAAAAAgK+sHj16pEePHtWdxhdGaWlpdacAAAAAAAAAwGbWtWtX58VfMF+pmxDvuuuuJMl//dd/VWifO3duklRZgJgk9erVS6NGjVJUVJSPP/44SfLRRx+luLh4tXFl7WXzr81aVcUAAAAAAAAAAAAAAAAAwBfRV+YmxH//+98ZN25ctthii5x44okV+hYtWpQk2XLLLVcZX69evRQXF2fRokVp0KBBeczq4urVq1dh/rVZq6qY1fn8jY6fN2fOnOy2225rNQcAAAAAAAAAAAAAAAAArI+vzE2If/nLX/Lpp5/m8MMPz3bbbVehr+z6zYKCglXG/+cVnWtzZWdVY9a0lqtAAQAAAAAAAAAAAAAAAPiy+MrchHjXXXclSf7rv/6rUl+DBg2SJIsXL15l/CeffJIkqV+/foWYsr6GDRuuMWZt1qoqZnVefvnlKttXdUMiAAAAAGxMn3/Y1sqVK1OjxlfmuWYAsMmsXLmy/P9X95BMAAAAAAAA/G4CrK/NeS75lfip/Mc//pEXXngh9evXz9FHH12pv0WLFkmSefPmVRm/ePHiFBcXp1GjRuVFhA0bNsxWW2212riy9rL512atqmIAAAAA4IuqoKAgtWvXTrL6h3wBAP+n7O/M2rVrK0IEAAAAAABYA7+bAOtnc55LfiVuQvzTn/6UJDn22GOz5ZZbVupv3bp1CgsLM3/+/MybNy/Nmzev0P/8888nSfbZZ58K7fvuu28mTpyY559/PnvttVeFvuXLl+ell15KYWFhWrduXSFm1KhR5XP+p1WtBQAAAABfVA0aNMiCBQvy3nvvJUnq1avnqYMAUIWVK1dm8eLF5X9nlj38kq+f5557LmPHjs2zzz6bZ555Ju+++24KCwtTUlKy2rjhw4fnd7/7XV555ZXUrl07Bx10UAYOHJiDDz54lTFTpkzJ1VdfnWnTpmXZsmXZa6+98oMf/CCnnXbaxt4WAAAAAABsMn43AdZedZxLfumLEEtLS/OXv/wlSfJf//VfVY6pW7duDj300Dz66KMZMWJEfvzjH1foHzFiRJLkiCOOqNDeq1evTJw4MSNGjMgpp5xSoW/MmDEpKSlJz549U6dOnQoxV155ZUaPHp2lS5emsLCwvO+9997LpEmTstVWW6VTp07rvWcAAAAA2JyaNGmSxYsXp6SkJO+++251pwMAXwp16tRJkyZNqjsNqslVV12VUaNGrVPMgAEDMnjw4NStWzc9evRISUlJxo4dm8cffzz33XdfjjnmmEoxI0eOzPHHH5+VK1emS5cuadq0acaNG5d+/fpl1qxZueGGGzbWlgAAAAAAYJPyuwmwfjbXueSXviR40qRJeeedd7LDDjvk0EMPXeW4AQMGJEmuvvrqvP766+XtU6dOze9///s0bNgwZ5xxRoWYM888Mw0bNsyoUaPywAMPlLe///77ueiiiyrMW6Z9+/bp2LFj3n///Vx88cXl7StWrMi5556b5cuX57zzzkutWrXWf9MAAAAAsBltscUWadGiRZo0aZLatWtXdzoA8IVWu3btNGnSJC1atMgWW2xR3elQTTp06JBLL700o0ePzr///e81jh8/fnwGDx6cJk2aZNasWXnwwQfz2GOPZeLEidliiy3Sv3//FBUVVYgpKipK//798+mnn2bEiBGZMGFCRowYkdmzZ2f33XfP4MGD8+STT26qLQIAAAAAwEbldxNg3Wzuc8kv/U2Id911V5Lk5JNPXu01q4cddlh+9KMfZciQIWnbtm0OP/zwLFu2LGPHjs3KlSvz5z//OY0bN64Q07hx4wwdOjR9+/ZNnz59csghh6Rp06Z54oknUlxcnPPPPz/du3evtNawYcPSoUOHDBkyJOPHj89ee+2V6dOn580338yBBx6YX/ziFxv3TQAAAACATWyLLbbItttum2233TalpaUpLS2t7pQA4AunoKAgBQUF1Z0GXwCff1jp2hg0aFCSZODAgWnZsmV5e4cOHXLOOefkpptuytChQ3PBBReU9912221ZuHBhjjrqqBx77LHl7c2aNct1112XY489NjfccEO6deu2gbsBAAAAAIDNw+8mwNqpjnPJL3UR4tKlSzNixIgkySmnnLLG8TfeeGPatm2b3/3udxk7dmxq1aqV7t27Z+DAgenUqVOVMccdd1wmTpyYq6++OtOmTcuyZcuy55575gc/+EH69+9fZUzLli3zwgsv5NJLL81jjz2WkSNH5hvf+EYGDhyYn//856lTp876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SREiAAAAAAAAAAAAAAAAAFAlRYgAAAAAAAAAAAAAAAAAQJUUIQIAAAAAAAAAAAAAAAAAVVKECAAAAAAAAAAAAAAAAABUSREiAAAAAAAAAAAAAAAAAFAlRYgAAAAAAAAAAAAAAAAAQJUUIQIAAAAAAAAAAAAAAAAAVVKECAAAAAAAAAAAAAAAAABUSREiAAAAAAAAAAAAAAAAAFAlRYgAAAAAAAAAAAAAAAAAQJUUIQIAAAAAAAAAAAAAAAAAVVKECAAAAAAAAAAAAAAAAABU6UtbhNi1a9cUFBSs8uuxxx6rMm748OFp37596tevn8aNG6dnz56ZMmXKateaMmVKevbsmcaNG6d+/fpp37597rzzztXGzJs3L6effnp22GGH1KlTJ61atcqll16akpKS9d4zAAAAAAAAAAAAAAAAAGxONas7gQ113HHHpX79+pXad9xxx0ptAwYMyODBg1O3bt306NEjJSUlGTt2bB5//PHcd999OeaYYyrFjBw5Mscff3xWrlyZLl26pGnTphk3blz69euXWbNm5YYbbqgUM2fOnHTo0CHz589PmzZt0rlz58yYMSNXXXVVnnjiiTz55JMpLCzcOG8AAAAAAAAAAAAAAAAAAGwiX/oixOuvvz4777zzGseNHz8+gwcPTpMmTTJ16tS0bNkySTJ16tR07do1/fv3T9euXbP11luXxxQVFaV///759NNPc//99+fYY49Nkrz33nvp1KlTBg8enN69e6dbt24V1jr99NMzf/78nH/++RkyZEiSZMWKFenbt29GjhyZa665JldcccVGegcAAAAAAAAAAAAAAAAAYNOoUd0JbC6DBg1KkgwcOLC8ADFJOnTokHPOOScLFy7M0KFDK8TcdtttWbhwYY466qjyAsQkadasWa677rokqXQT4vTp0zNx4sRsu+225WOSpGbNmrn11ltTq1at3HzzzVm+fPlG3yMAAAAAAAAAAAAAAAAAbExfiyLEkpKSjBs3LknSp0+fSv1lbaNHj67QPmbMmFXG9OrVK3Xq1MkTTzyRkpKSSjG9e/dOYWFhhZhmzZqlc+fOKSoqytNPP70BOwIAAAAAAAAAAAAAAACATe9LX4R4++2359xzz80Pf/jD3HTTTZk7d26lMbNnz87SpUuzzTbbpHnz5pX627VrlyR58cUXK7SXvS7r/7zatWunTZs2KSkp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AAAAwNfCxx9/nAYNGpS/Li0tzTPPPJP9998/TZo0KW9v3bp15s2bVx0pAgAAAAAAwBdOzU29wOuvv54PPvggTZo0SatWrTb1cgAAAAAAAABV2nHHHfPWW2+Vv54xY0YWLlyYrl27Vhi3YsWK1K5dezNnBwAAAAAAAF9Mm+QmxCVLluTiiy9OkyZNsscee6RTp0659tpry/uHDRuWdu3aZebMmZtieQAAAAAAAIBKOnTokGeffTajRo3KRx99lKuvvjoFBQXp3bt3hXH/+Mc/suOOO1ZTlgAAAAAAAPDFstGLEBcvXpxDDjkk119/fQoLC9OrV6+UlpZWGNOlS5fMnDkzf/3rXzf28gAAAAAAAABV+sUvfpHCwsIce+yx2XrrrTN69Oh07do1Bx98cPmYt99+O6+88koOPPDAaswUAAAAAAAAvjhqbuwJf/Ob32TGjBk5++yzM2TIkBQWFqZGjYq1jrvttlv22GOPPPHEE/n1r3+9sVMAAAAAAAAAqGSPPfbI5MmTM2TIkMyfPz/7779/fvrTn1YY87e//S377rtvjj766OpJEmANLtzziupOgc2qb3UnAAAAAACw8YsQ//rXv2bnnXfOLbfcki222GKV43baaafMnDlzYy8PAAAAAAAAsEr77bdf7rjjjlX2f//738/3v//9zZcQAAAAAAAAfMHVWPOQdTN37tzsv//+qy1ATJKGDRumqKhoYy8PAAAAAAAAAAAAAAAAAGwkG/0mxHr16uWDDz5Y47i33norTZo02djLAwAAAAAAAKzR3Llz869//StLly5d5ZguXbpsxowAAAAAAADgi2mjFyHuv//+mTx5cv7f//t/+cY3vlHlmJdffjkvvPBCjjrqqI29PAAAAAAAAMAqDR06NFdddVXmzp27xrGffvrpZsgIAAAAAAAAvtg2ehHiD3/4w4wdOzbHHnts7r777uy+++4V+t95552ceuqpWblyZX74wx9u7OUBAAAAAAAAqjRs2LCceeaZSZJvfvObadWqVerXr1/NWQEAAAAAAMAX20YvQuzdu3d+8pOfZPDgwWndunX23HPPFBQU5PHHH88BBxyQF198MStWrMjFF1+crl27buzlAQAAAAAAAKp0ww03pGbNmrn//vvTu3fv6k4HAAAAAAAAvhRqbIpJBw0alHvuuSff/OY388orr6S0tDTvvvtunn/++ey2227505/+lF//+tebYmkAAAAAAACAKr3++uvp0qWLAkQAAAAAAABYBxt8E+LHH3+cBg0aVGrv27dv+vbtm/nz5+edd97Jp59+mubNm2fHHXfc0CUBAAAAAAAA1lnjxo1Tv3796k4DAAAAAAAAvlQ2uAixcePG2XfffdOpU6d07tw5nTp1SrNmzcr7t9lmm2yzzTYbugwAAAAAAADABjnqqKMyatSoLFmyJHXr1q3udAAAgM3g+jPvre4U2EwuvK1vdacAAADwlVVjQycoLS3N888/n5tuuil9+/bNDjvskNatW+fMM8/MnXfemTfffHNj5AkAAAAAAACwQa655po0bNgw/fr1S3FxcXWnAwAAAAAAAF8KG3wTYnFxcaZMmZLJkydn8uTJefbZZ/P666/n9ddfz7Bhw5Ik2223XTp37lz+tc8++2xw4gAAAAAAAACrc/rpp1dq23PPPTNixIg8/vjjOeCAA9K8efMUFBRUGldQUJDbb799c6QJAAAAAAAAX2gbXIRYv3799OjRIz169EiSfPrpp3nuuefKixKnTJmSf/3rX7n33ntz3333JUkaNmyYjh07pnPnzrn44os3NAUAAAAAAACASu64445V9i1cuDDjxo1bZb8iRAAAAAAAAPjMBhch/qctttgi7du3T/v27TNgwIAkyWuvvVZelDh58uS88cYbeeSRR/Loo48qQgQAAAAAAAA2iSeffLK6UwAAAAAAAIAvvY1ehFiVVq1apaSkJCUlJfnkk0/ywQcfpLi4eHMsDQAAAAAAAHxNHXLIIdWdAgAAAAAAAHzp1dgUky5btixPP/10rr322hxxxBFp3Lhx9ttvv/zwhz/MiBEjstNOO+Xcc8/NXXfdtSmWBwAAAAAAAKhk+PDhmTJlyhrHTZs2LcOHD98MGVX273//Oz/5yU/SqlWr1K1bN40bN87++++fiy66qMrxw4cPT/v27VO/fv00btw4PXv2XKs9AgAAAAAAwNraKDchfvTRR3n66aczefLkTJo0KdOnT8+yZctSWlqa+vXr58ADD0zHjh3TsWPHHHTQQWnQoMHGWBYAAAAAAABgrfXr1y/9+vXLwQcfvNpxt99+e4YOHZpTTz11M2X2malTp6Znz54pLi7OXnvtlSOPPDIff/xxXnnlldxwww257rrrKowfMGBABg8enLp166ZHjx4pKSnJ2LFj8/jjj+e+++7LMcccs1nzBwAAAAAA4Ktpg4sQ99tvv7z00ktZuXJlSktL07x58xx99NHlRYf77rtvatTYJBcuAgAAAAAAAGx0K1euTEFBwWZd8913303Pnj2zdOnSPPDAA5UKCJ999tkKr8ePH5/BgwenSZMmmTp1alq2bJnks0LGrl27pn///unatWu23nrrzbYHAAAAAAAAvpo2uDpw1qxZWblyZfbdd9/8+c9/zhtvvJG77747P/zhD7PffvspQAQAAAAAAAC+VN588800bNhws655ySWXpLi4ONddd12VNxi2b9++wutBgwYlSQYOHFhegJgkHTp0yDnnnJOFCxdm6NChmzZpAAAAAAAAvhY2+CbE7t2759lnn83MmTNzyimn5PTTT8+3vvWt8psQO3bs6OmaAAAAAAAAQLW48sorK7yeOXNmpbYyK1asyKuvvpqJEyfm8MMP3xzpJUmKiopy7733ZquttsqZZ565xvElJSUZN25ckqRPnz6V+vv06ZObbropo0ePzgUXXLDR8wUAAAAAAODrZYOLEMeOHZuVK1dm5syZmTx5ciZNmpQpU6Zk8uTJKSgoSJLsscce6dSpUzp27JhOnTpl11133eDEAQAAAAAAANbk8ssvT0FBQUpLS1NQUJCZM2dm5syZq43Zdtttc80112yeBJM8/fTTWbp0aQ477LDUqlUrI0aMyOTJk7N8+fLsscce6du3b5o1a1Y+fvbs2Vm6dGm22WabNG/evNJ87dq1S5K8+OKLm20PAAAAAAAAfHVtcBFiktSoUSPt2rVLu3btcv755ydJ3nzzzfKixKeffjq33XZb/vjHP6agoCDNmjVLx44d07lz5/LxAAAAAAAAABvbsGHDkiSlpaU5/fTT06lTp5xxxhlVjq1du3Z22GGHHHTQQSksLNxsOb788stJkmbNmqVz586ZOnVqhf6f/exnGTZsWI4//vgkydy5c5OkygLEJKlXr14aNWqUoqKifPzxx2nQoMEmzB4AAAAAAICvuo1ShFiVXXfdNbvuumtOPfXUJMmHH36YyZMnZ8KECbnjjjty//33Z+TIkRulCPHDDz/MHnvskfnz56d169aZPXv2KscOHz48v/vd7/LKK6+kdu3aOeiggzJw4MAcfPDBq4yZMmVKrr766kybNi3Lli3LXnvtlR/84Ac57bTTVhkzb968XHrppXnsscfy4YcfpkWLFjnhhBPy85//PHXq1Nmg/QIAAAAAAABr5/NnenfeeWe++93vrvacrzoUFRUl+ewss7CwMLfffnuOPPLILFq0KDfffHNuuOGGnHLKKWndunX22WefLFq0KEmy5ZZbrnLOevXqpbi4OIsWLVqrIsS99967yvY5c+Zkt912W49dAQAAAAAA8FWxyYoQyyxZsiTTpk3LpEmTMnny5EybNi2LFy9O8tnTRjeGAQMG5IMPPlircYMHD07dunXTo0ePlJSUZOzYsXn88cdz33335ZhjjqkUM3LkyBx//PFZuXJlunTpkqZNm2bcuHHp169fZs2alRtuuKFSzJw5c9KhQ4fMnz8/bdq0SefOnTNjxoxcddVVeeKJJ/Lkk09u1ienAgAAAAAAAMmTTz5Z3SlU6dNPP02SrFixIrfccktOP/30JEnTpk0zaNCgzJ07NyNGjMh1112Xu+66q/yctaCgYJVzbqyzWAAAANbs+jPvre4U2EwuvK1vdacAAADVYqMXIS5YsCCTJ0/O5MmTM2nSpLzwwgtZsWJFkv876GrVqlU6d+6czp07b/B648aNy5133pmzzz47f/jDH1Y5bvz48Rk8eHCaNGmSqVOnpmXLlkmSqVOnpmvXrunfv3+6du2arbfeujymqKgo/fv3z6effpr7778/xx57bJLkvffeS6dOnTJ48OD07t073bp1q7DW6aefnvnz5+f888/PkCFDknx2YNi3b9+MHDky11xzTa644ooN3jsAAAAAAADw5Vd2U2GNGjWqvKXx9NNPz4gRIzJhwoQK48se/lqVTz75JElSv379tcrh5ZdfrrJ9VTckAgAAAAAA8PVRY0MneOedd3LXXXfl+9//fvbee+9su+22OfbYYzNo0KA8++yzWblyZfbbb7+cf/75GTFiRN57773Mnj07f/zjH3Pqqadu0NpLlizJOeeck7322isXXnjhascOGjQoSTJw4MDyAsQk6dChQ84555wsXLgwQ4cOrRBz2223ZeHChTnqqKPKCxCTpFmzZrnuuuuSpNJNiNOnT8/EiROz7bbblo9Jkpo1a+bWW29NrVq1cvPNN2f58uXrt2kAAAAAAABgvb3yyivp169fdt1119StWzdbbLFFlV81a27057mu0s4775wk2W677VJYWLjK/vfffz9J0qJFiyTJvHnzqpxv8eLFKS4uTqNGjcoLFgEAAAAAAGB9bfDJ2a677prk/245rFOnTtq3b19+0+HBBx+81k/XXFdXXHFF5syZkwkTJqRWrVqrHFdSUpJx48YlSfr06VOpv0+fPrnpppsyevToXHDBBeXtY8aMWWVMr169UqdOnTzxxBMpKSlJnTp1KsT07t270gFhs2bN0rlz54wfPz5PP/10unbtum4bBgAAAAAAANbb1KlTc9hhh2XJkiVJkiZNmmyys8x1sd9++yVJioqKUlpamoKCggr9CxYsSPJ/txq2bt06hYWFmT9/fubNm5fmzZtXGP/8888nSfbZZ59NnToAAAAAAABfAxt8E2LDhg3z3e9+N7/+9a8zefLkLFy4MBMmTMhVV12VHj16bLJDuxdffDGDBg1K//7906VLl9WOnT17dpYuXZptttmm0gFckrRr1658zv9c4/P9n1e7du20adMmJSUlefXVV8vbZ82atcqYz7eXjQMAAAAAAAA2j5/97GdZsmRJfvzjH+eDDz7I/Pnz89Zbb63ya3P55je/mV122SVLlizJM888U6l/woQJSf7vrLFu3bo59NBDkyQjRoyoNL6s7YgjjthEGQMAAAAAAPB1ssE3IX744YeVnsS5tpYvX77aGwxXZeXKlTnrrLPSqFGjXHfddWscP3fu3CSpsgAxSerVq5dGjRqlqKgoH3/8cRo0aJCPPvooxcXFq41r3rx5ZsyYkblz52bfffddq7XK2svGrcnee+9dZfucOXOy2267rdUcAAAAAAAAQDJjxoy0bds2N9xwQ3WnUsnFF1+cc845J+eff34eeeSRNG3aNEny3HPPZdCgQUmSc845p3z8gAED8uijj+bqq69Or1690rJlyySf3fb4+9//Pg0bNswZZ5yx+TcCwFfGhXteUd0psNn0re4EAAAAAPiC2+CbEP+zAPHGG29cq7hly5blmGOOWa81b7755jz77LP57W9/myZNmqxx/KJFi5IkW2655SrH1KtXr8LYsv+uLu4/Y9ZmrapiAAAAAAAAgE2vdu3a2X333as7jSqdddZZOf744zN9+vS0bt06vXv3Trdu3XLwwQenuLg4Z511Vvr06VM+/rDDDsuPfvSjLFiwIG3bts3RRx+dnj17pkuXLlm+fHmGDh2axo0bV+OOAAAAAAAA+KrY4JsQ/9MFF1yQxo0b59RTT13lmGXLluXII4/M2LFj13n+//f//l8GDhyYQw45JP369VurmNLS0iSVCyarGrOq12sTszZrrc28n/fyyy9X2b6qGxIBAAAAAACAqnXq1Cl///vfqzuNKtWoUSP33HNPunbtmttuuy3jx49PQUFBDjjggJxzzjn5r//6r0oxN954Y9q2bZvf/e53GTt2bGrVqpXu3btn4MCB6dSpUzXsAgAAAAAAgK+ijV6E2Lp165x55plp1KhRjjzyyEr9S5cuTe/evfPEE0/kuOOOW+f5zz333Cxbtiy33nrrWsc0aNAgSbJ48eJVjvnkk0+SJPXr168QU9bXsGHDNcaszVpVxQBfLd+885vVncIm9ffTvpi/nAEAAAAAAGtyzTXX5KCDDsqgQYNywQUXVHc6ldSoUSPnnntuzj333LWO6dev31o/vBUAAAAAAADWx0YvQnz88cfTqVOnnHDCCXnkkUfStWvX8r4lS5akd+/eGT9+fPr06ZN77rlnnecfM2ZMGjVqlP/+7/+u0F5SUpIkmTt3bvmaY8aMSf369dOiRYskybx586qcc/HixSkuLk6jRo3KiwgbNmyYrbbaKgsXLsy8efOy1157VYorm69s/rL/f+GFF1a5VlUxAAAAAAAAwKb3/PPPp3///rnooosyevToHH744WnevHkKCgqqHH/qqadu5gwBAAAAAADgi2ejFyE2b968vBDxqKOOypNPPpl27dpl8eLFOeKII/LUU0/le9/7Xu66667UqFFjvdYoLi7OU089VWXfkiVLyvtWrFiR5LPbGQsLCzN//vzMmzcvzZs3rxDz/PPPJ0n22WefCu377rtvJk6cmOeff75SEeLy5cvz0ksvpbCwMK1bt64QM2rUqPI5/9Oq1gIAAAAAAAA2rX79+qWgoCClpaWZOHFiJk2aVOW40tLSFBQUKEIEAAAAAACAbIIixCRp1apVHnvssXTr1i3f/e53M2bMmFx44YWZNGlSTjzxxPzpT39a7wLE0tLSKtvffvvt7LLLLmndunVmz55doa9u3bo59NBD8+ijj2bEiBH58Y9/XKF/xIgRSZIjjjiiQnuvXr0yceLEjBgxIqecckqFvjFjxqSkpCQ9e/ZMnTp1KsRceeWVGT16dJYuXZrCwsLyvvfeey+TJk3KVlttlU6dOq3z3gEAAAAAAID1d+mll67y1kMAAACAL7Lrz7y3ulNgM7nwtr7VnQIAQCWbpAgxSdq1a5eHHnoo3/3ud3PQQQel9P9j787DvKzr/fE/BxgWWSTEJQPFEHEF3FBE1ARyAXMjtPIIqJVZuXAqy9BQyWNuyFHzaxmkHnMjFtGkEERc0NxyO0GGC3G0RByQRRZhfn90Mb+m+aAIM/OZGR6P6+K6nPf9ft33857u8znqy9fnLi/PV7/61dx+++2bPIC4OYYPH56HHnooo0aNyoABA9KlS5ckyezZs3PLLbekTZs2OfPMMyvVnHXWWfnpT3+ayZMnZ8KECTnppJOSJO+++25+8IMfVJz3X/Xs2TO9e/fOE088kQsvvDDXX399kn++lfGcc87JmjVr8t3vfjelpaU1fMcAAAAAAADAvxo5cmSxIwAAAAAAAEC9U6PTgIcffnjuueeeNG7cOKeffnr+53/+pygDiEnSr1+/nHfeeVm0aFF69OiRE044Iccee2wOO+ywrFmzJmPHjk27du0q1bRr1y5jx45No0aNMmjQoHzhC1/Il7/85XTt2jV//etfc+6556Zv375VrjVu3Lhss802GTNmTLp165ZTTz01Xbt2zYQJE3LQQQflxz/+cW3dNgAAAAAAAAAAAAAAAABsss1+E2Ljxo03at8dd9yRO+64o9JaSUlJPvroo82NsNGuv/769OjRIzfeeGOmTZuW0tLS9O3bNyNGjMihhx5asObkk0/OrFmzMmrUqDz11FNZvXp19thjj3z729/OsGHDCtZ06dIlL7zwQi655JJMnTo1EydOTMeOHTNixIhcdNFFad68eU3eJgAAAAAAAPAJ3nnnnTz55JN5++23U1JSks9+9rM55JBD8tnPfrbY0QAAAAAAAKBO2ewhxI4dO6akpKQ6smyWTp06pby8/BP3DR06NEOHDv1U5+7du3ceeuihT1XTsWPHjBs37lPVAAAAAAAAADVr4cKF+e53v5vf/va3WbduXaVjjRo1ysknn5wbbrgh2267bZESAgAAAAAAQN2y2UOIb775ZjXEAAAAAAAAAKhZS5YsyWGHHZa5c+emRYsW+eIXv5hOnTolSd5666384Q9/yL333psXX3wxTz31VLbeeuviBgYAAAAAAIA6YLOHEP/v//4vn/vc56ojCwAAAAAAAECNufLKKzN37tx8+ctfzo033ljlbYfvvfdevvOd7+Tee+/Nz372s1xxxRVFSgoAAAAAAAB1R6PNPUHHjh1zwAEH5NJLL81zzz1XHZkAAAAAAAAAqt3EiRPTsWPH/M///E+VAcQkad++fe6444507Ngxv/3tb4uQEAAAAAAAAOqezR5CPPPMM/POO+/k0ksvTc+ePdOhQ4d861vfyoMPPphVq1ZVR0YAAAAAAACAzfbWW2+ld+/eKS0t3eCe0tLS9O7dO/Pnz6/FZAAAAAAAAFB3NdncE/zyl79MkjzzzDO5//77M2XKlNxyyy35xS9+kRYtWqR///457rjjMmDAgGy//fabHRgAAAAAAABgU7Ro0SLvvffeJ+5777330qJFi1pIBAAAAAB1xzVn3VvsCNSi7906uNgRAKhHNvtNiOsdeOCBufzyy/OnP/0pb731VsaMGZPevXvnoYceyllnnZXPfe5zOeigg3LFFVfkpZdeqq7LAgAAAAAAAGyU/fffP48++miee+65De557rnnMnPmzBxwwAG1mAwAAAAAAADqrs1+E2IhHTt2zHe+85185zvfybJlyzJ16tTcf//9eeihhzJixIhcfPHF6dChQ770pS/luOOOyxe+8IWUlpbWRBQAAAAAAACAJMkFF1yQ6dOnp2/fvrngggvy1a9+NTvvvHOS5K233sqdd96ZMWPGZO3atbnggguKnBYAoOH73h6XFjsCtcZbdgAAAKA+q5EhxH/VqlWrDBo0KIMGDcq6devyxBNPZMqUKZkyZUpuuumm/PznP8/IkSNz8cUX13QUAKpBpx8+WOwINerNKwcUOwIAAAAAADXk2GOPzU9/+tNcfPHFueyyy3LZZZelpKQkSVJeXp4kKSkpyahRo3LMMccUMyoAAAAAAADUGTU+hPivGjVqlD59+qRPnz656qqr8te//jX3339/OnbsWJsxAAAAAAAAgC3Uj370o/Tv3z833HBDHn/88bz99ttJkh133DF9+vTJt7/97Rx44IFFTgkAAAAAAAB1R60NIf7lL3/J73//+6xatSoHHnhgDj/88Oy6664ZPnx4bUUAAAAAAAAAyAEHHJDbbrut2DEAAAAAAACgXqi2IcTp06dn8uTJOeGEE3LkkUdWOnbzzTfn3HPPzbp161JeXp6SkpIcc8wxmThxYkpLS6srAgAAAAAAAAAAAAAAAABQjRpV14luueWW3HTTTdlpp50qrc+bNy/nnXdeSkpKcv7552f06NHZc889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zsSJE/PlL38569aty2GHHZb27dtn+vTpGTp0aF588cVcd911VWrmzZuXXr16ZeHChdl7773Tp0+fPPvss7n88svz8MMP55FHHkmzZs1q5hcDwBZjn9v2KXaEGvXykJeLHQEAAAAAAAAAAAAAALZ4jYodYFNNnjw5ZWVlefrppzNhwoRMmDAhc+fOzc9//vOsXr06Z511VtauXVuxf8aMGRk9enS22WabvPjii5k0aVKmTp2aWbNmpXHjxhk2bFjKysoqXaOsrCzDhg3L2rVrM378+MycOTPjx4/PnDlzsuuuu2b06NF55JFHqmQ744wzsnDhwpx77rl5+eWXc88992Tu3Lk58cQTM3v27FxxxRU1/vsBAAAAAAAAAAAAAAAAgM1Vb4cQe/funebNm1dZ/9a3vpVdd901b7/9dubOnVuxfu211yZJRowYkS5dulSs9+rVK2effXaWLFmSsWPHVjrXrbfemiVLluT444/PSSedVLG+/fbb56qrrkqSKm9CfOaZZzJr1qxst912FXuSpEmTJrn55ptTWlqaG264IWvWrNmMuwcAAAAAAAAAAAAAAACAmldvhxA/TuPGjZMkTZs2TZKsXLky06dPT5IMGjSoyv71a1OmTKm0/sADD2ywZsCAAWnevHkefvjhrFy5skrNcccdl2bNmlWq2X777dOnT5+UlZXliSee2KR7AwAAAAAAAAAAAAAAAIDa0qTYAarb7bffnrlz52a33XbL5z//+STJnDlzsmrVqmy77bbp0KFDlZr99tsvSfLSSy9VWl//8/rj/6pp06bZe++98+yzz2bu3Lnp3r17kuTFF1/cYM369RkzZuTFF1/MEUccsWk3CQAAAAAAAAAAAAAAABT0vT0uLXYEas3gYgfYItT7IcSrr746r776apYvX54///nPefXVV7PjjjvmN7/5TRo1+ueLHufPn58kBQcQk6Rly5Zp27ZtysrKsnTp0rRu3ToffPBBFi9e/LF1HTp0yLPPPpv58+dXDCF+0rXWr6/f90n22muvguvz5s1L586dN+ocAAAAAAAAAAAAAAAAALAp6v0Q4u9///tMnz694ueOHTvmjjvuyP7771+xtmzZsiTJVltttcHztGzZMosXL86yZcvSunXripqPq2vZsmWl82/MtQrVAAAAAAAAAAAAAAAAAEBdVO+HEB9++OEkyeLFi/Py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Dh06VKnZb7/9kiQvvfRSpfX1P68//q+aNm2avffeOytXrszcuXMr1l988cUN1vzr+vp9AAAAAAAAAAAAAAAAAFBXNbghxDFjxiRJjj766Io3Ec6fPz9JCg4gJknLli3Ttm3blJWVZenSpUmSDz74IIsXL/7YuvXr68+/MdcqVAMAAAAAAAAAAAAAAAAAdVGTYgeoTr/73e/yq1/9KqWlpbn88ssr1pctW5Yk2WqrrTZY27JlyyxevDjLli1L69atK2o+rq5ly5aVzr8x1ypU83H22muvguvz5s1L586dN+ocAAAAAAAAAAAAAAAAALApGsybEP/85z/ntNNOS3l5ea6++up079694lh5eXmSpKSkZIP16/ds6OeNqdmYa23MeQEAAAAAAAAAAAAAAACgLmgQb0JcsGBBjj766JSVlWX48OE577zzKh1v3bp1kmT58uUbPMeKFSuSJK1atapUs/5YmzZtPrFmY65VqObjvPrqqwXXN/SGRAAAAAAAAAAAAAAAAACoLvX+TYjvvfde+vfvn/nz52fYsGG55pprquzZaaedkvxzWLGQ5cuXZ/HixWnbtm3FEGGbNm2y9dZbf2zd+vX159+YaxWqAQAAAAAAAAAAAAAAAIC6qF4PIS5dujTHHHNM5syZk5NOOim//OUvU1JSUmVf165d06xZsyxcuLDgcODzzz+fJOnWrVul9e7du1c6/q/WrFmTV155Jc2aNUvXrl03qubjrgUAAAAAAAAAAAAAAAAAdU29HUJctWpVjj/++Dz77LM56qijctddd6Vx48YF97Zo0SJHHnlkkmT8+PFVjq9fGzhwYKX1AQMGbLDmgQceyMqVK9O3b980b968Ss2UKVOyatWqSjX/+Mc/8thjj2XrrbfOoYceurG3CgAAAAAAAAAAAAAAAABFUS+HENeuXZuvfOUreeSRR9KnT59MmDAhTZs2/dia4cOHJ0lGjRqV1157rWJ99uzZueWWW9KmTZuceeaZlWrOOuustGnTJpMnT86ECRMq1t9999384Ac/qHTe9Xr27JnevXvn3XffzYUXXlix/tFHH+Wcc87JmjVr8t3vfjelpaWbdvMAAAAAAAAAAAAAAAAAUEuaFDvAprjxxhszceLEJEn79u1zzjnnFNx3zTXXpH379kmSfv365bzzzsuYMWPSo0eP9O/fP6tXr860adOybt26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+pIAAAAAAADUFkOI1ax79+5Jkueff77g8fXr3bp1q7VMAAAAAAAAQMOiLwkAAAAAAEBtMYRYzXr37p2tt9468+bNywsvvFDl+Pjx45MkAwcOrO1oAAAAAAAAQAOhLwkAAAAAAEBtMYRYzZo2bZrvfOc7SZLvfOc7Wb58ecWx6667Li+99FIOPfTQHHjggcWKCAAAAAAAANRz+pIAAAAAAADUlibFDtAQjRgxIg8//HCefPLJdOnSJX369Mlbb72Vp59+Ottss03GjRtX7IgAAAAAAABAPacvCQAAAAAAQG0oKS8vLy92iIboww8/zH/913/lN7/5Tf72t7/lM5/5TI4++uhcfvnl6dixY7HjAQAAAAAAAA2AviQAAAAAAAA1zRAiAAAAAAAAAAAAAAAAAFBQo2IHAAAAAAAAAAAAAAAAAADqJkOIAAAAAAAAAAAAAAAAAEBBhhABAAAAAAAAAAAAAAAAgIIMIQIAAAAAAAAAAAAAAAAABRlCBAAAAAAAAAAAAAAAAAAKMoQIAAAAAAAAAAAAAAAAABRkCBGADVqxYkUmTZqUM888M926dUubNm3SsmXLdO/ePZdddlmWLVtW7IgAm+3999/Pdtttl5KSkuy+++7FjgOwWf7+97/nggsuyG677ZYWLVqkXbt22X///fODH/yg2NEANslTTz2Vk08+OTvssENKS0vTrl279O3bN+PHjy92NIANeu6553LllVfmpJNOyuc+97mUlJSkefPmn1h3++23p2fPnmnVqlXatWuXY489Nk8++WQtJAYAqHv0KYGGTH8SqO/0JIGGQi8SqC/0H6krSsrLy8uLHQKAuunWW2/N17/+9STJXnvtlT333DMffPBBnnzyySxdujS77757Hn300Wy33XZFTgqw6YYOHZrbb7895eXl6dq1a+bMmVPsSACbZPbs2Tn22GOzePHi7Lnnntl7772zdOnS/O///m8WLFiQjz76qNgRAT6V++67L6eeemrWrVuXAw44IJ07d87bb7+dJ554IuvWrcuFF16YK6+8stgxAao44YQTMnny5EprzZo1y8qVKzdYM3z48IwePTotWrTIF7/4xaxcuTLTp09PeXl57rvvvpx44ok1HRsAoE7RpwQaMv1JoD7TkwQaCr1IoD7Rf6SuMIQIwAbdfvvteeqpp3LBBRekS5cuFevvvPNOBgwYkBde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ALBxysvL88ADDyRJunXr9on7TzjhhHz9619P586dK62PGzcuZ5xxRs4///zMmDGjSt1bb72VrbbaKq+88krFN4e+8cYb2X///XPnnXfm0ksvTefOnbP77rvn17/+dWbOnJnly5dX+ZbPjTV79uz06dMnf/nLX9K+ffskybPPPptevXpl9OjR+eEPf5hWrVpt0rn/3X333Zdnn302e+21V5Jkzpw56dGjR6655prcfvvt+elPf5rzzz8/yT+bkMccc0xmzJiRu+++O8OGDatyvp///Of5xS9+ka9//etJ/vm/0Y9+9KP87Gc/yxlnnJHnnnuuYu9TTz2VCy64IDvttFPuv//+iv8Ny8vLM2rUqFxyySU599xzc99991W5zi9/+cvcfffdOeWUU6rl9wAAAAAAAAAboi+5+fQlAQCAhsabEAEAAOq4tWvX5rXXXssZZ5yR2bNnp1mzZgUbT//u4IMPrtLoS5Jhw4ald+/emTlzZpYsWVKw9oYbbqho9CXJLrvsktNOOy1J8thjj23ajWxAo0aNcuutt1Y0+pLkgAMOyDHHHJMVK1bk2WefrbZrXX755RWNviTZfffdM2DAgKxYsSI77bRTRaMvSZo2bZrzzjsvSfLoo48WPN8hhxxS0ehLkpKSklx++eXp2LFjnn/++cyePbvi2JVXXpl169blF7/4RaVmbUlJSUaMGJF99903EyZMyHvvvVflOgMGDNDoAwAAAAAAoEbpS+pL6ksCAAAb4k2IAAAAdVRJSUmVtdatW+e2224r2MQrZNmyZZkyZUr+9Kc/5f3338+aNWuSJO+8807Ky8szb9687LfffpVqSktLc8QRR1Q512677VZRW506depUce6avl7//v2rrH3+85/f4LH1v+cNZTj11FOrrJWWlubkk0/O9ddfn8cffzy9evXKunXrMn369LRu3Tp9+/atUlNSUpLevXvnhRdeyHPPPZejjjqq0vEvfelLn3xzAAAAAAAAsAn0JfUl19OXBAAANsQQIgAAQB01ZMiQJP/8Rs42bdpkn332yUknnZTPfOYzG1U/Y8aMnHrqqVm4cOEG9yxdurTK2mc/+9k0bty4ynqrVq2SJKtWrdqo62+sDh06FFyviet97nOfq7LWsmXLTzy2oQw777xzwfX139b69ttvJ0kWLVqUZcuWJUmaNPn4fxQv9I2jO+2008fWAAAAAAAAwKbSl9SXXE9fEgAA2BBDiAAAAHXUr3/9602uXbZsWQYPHpxFixbl4osvzle+8pXsvPPOadGiRUpKSvLVr341d911V8rLy6vUFvqm05pUnddbt27dJl+rOnP8++917dq1Sf75jbEnnXTSx9YWaiA2b9682rIBAAAAAADAv9KX/PT0JQEAgC2NIUQAAIAG6LHHHsuiRYty8skn57LLLqty/PXXXy9Cqs3XtGnTJKn49s5/97e//a024+Stt94quD5//vwkyY477pgkad++fZo1a5bS0tLNauICAAAAAABAXaIvWTv0JQEAgGJrVOwAAAAAVL+ysrIkSceOHasc++tf/5rnn3++2q61vgH30UcfVds5N6R9+/YpLS3NG2+8UeV6q1evzqOPPlrjGf7VPffcU2Xto48+ym9/+9skSe/evZMkTZo0yRFHHJH3338/s2bNqtWMAAAAAAAAUFP0JWuHviQAAFBshhABAAAaoN122y1JMmHChCxcuLBiffHixTnzzDOzZs2aarvW+m/VnDt3brWdc0OaNm2agw8+OO+//35uuummivU1a9bkggsuyBtvvFHjGf7VE088kbFjx1b8XF5enp/85CeZP39+unfvnkMOOaTi2EUXXZRGjRplyJAhefzxx6uc6+233650TwAAAAAAAFDX6UvWDn1JAACg2JoUOwAAAADV74ADDkj//v0zbdq07LbbbjniiCOSJDNnzkz79u1z/PHHZ/LkydVyrS996Ut59NFH07dv33zhC19Iy5Yt0759+1x55ZXVcv5/d8kll+Soo47K+eefn3vuuSc77LBDnnvuuaxYsSJDhgzJbbfdViPXLeRb3/pWzjrrrNxyyy3p3LlzXnrppbz66qtp3bp1xo0bV2nvYYcdljFjxuT8889Pnz590q1bt3Tp0iUrV67MW2+9lT//+c9p1apVvv3tb9dafgAAAAAAANgc+pK1Q18SAAAoNm9CBAAAaKAmT56cH//4x9l2223z0EMP5bnnnsupp56ap556Km3btq2265x77rkZMWJEWrVqld/+9rf51a9+lbvvvrvazv/v+vXrl/vvvz8HHnhgnn/++Tz66KM5+OCD88wzz6RTp041dt1CBg8enPvvvz+NGzfO5MmTs2DBghx//PF56qmnsu+++1bZ/53vfCdPP/10vva1r6WsrCz3339/Zs+enUaNGuXss8+utgYsAAAAAAAA1BZ9yZqnLwkAABRbSXl5eXmxQwAAAAAAAAAAAAAAAAAAdY83IQIAAAAAAAAAAAAAAAAABRlCBAAAAAAAAAAAAAAAAAAKMoQIAAAAAAAAAAAAAAAAABRkCBEAAAAAAAAAAAAAAAAAKMgQIgAAAAAAAAAAAAAAAABQkCFEAAAAAAAAAAAAAAAAAKAgQ4gAAAAAAAAAAAAAAAAAQEGGEAEAAAAAAAAAAAAAAACAggwhAgAAAAAAAAAAAAAAAAAFGUIEAAAAAAAAAAAAAAAAAAoyhAgAAAAAAAAAAAAAAAAAFGQIEQAAAAAAAAAAAAAAAAAoyBAiAAAAAAAAAAAAAAAAAFCQIUQAAAAAAAAAAAAAAAAAoCBDiAAAAAAAAAAAAAAAAABAQYYQAQAAAAAAAAAAAAAAAICCDCECAAAAAAAAAAAAAAAAAAUZQgQAAIA66Ne//nVKSkrSqVOnGjn/EUcckZKSkowcObJGzg8AAAAAAEBhNdUHevPNN1NSUpKSkpK8+eab1XpuGob1z8fMmTOLHaVWzJw5s+Ke65uP+5yo6V4yAAAUYggRAACodStWrMhDDz2UUaNG5aSTTsrOO+9c8S/+P81A1D/+8Y/853/+Z7p27ZoWLVqkXbt26dOnT2699daUl5dXW96///3vufjii7P//vunXbt2adGiRXbeeeccffTRufLKK7NmzZoN1s6bNy/f/OY3s8suu6R58+bZbrvtctRRR+W3v/1tteX7NP61ybIpf/69Wfnuu+/myiuvTP/+/dOhQ4e0aNEiLVu2TKdOnXLCCSfkF7/4RRYvXlwlx8iRIzer2bOhfE2aNEn79u3Tp0+fXHPNNVm+fPkmnR8AAAAAAKC+Ky8vz3333ZcTTzwxO++8c1q0aJFWrVqlc+fOOfTQQzN8+PBMnDgxH3zwQbGjNhhvvvlmRo4c2SC+BPKNN97IT37yk/Tp0yc77rhjmjVrltatW6dLly455ZRTcuedd2bFihXFjrnZJk2alJEjR2bSpEnFjrJZrr/++owcOTJ/+tOfih2l2lR3bxsAANg8TYodAAAA2PL88Y9/zLHHHrtZ53juuedy1FFHZdGiRUmSVq1aZenSpXn88cfz+OOP57777sv999+fZs2abdZ17rnnnnzjG9+oaL42bdo0LVq0yPz58zN//vz8/ve/z9lnn522bdtWqf3d736XL3/5yxXNtzZt2mTRokX5wx/+kD/84Q8ZNmxYfvWrX9Xqty42bdo022+/fcFj77//ftasWZPS0tK0a9eu4J7GjRsn+WfT+r/+67/y05/+tFJzsVWrVikpKclbb72Vt956K5MnT84PfvCDXHfddTnjjDOq/X5atmyZVq1aVfy8fPnyLFq0qOI5+PnPf54ZM2b4BkgAAAAAAGCLsnjx4pxwwgl59NFHK9aaNGmSrbbaKvPnz8/rr7+eJ554IqNHj864ceMydOjQ4oVtQN58881ceumlSfKxg4hbb711unbtms997nO1lGzjrVmzJt///vdz00035aOPPqpY33rrrbNmzZr89a9/zV//+tfce++92WGHHXLrrbdmwIABRUy8eSZNmpTbbrstQ4YMyQknnFDsOJvs+uuvz1tvvZVOnTqlR48eG9zXtWvXJMlWW21VS8k2XXX0trfaaquKe25I6vJnCAAADZc3IQIAAEXxmc98Jn379s33v//93HXXXdlhhx02unbJkiUZOHBgFi1alN133z3PPPNMli5dmuXLl+fGG29MaWlp/vCHP+SCCy7YrIz33XdfvvrVr+aDDz7IKaeckhdeeCGrVq3K4sWLs3Tp0jz22GO54IILUlpaWqX2jTfeyODBg7NixYr07t07c+fOzZIlS7JkyZJccsklSZJx48bl6quv3qyMn9YhhxySv//97wX/HHLIIZ+4p2PHjikvL89//Md/5Mc//nFWrFiRgw46KL/97W9TVlaWpUuX5oMPPsiSJUsyceLEHHfccVmyZEnuv//+Grmf733ve5XyLV26NO+9915++tOfpqSkJG+88Ua++c1v1si1AYD/j707j7O5/P8//jyz78PMMGMnWyFbkd0Y+5I9SyWEihaSCh+yprI0SKkISSKyJruxlKmIyDJC1jAMM8xi9vP7w++cr+OcGTNjOYce99vt3Jpzra/3+zpzvt+Pa17vCwAAAAAAAI7qhRde0LZt2+Ts7Ky33npLf//9t1JSUnT58mVdv35d+/bt00cffaQqVarYO9T/pA4dOigqKkqbN2+2dygWUlNT1bx5c02bNk3p6elq0aKF1q5dq8TERMXFxSkxMVGXLl3SwoULVb9+fV24cEEbN260d9jIhaioKEVFRalmzZr2DuW27sbeds2aNc3X/DBx1O8QAAAAPNw4CREAAADAfVe/fn1duXLFomzo0KE57j958mRduHBBnp6e+umnn1SqVClJN56E+Oqrr+ratWsaPny4vvzySw0aNEjlypXLdYznz5/Xyy+/rMzMTL355pv6+OOPLep9fHxUr1491atXz2b/9957T4mJiQoJCdGPP/5oPinRx8dHY8aM0YULF/Tll1/q/fffV79+/ZQ/f/5cx2gvEydO1LfffitJGjRokD7++GOr0xz9/PzUvn17tW/fXtu3b9f3339/3+ILDAzU8OHD9c8//+irr77Spk2blJiYKG9v7/sWAwAAAAAAAAAAgL0cPXpUq1evliSNHz/eah/OxcVFlStXVuXKlfXOO+/o+vXr9ggTDmjgwIGKiIiQJH388cc2H/oaFBSk7t27q3v37vrhhx904MCB+x0mAAAAAMAOOAkRAAAAwH3n7Ox8R/3nz58vSerWrZs5AfFmr7/+unx8fJSRkWFOlsut6dOnKzY2VkWLFtWHH36Yq76JiYn64YcfJEn9+/c3JyDebNiwYZKka9euacWKFXmK0R5iYmI0btw4SVLjxo1tJiDeqkGDBpo+ffr9CM9C1apVJUmZmZlKSkqyqjcYDDIYDNq6dasuXryowYMHq1y5cvLy8rJ5TVu3blX37t1VvHhxeXh4yN/fXzVr1tTEiROVmJhoM4br169r1apV6tevn6pWraoCBQrI3d1dhQsXVvv27bV27do8X9/JkydVvnx5GQwGVa9eXdHR0Rb1GRkZmjFjhqpXry5vb28FBAQoNDRUS5cuzdH4GRkZmjNnjsLCwhQUFCR3d3cVKVJEzzzzjLZu3WqzT6VKlWQwGDRjxgyrusjISPM979y5s1V9WlqafHx8ZDAYtGXLFnP51q1bzf0k6dixY3rxxRdVrFgxubu7q2jRourXr5/+/fffHF0XAAAAAAAAAAAPuz///NP8c7t27W7b3tPTM8u648eP6/XXX9djjz0mHx8feXl56bHHHtOgQYN0+vTpbMeNiorSc889p5CQEHl4eOiRRx7R66+/rujoaKt//79Zr169ZDAY1KtXryzHnjdvngwGg0qWLJllm6tXr+r999/XU089pfz588vd3V3FihVT9+7d9euvv9rsc/LkSXNcJ0+eVHR0tAYOHKhSpUrJw8NDwcHB6tatm81T1UqWLKlGjRqZ35vGMb1uvp7s4k9LS9PGjRv1xhtv6Mknn1ShQoXk5uamggULqnnz5vruu+9kNBqzvO68OnTokL744gtJ0osvvmgzAfFWnTp10siRI23WLVu2TG3atFFwcLDc3NwUHBysNm3aaPny5VmOd+vaL126VKGhoQoICJCXl5eqVq2qadOmKTMzM8sxvv/+e7Vs2VLBwcFydXVVvnz5VLZsWbVt21affvqpkpOTJf3fHtTXX38tSfr666+t1uzmPbGSJUvKYDBo3rx5SkhI0HvvvafHH39cvr6+5s+LrWuwJSef38uXL2vs2LF66qmnFBAQIA8PD5UsWVLNmzfX559/rqtXr0qSRo8eLYPBoFOnTkmSevfubXUdN7N1bTdLTk7W1KlTVadOHeXPn18eHh4qUaKEXnjhBYvvllvdfH9SU1M1adIkValSRd7e3vL391dYWJjWrVuXZf97JbvvmlvXYceOHXr66adVsGBBeXt7q1q1avrqq68s+qxZs0ZNmzZVgQIF5OXlpRo1amjx4sW3jWPv3r168cUXVbp0aXl5ecnHx0dVqlTRiBEjFBMTk+vryu4zZPpMhIaGSpI2b96s1q1bq0CBAvLw8NBjjz2mMWPGmH8XspKX71AAAAA83EhCBAAAAPBAOXLkiHlDs2XLljbb+Pj4qH79+pKkDRs25GkeU6Lj888/Lzc3t1z1/fnnn81PjM0qxpIlS+qxxx67oxjtYe7cueaEO9PmRU44Od3///m5b98+SVL+/PlVoECBLNsdO3ZMlStXVnh4uM6cOSMXFxeL+vT0dPXr10+NGjXSokWLdObMGbm6uioxMVG7du3Su+++qyeeeMK8sXezxYsXq127dpo9e7b27dunxMREubi46Pz581q5cqVatWqlIUOG5Ona6tSpo7///luNGzfWtm3bFBwcbK5PSUlR69at9frrr2vv3r1KTk6W0WjU9u3b9cwzz9z25NGrV6+qSZMm6tOnjyIiIhQXFycvLy+dP39eS5cuVaNGjfT2229b9QsLC5MkiyRCk1sTC2/dHP/999+VmJgod3d31a5d22ZcERERqlatmubOnaurV68qMzNT//77r2bPnq2aNWuSiAgAAAAAAAAAwC3Onj2b576zZs3SY489phkzZigqKkrp6emSbiQXTps2TY8//rg2btxos++6detUtWpVLVy4UNHR0XJ1ddX58+c1Y8YMVatWTSdOnMhzXDnx22+/qXz58hoxYoR+//13xcfHy93dXWfPntWiRYtUp04dffDBB9mOcfDgQVWuXFnTp0/XxYsXJUkXL17U4sWL9dRTT5n3okwKFCig/Pnzm98HBwdbvPz9/XMU+y+//KJmzZrpk08+0R9//KHY2Fi5u7vr0qVL2rBhg5599ll17do120S8vPj0009lNBrl5OSk9957L8f9bt0HTE1NVbdu3dSpUyetWbNGMTEx8vHxUUxMjNasWaOOHTvq2WefVVpaWrbjvvbaa3rmmWe0Y8cOGY1GXb9+Xfv27dOgQYPUu3dvm3369Omjrl27at26dbp48aI8PDyUlpamY8eOafXq1Xrttdd04cIFSTInRnp4eEiSOcn05petfeLLly/riSee0Lhx4/T3339b7S3eDRs2bFDZsmU1atQo8+fX09NTp06d0oYNG9S/f3/ziZU+Pj4KDg42r4Ofn5/VdeTUv//+qxo1aujNN99UZGSkEhMT5eHhodOnT+ubb77RE088oU8++STbMRISEtSgQQO98847Onz4sJycnHTt2jVFRESoVatWmjNnTt5vzD00e/ZshYaGas2aNUpNTVVSUpL+/PNP9e3b1/yA4VGjRqlNmzbasmWL0tLSdP36de3evVvdunXT559/nuXYo0aN0hNPPKG5c+fqn3/+kcFgUFpamvbv36/3339flStX1t69e+/JdU2aNElNmzbV2rVrlZ6ertTUVEVFRWn06NFq1aqVMjIybPa7G9+hAAAAePiQhAgAAADggXLgwAHzz5UqVcqynanu0KFDuZ7jxIkTOnfunCSpYcOG2rt3r7p27aqQkBDz0/26deumyMjI28ZYsWLF28Z48ODBXMdoL5s3b5YkBQUFqV69enaOxrYrV65o4sSJ5g0sW8lyN3vzzTeVL18+bd68WYmJibp27ZqOHDlirh8yZIhmz56t4OBgffbZZ7p8+bLi4+N1/fp1c1LckSNH1LFjR6vN3nz58umll15SRESEYmJilJSUpMTERJ07d05jxoyRq6urpkyZolWrVuX4+iIiItSgQQOdP39e3bp1008//SRfX1+LNsOGDdP69etlMBg0fvx4xcbGKjY2VhcuXFD//v310UcfZfuk0j59+mjr1q1yc3PT9OnTde3aNcXGxurcuXN68cUXJUmTJ0+22kwzPd1369atVvfCtBHq5+eny5cv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119/Nbe/+QmzNwsJCVHjxo0lSePHj9dvv/2Wo+u/0w3UnPa/tV2DBg3k4uKihIQE/f7770pKStJvv/0mf39/PfHEE5KsT0u8+aREAAAAAAAAAABw73h4eKhJkyZatWqVevbsKUk6e/as1q1bZ25j2h9p0aJFjvZHstrjuNO9irwwxe7p6Znj2ENDQ+97nNnp3bu3zp49q5IlS2rJkiW6fPmyEhMTdfHiRV24cMFijzSre59bLi4uKleunCRp7969dzxeXveZ7tRzzz2nU6dO6fPPP1fXrl1VrFgxXbp0Sd9//73at2+vhg0b6tq1a3c0R3Z7i3eLPX53cju3PWN8UJi+j1555ZUcfRedPHnSvgHr4fgOBQAAwL1DEiIAAACAB0qlSpXMPx84cCDLdqa6ChUqWJRn9Q/j8+bNM7epUKGCefMou82Tmzf1bm53c4wHDx68bYymxL6cKFmyZJbXMHr06ByPk1emZLhLly7p559/vufz3akSJUpIkk6cOJGn/qaTM//6669c942MjNSpU6fk7OysH3/8US1btrR62qTpaabZcXd31+rVq9WsWTNdvXpVzZo1Mz+51RbT01dvfjquLVkl8Zr6nzlzJtv+pvELFChgUe7r62tONtyyZYt+/vlnpaamqkGDBubfq0aNGpnrExMT9fvvv1uUAwAAAAAAAACAe++ll14y/3zkyBHzz3eyP3LzKXHZ7VVk97BR0wldycnJWba5+QGjNzPFfv36dR07dizbWB3RmTNntHPnTknSd999p86dOysgIMCiTU72l/LCtA+4d+9eiwew5sad7jPdDQEBAXr55Ze1aNEinT59WseOHdPQoUNlMBi0Y8eOe76neief30KFCkm6sRd7t065zKmcrF1ycrL5pMx7sXYPmzv5LrWXB/07FAAAAPcWSYgAAAAAHijly5dX8eLFJcniiaw3S0xM1I4dOyRJzZo1y/UcHh4eatCggSTp0KFDWbY7fPiwpBsJiCVLljSX16tXT56entnGeOrUKXP/vMRoL71795aXl5ckafTo0Tl+umpmZua9DCtLpg1Mb2/vPPWvW7euJGnNmjW5PmnStEFXoEABi9M1b7Zp06YcjeXp6amVK1eqZcuWunbtmpo3b65ffvnFZtsnn3xSkrR7927Fx8fbbHP06NEsN/5N/SMiIrJct6ioKPMfB9SoUcOq/uYk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lSxZUtevX1e+fPnUtGlTLV26VHPnzs31SXiOwmAw6L333tM///yjCRMmKCwsTIULF1ZqaqrS09NVokQJtW/fXrNnz9bJkyfVo0ePexJHYmKioqOjza+YmBi5ubnp8ccf12uvvaY///xTb7755h3N4ezsrPDwcO3Zs0cvvfSSypcvL2dnZ129elX58+dX3bp1NXr0aP3555+qW7euRd9XXnlFa9asUWhoqHx8fJSenq4iRYro9ddf1759+6xOB8wpV1dXLV68WF26dNH169fVpk0bbdiwwVzv4eGhtWvXatq0aapatarc3NxkNBpVv359ff/99+YnbmbF399fmzdv1ldffaXQ0FD5+voqISFBISEh6tSpkyIiIsxPqc3KzScbmk49vNmTTz4pPz8/SZKfn5+qV6+em1sAAAAAAAAAAACy0Lx5cx09elTTpk3TM888o8cee0zu7u6Ki4uTl5eXypYtqy5dumjRokXatWuXChcubHOc5557TseOHdOIESP05JNPysfHR3FxcfLw8FDVqlX12muvadOmTXr33Xet+rZu3Vp79uxRt27dVLBgQaWmpio4OFivvfaa9u7dq1KlSmV7DX369NFPP/2ksLAw+fn5KT09XeXKldOHH36obdu2ZXuSnCRVq1ZNhw4d0owZM9SkSRMFBQUpPj5emZmZKlu2rJ599lktWrRIy5Yty/mNzaFPP/1Uo0ePNp9Md/r0aZ06dUoxMTE56t+mTRtt375drVu3Vr58+ZSenq6goCD17t1be/bsUePGje96zDdzc3PTjBkzdOTIEY0YMUJ16tRRcHCwkpKSJEllypRRt27dtGjRIh07dkzNmze36r948WL98MMPatmypQIDAxUfH6/AwEC1bNlSy5Yt08KFC+Xq6npX4x45cqSmT5+uDh066NFHH5WLi4sSEhJUsGBBNW3aVHPmzNHWrVutPjv58+fX9u3b1a1bNxUpUkRXr17VqVOndOrUKSUnJ+cpljv9/DZr1kxHjx7V//73P1WrVk2enp7mfermzZvriy++sNp/a9CggdasWaMmTZrI399f0dHR5uvIqSJFimj37t36+OOPVatWLXl6eiopKUnFihVTjx499Mcff+iNN97I0z35L3v77bcVFRWlN998U5UrV5aHh4fi4uLk4+OjGjVq6J133tHOnTv17LPP2jtUM3t+hwIAAMBx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vvzyS7344osaNWqU/vWvfykuLi7fecePH1d6eroqV64sb2/vPM8DAgIkSYcOHSrRvDl7Hz58OE8zW0lZtmyZunfvroyMDPXs2VPVq1fXihUr1Lp1ax08eDDfmtjYWLVs2VL79+9X165d1aJFC8XExKhHjx65jXWFsXz5crVo0ULffvutqlWrppCQEFWtWlULFy5UixYtdPTo0XzrfvnlF7Vr107nzp1Tly5d5OnpqWXLlqlz5866evWqOnbsqAULFujhhx9WmzZtdOzYMQ0cOFA///xzsWXYs2ePWrdurRMnTqhz586qX7++oqKi1LlzZx05ciR33hNPPKF27dpJkpo2barBgwfnftWrV0+SlJ6ermeeeUbr169XlSpV1LNnT7Vq1UpHjx7VSy+9pCFDhhT4PYyKilJgYKDOnDmjrl27KigoSE5OTho8eLBu3Lihb775Jt+6L774QpI0fPjwAtcGAAAAAAAAAAAAgLKMJkQAAAAAAAAAAKApU6Zo3rx5mjNnjl555RXVq1dPkydPzjMvpzkxvwZESXJ2dpa7u7sSExOVnJxcYnnbtWunhg0bKjMzU0FBQerevbumT5+uHTt2KCMjo0T2nDt3rj777DPt2rVL3333nY4cOaLx48fr6tWrBTa/LV68WL169dLJkyf13XffaevWrVq1apVsbGw0atQoXbx48a77/v777xo0aJCcnJy0detW7dmzR8uWLdO+ffv01Vdf6fLly7k3CN7u3//+t/75z3/qyJEjCg8P17Fjx9SlSxedPHlSbdu2lbOzs06dOqXVq1dry5Yt+vzzz2U0GvXhhx8WW4Y5c+bovffe04kTJxQeHq4DBw7o1VdfVVpamqZOnZo7780339SwYcMkSb1799bChQtzvwIDAyVJ5cqV0/Lly/XHH38oOjpa33//vTZu3KgzZ86oRYsW+uqrrxQVFZVvjgULFmjKlCk6cuRI7lk0adJEL7zwgiTp888/z1OTlJSk8PBweXp6qnfv3nc+KAAAAAAAAAAAAAAoo2hCBAAAAAAAAADgARYUFKSvv/5asbGxun79uk6cOKG///3vKleunN59913NmjXLZH5KSookqXz58gWu6ezsbDK3JNja2mrNmjVq2bKlsrKytHbtWr3++utq166d3N3d9cwzz+jkyZPFumfbtm1NbsMzGAyaPHmyatasqX379ikmJiZPjYuLi2bOnKly5crljvXo0UP9+/dXampqoW5DnDVrlq5fv66pU6cqKCjI5NmgQYPUu3dv7d69W/v27ctTGxQUpFdffTX3s52dnUaPHi1JOnHihD7//HNVrFgx93loaKgqVaqkmJgY3bx5s1gyBAYGaty4cSZjEydOlKQCGwYLUq5cOfXt21f29vYm45UrV9Y//vEPSdLKlSvzrW3cuLHeeOONPOO+vr7q2LGjDhw4oL1795o8W7x4sdLS0jR48GA5ODjcU1YAAAAAAAAAAAAAKCvK3X0KAAAAAAAAAAAoqz744AOTz76+vpowYYJatGihxx9/XO+9956ef/55OTk5SZKMRqOkWw14BcmZU9Lq1KmjX375RVu3btWaNWsUExOjffv26caNG/ruu++0atUqRUREqH379sWy39NPP51nzM7OTv369dPMmTMVHR2tNm3amDzv2rWrSZNfjr/97W9asmSJoqOj77rvhg0bJEm9evXK93lgYKB+/PFH7d69WwEBASbPHnvssTzz69SpI0ny8fFRvXr1TJ7Z2trKx8dHe/bsUUJCgqpVq1bkDF27ds0z39PTU56enoW6CTI/Bw4c0Pr163X27Fldv35dRqMx9+bNU6dO5VvTs2fPAv9zO2LEiNybIJs3b547nnM7Ys4NjQAAADAVEhKi2NjYu87z9fWVpGL/RSG4f5yJ9eFMrA9nYn04k6KLi4uTJNWqVatY1uNMrE+HDh303nvvWToGAAAAyiCaEAEAAAAAAAAAQB5du3ZVixYttGfPHu3cuVMdO3aUJLm6ukqSUlNTC6y9fv26pFu3AN7N2LFjlZCQYDIWGBh4T01fHTp0UIcOHSRJN27c0Jo1azR27FjFxcVp6NChOnHixB2bJgvroYceynfcx8dHknThwoViqbndmTNnJElVq1a947zbv4+SVKNGjTxjOTdV5vfsr8/T09OLJYO3t3e+c11cXHT58uU7rne7jIwMhYaG6rvvvitwTk4z4u3u9C/X9enTR15eXvr22281bdo0OTs7a9euXTp06JACAwPVsGHDe8oJAADwoIiNjdXpE7+qXiX7O09MvvW/I3T57g2LMBPOxPpwJtaHM7E+nEmRpaaky8amnC5fuFYs6yVXuvX/AxbXeiiahGt/5DaGAgAAAMWNJkQAAAAAAAAAAJCv+vXra8+ePSa31eU0cp0/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d+7cHHPMMZkzZ05++9vfpnbt2kv5VQAAAAAAAAAK5dNPP81vf/vbrLPOOrngggsKHaeU2267LUly8MEudAYAAAAAAMDSq5J3Qhw3blwGDBiQFi1aZIsttkjz5s3z5Zdf5u9//3s+++yz1KtXLzfddFPWWmutkjE9e/bM8ccfn8suuyydOnXKzjvvnNmzZ+eZZ57J/Pnzc/vtt6dZs2aljtOsWbPccMMN2XfffdOvX7/ssMMOadGiRZ599tlMnTo1xx13XHr06FEm34033phtt902l112WYYNG5aNNtoor732Wv75z39m6623zhlnnLHcv0YAAAAAAADA4pk/f37uuuuuPPXUU5k0aVJWWWWV7Lrrrtl3331To8b313f99NNPc/bZZ+fWW28tuWjqXnvtVcjYpXz++ed57rnnUrNmzey///6LPG5hd0wcN25c1l577WUVDwAAAAAAgCqoShYh7rDDDjn99NPzwgsv5J133smXX36ZOnXqpE2bNunXr1+OO+64rLfeemXGXXrppenUqVOuuOKKPPPMM6ldu3Z69OiRwYMHp2vXruUea++9986LL76Y8847LyNHjszs2bOz4YYb5thjj82AAQPKHbP++uvnzTffzFlnnZUnn3wyDz74YNZaa60MHjw4p59+eurVq7dMvx4AAAAAAADA0pk7d2522223PPfccykuLi5pv+2223LPPffkgQceyA033JDjjjsu3333XZKkT58+GTJkSDbddNNCxS7jjjvuyLx587LLLrukVatWhY4DAAAAAADACqBKFiGus846+cMf/rBEY/v375/+/fsv1pguXbrkiSeeWKwxa621Vm688cbFGgMAUGnccGehE1BRBi761fABAAAAVmRXXHFFnn322dSrVy/9+/dPhw4dMm3atDzxxBN5+OGHc+SRR+b6669PcXFxfvGLX+R///d/07Fjx0LHLuO2225Lkhx88MGLNW7MmDHltnfo0KHkjo8AAAAAAABUT1WyCBEAAAAAAABgWbr77rtTs2bNvPDCC9lqq61K2k877bQcffTRueaaa1JUVJTzzz8/J598cgGTLtx7772XN998M40aNcqee+5Z6DgAAAAAAACsIGoUOgAAAAAAAABAob333nvZbrvtShUgLnDKKackSdq3b19pCxCT5NZbb02S9O3bNw0aNChwGgAAAAAAAFYUihABAAAAAACAam/atGlp06ZNuX3rrLNOkqRTp04VF2gxFRcX54477kiSHHzwwQVOAwAAAAAAwIpEESIAAAAAAABQ7RUXF6dmzZrl9hUVFSVJ6tWrV5GRFstLL72UTz75JKuvvnp22mmnQscBAAAAAABgBaIIEQAAAAAAAKCKu+2225IkBx54YGrUsAwMAAAAAADAsmP1CQAAAAAAACDJzTffnJo1a5b7UVRUtND+WrVqFTT3rFmzct999yVJDjrooIJmAQAAAAAAYMVT2NUwAAAAAAAAgEqiuLi4QsctK3Xr1s3XX39d0AwAAAAAAACsuBQhAgBQxtCP5hY6AhWkd6EDAAAAAFQS8+fPL3QEAAAAAAAAqJQUIQIAUMYtG95d6AhUkN45uHAHv+HOwh2bijVw/0InAAAAAAAAAAAAAGAJ1Sh0AAAAAAAAAAAAAAAAAACgclKECAAAAAAAAAAAAAAAAACUSxEiAAAAAAAAAAAAAAAAAFAuRYgAAAAAAAAAAAAAAAAAQLlqFToAAAAAAAAAAAAAAKwIPvpydjpcMK7QMSpEu40bJ0k+eLd6PN6qwJxUPuak8qlKczJ7XnG+/ObzXHj/SYWOslxtvOlGSZJ33/nHUu/ry28+T/PVmyz1fgAoSxEiAAAAAAAAAAAAACyltm3bFjpCxWq82vf/Np9W2Bz8lzmpfMxJ5VOF5qThjAlJssIX1TVu1iDJsnmczVdvUv1+HgNUEEWIAABAQQz9aG6hI1BBehc6AAAAAAAAAEAFeOSRRwodoUJ98cUXSZJVV121wElYwJxUPuak8jEnlY85AagaFCECAAAFccuGdxc6AhWkdw4u3MFvuLNwx6biDdy/0AkAAAAAAAAAAABghVOj0AEAAAAAAAAAAAAAAAAAgMpJESIAAAAAAAAAAAAAAAAAUC5FiAAAAAAAAAAAAAAAAABAuRQhAgAAAAAAAAAAAAAAAADlUoQIAAAAAAAAAAAAAAAAAJSrVqEDAAAAwPIy9KO5hY5ABepdqAPfcGehjkwhDNy/0AkAAAAAAAAAAAAqlCJEAAAAVli3bHh3oSNQgXrn4EJHAAAAAAAAAAAAgBVOjUIHAAAAAAAAAAAAAAAAAAAqJ0WIAAAAAAAAAAAAAAAAAEC5ahU6AAAAAACwCG64s9AJqCgD9y90AgAAAAAAAAAAKKEIEQAAAGApDP1obqEjUIF6FzoAAAAAAAAAAABABVOECAAAALAUbtnw7kJHoAL1zsGFjgAAAAAAAAAAAFChahQ6AAAAAAAAAAAAAAAAAABQObkTIgAAAAAA37vhzkInoKIM3L/QCQAAAAAAAACAKkIRIgAAAABUAUM/mlvoCFSQ3oUOAAAAAAAAK4g99tgj48aNK3SMCtOuXbskyQcffFDgJCxgTiofc1L5FHJOJkyYkCRp3bp1hR+7MvvhnLRt2zaPPPJIgRMBlYEiRAAAAACoAm7Z8O5CR6CC9M7BhY4AAAAAAAArhHHjxuWj99/Lei3qFDpKxZjW+Pt/v6o+hZeVnjmpfMxJ5VPAOZkxfVZq1KiVr/79TYUfuzKb1uLbJMn7YxXrAv+lCBEAAAAAAKg4N9xZ6ARUlIH7FzoBAAAAAGS9FnUy5pS2hY5RIb5osFqSZNVdpxU4CQuYk8rHnFQ+hZyTeqe+l6aNW+XkvS+q8GNXZg1WqZEkefedfxQ4CVCZ1Ch0AAAAAAAAAAAAAAAAAACgcnInRAAAAAAAkiRDP5pb6AhUkN6FDtfQhjgAAQAASURBVAAAAAAAAAAAVBmKEAEAAAAASJLcsuHdhY5ABemdgwsdAQAAAAAAAACoIhQhAixDrVv+utARAAAAAAAAAAAAAAAAYJlRhAgAAAAAAFSYoR/NLXQEKkjvQgcAAAAAAAAAYJlQhAgAAAAAAFSYWza8u9ARqCC9c3ChIwAAAAAAAACwDNQodAAAAAAAAAAAlszIkSOz9957p1WrVqldu3aaNWuWHj165L777it0NAAAAAAAAFYQihABAAAAAAAAqqB77703Xbp0yQMPPJC11lore++9dzbeeOMMHz48++yzT0477bRCRwQAAAAAAGAFoAgRAAAAAAAAoIqZO3dujj322MyfPz933XVXXnvttdx111158cUX8/LLL6devXo5//zzM27cuEJHBQAAAAAAoIpThAgAAAAAAABQxYwdOzaTJ0/OBhtskF/96lel+rbddtv88pe/THFxcd54440CJQQAAAAAAGBFoQgRAAAAAAAAoIqpW7fuIm3XrFmz5ZwEAAAAAACAFZ0iRAAAAAAAAIAqZt111826666bsWPH5p577inVN2LEiDz11FNZZ511sv322xcoIQAAAAAAACsKRYgAAAAAAAAAVUzNmjVz0003ZaWVVsqvfvWrbLXVVtlvv/2yww47pGvXrunUqVOefvrp1KlTp9BRAQAAAAAAqOKqZBHit99+m4ceeiiHHXZYNt100zRp0iQNGzZMx44dc84552T69OkLHXvLLbekc+fOadSoUZo1a5bddtstr7766k8e79VXX81uu+2WZs2apVGjRuncuXNuvvnmnxwzceLEDBw4MKuvvnrq1auXdu3a5ayzzsrMmTOX6DEDAAAAAAAA/FC3bt3ywgsvZJ111snrr7+eu+++Oy+++GIaNmyYnj17ZvXVV1/kfXXo0KHcj3Hjxi3HRwAAAAAAAEBVUCWLEO+4447stddeueGGGzJ//vzssssu6datWz7++OP8/ve/z1ZbbZVJkyaVGTdo0KAceuiheffdd9OzZ8907tw5zzzzTLbffvs8+OCD5R7rwQcfzPbbb58nn3wym266aXbZZZd8+OGH6d+/fwYNGlTumHHjxmXzzTfPjTfemObNm6dPnz6ZN29ezj333Oy0006ZNWvWMv16AAAAAAAAANXPnXfema233jqtW7fOqFGjMn369HzwwQfZf//9c95556Vnz56ZM2dOoWMCAAAAAABQxdUqdIAlUadOnRx99NE58cQTs/7665e0f/bZZ+nVq1fefPPNnHDCCbnjjjtK+oYNG5ZLLrkkzZs3z4gRI0rGjRgxIt27d8+AAQPSvXv3rLzyyiVjpkyZkgEDBmTevHm5//7707dv3yTJF198ka5du+aSSy5J7969s+OOO5bKN3DgwEyePDnHHXdcLrvssiTJ3Llzs+++++bBBx/MH//4x5x99tnL7esDAAAAAAAArNg+/PDDHHrooVl11VXz2GOPpWHDhkmS9ddfP9dcc00+++yzDB06NDfeeGOOPPLIn93fmDFjym3v0KFD5s6du0yzAwAAAAAAULVUyTshHnLIIbnqqqtKFSAmyWqrrZYrr7wySfLAAw9k9uzZJX0XXXRRkmTw4MGlxm277bY56qij8p///Cc33HBDqf1dd911+c9//pM+ffqUFCAmyaqrrprzzz8/SXLxxReXGvPaa6/lxRdfzCqrrFKyTZLUqlUrV199dWrXrp3LL7/cFUcBAAAAAACAJXbXXXdlzpw52WWXXUoKEH9o3333TZIMHz68gpMBAAAAAACwoqmSRYg/pWPHjkmSWbNm5auvvkqSzJw5M88991ySpF+/fmXGLGgbOnRoqfZHH310oWN69eqVevXq5dlnn83MmTPLjOndu3fq1q1basyqq66abt26ZcqUKXnllVeW6PEBAAAAAAAATJw4MUnSpEmTcvsXtH/99dcVlgkAAAAAAIAV0wpXhPjPf/4zSVK7du00a9YsSTJ27NjMmjUrLVu2zJprrllmzOabb54keeedd0q1L/h8Qf8P1alTJxtvvHFmzpyZ999/v6T97bffXuiYH7Yv2A4AAAAAAABgcbVq1SpJ8vrrr5fb/9prryVJ2rRpU1GRAAAAAAAAWEGtcEWIl112WZJkl112KbkT4YQJE5Kk3ALEJGnYsGGaNm2aKVOmZNq0aUmSb775JlOnTv3JcQvaF+x/UY5V3hgAAAAAAACAxdGnT58kyYsvvpirr766VN/IkSNzySWXJEn69etX4dkAAAAAAABYsdQqdIBl6fHHH8/111+f2rVr59xzzy1pnz59epKkQYMGCx3bsGHDTJ06NdOnT0/jxo1LxvzUuIYNG5ba/6Icq7wxP6VDhw7lto8bNy5t27ZdpH0AAAAAAAAAK5bNN988J598ci688MIcc8wxufLKK7PRRhvl3//+d0aMGJH58+fnyCOPTM+ePQsdFQAAAAAAgCpuhSlCfO+993LQQQeluLg4F1xwQTp27FjSV1xcnCQpKipa6PgF2yzs80UZsyjHWpT9AgAAAAAAAPycCy64INttt13+7//+L2+88Ubef//9NG7cODvssEMOP/zwHHDAAYWOCAAAAAAAwApghShCnDhxYnbZZZdMmTIlgwYNyvHHH1+qv3HjxkmSGTNmLHQf3377bZKkUaNGpcYs6GvSpMnPjlmUY5U35qeMGTOm3PaF3SERAAAAAAAAqD722muv7LXXXoWOAQAAAAAAwAqsRqEDLK0vv/wyO++8cyZMmJABAwbkwgsvLLNN69atk3xfrFieGTNmZOrUqWnatGlJEWGTJk2y0kor/eS4Be0L9r8oxypvDAAAAAAAAAAAAAAAAABURlW6CHHatGnZddddM3bs2PTt2zfXXnttioqKymzXvn371K1bN5MnTy63OHD06NFJkk033bRUe8eOHUv1/9CcOXPy7rvvpm7dumnfvv0ijfmpYwEAAAAAAAAAAAAAAABAZVNlixBnzZqVPn365PXXX88vf/nL3HnnnalZs2a529avXz877bRTkuS+++4r07+gbffddy/V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n3LHHXfk008/zcorr5xddtkl5557btZaa61CxwMAAAAAAAAAAAAAAACAn6UIEQAAAAAAAAAAAAAAAAAoV41CBwAAAAAAAAAAAAAAAAAAKidFiAAAAAAAAAAAAAAAAABAuRQhAgAAAAAAAAAAAAAAAADlUoQIAAAAAAAAAAAAAAAAAJRLESIAAAAAAAAAAAAAAAAAUC5FiAAssm+//TYPPfRQDjvssGy66aZp0qRJGjZsmI4dO+acc87J9OnTCx0RYIl9/fXXWWWVVVJUVJQNNtig0HEAlsjnn3+eE088Me3atUv9+vXTrFmzbLHFFvnd735X6GgAi2zkyJHZe++906pVq9SuXTvNmjVLjx49ct999xU6GkAZb7zxRv785z+nb9++WWONNVJUVJR69er97LhbbrklnTt3TqNGjdKsWbPstttuefXVVysgMcCimTlzZn7/+9+nXbt2qVevXlZfffUMHDgwEydOLHS0amlJf96w/Fgzq5wuvvji9O3bN+uvv35WWmml1K1bN2uvvXYOPfTQjBkzptDxqj3rMJVD9+7dU1RUtNCPJ598stARqy3n9yuH4cOH/+T3yIKPc845p9BRqxXnjCufkSNHpk+fPmnRokXq1auXdu3aZfDgwfn2228LHW2F5lxk5bO4c/Lpp5/mqquuyqGHHpoNN9wwNWrUSFFRUUaOHFmBqVdsizMn8+fPz0svvZTf/e532XrrrbPKKqukbt26adu2bY466qh8/PHHFZx+xbS43yePPPJIDj300GyyySZp0aJFateunVVWWSW77bZbHnvssQpMvuJaFucae/bsWfK78eeff76cklYfizsnQ4YM+cn3K6eddloFpl8xLen3yaxZs3LhhRdmyy23TJMmTdKoUaO0b98+hx12WP71r39VQPLlr6i4uLi40CEAqBquu+66HHHEEUmSDh06ZKONNso333yTV199NdOmTcsGG2yQF154IausskqBkwIsvv79++eWW25JcXFx2rdvn7FjxxY6EsBiGTFiRHbbbbdMnTo1G220UTbeeONMmzYt//jHPzJx4sTMnTu30BEBfta9996b/fbbL/Pnz8+WW26Ztm3b5t///ndeeeWVzJ8/P6eeemr+/Oc/FzomQIk999wzDz/8cKm2unXrZubMmQsdM2jQoFxyySWpX79+fvGLX2TmzJl57rnnUlxcnHvvvTd77bXX8o4N8JNmzpyZHj165NVXX81qq62Wbt26Zfz48fnb3/6Wli1bZsSIEWnbtm2hY1YrS/LzhuXLmlnl1KJFi8yYMSObbrpp1lhjjSTJmDFj8sEHH6ROnTp56KGHsuuuuxY4ZfVlHaZy6N69e1544YXsvffeadSoUZn+k046KZtsskkBklVvzu9XHmPHjl3o+cd58+bltttuS5IMGzYsO+64Y0VGq7acM658br/99hx66KGZN29etthii7Ru3Tqvv/56Pv3003Ts2DEvvfRSGjduXOiYKyTnIiufxZ2TSy+9NCeeeGKZ9hEjRmSbbbZZLhmrm8WZk48++ijrr79+kmSNNdbIlltumRo1auRvf/tb/vWvf6Vx48Z5/PHH07Vr1wrJvqJa3O+Tfv365YEHHkiHDh3SunXrNG7cOOPHj8+oUaOSJGeeeaYLQiylpT3XeNNNN2XAgAEpKipKcXFxPvvss7Rq1Wp5RK02FndOhgwZkrPPPjtdunTJeuutV6a/V69e2WeffZZL1upiSb5PJk2alJ49e+bvf/97WrVqlW233TbJ9z9v/v73v+ell15aIX6mKEIEYJHdcsstGTlyZE488cSSN19J8tlnn6VXr1558803s//+++eOO+4oYEqAxffcc8+lZ8+eOfLII/PXv/7V4jdQ5fz73/9Ohw4dMmvWrNx+++1lFov+9re/pXPnzgVKB7Bo5s6dm9VXXz2TJ0/OXXfdlV/96lclfSNGjMhOO+2UWbNm5cMPP/RH70Cl8b//+7/59ttvs9VWW2WrrbZKq1atfnIBatiwYenRo0eaN2+eESNGlJxjGzFiRLp375769evn448/zsorr1yRDwOglLPOOivnnntutt122zz99NMlBQoXX3xxTjrppGy//fZ54YUXCpyyelncnzcsf9bMKqdXXnklW2yxRZmrkl999dU55phjsvrqq2fChAmpWbNmgRJWX9ZhKo8FRYgff/xx2rRpU+g4xPn9quSJJ57IbrvtlrXWWivjx49PjRo1Ch1pheecceUzceLErL/++pk5c2ZuuOGGDBgwIMn3d3w5+OCDc++99+aoo47K1VdfXeCkKybnIiufxZ2TRx55JMOHDy/Z/vDDD88LL7ygCHEZWpw5GTduXI499ticfvrp2X777UvaZ82alaOOOio33XRTWrdunY8++ii1a9euyIexQlnc75M333wzrVu3TvPmzUu1jxo1Kj179syMGTPy7rvvZqONNqqI+CukpTnXOHny5Gy44YbZYost8v777+eTTz5RhLgMLO6cLChCvPHGG9O/f/+KDVtNLO6czJ8/P126dMnIkSNzxhlnZMiQIalVq1ZJ/z//+c80adIkLVq0qKiHsNwoQgRgmRgxYkS222671K1bN998803q1KlT6EgAi+S7777LpptuWnIV5Hbt2ln8BqqcQw45JLfeemsuv/zy/OY3vyl0HIAl8u6772aTTTbJBhtskPfee69M/4Irzd19993Zd999C5AQ4OcVFRX95AJUr1698vjjj+eSSy7JCSecUKrv+OOPz1/+8pdceOGFOemkkyogLUBZc+bMySqrrJKpU6dm9OjR2WyzzUr1d+zYMe+8805ef/31bLHFFgVKyc/9vKGwrJlVTuuvv34++uijjBkzxh8qVjDrMJWLIsTKx/n9quPAAw/MHXfckdNOOy1/+tOfCh2nWnDOuPI577zzcuaZZ2bnnXfO008/Xapv8uTJadOmTebMmZPPPvusTPEIy55zkZXP4r5fX/C7mSLE5WdJz6HMnDkzrVq1yn/+858MHz48O+yww3JKWP0szXmtI444Itddd12uvPLKHHPMMcshXfW0OHNy4IEH5oEHHsi7776bHj16KEJcTn5uThQhVryfm5Mbbrghhx12WPbee+/cd999FZyuYrkcDwDLRMeOHZN8fxWYr776qsBpABbd2WefnXHjxuXqq6921SqgSpoyZUruueeerLTSSjn88MMLHQdgidWtW3eRtmvWrNlyTgKwfMycOTPPPfdckqRfv35l+he0DR06tEJzAfzQyy+/nKlTp6Zt27ZlChATr1WwKKyZVU4L7n6oKLTiWYeBhXN+v+qYMWNGHn744STJQQcdVOA01YdzxpXPG2+8keT7wqkfa9myZTbaaKPMmTMnjz/+eAUn48eci4SlU69evbRr1y7J93eupnLw3r6wnnrqqdxxxx0544wz3IUafuSaa65JkmpxcYdaP78JAPy8f/7zn0mS2rVrO7kHVBnvvPNOLrroogwYMCDbb799xo8fX+hIAIvtlVdeyaxZs9KzZ8/Url079913X15++eXMmTMnG2ywQfbdd9+suuqqhY4J8LPWXXfdrLvuuhk7dmzuueeeUleuHjFiRJ566qmss8462X777QuYEmDJjR07NrNmzUrLli2z5pprlunffPPNk3z/XhWgUN5+++0k/31N+rEF7Qu2A8qyZlb53HLLLXn//ffTrl27rLvuuoWOU61Yh6m8rr/++nz11VepUaNG2rVrlz333DOtW7cudKxqx/n9quOBBx7IjBkzstlmm6VDhw6FjlNtOGdc+cyYMSNJsvLKK5fbv+D337fffjsHH3xwheWiLOciYenMmzcvn3zySZK4w1sl8c477+Tuu+9O7dq106NHj0LHqXa+/fbbHHXUUdlggw3yu9/9rtBx+P+GDRuWt956KzNnzsyaa66ZXXfdNVtssUWhY1U706ZNy+uvv57GjRtn6623zogRI/LII4/k66+/TuvWrdOnT59svPHGhY65zChCBGCZuOyyy5Iku+yyyyJfiQygkObPn58jjjgiTZs2zfnnn1/oOABLbMyYMUmSVVddNd26dcuIESNK9f/P//xPbrzxxuyzzz6FiAewyGrWrJmbbropvXv3zq9+9atccMEFadu2bT777LO8/PLL6dy5c2699VZXtgSqrAkTJiRJuX/0kyQNGzZM06ZNM2XKlEybNi2NGzeuyHgASX7+tWpB+4LtgLKsmRXeBRdckDFjxmTGjBl57733MmbMmKy++uq54447UqNGjULHqzasw1Ru5513XqnPTz755Jx55pk588wzC5SoenJ+v+q47bbbkkRRVQVzzrjyadmyZZKUFOb82IJ2Fx4oPOciYencddddmTRpUlq2bJntttuu0HGqpaFDh+b+++/PnDlzMmHChLz66qupXbt2/vrXv2adddYpdLxq58wzz8z48ePz/PPP+92rErn11ltLfX7mmWdm7733zk033ZRGjRoVKFX1849//CPz58/Peuutl+OOOy5XXnllqf4zzzwzJ5988gpzfszZVQCW2uOPP57rr78+tWvXzrnnnlvoOACL5PLLL8/f/va3XHDBBWnevHmh4wAssSlTpiT5/oru77zzTq6//vpMnjw5H3/8cQYNGpQZM2bkoIMOchVLoEro1q1bXnjhhayzzjp5/fXXc/fdd+fFF19Mw4YN07Nnz6y++uqFjgiwxKZPn54kadCgwUK3adiwYaltASraz71WeZ2Cn2bNrHJ46qmncvPNN+e+++7LmDFjstZaa+WOO+5wJfgKZh2mctp+++1z6623Zty4cfn222/z/vvv5w9/+ENq1aqVs846q6SQmorh/H7V8Pnnn+e5555LzZo1s//++xc6TrXjnHHlssMOOyRJ7rzzzsyePbtU38iRI/P+++8n+f5uMBSWc5Gw5D799NOccMIJSZJzzjnHBYYK5O23387NN9+cO+64Iy+//HLq1KmTyy67LIccckiho1U7o0ePzmWXXZZDDz003bt3L3Qckqy33nq58MILM2bMmEyfPj2ffvppbr/99qyxxhq5//77XTylgi14b//3v/89V155ZU4++eR8/PHHmTx5cq699trUr18/F1xwQf7v//6vwEmXDUWIACyV9957LwcddFCKi4tzwQUXpGPHjoWOBPCzPv300wwePDg77LBD+vfvX+g4AEtl3rx5SZK5c+fm4osvzsCBA9OiRYu0adMmF110Ufr165fZs2evMFdTAlZsd955Z7beeuu0bt06o0aNyvTp0/PBBx9k//33z3nnnZeePXtmzpw5hY4JsESKi4uTJEVFRT+7DUCh/NxrldcpWDhrZpXHs88+m+Li4kyZMiUvvvhi2rdvn+7du+cPf/hDoaNVG9ZhKq9zzjknBx10UNZdd93Ur18/7dq1y+mnn56HHnooSfL73/8+3333XWFDViPO71cNd9xxR+bNm5edd945rVq1KnScasc548rlwAMPTOvWrTNhwoT06dMnY8aMybRp0/Lkk09mn332Sa1atZLE3acrAeciYcnMmDEje+21V7788svsueeeOeqoowodqdoaPHhwiouL89133+Xvf/97Bg4cmKOPPjp9+vQpUwjP8jNv3rwcccQRadq0aS688MJCx+H/O+igg3LSSSdlo402SsOGDbPmmmvmgAMOyGuvvZbmzZvnoYceyquvvlromNXGD9/b77///rngggvSpk2btGjRIocffnjJe/oV5dyk3/QBWGITJ07MLrvskilTpmTQoEE5/vjjCx0JYJEcc8wxmT17dq6++upCRwFYao0bN07y/WLeoYceWqZ/4MCBSZLhw4dXZCyAxfbhhx/m0EMPTcuWLfPYY4+lc+fOadiwYdZff/1cc8016d27d0aMGJEbb7yx0FEBlsiC39tmzJix0G2+/fbbJEmjRo0qJBPAj/3ca5XXKSifNbPKqWnTpunWrVsef/zxbLHFFjnzzDPz2muvFTpWtWAdpur5xS9+kS233DL/+c9/MnLkyELHqTac368abrvttiRxN5ECcM648mnYsGEeffTRtG7dOk8++WQ23njjNGnSJLvuumtq1KiRQYMGJUlWXnnlAifFuUhYfHPmzMnee++dN954I127ds0dd9xR6EgkqVevXjbeeONceeWV+e1vf5tHH300l19+eaFjVRuXXnppRo8enfPPPz8tWrQodBx+xmqrrZYBAwYkSZ566qkCp6k+Fvzelfz3ffwPDRgwIEVFRZk4cWI++uijioy2XChCBGCJfPnll9l5550zYcKEDBgwwBUugCrl0UcfTYMGDXL00Uene/fuJR/77bdfkmTChAklbdOnTy9wWoCf1qZNmyRJq1atUrdu3YX2T5o0qQJTASy+u+66K3PmzMkuu+yShg0blunfd999k/ijK6Dqat26dZLvixTKM2PGjEydOjVNmzYttVgFUJF+7rVqQfuC7QBrZlVB7dq186tf/SrFxcUZOnRooeNUC9Zhqqb1118/SfLZZ58VOEn14fx+5ffee+/lzTffTKNGjbLnnnsWOk6145xx5bTJJptk7Nixufnmm/Pb3/42Rx99dP7v//4v7777bsk2HTp0KGBCEuciYXHNnz8/Bx10UJ566ql07NgxQ4cOTf369Qsdix856KCDkiQPP/xwgZNUH0OHDk1RUVFuvvnmUu/vu3fvns8//zxJ0rdv33Tv3j0vv/xygdOSeG9fCAveuyfJ2muvXaa/QYMGadmyZZIV4/19rUIHAKDqmTZtWnbdddeMHTs2ffv2zbXXXpuioqJCxwJYLFOnTs0LL7xQbt93331X0jd37tyKjAWw2DbbbLMkyZQpU1JcXFzm97KvvvoqiStYApXfgoXwJk2alNu/oP3rr7+usEwAy1L79u1Tt27dTJ48ORMnTsyaa65Zqn/06NFJkk033bQQ8QCSJB07dkzy39ekH/NaBaVZM6s6Flytf/LkyQVOUn1Yh6l6pkyZksS55Irk/H7ld+uttyb5/g+rGzRoUOA01Y9zxpVX/fr1c8ghh+SQQw4p1f7ss88mSbp3716AVPyQc5GweI455pjcc889adeuXZ5++uk0bdq00JEoh/f2hVFcXJwXX3xxof0jRoxI8v2Fuig87+0rXuvWrdO8efN89dVX5b43mT9/fqZOnZpkxZgXd0IEYLHMmjUrffr0yeuvv55f/vKXufPOO1OzZs1CxwJYLMXFxeV+fPzxx0m+Pxm7oM1JJaCy22STTbLOOuvku+++y6hRo8r0L7j66+abb17ByQAWT6tWrZIkr7/+ern9r732WpLSV5EDqErq16+fnXbaKUly3333lelf0Lb77rtXaC6AH+rSpUtWWmmljBs3Lm+++WaZfq9V8F/WzKqWBQVvbdu2LXCS6sE6TNUzefLkvPTSS0mcS65Izu9XbsXFxbnjjjuSJAcffHCB01RPzhlXLS+88EJGjx6dDh06pEuXLoWOU+05FwmL7vTTT88111yT1q1b55lnnskqq6xS6EgshPf2FW/48OELfY+/4I5vn332WYqLi905vBIoLi7Ogw8+mCTZYostCpymeundu3eS5Pnnny/T9+qrr2b27NmpX79+Nthgg4qOtswpQgRgkc2bNy/7779/nn/++XTr1i0PPPBA6tSpU+hYAADV3qmnnpokOe6440pdWeyNN97IRRddlCQ56qijCpINYFH16dMnSfLiiy/m6quvLtU3cuTIXHLJJUmSfv36VXg2gGVl0KBBSZLzzjsvH374YUn7iBEjcs0116RJkyY57LDDChUPIHXq1MlvfvObJMlvfvObzJgxo6Tv4osvzjvvvJOuXbtmq622KlREqBSsmVU+L730Uu6+++4yd9WbM2dOLr/88tx6662pX79+fvWrXxUoIRTeyJEj8/zzz6e4uLhU+/jx47PXXntlxowZ2WOPPcrcKYnly/n9yuull17KJ598ktVXX72kkIeK5Zxx5fTWW2+V+Z1r9OjROeCAA1JUVJTLL7+8QMn4Meci4eddfPHF+dOf/pRWrVrl2WefTevWrQsdqVqbNGlSLrroopI7hv3QM888k9/97ndJkgEDBlRwMqg8vvzyy9xyyy2ZNWtWqfbp06fn6KOPzqhRo9KqVavstddeBUpYPZ1yyimpWbNmLrjgglIXeJw0aVKOP/74JMnAgQNXiHPIRcU/PrMEAAtx2WWX5YQTTkiS7LXXXmnSpEm521144YUltz0HqErGjx+fddZZJ+3bt8/YsWMLHQdgkc2fPz/77bdf7r333jRr1izbbbddpk+fXnIlpSOOOCJ//etfCx0T4GedcsopufDCC5MkHTp0yEYbbZR///vfGTFiRObPn58jjzwy11xzTYFTAvzXY489lnPPPbfk81GjRqWoqCidO3cuaTvzzDPTq1evks9POOGEXHbZZWnQoEF23nnnzJ49O88880zmz5+fe+65J3vvvXeFPgaAH5s5c2a6d++eUaNGZbXVVku3bt3yySefZNSoUWnevHlGjhyZ9dZbr9Axq5Ul+XnD8mXNrPK56aabMmDAgLRo0SJbbLFFmjdvni+//DJ///vf89lnn6VevXq5+eabs++++xY6arVmHaawFnyfrLbaamnXrl1atWqViRMn5o033sjMmTPToUOHDBs2zJ1fKpjz+5XXkUcemWuvvTannHJKzj///ELHqbacM658unfvnn/84x/p1KlTWrRokfHjx2fUqFGpUaNGrrrqqhxxxBGFjrjCci6y8lncOfnss89KFYX84x//yLRp09KhQ4c0atQoSdKrV6+ceeaZFfQIVjyLMydvvfVWNt988xQXF2fbbbdNu3btyt3n4Ycfnq5duy737CuqxZmTBe8Z69evny233DJrrrlmZsyYkQ8++KDkPeSJJ56Yiy++uMIfx4pkWZ1rbNOmTT755JN89tlnJXewZsksyfdJkyZNsuGGG6Z169aZOnVqRo8ena+++ipNmzbNo48+6s7US2lJvk8uv/zyHHfccalbt2623XbbNGrUKK+88kqmTJmSzTffPMOHD0/jxo0r9HEsD7UKHQCAqmPKlCkl/19wu+byDBkyxIIqAEAFqlGjRu66665079491113XYYNG5aioqJsueWWOeqoo3LwwQcXOiLAIrnggguy3Xbb5f/+7//yxhtv5P3330/jxo2zww475PDDD88BBxxQ6IgApUyePDmjRo0q1VZcXFyqbfLkyaX6L7300nTq1ClXXHFFnnnmmdSuXTs9evTI4MGD/SEDUCnUq1cvzz//fP70pz/ljjvuyEMPPZSVV145hx56aM4999ystdZahY5Y7SzJzxuWL2tmlc8OO+yQ008/PS+88ELeeeedfPnll6lTp07atGmTfv365bjjjlNATbW39dZbl9wV4R//+EdeeeWVNGzYMJ06dco+++yTo48+OvXr1y90zGrH+f3KadasWbnvvvuSJAcddFCB01RvzhlXPgcddFBuu+22vPXWW5k6dWpatmyZ/fbbL6eccko6depU6HgrNOciK5/FnZNZs2aV2T5JxowZU/L/DTbYYDkkrT4WZ06mTp1acpfwESNGZMSIEeXus3v37r5flsLizMkqq6yS888/P8OHD8+YMWPy+uuvZ/78+VlttdWy33775de//nW6d+9ekfFXSM41Vj6LMyfNmzfPqaeempEjR+ajjz7KW2+9lZo1a2adddZJ//79c+KJJ2aNNdao0PwroiX5Pvntb3+b9u3b58ILL8zf/va3zJw5M23bts0JJ5yQk08+OQ0aNKiQ7MubOyECAAAAAAAAAAAAAAAAAOWqUegAAAAAAAAAAAAAAAAAAEDlpAgRAAAAAAAAAAAAAAAAACiXIkQAAAAAAAAAAAAAAAAAoFyKEAEAAAAAAAAAAAAAAACAcilCBAAAAAAAAAAAAAAAAADKpQgRAAAAAAAAAAAAAAAAACiXIkQAAAAAAAAAAAAAAAAAoFyKEAEAAAAAAAAAAAAAAACAcilCBAAAAAAAAAAAAAAAAADKpQgRAAAAAAAAAAAAAAAAACiXIkQAAAAAAAAAAAAAAAAAoFyKEAEAAAAAAAAAAAAAAACAcilCBAAAqGSKiopKfdSoUSNNmzZNt27dct1116W4uLjU9kOGDElRUVFuuummwgSuhvr375+ioqIMHz680FEAAAAAAABgqf14jfLnPtq0aZMk6d69e4qKijJ+/PiC5l9SO+20U9Zee+3Mnj078+bNS+fOnVNUVJSrr756oWPmz5+fbbfdNkVFRbn88ssrMO3S++yzz1K/fv0ce+yxhY4CAABUMbUKHQAAAIDyHXrooUmSefPmZdy4cXnllVfy8ssv57nnnsudd95Z4HT/1aZNm3zyySdliiMBAAAAAACAqmHB2uQPvfzyyxk3blw6duyYTp06lepr0aJFBSVbfh577LE8//zzufrqq1OnTp0kyXXXXZctttgip556anr37p0111yzzLgrrrgiI0eOzDbbbFPlivlWW221HHnkkbnqqqty3HHHpX379oWOBAAAVBGKEAEAACqpH9/Z8Jlnnsluu+2Wu+66KwceeGB23333wgQDAAAAAAAAVig/XptMkv79+2fcuHHZc889M2TIkHLH3XLLLfn222+zxhprLN+Ay8Hpp5+eVVZZJQMHDixp23TTTXPKKafkT3/6U44++ugMHTq01JhPP/00Z5xxRurUqZPrrrsuNWrUqOjYS+13v/tdrrjiipx11lm5++67Cx0HAACoIqreux8AAIBqauedd87BBx+cJHnooYcKGwYAAAAAAACo9lq3bp0NNtggtWvXLnSUxfLKK6/knXfeyX777VdyF8QFzjrrrLRr1y6PPvpo7rrrrlJ9Rx99dKZPn57/+Z//SYcOHSoy8jKzxhprZMcdd8yDDz6YL774otBxAACAKkIRIgAAQBWy2WabJfn+Cps/56OPPsqQIUOy7bbbplWrVqlTp07WXHPNHHLIIfnggw/KHVNUVJQ2bdpk3rx5Of/889OuXbvUrVs3a621Vk499dTMmjWrZNvhw4enqKgon3zyScnYBR9t2rT52Xzjx49PUVFRunfvnu+++y6nnXZa1l577dStWzfrrbde/vd//zfFxcULHVOeIUOGpKioqMyVWtu0aZOioqIkyZVXXpmNN9449evXzzrrrJPzzz+/5DijR4/O7rvvnmbNmqVx48bZc889Sx7fwjzxxBPp2rVrGjVqlJVXXjl9+/bN2LFjF7r9yy+/nL322iurrLJK6tatmzZt2uS4447L5MmTy2zbv3//FBUVZfjw4Xnqqaey4447pmnTpikqKsrUqVN/MhcAAAAAAAAsb927d09RUVHGjx9fqn3BmuHcuXNz7rnnZr311kv9+vWz4YYb5sYbbyzZbtiwYdlxxx3TpEmTrLzyyjnkkEPy1VdflXus2bNn57LLLstWW22Vxo0bp2HDhuncuXOuv/76MuuKP+e6665Lkhx44IFl+urVq5drr702RUVFOe6440ry3HXXXXnsscey0UYb5fTTTy/Zfvz48fn1r3+dNm3apG7dumnZsmX69euXd955p8y+Z86cmeuvvz59+vTJuuuum/r166dp06bZfvvtyxQ8LrAoa4affvppjj322LRv3z4NGjRIs2bN0qFDh/z617/O+++/X2afBxxwQObMmVPuHTABAADKowgRAACgCpk2bVqSpG7duj+77XXXXZezzz4733zzTbbccsvsscceadKkSW699dZstdVW5S56LXDggQfmnHPOyZprrplf/OIXmTZtWs4///wcdthhJdu0atUqhx56aBo2bJgkOfTQQ0s++vXrt8iPafbs2fnFL36Rv/71r9lwww2z44475l//+ldOO+20nHnmmYu8n0Vx4okn5uSTT07Lli3Ts2fPfPXVVzn11FMzZMiQvPLKK+nWrVs+/vjj7LTTTmnVqlUefvjh9OjRI9999125+7v33nvTq1evzJ49O717987qq6+eBx98MNtss03efvvtMtv/5S9/yfbbb5+hQ4dmvfXWyx577JH69evn8ssvz9Zbb53PPvus3OPccccd2XXXXTNjxozsuuuu2WqrrUqKKgEAAAAAAKCy2nfffXPBBRekbdu22X777fPxxx9n4MCBufHGG3Pffffll7/8ZaZNm5add945DRs2zK233po999yzTFHhjBkz0rNnz5xwwgkZP358unbtmu7du+ejjz7K4YcfnqOPPnqxcj3++ONp2LBhttxyy3L7t99++xxxxBGZPHlyBg0alK+//jrHH398atSokWuvvbbk7okvv/xyOnbsmL/+9a9p1KhR9thjj6y//vp54IEHss022+T5558vtd/x48fn8MMPz6hRo9K6dev06dMnnTp1ysiRI7P//vtnyJAhC828sDXDiRMnZvPNN89VV12VevXqpXfv3unWrVtq166da6+9NiNGjCizrwUXfX3ssccW6+sGAABUX7UKHQAAAIBFU1xcnEcffTRJsummm/7s9nvuuWeOOOKItG3btlT7jTfemIEDB+aEE07IsGHDyoz75JNP0qBBg7z77rsldzT8+OOPs8UWW+T222/P2WefnbZt22aDDTbITTfdlOHDh2fGjBlLfJXMESNGpFu3bvnggw/SokWLJMnrr7+ebbfdNpdccklOO+20NGrUaIn2/WP33ntvXn/99XTo0CFJMnbs2HTq1CkXXnhhbrnllvzhD3/ICSeckOT74shdd901w4YNy1133ZUBAwaU2d9VV12Vv/71rzniiCOSfD9H//M//5P//d//zcCBA/PGG2+UbDty5MiceOKJad26dR555JGSOSwuLs55552Xs846K8cdd1zuvffeMse59tprc9ddd+VXv/rVMvk6AAAAAAAAwPL2ySefpHHjxvnHP/6RNddcM0ny/PPPZ6eddsoZZ5yR2bNn56677sree++dJPnmm2+y3Xbb5eWXX87w4cOz4447luzrlFNOyUsvvZSDDz44V111Vcn64eTJk9O7d+9cc8016d27d3r16vWzucaOHZtJkyZl++23T40aC7+Xx/nnn59HH300t9xyS8mY3/zmN9luu+1K8u6zzz757rvvcu+995a6UOuzzz6bXr165eCDD84///nPkqLFli1b5qmnnkrPnj1LHXvBhVLPPffc9O/fv2Sd9ocWtmZ4ySWX5Msvv8xFF12UQYMGlZmDuXPnltnXuuuumxYtWuRvf/tbZs2atUgXwQUAAKo3d0IEAACo5ObNm5cPP/wwAwcOzIgRI1K3bt1yC+J+bJtttilTgJgkAwYMSJcuXTJ8+PD85z//KXfs5ZdfXmpha5111slBBx2UJHnppZeW7IEsRI0aNXLdddeVFCAmyZZbbpldd9013377bV5//fVldqxzzz23pAAxSTbYYIP06tUr3377bVq3bl1SgJgkderUyfHHH58keeGFF8rd33bbbVdSgJgkRUVFOffcc7PWWmtl9OjRpa4q+uc//znz58/PX//611JFpEVFRRk8eHA222yzPPDAA/nyyy/LHKdXr14KEAEAAAAAAKhy/vKXv5QUICbJjjvumM033zyfffZZevXqVVKAmCRNmjTJkUcemaT0+tykSZNy3XXXZZ111sm1115b6gKmLVu2zDXXXJMkJf/+nHfeeSdJ0r59+5/cbqWVVsqVV16ZJPnb3/6WtdZaK3/84x9L+m+44YZ8/vnnOfnkk0sVICZJz549c8wxx+Rf//pXyYVmk6R58+b5xS9+Uab4cZ111skZZ5yR+fPnZ+jQoeXmWdia4aRJk5IkO+20U5m+tddeu9w14+T7xz9r1qy8//775fYDAAD8kDshAgAAVFJFRUVl2ho3bpybb755oQtFPzZ9+vQMHTo0b731Vr7++uvMmTMnSfLZZ5+luLg448aNy+abb15qTO3atdO9e/cy+2rXrl3J2GWpTZs2Jfte3sfbeeedy7Stu+66C+1b8HVeWIb99tuvTFvt2rWz995759JLL83LL7+cbbfdNvPnz89zzz2Xxo0bp0ePHmXGFBUVpUuXLnnzzTfzxhtv5Je//GWp/j322OPnHxwAAAAAAABUInXq1MkOO+xQpn3dddfN6NGjF3l97oUXXsicOXOyyy67lHvHvo4dO6Zx48Z57bXXFinXgqK9lVde+We33XPPPbPlllvm9ddfz6mnnprGjRuX9D3zzDMl25Sna9euufTSS/Paa6+lb9++pfoW3O3xX//6V2bOnJni4uKSx/zhhx+Wu7+FrRluscUWSZJjjz025513Xrp165ZatX7+z4ObNWuW5Pu7SQIAAPwcRYgAAACV1KGHHprk+zsFNmnSJJtsskn69u27SIthSTJs2LDst99+P7loNG3atDJtq622WmrWrFmmfcEVRWfNmrVIx19UP7zy6fI+3hprrFGmrWHDhj/bt7AMa6+9drntC+4i+e9//ztJ8tVXX2X69OlJ8rMLfuXdCbF169Y/OQYAAAAAAAAqm1atWpW541+y+Otz48ePT5JcffXVufrqqxd6vO+++26Rcv3nP/9JklIFhT9lQaYF//4419Zbb/2T43+4/vef//wnffv2zbBhwxa6fXlruMnC1wz79++fp59+Ovfcc0922mmnNGjQIFtuuWV23XXXDBw4MKusskq545o0aVKSCQAA4OcoQgQAAKikbrrppiUeO3369Oy777756quvcuaZZ2b//ffP2muvnfr166eoqCgHHHBA7rzzzhQXF5cZW94dGJenZXm8+fPnL/GxlmWOH39d582bl+T7hcwfX+X0x8orbKxXr94yywYAAAAAAAAV4efW3xZ1fW7BWttmm22WTTfddKlzrbTSSkmSb775Zqn2syDXPvvskwYNGix0ux8WKZ566qkZNmxYtt9++5xzzjnZeOON07Rp09SsWTNPP/10fvnLX5a7hpssfM2wZs2aufvuu3Paaafl4YcfzvPPP5+RI0fmxRdfzJ/+9Kc89dRT2WabbcqMW1B8uODrAQAA8FMUIQIAAKyAXnrppXz11VfZe++9c84555Tp/+c//1mAVEuvTp06SVJyV8Ef+/TTTysyTj755JNy2ydMmJAkWX311ZMkLVq0SN26dVO7du2lKi4FAAAAAACA6mbNNddMknTv3j0XX3zxUu9vwZ0Bv/7666XO9f7772fw4MGLXBz54IMPpmbNmnnkkUfKFP8t7RruZpttls022yxDhgzJN998k7PPPjsXX3xxjj/++IwaNarM9lOmTEmStGzZcqmOCwAAVA9l73MPAABAlbdgwWittdYq0/fRRx9l9OjRy+xYCwoD586du8z2uTAtWrRI7dq18/HHH5c53uzZs/PCCy8s9ww/dPfdd5dpmzt3bu6///4kSZcuXZIktWrVSvfu3fP111/nxRdfrNCMAAAAAAAAUJXtuOOOqVmzZh599NGSuw8ujY4dOyZJxo4du1T76dmzZ5LkoYceWuQxU6ZMSePGjcu9++A999yzVHl+qEmTJvnjH/+YoqKi/P3vfy93m7Fjx6ZevXpp3779MjsuAACw4lKECAAAsAJq165dkuSBBx7I5MmTS9qnTp2aww47LHPmzFlmx1pwt7/3339/me1zYerUqZNtttkmX3/9da688sqS9jlz5uTEE0/Mxx9/vNwz/NArr7ySG264oeTz4uLi/P73v8+ECRPSsWPHbLfddiV9p59+emrUqJFDDz00L7/8cpl9/fvf/y71mAAAAAAAAIBkjTXWSP/+/fPhhx/m4IMPzpdffllmm1dffTWPP/74Iu2vffv2WWWVVTJ69OilutDqr3/967Rs2TJ//OMfc+ONN6a4uLhU/4wZM3LLLbdk4sSJJW3t2rXL1KlTy1zs9JJLLsnzzz+/RDluvfXWvPvuu2Xan3zyyRQXF6d169Zl+saNG5evvvoqnTt3Tt26dZfouAAAQPWiCBEAAGAFtOWWW2bnnXfOhAkT0q5du+y1117Za6+9ss466+Tf//53+vTps8yOtcceeyRJevTokf333z+HH354TjvttGW2/x8766yzUqNGjZxwwgnZbrvt0rdv36y33nq55557cuihhy6345bn6KOPzuGHH56tt946BxxwQDbZZJP88Y9/TOPGjXPjjTeW2nb77bfPZZddlk8//TTdunVLx44d069fv+y+++7ZZJNN0rp165xxxhkVmh8AAAAAAACqgr/85S/Zcccdc+edd2bdddfN9ttvn/322y/du3fPmmuumS5duuTpp59e5P3ttttu+e677zJq1KglzrTyyivnwQcfTMOGDTNw4MCss8462X333bP33ntnq622yqqrrppDDz20VNHk//zP/yRJ9ttvv2y//fY54IAD0qFDh5x88sk58cQTlyjH/fffn0022STrrbde9tprrxxwwAHZbrvtstdee6VmzZr54x//WGbM8OHDk3z/dQAAAFgUihABAABWUA8//HDOOOOMtGzZMk888UTeeOON7Lfffhk5cmSaNm26zI5z3HHHZfDgwWnUqFHuv//+XH/99bnrrruW2f5/rGfPnnnkkUey1VZbZfTo0XnhhReyzTbb5LXXXkubNm2W23HLs+++++aRRx5JzZo18/DDD2fixInp06dPRo4cmc0226zM9r/5zW8yatSoHHjggZkyZUoeeeSRjBgxIjVq1MhRRx2Vhx9+uELzAwAAAAAAQFXQoEGDPP3007nuuuuy+eab5913382DDz6YcePGpW3btjn//PNz8sknL/L+jjjiiCTJHXfcsVS5unTpkr///e856aSTUr9+/QwbNixPP/10vvnmm+y+++65++67s9FGG5Vsf+CBB+axxx7LNttsk7feeitPPPFEVl999QwbNqzk4q+La9CgQTn22GPTuHHjvPTSS3nwwQczadKk7L///nnttdfSt2/fMmPuuOOO1K5dO/3791/Shw4AAFQzRcU/vv87AAAAAAAAAAAAAKzANttss0ycODETJ05M3bp1Cx2nwkycODFrr712+vXrl7vvvrvQcQAAgCrCnRABAAAAAAAAAAAAqFb+8Ic/5Msvv8z1119f6CgV6oILLkiNGjVyzjnnFDoKAABQhbgTIgAAAAAAAAAAAADVzk477ZSPPvooH330UerUqVPoOMvdZ599lnXXXTcDBgzIVVddVeg4AABAFaIIEQAAAAAAAAAAAAAAAAAoV41CBwAAAAAAAAAAAAAAAAAAKidFiAAAAAAAAAAAAAAAAABAuRQhAgAAAAAAAAAAAAAAAADlUoQIAAAAAAAAAAAAAAAAAJRLESIAAAAAAAAAAAAAAAAAUC5FiAAAAAAAAAAAAAAAAABAuRQhAgAAAAAAAAAAAAAAAADlUoQIAAAAAAAAAAAAAAAAAJRLESIAAAAAAAAAAAAAAAAAUC5FiAAAAAAAAAAAAAAAAABAuRQhAgAAAAAAAAAAAAAAAADlUoQIAAAAAAAAAAAAAAAAAJRLESIAAAAAAAAAAAAAAAAAUC5FiAAAAAAAAAAAAADL2E033ZSioqK0adOm0FEWy/jx41NUVJSioqKMHz++0HEW24QJEzJgwIC0bt06derUSVFRUZo2bVroWAAAAFWaIkQAAGCxfPvtt3niiSdy3nnnpW/fvll77bVLFqCGDBmyyPv54osvctJJJ6V9+/apX79+mjVrlm7duuW6665LcXHxUmUcMmRISaaf+vjoo49+cj/jxo3Lr3/966yzzjqpV69eVllllfzyl7/M/fffv1T5lrXPPvss5557brp27ZpWrVqlTp06admyZbbccsucdtpp+fDDDxdrf++8805OPfXUdO7cOauuumrq1KmTlVZaKRtttFEOPfTQPPzww5kzZ85P7uObb77J5Zdfnt69e2fttddOw4YNU79+/ay55prZbbfdcvHFF+fzzz9fmoedJHniiSdy5JFHpkOHDmnWrFlq166d5s2bp3PnzjnhhBMyatSopT4GVcP48eMzZMiQxXodAgAAAACAymDOnDk5++yzs95666Vu3bpZbbXVcsQRR2TSpEk/OW7HHXdMzZo189prry32MYcPH75I62kL+/hxYdqkSZPy5z//OTvvvHPWXHPN1K9fPw0bNkybNm2y55575q9//WumTp1aJscP1/WWRHnZatSokSZNmmTTTTfNsccem3/84x9LtO8V1YL1lKpYXLgo/vOf/6RLly656aab8umnn6ZBgwZZddVVs+qqqxY6WoVa1DXzn/vee/PNN3PCCSekY8eOad68eerWrZvVV189PXr0yIUXXlju9/VPueqqq0qO27Vr10Ua07179xQVFaV79+4L3Wb+/Pk54ogjSvZ9wgknLPLfHQwfPjxDhgzJTTfdtEjbLw8/fk1+6KGHfnL7Nm3aLNLfaMycOTPXXHNNevfundatW6d+/fpZaaWVsuGGG+bII4/M888/v1g5582bl9VXX70k57PPPvuzY3742IYPH77Q7UaPHp1VVlklRUVFWWONNTJmzJjFygYAwPJXq9ABAACAquVvf/tbdtttt6XaxxtvvJFf/vKX+eqrr5IkjRo1yrRp0/Lyyy/n5Zdfzr333ptHHnkkdevWXarj1K5dO82aNVtof61aC39L9Pjjj2efffbJt99+myRp0qRJvvrqqzz99NN5+umnM2DAgFx//fVLvCC6rFx00UU566yzSnIuuIrnlClT8uWXX+aNN97IRRddlBNOOOH/sXef0VGV3d/Hv5MEUklIQi/SpCMgIkgPVUB6U3pARRSlg0jvICIRRAVBCB3pCIj0EKoCAtKC9KKAlCSQhPR5XuSZc2fIpEEA8f/7rDXrnpyrnH3OmYnrzmZfF5MnT8be3j7ZuR48eEDPnj1ZtmyZkZAxmUx4eHjw8OFDzpw5w5kzZ1i4cCFFihRhyZIlVK5cOck8P/zwA4MGDSI4ONg45uzsjKOjI3/99Rd//fUXmzdvZtiwYQwfPpxhw4al+7r//PNPOnbsyOHDh41j9vb2eHh4EBoayqFDhzh06BDTp0+ndu3arFixgmzZsqX7PPLiuHz5MmPGjAFQIaKIiIiIiIiIiIiIvFDefvtt1q5dC4Crqys3b95k7ty5BAQEcPjwYTw8PJKMmT9/PgEBAfTu3ZvXX3893efMnDlzskVZ9+7dIyYmJsVcmyXnZDabmTRpEhMmTDDyVZCQ/zOZTFy5coUrV66wfv16Bg8ezLRp0+jevXu6402Nq6srbm5uQEKRzN27dzlx4gQnTpxgzpw5zJo166mc90Vkyaf4+Pgku0NjpkyZKF68uPH+RbJs2TKuX7+Op6cn+/fvp0SJEs87pOfucQowHz58yIcffsjChQuN3LGDgwNubm7cvHmTGzdusHPnTiZOnMiMGTPo1KlTmuadN2+e8X7fvn0EBQU98TOKjo6mc+fOrFixAkj4jI8cOTLN4wMCAhgzZgy1atXC19f3iWLJKEOHDqVp06Yp5vdTs23bNrp3787169eNY+7u7kRFRREUFERQUBBz5syhUaNGLFq0CG9v71Tn3Lx5Mzdu3DB+/uGHH6hXr95jx2gRGBhI06ZNuX//PkWKFGHbtm0UKlToiecVERERkYylnRBFRERERCTdPD09qVu3LoMGDWLZsmXkypUrzWNDQ0Np0qQJd+/epUSJEhw6dIgHDx4QHh7OzJkzyZQpE1u3bqVfv35PHGfVqlW5efNmsq/kkmqXLl2iXbt2REREUK1aNc6ePUtoaCihoaFGsmL+/Pl88cUXTxzjk+jduzcDBw4kIiKCypUr8/PPP/Pw4UPu3btHVFQUe/bs4a233iI2NpapU6fSpk0b4uPjbc4VHBxMlSpVWLp0KQDvvPMOu3fvJjIykuDgYCIjI/nrr7+YO3cuZcuW5cKFCxw4cCDJPMOGDeO9994jODiYkiVLsmDBAm7dukVERAQhISFERESwZcsWOnXqRExMDCtXrkz3dR86dIjKlStz+PBhXF1d+eyzzzh+/DgxMTHcvXuX6OhoTp06xYQJE8iZMye7du2ySqyIiIiIiIiIiIiIiIj8W+zcuZO1a9fi7u5OYGAgYWFhXLx4kdKlS3P+/Hn8/PySjLl9+zaDBg0iX758jB8//rHOm1IerWrVqqn2yZ8/P2azmc6dOzNs2DAjX7V69WqCg4N58OAB9+/fJzQ0lLVr19K0aVNCQ0P56aefnuh+JWfgwIFGbLdv3+bhw4esW7eO/PnzExMTwwcffMDZs2efyrn/i/LmzWsUKeXNm/d5h5MuJ06cAKBOnToqQPz/UsqZ37x5M0n/iIgIateuzYIFCzCbzXTs2JFDhw4RHR1NcHAwYWFhrFq1ilKlShEcHEznzp2ZNm1aqnEcP36cI0eO4OnpSceOHQHrosTHERERQbNmzVixYgUmk4mZM2emqwDx3+rMmTMsWLDgscevWLGCxo0bc/36dfLmzcvcuXO5d+8eoaGhREZGcubMGfr27YuDgwObN2/mjTfeSHX3XUgoOgTo1asXJpOJtWvXWi1O/Dg2btxIw4YNuX//PmXLlmXv3r0qQBQRERH5l1IRooiIiIiIpEuNGjW4d+8e27dvZ8qUKbzzzjvp2rFw6tSp3Lx5E2dnZ37++WcqVqwIJKy22qtXL2Plze+//54///zzqVxDakaOHEl4eDi5cuVi48aNFCtWDEhYsXXMmDH06NEDgAkTJjzxH9Qf18KFC/n6668B6NixI/v27aNRo0bGs7C3t6d69eps3LiR4cOHA7Bu3TomTJhgc76OHTty6tQpHBwc+PHHH1m2bBk1a9Ykc+bMRp88efLw7rvvcuzYMb799lucnJys5vjxxx+ZOHEiAG3btuXo0aN06dKFHDlyGH2cnZ1p0KABixYt4tixY5QuXTpd13337l1atWpFSEgIefLk4ddff2XixImULVvW2JXSzs6OUqVKMXToUC5evEiPHj2e+46VIiIiIiIiIiIiIiIitmzbtg2AHj16UKNGDQAKFSpk5Fy2bt2aZEz//v25e/cuX3/9NVmyZHl2wT5iypQpLFmyBIC+ffty4MABWrVqRdasWY0+7u7utGjRgp9++ondu3eTL1++ZxKbo6MjzZs3N+KLjY19ooIeeXFYduS07Iwp6ffxxx/z66+/AjBr1iwWL15MxYoVjZyri4sLrVu35vDhw9SvXx+AQYMGERAQkOK8lgK2t99+m/fffx9IyHvHxsY+VpwhISHUr1+fLVu24ODgwOLFi+nVq9djzfVv0qRJEwBGjRpFZGRkuscHBQXRvXt3YmNjeeWVVzh69Cjvvvsunp6eRp8SJUrg5+fH+vXryZw5M+fPn6dDhw4pznvr1i02btyIvb09Q4cOpVatWkRFRRm/Zx/HkiVLaNmyJQ8fPqRatWrs3r07XYtgi4iIiMizpSJEERERERFJF3t7+ycav3DhQiBhpz1bq9d98sknuLm5ERcX90R/rH5c4eHhrF69GoAPP/zQKklq8dlnnwFw//591q1b9wyjSxAdHW3EUKJECebOnZvicxk3bhx169YFYNKkSdy+fduqffPmzWzevBlIKMBs27Ztiuc3mUx8+OGHRjGmJaZBgwYBUKpUKRYuXJhqcWqZMmVYtGhRin0eNWXKFGNXw2XLlqVaxOji4sLs2bN55ZVXkrSFhoYyduxYKlSogLu7O87OzhQtWpQPP/yQixcvJjunyWTCZDIREBDA3bt36d+/P0WKFMHZ2ZkCBQrw8ccfW93jK1eu8OGHH1KoUCGcnJx46aWXGDBgAA8ePLA5v6+vLyaTCV9fX8xmM7NmzaJSpUp4eHjg7u5O9erV0/TdCAgIoG3btuTNmxdHR0eyZctG3bp1mT9/PnFxcTbHjB49GpPJhI+PDwA7duzgrbfeInv27Dg5OVGyZEnGjBmTarIrNDSUCRMmULlyZTw9PXF0dCR//vy0b9+egwcP2hxz+fJl495evnyZW7du0adPH+O+5cyZk3feeYegoKAkYwsWLEjt2rWNny3zWF6+vr5W/X/99Vc6duxozO3q6kqBAgWoVasW48aN086ZIiIiIiIiIiIiIvLM3LlzB4AiRYpYHS9atChAkrzO9u3bWbx4MS1btqRFixbPJEZb7ty5w7hx4wCoW7cu06ZNS3VRyJo1azJjxoxnEZ6hevXquLq6AnDq1Klk+x09epTu3btTpEgRXFxccHNzo1y5cgwfPtx4Rsk5ePAgLVq0IFu2bDg7O1O8eHGGDRtGWFhYiuN8fHwwmUyMHj062T6P5m5suXbtGoMHD6Z8+fJ4eHjg7OxMkSJFaN68OQsXLjTyOpYclEXt2rWt8ikFCxY02h7N29iSEbm2Bw8eMHz4cEqUKIGzszPe3t40adLEKIBLD8v99Pf3B2DBggVW12c5HhAQYByDhGffsWNH8uXLR6ZMmZLc65s3bzJo0CBKly6Nm5sbrq6ulC5dmsGDB3Pr1i2bsTx6/65cucL777/PSy+9hJOTE0WKFGH48OGEh4cbY06ePEmnTp3Inz8/Tk5OFC1alPHjxxMTE5Pue/EkTpw4wfz584GEz8wHH3yQbF9nZ2eWLVtGjhw5iI+PN/LFtiQuVuvatSs1a9akUKFC3Lp1i02bNqU7zlu3blGrVi3279+Ps7Mz69atS7WI7lGW52RZKHn37t1J8oyWz01ij5OHTY8RI0bg5ubG9evXjYWJ02PYsGGEh4fj6OjIypUryZ49e7J9GzdubCxqvGPHjhSfhaVgtF69euTJk4euXbsC/ysuTa9vv/2Wzp07ExsbS8OGDdm6davNf58hIiIiIv8eKkIUEREREZFn5uzZs1y9ehWARo0a2ezj5uZmrPJqa2XXp23v3r08fPgQSD7GggULUrJkSeD5xLh27Vr+/vtvAIYMGZJkR0JbRo4cCcDDhw+NpJHFzJkzAfDw8KB///5pjsPO7n//l3L9+vVcu3YNSCjSTEtMj86RmtjYWGbPng0kJLNr1qz5WLFCQpK5TJkyjBo1iqNHjxITE0OmTJk4f/48s2bNolSpUkYxanKuXr1K+fLl8fPz49atW8THx3P16lW++eYbatWqRUhICIcOHaJixYrMmjWLe/fuERcXx7Vr15g2bRqNGjVKNQnVvn17PvzwQ44cOYK9vT1hYWHs27ePTp060b17d8xms81x/fv3p3bt2qxatYobN27g4uJCSEgIO3fupHv37jRo0CDZIkiLL774gvr167N582ZiY2OJjo4mKCiI0aNH07hx42Rj//XXXylevDjDhw/nt99+48GDBzg6OnL9+nWWL19O1apVmTRpUornPnXqFGXLlmXGjBn8888/APzzzz/8+OOPVK5cmePHj1v1z549u9XKnTlz5rR6eXh4GG0LFiygSpUqLF261EiaOzg4cPXqVQIDAxk5ciTbt29PMT4RERERERERERERkYzi7e0NwIULF6yOnz9/HsCqeCQyMpKePXuSJUuWxypMyUjz5883CqgshXJpkZ7cUEZLLrcxatQoXnvtNebPn8/FixcxmUzExMTwxx9/MGHCBMqWLcvRo0dtjp03bx7VqlVj/fr13L17F0dHRy5fvszEiRN5/fXXCQ4OfpqXxKJFiyhWrBhffPEFx48fJzIyEkdHRy5evMhPP/1E165djQUePTw8yJkzpzHW09PTKp+SUqHSozIi13bjxg0qVKjAhAkTuHLlCnZ2dty7d49NmzZRo0YNtmzZkq574eXlRc6cOY08pWWRS8vL2dk5yZjVq1dTuXJlli5dyoMHD3BwcLBq3717NyVLlmTq1KmcPn0as9mMyWTi9OnTfPHFF5QsWZK9e/emGNfvv/9O+fLlmTt3LqGhocTGxnLx4kUmTJhAo0aNiImJYdOmTVSuXJklS5bw4MEDoqOjOX/+PCNGjKBz587pug9P6ttvvwUSvquWHHNKvL29jd0HDx8+zG+//Waz39q1a7l37x7FihXjjTfewGQyGdeW3iK2y5cvU716df744w88PDzYsmULb731VrrmgIQFmHPmzGkUKmfKlClJnvHRz01G5GFTkyNHDgYMGAAkLDIcEhKS5rE3btwwFlJu3749xYsXT3VMv379jF11v/nmm2T7zZs3D4AuXboA0KZNG1xdXTl27Bi///57mmMEGD9+PL169cJsNvPOO+/w008/4eLikq45REREROTZUxGiiIiIiIg8MydPnjTelylTJtl+lrbTp08/0fksyS9nZ2fc3NwoXrw477//frJJwkdjTGmXPUuMKa2Y+rTs3LkTSFglNK0r3NasWdNIYu/atcs4HhsbS2BgIAD169c3EizptWPHDiAhGdWsWbPHmiM1hw8fJjQ0FICWLVs+9jwPHjygadOmXL9+nbx587Jp0ybCw8O5f/8+x44d44033iAqKoqOHTsmKXZLrE+fPmTLlo2DBw8SFhZGWFgYy5Ytw8XFhTNnzjBixAjatm1L2bJlOXnyJKGhoTx48ICvv/4ae3t79u3bl6QgNLF169axYsUKxo0bR3BwMPfu3ePWrVt8/PHHQEJy39Y/MJg5cyZ+fn4A9OjRg7///pvg4GBCQ0Px8/PDwcGBnTt38v777yd77uPHjzNkyBCGDBnCP//8Q3BwMCEhIUaicdeuXSxYsCDJuMuXL9OwYUNu3bpFmzZtOHLkCJGRkdy/f59bt24xYsQI7O3tGTp0aIq7iHbu3JmiRYty6NAhwsPDCQsLY9u2beTOnZv79+/zySefWPU/dOgQa9asMX6+efOm1Wv69OkARERE8Mknn2A2m+nUqRPnz58nMjKS0NBQwsLCOHz4MIMGDSJHjhzJxiYiIiIiIiIiIiIikpHq168PwPfff28UM125coVhw4ZZtQOMHTuWCxcuMHHiRPLmzfvsg03EkhvKli0b1atXf66xpGTPnj1GsWThwoWTtH/11VeMHTsWNzc3Jk2axI0bNwgPDyciIoLDhw9Tp04dbty4QbNmzZLsbPj777/zwQcfEB8fj4+PD2fOnCEkJMTIGd28eZOxY8c+tWv7+eef6dq1K5GRkVSrVo09e/bw8OFDQkJCCA0NJTAwkPfff5/MmTMDMH36dG7evGmMX7NmjVU+5dChQ2k6b0bl2nr16kXmzJnZuXOnkQ/67bffKF68ODExMca9TSvL9bz99tsAvP3221bXZzmemK+vL/Xr1+fMmTOEhoby8OFD5syZAyTsMNmiRQtCQkIoVaoUe/fuNeIMDAykePHiBAcH07x5c/76669k43r33Xd57bXXOHXqlJEvnDFjBvb29uzZs4exY8fSsWNHmjZtyuXLlwkJCeH+/fvG74Aff/zxmS6gaclFv/rqqxQqVChNY1q1amW8T5yLTsxSaJi4qNJSzLZ582Zu3LiRpnOdPn2a6tWrc/78eXLkyEFAQICxyHF65c+fn5s3bzJw4EAAqlatmiTPmPhzkxF52LQaMGAA2bNnJzg4mMmTJ6d5XEBAgPG9ad26dZrGuLm50aBBAyDhd2ZsbGySPvv27SMoKIgsWbIYuXo3Nzfj2VsKFFNjNpsZMGAAI0aMAKBnz54sWbKETJkypWm8iIiIiDxnZhERERERkSdUoEABM2AeNWpUiv1mzJhhBsyAOTQ0NNl+X331ldHvwYMH6Y5n1KhRxng7Ozuzl5eX2cHBwThmMpnMw4YNszm2f//+ZsDs6emZ4jn69u1rBsze3t7pju9JVatWzQyYX3755XSNq1u3rhkw58uXzzh2/vx5475MmDDhsWOqXr26GTAXLVr0sedIzdy5c41Y9+3b99jzTJ482QyYM2XKZD5x4kSS9vv375sLFixoBsxvvfVWknZLDDlz5jTfuXMnSfuIESOMPqVLlzZHRkYm6dO5c2czYK5bt26Stq5duxrjR4wYYfMaOnXqZAbMXl5e5ocPHxrHIyIizF5eXmbA3L59e5tjE38PDx06ZNWW+LuT3Pe5VatWZsBcr169JG1t2rQxA+bOnTvbHGs2m83Tpk0zA+Zy5cpZHb906ZJx7hIlSpgjIiKSjP3pp5+MPteuXbNq27Vrl9GWnF9//dUMmF1dXc0xMTHJ9hMREREREREREREReZaaNm1q/I3bzc3NeF+4cGHzvXv3zGaz2XzixAlzpkyZzJUqVTLHxcU91Xhq1aplBsy1atVKtk++fPnMgLl+/fpPdK7EuYnHkVxeIzIy0rxu3Tpz/vz5jT5Hjhyx6nP79m2zi4uL2WQymbdv325z/piYGPNrr71mBsx+fn5WbY0aNTID5mLFitnMa/zyyy/GuQsUKJCk3XKfU8qxWu7Po88iJibGXKhQITNgrl69ujkqKirZOR5liWnXrl3J9kmct7l06ZJVW0bl2rJnz26+detWkvY//vjD6LN37940X5eFJdfWtWtXm+2Jc0qVKlUyx8bG2uzXs2dPI29848aNJO3Xrl0zu7u7mwFzr169rNoS37/U8oWW71F8fHySPjVq1DAD5nfffTcNV24t8XcrZ86cyb5OnjxpjImOjjbGvPfee2k+V1xcnDlz5sxmwNypU6ck7ZcvXzabTCazyWQyX7582arNkvuePHlysvNbvisFChQwe3t7G+///PPPNMeYkuS+Z4k9aR42NYk/l5bv3PTp082A2dnZ2Xz9+nWr/sn9G41hw4YZ8zw6JiXjxo0zxp0/fz5Je7du3cyAuXv37lbHt23bZgbMWbNmtcpbJ3dtFSpUMN5/9tlnaY5PRERERP4dtBOiiIiIiIg8Mw8ePDDeu7i4JNsvcVviMWlVtGhRpkyZwtmzZ4mMjOTu3buEh4ezZcsWXnvtNcxmMxMmTODLL79MNsaU4kvc/jjxPam7d+8CGDsbplW2bNmsxj/63svL64ljepI50nqOJz3Pjz/+CECbNm1s7siZJUsWBg8eDCSsumnZffFR77//vs1n8Oabbxrv+/fvj6OjY7J9/vjjj2TjdHZ2NlbdfJRlR8J79+6xbds24/i2bdu4d+8eAKNHj7Y59qOPPiJ37twALFu2zGYfR0fHZM/dvHlzm7Hfu3fP2I1wyJAhNsfC/1Y0PX78OLdu3bLZZ8CAATg7Oyc53qhRI2O13hMnTiR7juRkzZoVgOjoaKvPk4iIiIiIiIiIiIjI87Rq1SpGjhxJ4cKFiYqKImfOnHTv3p19+/bh6emJ2WymR48emM1mvv/+e+zs7Dh//jxt2rTB09MTFxcXqlatytatW59ZzM8iN5QeU6dOJVeuXOTKlYvs2bPj7OxMixYtuHbtmtFeoUIFqzFLliwhIiKCihUrUrduXZvzOjg40L59ewC2bNliHA8JCTF+HjRokM28xptvvkmVKlUy5PoetWvXLi5dugSAn5+fkT95FjIq19ajRw9y5MiR5Pgrr7xi7MCXUi4tIwwaNAh7e/skx81mMytWrAASdmrLlStXkj758uWjZ8+eACxfvjzZc/Tr1y/FfCEk5NZMJlOyfZ70Pty6dSvZV0xMjNHPkmeE9OWi7ezs8PT0BLCZg5s3bx5ms5latWpRoEABq7auXbsafVJz5coVY/6pU6dStGjRNMf4pDIqD5sePXv2pFChQjx8+JAxY8akaUzi+5+eZ2j5twSPzgEQFhZmfB8suV6LOnXqkD9/fkJCQoxccUp+//13AMqVK8e4cePSHJ+IiIiI/DuoCFFERERERP5zOnbsyKBBgyhWrBiZMmUCIHPmzDRo0IC9e/fy+uuvAwnJgeSSXi8CW4molJjN5hSPpXc+W/M8yRxpPceTnCc6OtpI0tWrVy/ZfvXr1wcgPj7eSIQ8qlKlSjaP58yZ03hv+awl1yc4ODjZGCpWrIi7u7vNtqJFi5IvXz4ADh8+bBy3vM+fPz/FihWzOdbe3p46deokGZtY6dKlcXNzs9mWJ08ewDoJCXDgwAHi4+OBhGSTJdH/6Kt06dLGmCtXrtg8R+XKlW0ed3BwIHv27DbPnxZFihShRIkSxMTEULlyZT7//HOOHTtGXFxcuucSEREREREREREREckomTNnZsyYMVy4cIHo6Ghu3rzJDz/8YBQ+zZo1iwMHDjBgwADKlSvHlStXqFKlCqtXr6Zy5co0b96c48eP07hxYzZs2PBMY3+auaH0CA8PN4qq7ty5Y+SVPD092bdvHwMGDEgyZu/evQCcPHky2bxGrly5GDt2LGCd1/j999+t8iLJSantSezfvx+AXLlyUbFixadyDlsyMteWXD4Iks9HZbRq1arZPH7p0iXj3Gm5zrt37xpFoY962jnFtDCbzcm+ypcvb3NMRuSiIeEz4O/vDyQtYANo164dTk5O/Pnnn8Z3MjmFCxc2ClcthdrPSkblYdMjc+bMRqHevHnzOHv27BPPmZzknh8kFNmGh4dToEABatasadVmZ2dHp06djBhTU7VqVSBhwdoOHToQGxv7BFGLiIiIyLOmIkQREREREXlmsmTJYryPiIhItl/itsRjkkv89enTJ80xODk5MXHiRCBhxb4dO3bYjDGl+BK3J44vNdeuXUv2GqZOnZrmeSwrFt65cyfNY8D2DooprWiYHrZ2WcxoGRHrvXv3jIKzvHnzJtvPUuAH8M8//9jsk9yzd3BwSHOflJIqKcWXuD1xfJb3qY21XF96rw2Sj/3vv/823qe0mmri3Q+T+56l5fyJV2VNK3t7e5YvX06hQoW4cuUKQ4YM4dVXX8Xd3Z369evz3XffpfrdFxERERERERERERF5lm7evMlnn31GoUKFGDVqFABDhw7lzp07jB49ml9++YVly5axfv164uLi+Pjjj5/J4nuWfNPTzA2lx6hRo4yiqvDwcH777TeaNm1KcHAwvr6+VnkMC8uxhw8fppjXuH//PmCd10icY0lrzikj3bx5EyDJrnJP27PItcGT5YPSw9ZOjPB4z/dp5hSf9n2wSLyzaXpy0fHx8YSEhABJd9/bvn07V69excXFhTZt2iQZ6+HhQYsWLQD44YcfUjxP/vz5CQgIIGfOnDx48ICGDRumWriYUTIqD5teHTp0oFy5csTFxTF06NBU+ye+/+n5/ZzSDoqW4sLOnTvbLE617Ga5c+fOZItxLSZMmEDv3r0BWLFiBe3bt1chooiIiMgLREWIIiIiIiLyzFhWrAT466+/ku1naXN3d7fajS25xF96dzOsUqWK8f7ixYs2YwwODk6xGMkSY+JrSk1cXFyy1xAWFpbmeUqVKgXAhQsX0nXtx44dA7Daia5AgQLGPT569Gia53qUZc4LFy4YidiMljjuJ4nVIqXVOxO3Pa8VfJ/kvGkdm5HXZkk4Ozs7p7iaauKXj49Php0/rcqVK0dQUBCrV6+mR48elClThocPH7J9+3Y++ugjSpQowYkTJ555XCIiIiIiIiIiIiIitvTu3ZvQ0FC+++47nJ2diY+P56effsJkMtGvXz+jX7169ShfvjxXr15Ndue5jGTJ21jyT/8mLi4uvP7666xbt466dety7tw5OnbsmGSnL0tuo2fPnmnKa1y+fPk5XE3KnudOlP/2XFta2Nvbp9rneeTdnpdMmTJRtGhRgHT9Hjl16hTR0dGAdU4X/ldYGBERgbu7OyaTKclr+fLlAKxcuZIHDx6keK6SJUsSEBBA7ty5CQsLo1GjRgQGBqY51if1rD8PJpOJSZMmAbBmzRp+/fXXFPtb/i0BpO8ZWvLvbm5uVsXNZ86c4cCBAwCMHz/e5vMrUaIEkLCb4vz581M91/Tp0+nbty8Aq1at4u23335mhbYiIiIi8mRUhCgiIiIiIs9MmTJljPcnT55Mtp+lLfEfyIFkE37+/v5PJcZTp06lGuOjSZSUFCxYMNlrGD16dJrnqVu3LpBwP9auXZumMbt37zZWL6xTp45x3MHBgZo1awKwbds2wsPD0xyHrZgsie+noWLFinh4eACk+bof5eXlZSQTr127lmy/xG3Zs2d/rHM9qevXr6fYbimETbxCq+V9SteWeO6MvLZcuXIBCasFnz9/PsPmfRoyZ85Mq1atmD17NidOnOD27dvMmjULLy8vrl27ZqzWKSIiIiIiIiIiIiLyPG3atImVK1fSoUMH3nzzTSBhd62wsDCyZ8+Ou7u7VX9L8dCji3A+DZbc0O3bt5/ZTmTpZWdnx3fffYeDgwMBAQFGoZOFJbfxOIsTJs7PpGXxVVssu9xFRkYm2ye5BUlz584NkOquYxntRcq1PYnEzzel60ycz3sRr9MWy3f76NGjaf58rVmzxnifOBd99+5d1q9fn+Zzh4eH8+OPP6bar0SJEuzatYs8efIQFhZG48aN2b17d5rP8zieZx62UaNGxuKuQ4YMSbFv7dq1sbNL+Kfhq1evTtP8YWFhbNu2DYAaNWpY7dKZ2u6Uj/L39yc+Pj7Vfn5+fgwYMABI+PyoEFFERETkxaAiRBEREREReWaKFy/OSy+9BMAvv/xis094eDh79uwBoEGDBk8ljoMHDxrvCxUqZNVWvXp1nJ2dU4zxypUrnDlz5qnGmJIWLVoYSdHPP/+cqKioVMeMGzcOSNilrlu3blZtvXr1AhKSmNOmTUtzHImTB82bNydfvnwATJo0KcVkaXJzpMbBwYEePXoAsGPHjnStaGk5T+bMmSlbtqwxR3K2b98OJCSnK1SokObzZKTDhw8nu9Ln+fPnjQRWxYoVjeOW99evX+fPP/+0OTYuLo5du3YB8Prrr2dYvFWrVjVW9Hw0if8sWJJpQJKVjFPj7e3NBx98wOeffw4kJFUtRbsiIiIiIiIiIiIiIs9DeHg4vXr1wtPTEz8/vyTtDx8+TPbYs9iRrVu3bri4uAAwevToNP9tPj25oYxQtGhROnbsCMDw4cOJjY012qpVqwYk5A6vXLmSrnkrVKhg5CYseRdbdu7cmWybp6cnkHJRU3K7nlWtWhWAW7ducfjw4VTjTczy+UhvPgVerFzbkyhUqBBeXl5A2q7T29s7Sd75RfXhhx8CCZ+PsWPHptr/7t27fPvttwC89tprVKpUyWhbvHgxUVFR5MiRg9DQUB48eJDsq0+fPkDai96KFy9uFCKGh4fTuHHjFL+LKbF8l1P6TjzPPCzA5MmTAQgICGDz5s3J9sudOzfNmzcHEnK2Z8+eTXVuPz8/Iy/90UcfGcdjYmJYtGgRANOmTUvx+V2/fh0HBweuXbtmFDSmZurUqQwaNAhIWIS4bdu2KkQUERER+ZdTEaKIiIiIiDxTXbp0ARL+4H358uUk7d988w1hYWHY29sbCcH0SC1ZFhUVxbBhwwBwdXU1VnK0cHV1pXXr1gB89913NlcXtRQqZcmShRYtWqQ7xifl6OjIxIkTAQgKCuK9994jLi4u2f4jR440kmOffvppklUXGzdubBRTjh07llWrVqUaw/fff8+cOXOMnzNnzsyUKVMAOH36NF27diU6OjrFOU6fPm18HtJq8ODB5MmTB4D27dunuFslJCTbP/roI6sVbN955x0AVq1aZXNHzrCwMONaGjdubOy++Kw9fPiQL7/80mbb+PHjgYTVZuvXr28cr1+/Pt7e3gDJ7q45e/Zs/v77byDhHmaUHDlyGAmtL774Itnkm8W9e/cy7NyA1WrPISEhNvukVrBrKUAGjFV8RURERERERERERESeh5EjR3LlyhW++OILq13ZsmfPjpubGw8ePCAoKMg4HhMTw++//w4kXYTzaciWLRvDhw8HEoq0BgwYkGqebt++fUah0bP02WefYWdnx8WLF5k/f75xvHPnzjg7OxMXF0evXr1SzLfFx8db5R+yZs1q5NemTp1qc4HO7du3s3///mTnLFeuHABbtmwhPDw8SfvOnTs5cOCAzbG1a9emcOHCAPTr1y/VvFxilpxKcvmU1LwoubYnYTKZePvtt4GE3NrNmzeT9Pn777+ZPXs2kLE5t+etbNmyRg7X39/fuEZbIiMjad++Pf/88w92dnbGc7eYN28eAK1atcLd3R03N7dkX5bP1cGDBzl9+nSaYi1WrBi7d+8mX758RERE0KRJkxQLf5OTlu/E88zDAlSuXJlWrVoBCb/TUvp9O27cOJydnYmKiqJt27bcuXMn2b6bN282cs+1a9fmrbfeMto2bNhgPNt33nknxeeXN29e499epGf3xClTpvDpp58CsH79etq0aZOu32ciIiIi8mypCFFERERERNItODiYO3fuGC/LiqURERFWx8PCwpKMHThwILly5SIiIoK33nqLI0eOABAdHc13333HiBEjAOjRowfFihVLd2yBgYHUq1ePxYsXGzvFQULidceOHdSoUcNYMXTkyJFkzZo1yRxjx47F1dWVGzdu0LRpU86dOwckrDg7duxYZs2aBSSslmpZofRZ69atm7EK5eLFi6levTq//PKL8Qf5+Ph49u3bR9OmTY1dEJs0aWLc30ctXbqUkiVLEhsbS7t27ejYsSN79uyxWmnwxo0bLFiwgNdee40PPvggyQq77du3Z/DgwQCsWLGCV199lUWLFnH79m2jT2RkJDt27KB79+6UK1fOZmIyJdmyZWP16tW4u7vz999/U7ly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v78/cXFx2NnZ0bp16zSdz8vLi7p16wL/20UxPcaNG8fIkSOBhN1pW7ZsSVRUVLrnEREREZGnx2Q2///90UVERERERETkufP19WXBggV07doVf3//5x2OiIiIiIiIiIiIiIiIiIiIiIiIiPwfp50QRURERERERERERERERERERERERERERERERERExCYVIYqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhNKkIUERERERERERERERERERERERERERERERERERERm1SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjaZzGaz+XkHISIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIv8+2glRREREREREREREREREREREREREREREREREREREbFIRooiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiNikIkQRERERERERERERERERERERERERERERERERERGxSUWIIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiYpOKEEVERERERERERERERERERERERERERERERERERMQmFSG+oJo1a0azZs2edxgiIiIiIiIiIiIiIiIi8h+mvKSIiIiIiIiIiIiIiIg4PO8A5PFcuHDheYcgIiIiIiIiIiIiIiIiIv9xykuKiIiIiIiIiIiIiIiIdkIUERERERERERERERERERERERERERERERERERERm1SEKCIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjapCFFERERERERERERERERERERERERERERERERERERsUhGiiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI2KQiRBEREREREREREREREREREREREREREREREREREbFJRYgiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJik4oQRURERERERERERERERERERERERERERERERERExCaH5x2AiIiIiIiIiIiIiMijzGYzZrP5eYchIpIuJpMJk8n0vMMQEREREREREREREREREclQKkIUERERERERERERkX+Fhw8fEhoayoMHD4iNjX3e4YiIPBZHR0c8PT3x8PDAzs7ueYcjIiIiIiIiIiIiIiIiIvLEVIQoIiIiIiIiIiIiIs/d/fv3+euvv553GCIiTywqKoqbN28SGRlJrly5tDOiiIiIiIiIiIiIiIiIiLzwVIQoIiIiIiIiIiIiIs/Vw4cPjQJENzc3PD09cXJy0g5iIvLCiYuL4/79+/zzzz+EhITg6uqKu7v78w5LREREREREREREREREROSJqAhRRERERERERERERJ6r0NBQIKEAMV++fNo1TEReWHZ2dnh7exMbG8u9e/d48OCBihBFRERERERERERERERE5IWnZaRFRERERERERERE5Ll68OABAJ6enipAFJH/hCxZsgAQHh7+nCMREREREREREREREREREXlyKkIUERERERERERERkefGbDYTGxsLgJOT03OORkQkYzg6OgIQFxeH2Wx+ztGIiIiIiIiIiIiIiIiIiDwZFSGKiIiIiIiIiIiIyHOTuDjHzk5/shaR/4bEu7qqCFFEREREREREREREREREXnQOzzsAERERERERERERERERERERERERERERERGRjGY2m7VYnIiIvFBMJpPVoqf/Fi9kEWJAQAC1a9dOtd+YMWMYOXKk1bGFCxcyc+ZMTp8+TebMmXnjjTcYPnw4VatWTXae/fv3M378eA4ePEh0dDSlSpWiV69edO3aNdkx169fZ+TIkfzyyy/cu3ePl156iXfeeYehQ4fi5OSU9osVEREREREREREREREREREREREREREREZF0M5vNnDx58nmHISIikmZlypRREWJGyZUrV7IFgHFxcSxevBiAGjVqWLX1798fPz8/nJ2dadCgAZGRkWzbto2tW7eycuVKWrZsmWS+tWvX0rZtW+Lj46lZsybZsmVjx44d+Pr6cvz4caZNm5ZkzIULF6hSpQq3b9+mTJky1KhRg8OHDzNu3Di2b9/Orl27cHR0zIA7ISIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi8vSYzP+xvYU3b95M48aNyZ8/P5cvX8bOzg6AnTt3UrduXby9vTlw4ABFixYF4MCBA/j4+ODs7MylS5fw9PQ05goODqZQoUKEhoayevVqWrVqBcCtW7eoXr0658+fZ+fOnUl2ZaxVqxaBgYH07t2b6dOnAxAbG0u7du1Yu3YtI0eOZMyYMU90naVLlwbg1KlTTzSPiIiIiIiIiIiIyPMUHx/P2bNnAShevLjxN93/6yIiIti6dSsbNmzg0KFDXL58mbi4OF5++WVat25N//79cXNzS3b8woULmTlzJqdPnyZz5sy88cYbDB8+nKpVqz6T+H18fNi9e7fxs52dHe7u7nh7e1OuXDnq1KlDp06d8PDwSHH8pUuXKFiw4DOJ+XkqWLAgV65cSbFPrVq1CAgIeDYBJTJ69GjGjBnD/Pnz8fX1febnf1Hpd5v8lygvKSIiIiIiIiIiL7L4+HhjJ8RSpUrp77UiIvKvFB8fz+nTp4GEnRD/jf+9eiF3QkyJZRfEjh07Wt3wL7/8EoDhw4cbBYgAVapUoWfPnsyYMYN58+YxYMAAo23u3LmEhobSvHlzowARIGfOnEyZMoVWrVoxbdo0qyLEQ4cOERgYSI4cOZgyZYpx3MHBge+++46NGzfy9ddfM3z4cDJlypTxN0BERERERERERETkP2rALxuedwip+rJh0wyZZ+nSpbz//vtAQvFHw4YNuX//Pvv372fUqFEsW7aM3bt3kyNHjiRj+/fvj5+fH87OzjRo0IDIyEi2bdvG1q1bWblyJS1btsyQGNPizTffJFeuXAA8ePCAa9eusWHDBtasWcNnn33GjBkzXqjCtqddHNm6detki0tLlCiR4eeTtPH396dbt26MGjWK0aNHP+9wREREREREREREROQx2dnZ/SuLOkRERF4E/6kixPDwcNavXw9Ap06djOORkZHs2LEDgDZt2iQZ16ZNG2bMmMGGDRusihA3btyY7Ji33noLJycntm/fTmRkJE5OTlZjmjZtiqOjo9WYnDlzUqNGDXbu3Mm+ffvw8fF5gqsVERERERERERERkf+qzJkz8+GHH9KvXz+rhfVu3LjBW2+9xdGjR+nbty9Lly61Grdz5078/Pzw9vbmwIEDxtgDBw7g4+NDt27d8PHxwdPT85lcx5AhQ5L8LTw0NBQ/Pz/Gjx9Pt27diImJMQouLRYuXEhERAR58+Z9JnH+W0ydOvVft/Pjxx9/zDvvvEPu3LmfdygiIiIiIiIiIiIiIiIiIvKc/KfK+NesWUN4eDivvvoqpUuXNo4HBQURFRVF9uzZyZcvX5JxFSpUAOCPP/6wOm752dKeWObMmSlTpgyRkZGcPXvWOH78+PFkxyQ+buknIiIiIiIiIiIiIvKoLl268O2331oVIALkzp2bb775Bkj4m3h0dLRV+5dffgnA8OHDrcZWqVKFnj17Ehoayrx5855y9Cnz8PBg9OjR+Pv7A9C7d29u3bpl1eell16iRIkSZMqU6TlEKIlly5aNEiVK4OHh8bxDERERERERERERERERERGR5+Q/VYS4ePFiADp37mx1/OrVqwA2CxABXF1dyZo1K8HBwTx48ACA+/fvExISkuI4y3HL/Gk5l60xIiIiIiIiIiIiIiJpVa5cOQCioqK4e/eucTwyMpIdO3YA0KZNmyTjLMc2bNjwDKJMXadOnahevTqRkZHMmTPHqs3HxweTycTly5etjptMJgoWLEh0dDRjx46lRIkSODo60qJFC6NPWFgYY8eO5ZVXXsHFxQV3d3dq1arFunXrko3l6tWrfPzxxxQtWhQnJye8vb2pVKkSEydO5OHDh1y+fBmTycTu3bsBKFSoECaTyXg9L3/88QdNmjTBw8MDDw8P6tevz4EDB/D398dkMjF69Gir/gULFkw23oCAAEwmE76+vlbHR48ejclkMopGLRI/o8WLF/Paa6/h4uJCjhw56Nq1K3/99VeScySe68iRIzRq1IisWbPi5eVFu3btuH79OgDh4eEMGjSIggUL4uTkRJkyZVi1alWy9+HEiRN07NiRvHnz4ujoSJ48eejWrVuSz8+jMZw4cYJmzZrh6emJq6srtWrVYv/+/Umus1u3bgCMGTPG6rk/ek9ERERERERERERERERERP6r/jNFiDdv3mTHjh3Y29vTvn17q7awsDAAXFxckh3v6upq1dfyvymNe3RMWs5la0xKSpcubfN14cKFNI0XERERERERERERkf+WixcvApApUya8vLyM40FBQURFRZE9e3abC+VVqFABSChc+7d45513ANi1a1eax8THx9OiRQumTJlCkSJFaN68Oblz5wbg1q1bVK5cmVGjRhEcHEz9+vWpXLkyR44coWXLlkyePDnJfIGBgZQtW5ZvvvmG+Ph4mjdvTpUqVbhz5w7Dhg3j1q1buLm50bVrV3LmzAlA69at6dq1q/FKzFKgZqsALiP9+uuvVKlShU2bNlG4cGEaN27MzZs3bRbSPU1Tp06lS5cuuLm50bx5c1xdXVm4cCFvvPGGUVRoK/Zq1apx7do16tWrh7e3NytXrqRu3bqEhoZSu3Zt5s+fzyuvvEKVKlU4ffo07dq1Y8uWLUnmWr16NRUrVmTp0qXkzp2bZs2akStXLvz9/alYsSKnTp2yGcPhw4d54403OHv2LHXr1qVo0aIEBgZSt25dTp48afRr2LAh1apVAxIKgBM/95df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iCIiIiIiIiIiIiL/xyXegcxSsJMaHx8fTp06ZXP3srCwMCNfYFnIsVq1ahQpUoQLFy6wdOlSevfuneL869ev5+233yYqKoqePXvy7bffprjbW3KGDh1Khw4djN0Qk9u58fbt27Rr146wsDDat2/PrFmzjBzQli1baNu2LWvWrGHixImMHDky3XEAlCpVio4dO7Jo0SJGjBjBqlWrUh1jub/u7u689tprqfZ3dHSkatWqbNq0yeazuXTpkrGzXqdOnYCEQtEsWbLwzz//8PPPP9OsWbMUz/Hdd9/Rq1cvzGYzEydO5LPPPks1rozyxx9/GDu71apV65mdN7HVq1dTsGBBTpw4QZkyZYD/7VK3e/du3n//fZycnPj222959913jd0hd+3aRYcOHfD396datWq89957xpxbtmzh888/x87Ojm+++YYPPvgAk8lEZGQk/fr1Y8iQIRl+HTdu3KBp06bcuXOHt956i++++478+fMb7X/88Qc7d+4EEgrV9u7daxQBdu/ePV07ekLCzqlDhgzBZDLxxRdf0K9fP+zs7IiLi2Pq1KkMGTKEgQMHUqFCBaudFS3279/PmTNn2L17NzVr1gTg3r17NGvWjH379jFq1CgWL1782PcjsePHjxMTE4OrqyurVq1iyJAhVjuhbtiwgcmTJ7NgwQLatm2b5nkfPnzI+vXrAahRo0a6YqpTpw6NGjVi8+bNNG3alClTplC+fHkiIyPZsWMHffv2xcHBga+//trqd2X9+vWxs7NjypQpvP7665QvX57Vq1ezadMmihUrZhRujhgxghs3brB161arotr/IhUhioiIiIiIiIiIiMgL4cuGTZ93CM/M6NGj0518SszX1xdfX98Miye9AgICnsp4s9mc6lhnZ2f69etHv3790ny+woULM3v27DT17du3L3379k22PS0xPury5cvpHgNQvnx5fv755yTHz507l+yYEiVKsGHDBptttmJPy2exa9eudO3aNeVgU5mrYMGCKd67lD5TRYsWZdasWameP7UYIPlnUbFiRbZu3Zqmc4iIiIiIiIiIiIjIi2/MmDGMGTPGZlviXcGuXbsGQNasWZPsrpWcl19+GYDr168naVu5ciXh4eHkzp2bunXrGsc7derEmDFj8Pf3T7UIsU2bNsTGxtKvXz+mTZuWppiexLfffsvdu3d56aWXWLBggdUO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rooVK6pYsWKKiIjQH3/8ofj4eFWtWlVz5szJkNe8eXMNGjRIU6dOVc2aNdWiRQslJiYqODhYqampWrJkiZycnJ5q7ampqVqxYoVWrFih4sWL69VXX5WDg4OuX7+u33//XbGxsXJ2dtb8+fON8gYMGKDvvvtOgYGBqlKlijw8PHTmzBkdP35cgwYNUkBAQKZ7vv/+++rTp49mz56t8uXL6+jRozpx4oTs7Owy7JPu7bff1qpVq7R9+3bVqVNHV69eVUhIiNLS0jR16lSVLFnyodfq5uamxYsXq3v37mrbtq3c3d1VuXJlpaWl6dKlSzp58qQSExP11ltvPbVT+55VDXXr1lWRIkUUGBgoHx8flStXTubm5urVq5fq16+v4cOHa+PGjfrkk0+0cuVKVaxYUWfOnNGBAwc0bNgwTZw48Ymus02bNipZsqSuXLmi1157TTVr1nyi9QAAAJC7uvyY9Qntr5Wqq0NXDig51fgk7polapmcb26Wz+h5OecKOvzXH5IkawtrFbf73ynsicmJhq99yjXTgAZDJEk3Yq9rwOr/3bTF2sJaCckJSk1LNcQenMD4vszNH+wXGXtDJ68fy/Q67Czt9dar7+huwh0tPrhAkmSV30qSlJr2v5uvJKck//8xTvsGAAAAAADA84kmRAAAAAAAAABAntDmyx65XcIzU6dOHb3//vvat2+fTp48qd27d8vGxkY1a9ZUly5d9P7772faUDZlyhTVrFlTM2bMUHBwsCwsLNSsWTONGjVK3t7eT732N954Q+vWrdPGjRu1d+9eHTx4UDdv3lTBggXl7u6u119/XYMGDVKRIkWM8ooWLaqQkBB9/PHH2rFjh65cuaJatWopODhYZmZmWTYhdu3aVb6+vvryyy+1du1aWVhYqF27dvryyy9VpUoVkzkVKlRQaGioPv30U/3222+Kj49X3bp1NXLkSLVunfUHov+uY8eOOnLkiCZNmqTg4GBt2LBBVlZWKlGihN5++2116tRJDg4O2V7vcTyLGqysrPTrr79q5MiR+v333w0Nm97e3qpfv74aNWqkXbt26bPPPtOhQ4f0559/qnr16vr555/l6en5xE2I+fLlU6NGjbRs2TL17dv3idYCAADA829A/cFKSknSoSsHdC32mvKb5VN5ZzfVLPm/JsT4pPs6deO4JCk28a4uR19SKcdXJEldqndT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6ObNm9q0aZP69++vTz75RBcuXEjsUJO0xDiPypQpk7p06SJJunv3rk6fPq25c+eqXbt22rp1q0aPHm1Xf/fu3apdu7ZOnz6twoULq3PnznJ1ddXmzZs1cuRIff/995ozZ44qV67sdH7vvfeeXF1dFRUVpT179mjhwoVavHixpk6dqpdeeulpL66dyZMnq2/fvsqTJ0+CzjexHT58WAcPHtSrr76qcePGJXY4yd7994M7duyo8ePHO9Tp16+fRowYoZUrVzo9L5w9e7Z++OEHbdmyRZcvX1ZQUJDKli2rN954Q1WqVIl1/p9++qneeecdeXp66syZMzGeu4WEhCgyMtJpIvEHH3yggQMHqnDhwlq6dKnSpEkT6zxv3rypIUOGqHPnzg73eLhPC5IQAQBx1q5dO7Vr186hPEOGDPryyy9Vrlw5zZ49W7du3ZK7u3siRAgA8ffff//ptddesz3NiSREAElRv379dPnyZX3++ecOCYiSYn0qJQA8K/bv369z584pb968dgmI0r0kn5o1a2revHnaunUrSYgAnhl9+/aNV/2RI0dKkgYMGGD3kK+yZcvqtdde09ixYzV+/Hj16tXricYJAHjyYuqA/GCni5MnT6pWrVrau3evcubMqdatWytlypTauXOnvvvuO02YMEETJ05Uq1atnM7n7Nmz+u2332SxWLRx40b9/fffyp07d5zjvHnzpho1aqSlS5fq5Zdf1tdffy0XF5eHjjd06FBlypRJTZo0ifO8npaoqCitWrVKNWrUcHijxvOWJPHCCy84vGVnx44dKlq0qEaNGkUS4lPk5uamvHnzJnYYCcJZO4srb2/vp7qesmbN+tSm/SiS6v2JM2fOKDAw8Jndf44ePVr79+9X165d9eWXXzoMX7NmjXx8fBIhsudHUm3bwNP2OMfIZ9Xzcn6Dx1epUiWtWbNGkydP1kcffWQ3bOnSpbaXGCxcuDCRIsTDtGnTRkuWLFGTJk30ww8/OCSxbN++Xa+++moiRZd8JMZ5VObMmR2OT4MHD1a+fPk0btw4ffTRR/Ly8pIkXbhwQbVr11ZERIRGjx6t7t272403Z84ctWrVSg0bNtT27dudLs+AAQPk6elp+zx58mS1b99e7777boImIWbPnl1HjhzR+++//8w8RCuhWJPMHvZgTDx58U18jYqKUps2bTRz5kwFBgaqfv36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LEkOHYwlac+ePdq2bZuaN29ue7Pj9evXFRoaqoEDB8rd3V1vvPGGWrduLXd3d40cOdJhGps2bVKNGjWUNm1avf7660qfPr1GjRqlvn372tXbunWrhg8frjRp0uill15S165dlTZtWn3wwQdq3LhxXFaZTfPmzTV37lw1adJELVu21LZt21SjRg2nSWt4fHHdZ91v/fr1ql+/vnLkyKFu3bopffr0+uSTT9SiRQu7ejdu3FBoaKhGjhyp7Nmzq2fPnipdurQmTJigUqVKOU3meJTj5PPGx8dHU6ZM0c2bN9WuXTvbOa/1LTguLi6aMmWKwwOS47rd7t69qyZNmqh79+5yc3PTq6++qqZNm2rjxo2qWLGi1qxZ4xBTTOdWMVmzZo1KlSqlBQsWqHr16rZ4Bg8erMaNGzuc30hxP5bFZz/35ptvql27drpy5Yrat2+vtm3b6vDhw6pdu7amT58e+4b4f4/yHYrrvjW+56bJQbt27XTq1CmtWLHCVnb16lXNmzdPrVq1kqurq8M4Q4cOVevWrRUREaFXXnlF7dq10969e1W3bl2NHz/eru727dsVFhamdevWqWnTpurSpYt27Nih6tWr69atW09lmR6ljaxdu1a1a9dWYGCg3njjDYWGhj6V2J4ka9JKjx49Yv3+3//A0Ee5lrt165aqV6+u3bt3q23btipTpozmzZunBg0aaPXq1apTp44yZMigV155RZ6enho0aJB++OEHp7GMHDlSAwYMUGhoqNq1a6cjR46ocePG2rBhgypXrqwdO3aodevWCg0N1cKFC50ekz799FPVrVtXhw8fVosWLfTyyy/rypUratOmjUaMGOF0vm+88Ya++uorVa5cWW+99ZbSpUsnSfrwww9Vp04dbdu2zbYfLlq0qKZOnap9+/bFuE6lR2tnjysiIkIHDhxQ5syZlTZtWlv55MmTJUl9+vSJcdyuXbvK29tbs2fP1vXr1+M134R+QMGwYcMk3XvTW1y8/PLL6tatm27duqW33npLTZo00Zo1a1SxYsUYk9wf5/z35MmTKlOmjBYsWKCKFSuqV69eatiwoe2Ndvfr1auXTp06pWrVqqlHjx6qVq2aFi1apLJly9pdG7399ttOr1WtD8z56aefFBoaqo0bN6phw4bq2rWrXF1d9fbbb6tr16626XTo0MGWzNi+fXu768MsWbKoevXq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VcePH1f58uUdtqu3t7eKFi1qa/+SdODAAV25ckW3b9/WoEGDHOYdEREhY4wOHjyoEiVK2MqzZctmt/3jIleuXPL29rYry5gxo6R768dq165dslgsKl26tMM0ypQpo0WLFsVrvk/L/e3sSSpYsKDDuXD69OklSYUKFbIrd3FxUdq0aRURERHn6Tv7nTpjxoz6559/7MoiIyM1atQo/fLLLzp48KBu3LhhN/yff/5RSEhInOd7v127dkmSQkNDHYaVL19erq6u2rlzZ5xjl+61IV9f3xjneeDAAUVFRals2bJKkSKF3TBfX18VLVpUq1at0rlz55QmTZp4LU9i6t+/v15//XUtXLhQ69ev18aNG7Vjxw7t2LFDEydO1J9//il/f/9Hnn65cuUcysqWLSvpf9sxLvXHjRunXbt22R1THtS2bVv169dPEyZMUL169SRJixYt0tmzZ9WtWzdbvf379+v69euqXbu2PD0947QcD2s791uyZInGjBmjLVu26OLFi7p7965t2IPfk/jMM0WKFEqbNq3D/PBkPMo+y9qW71eiRAm5ubnZ2rf1uFquXDmH75KLi4sqVKigQ4cOae/evSpZsqRt2KMcJ5OT+BwjXV1d9eOPP6po0aLq0aOHAgICNHHixBjvC8Vlu924cUN79+5Vjhw5NGTIEIf6e/fulXTv2FCwYEFbubNzq5hs3rxZkrRlyxan+wYvLy8dOHDAoTwux7L47Oc2b94sf39/jRw50mHYwYMHJd1bzvr168c6nUf5DsVl3xrfc9PkpF27dvrqq680a9YsVaxYUX/88YeGDx/utG5s50ZhYWGSZDs3stZ1dswtVarUU/td6FHaSLFixZ5KLM+aR7mWCwwMVObMme3qxnTObx129+5dnT171nZvxCqma4SbN2/GOI/7rx82b94sV1dXTZ8+3WG+586dkySn+zNn23fLli2S7t1LeBRP8xpEkkqXLq2NGzfaPp85c0YLFixQ9+7d9dtvv2n79u3y9/eP028UcTFs2DBJ97ZJYGCg6tSpo549e6pKlSqPNd1HlTdvXrVp00aTJk3SsmXLYtxO1mvyChUqOAwLCwvThAkTtHPnTtWoUcNu2OOc/9arV099+/ZVo0aN1KpVK9WoUUNhYWFKmzatQ93Tp09r2LBh+v3333Xq1ClFRUXZhrm7uz90XtL/juPLli3Thg0b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saMiIiI0cOBAh2k8zhsSs2TJom3btum///6zlf3zzz/q37//I08TT19891lWe/fu1fTp022f7969q0GDBkmyf8t2mzZtdP36dQ0bNsxu/O+//14HDx5U48aN5ePj87iL8Vy6deuW2rZtKxcXF02ZMkUhISH64osvdPz4cXXr1s3pOHHdbq+//rr+/fdf9erVy+GByvc/4ORRNWrUSBkyZNAHH3ygPXv2OAw/d+6c9u3b90jTjs9+7vXXX9edO3f0yiuv6ObNmw51//zzT6fl93vU71BcxefcNLnJmjWrfvvtN82ZM0dNmjSJsV6rVq3k4uKi4cOH2yU8nz59WmPGjJG3t7dt/JCQEJUrV04rV67UihUrbHXv3Lmj999/3+n0ixcvrqNHj9pdc964cUPvvfdenJbjabeRZ0mtWrXUoEED7dq1S23atHGaEL17926FhobaPj/Ja7nE8Oqrr8rFxUVvvPGG0zdp7tu3L85vLe3SpYssFov69u3rMK2bN286JPTfL7Ha2a1bt2zXB9Z7BZLUt29fZcyYUV9//bW+/PJLh/F+/fVXvf/++/L19XU4R3jWZciQQW+++aZ2797tNDmrTZs2kqTw8HC75Krdu3drypQpypQpkypXrvxEY9qyZYvT9mdNsre+kdFZOzHG6N13343X23Xbt28vLy8v9enTRydOnHAYfvz4cbuHmsXlmrdly5by9vbWm2++qX///dfhYSrPs4clvlrb3HfffRfjfuLEiRP65Zdf5O3traZNm0q69zCLHTt2KEeOHE7vDVsfAGC9H+hMmjRptHz5cuXOnVvDhg3TkCFD4rxcBQoUkKTHeiM1kjfXxA4AAJB03LlzR61atdLKlSsVGhqq2bNny93dPbHDAgAAeO717dtXr732mrp166ZFixbZnma8detWjRw5UpL02muvJWaIAPBQDRs21JAhQ7RmzRqNGzdOr7/+um3Yxo0b9dlnn0mS7eY7ACRFPXv21OLFi/XBBx+obt26ypUrl6R7iRjffPON/Pz81Llz50SOEgDwpHTu3FnffPONFi9erHfffVcffPCB3YMdN27cqNdee00pUqTQqFGjbOXWJ11PmDBBOXPmdJjuxYsXlSFDBk2ePDnGzpjSvU5m8+fPV926ddWoUSMtXLgwTp2pypcvr3Hjxun48eMKDg6OxxI7zt+ajNOrVy9bwuHT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6tKlixo2bKj58+fL29v70VYU7Lz55ptq166drly5ovbt26tt27Y6fPiwateurenTp0uSAgICFB4ebtve7du3V3h4uMLDw9WoUSPb9g0ODraVO0vqsoqIiFDJkiX1ySefKEOGDHr77bfVpEkTXb9+XV9//fUTiflBzZs319y5c9WkSRO1bNlS27ZtU40aNXT69Gm7esuXL1eJEiX0888/q3z58urZs6eqVq2qP//8UwsXLpQkde7cWZKcdurds2ePtm3bpubNm8vHx+ehy5JcrF+/XvXr11eOHDnUrVs3pU+fXp988olatGjhUHf69Olq166dcuXKpW7duqlw4cKS4rcPOXnypMqXL68FCxaoVq1aev3113XhwgVVrFhRFy9efOzl2b17t4oWLapvv/1WBQoUUM+ePVW3bl0dO3ZMU6dOlXSvs3dM3wlnfH19Va9ePa1bt04nTpxwul4kqVWrVjHGFR4eruDgYNu/rX9FihRRkyZNFBAQoAkTJjiMd/v2bU2dOlU5cuSIMQkyuXn11VfVpk0bHTt2TG3atFHXrl2VM2dOffHFFw5JCBcuXFCFChV0+vRpdejQQS1btpR0b19VunRp/fDDDypZsqR69uypnDlzavTo0QoNDdW1a9ds05g3b57q1KmjgwcPqkmTJurRo4eqVKmiXbt22SV+jhkzRm3atNHFixfVpk0bvfXWWypfvrxWrVqlnTt3PnS5rl+/rvLly2vixIkqVqyYevTooWbNmsnLy0vjx4+PddzY2o90L8miSZMm6t69u9zc3PTqq6+qadOm2rhxoypWrJhsE1ityTQ9evSQu7t7jPU8PDxs/757967q16+v999/X76+vurZs6dq1qypuXPnqnTp0tqxY4fD+Ldu3VL16tW1ZcsWtW3bVvXq1dPy5ctVvXp1u3OsLVu2KCwsTBs2bFDt2rXVq1cv1a5dW6dPn7YlIRYpUkTdu3eXJBUuXNhuez6ocePGmjdvnho2bKjXXntNfn5+j7SepkyZotDQUC1dulS1atVSjx49VL58eS1ZskTr1q2T9PA25szTXJdAcuPsek9SnK/5YnLr1i29+eabunnzpurWrasePXqodOnS+vHHH1W2bFlduHDBVvftt9+2nbt1797d6bl/fM7VFy1apDp16mj//v1q166dWrdurQULFqhp06ZPZJ0ZY2SMkXTvLdVW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bPz48QoJCdHw4cMdJiGmpKToiy++UOfOna1lV65c0XPPPadChQpp48aNqlatmiQpPj5ewcHB2c7n9cLDw+0SEdetW6e3335btWrV0oABA2zmIzdzGBMTo7S0NK1Zs0YxMTHZJjre2E9cXJyqVq2qLVu2qFixYpKkV199VbVr19bAgQMVFRWlUqVK2bT7+eeftXv3bmt5z549FRoaqsmTJ+vjjz/O1RwAAPLH999/b10VNzMz05rc7ufnp0mTJt318ZOTkzVr1iw1bdpUK1asUKFC11J7cnvsut4333yj999/X88//7wkyRijli1bauHChTp06JAqVqwoSfrkk0+0YcMG9e7d22Z15Tlz5jg8/gPAjZzyOwAAAAAAAAAAAAAAAAAAAADgXuXq6ipnZ2ebskKFClmT1W7mxuQ5SQoICFBERIRWr17tsM2gQYOsCYhZfTRu3Fg7duywlqWlpWn9+vWKiIiwJiBKkrOzs0aOHOmwX19fX5sERElyd3fXU089pf379ystLc2uTf369W0SEKVrqyMePHhQTz75pDUBUZKKFi2q119/3eHYN3Po0CF17NhRXl5eWrhwoc1KiLcyh7k1a9YsXb16VcOGDbN5TytWrKhBgwbp0qVLmj9/vl274cOH2yQmNm7cWH5+fjbvEQDg3rRnzx7Fx8crPj5eb731lj777DNlZmaqS5cuqly58l0ff8aMGZKk2NhYawKiJIWFhally5Z56qtKlSrq37+/9W+LxaKePXvKGKOdO3day2fOnCknJyfFxsbatO/ataseffTRW3gVAP5tSEIEAAAAAAAAAAAAAAAAAAAAHOjcubP279+vmjVrKj4+XmvXrlV6enqe+jh8+LD69++vKlWqqHDhwrJYLLJYLPrqq6909OhRh20CAwPtysqVK6czZ85Y/969e7ckqVGjRnZ169evLxcXF7vyy5cva9SoUapdu7Y8PDyssbz44ouS5DCeOnXq2JXlNHZISIjD15STv/76S+3atdPJkyc1b948mwRM6dbmMLeyXktoaKjdtrCwMEnSrl277Lbl5j0CANybunbtKmOMjDG6cuWKfv/9d8XFxel///d/1bRpU2VmZt7V8Xfv3i2LxeJw9eC8Hkdr1Khh94CBcuXKSZLdeYO3t7fdMVaSGjRokKcxAfw7Fbp5FQAAAAAAAAAAAAAAAAAAAODfJ2t1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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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6Nmzp7WssDubxR2+l5OTY2RlZRkvvfSS4ePjk+/OXXF6SuUNn1y2bNmND9YwjOeff94AjC1btuQrHzNmjGEymYwDBw4YhmEYf/vb34xq1apdd1/2OlxCRKQySEhIMIB81xzXk3fdMnbs2HzlW7ZsMQDjhRdesJblXaNc+10QHh6er+dt//79jWbNml33fa83fC8kJMRwcHCwfrfkKUlPqe7duxvVqlUzkpKSiozhet9H1/ZeWbZsmQEYM2fOzFfviy++KHAdEhISYri6uuabAuDy5ctG9erVi9VD+9prqmtNnDgxXzuUtKcUUOTUBXksFouRlZVlREVFGUC+4fzXG753bU+p4l4/5LVtkyZN8o0O2Lp163V73l97rNfrKTV69GijSpUqBaZmeP311w3A2Lt3b6Gvu941V1Gf1bx47rzzznzl//3vfw0gX++vonpKBQQE5Ps7ISEhwTCbzflGK9xxxx1GzZo1803xcf78ecPHx0c9peSmaKJzETuwcOFCoqOj8z3yekoVh/HHinImk8laNn/+fCwWCyNGjLCWjRgxgosXL/LFF18U2EetWrW4/fbb+d///se33377J47mitWrV+Ph4cF9992XrzxvhZRVq1YVe18NGjRg5MiRzJkzh2PHjt10TIWdq3nz5uHm5saDDz4IQJUqVbj//vtZv349v//+e4F9dOrUiWrVqjF16lQOHTp007EUx9y5c2nRogWurq44Ojri5OTEqlWr2LdvX4G6AwcOxNXV1frc09OTu+66i3Xr1hW6emFxrF69mp49e+Ll5YWDgwNOTk7861//4syZMyQlJd30cRX3vcPDw2ndunW+8uHDh2MYhvUOauvWrTl37hwPPfQQ3377LadPny7TuERE5M9Zs2YNQIEV01q3bk2jRo0KXB8EBgYW+C5o2rQpcXFx+V67a9cuxo4dy88//0xaWlqJ42ratCn169cv8esALl26RFRUFIMGDcLPz++m9nGtvO+5a8/T/fffj4eHR4Hz1KxZM2svGwBXV1fq16+f7zzdrLzrp5vl7e1N9+7dC5QfOXKEwYMHExgYaL3O6NKlC0Ch1zrFUdzrhzz9+vXL14OoadOmAKVy3r7//nu6detGcHAw2dnZ1kffvn0B8q26XJJrrut9VgcMGFCgbnGPp1u3bnh6elqfBwQE4O/vb33txYsX2bZtG3fffTfO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ox/xhz/8AYAlS5Ywf/583XlPRERERERERGQADGgotWrVKgAuvPBCn/1r1qzh+9//PgB33nkndXV1/PSnP6W8vJyMjAzef/99wsPDve0fffRRAgICWLhwIXV1dVx88cU888wzWCwWb5sXX3yRW2+91XuXvgULFvDEE0+c3hMUEREREREREZEuDfjyvd6YTCaWL1/O8uXLu20TFBTE448/zuOPP95tm+joaF544YUv0035Emw2G/fdd59PXS7xP7pO/k/XyP/pGg0Ouk7iD/Tfof/TNRocdJ38n66R//OXa2Qyzrb7F4uIiIiIiIiIyIAzD3QHRERERERERETk7KNQSkRERERERERE+p1CKRERERERERER6XcKpeSUeuCBB5g5cybh4eE4HA6uuuoq9u3bN9Ddkh488MADmEwmli5dOtBdkXZyc3O59tpriYmJISQkhClTprBt27aB7pa009zczM9//nOGDx9OcHAwI0aM4Je//CVut3ugu3bW2rBhA1dccQVJSUmYTCbefPNNn+cNw2D58uUkJSURHBzMhRdeyK5duwams3LW0Nho8NHYyH9pfOTfNDbyT/4+PlIoJafU+vXruemmm9i0aRPr1q2jubmZyy67jJqamoHumnRh69atrF69mkmTJg10V6Sd8vJyzj33XKxWK++99x67d+/mt7/9LZGRkQPdNWln5cqV/P73v+eJJ55gz549PPTQQ/zmN7/p8U6wcnrV1NQwefJknnjiiS6ff+ihh3jkkUd44okn2Lp1KwkJCVx66aVUVVX1c0/lbKKx0eCisZH/0vjI/2ls5J/8fXyku+/JaVVcXIzD4WD9+vVccMEFA90daae6uppp06bx1FNP8atf/YopU6bw2GOPDXS3BLj77rv5+OOP2bhx40B3RXowf/584uPj+dOf/uTd981vfpOQkBCef/75AeyZAJhMJt544w2uuuoqwPMpYFJSEkuXLuWuu+4CoKGhgfj4eFauXMmNN944gL2Vs4nGRv5LYyP/pvGR/9PYyP/54/hIM6XktKqsrAQgOjp6gHsiHd1000187Wtf45JLLhnorkgHb7/9NjNmzODb3/42DoeDqVOn8vTTTw90t6SD8847j3//+9/s378fgM8++4yPPvqIyy+/fIB7Jl05fPgwBQUFXHbZZd59NpuNOXPmkJWVNYA9k7ONxkb+S2Mj/6bxkf/T2Gjw8YfxUUC/vIuclQzD4Pbbb+e8884jPT19oLsj7bzyyit8+umnbN26daC7Il04dOgQq1at4vbbb+eee+5hy5Yt3HrrrdhsNr73ve8NdPekxV133UVlZSXjxo3DYrHgcrn49a9/zdVXXz3QXZMuFBQUABAfH++zPz4+npycnIHokpyFNDbyXxob+T+Nj/yfxkaDjz+MjxRKyWlz88038/nnn/PRRx8NdFeknWPHjnHbbbfx/vvvExQUNNDdkS643W5mzJjBihUrAJg6dSq7du1i1apVGnT5kVdffZUXXniBl156ibS0NLKzs1m6dClJSUlcd911A9096YbJZPJ5bBhGp30ip4vGRv5JY6PBQeMj/6ex0eA1kOMjhVJyWtxyyy28/fbbbNiwgeTk5IHujrSzbds2ioqKmD59unefy+Viw4YNPPHEEzQ0NGCxWAawh5KYmMiECRN89o0fP57XXnttgHokXfnZz37G3XffzXe/+10AJk6cSE5ODg888IAGXn4oISEB8HwimJiY6N1fVFTU6dNBkdNBYyP/pbHR4KDxkf/T2Gjw8YfxkWpKySllGAY333wzr7/+Ov/5z38YPnz4QHdJOrj44ovZsWMH2dnZ3m3GjBlcc801ZGdna9DlB84999xOtwvfv38/qampA9Qj6UptbS1ms+8/oxaLRbc99lPDhw8nISGBdevWefc1Njayfv16MjMzB7BncqbT2Mj/aWw0OGh85P80Nhp8/GF8pJlSckrddNNNvPTSS7z11luEh4d716ja7XaCg4MHuHcCEB4e3qmORWhoKDExMapv4Sf+53/+h8zMTFasWMHChQvZsmULq1evZvXq1QPdNWnniiuu4Ne//jUpKSmkpaWxfft2HnnkEW644YaB7tpZq7q6mi+++ML7+PDhw2RnZxMdHU1KSgpLly5lxYoVjB49mtGjR7NixQpCQkJYtGjRAPZaznQaG/k/jY0GB42P/J/GRv7J78dHhsgpBHS5rVmzZqC7Jj2YM2eOcdtttw10N6Sdd955x0hPTzdsNpsxbtw4Y/Xq1QPdJenA6XQat912m5GSkmIEBQUZI0aMMO69916joaFhoLt21vrggw+6/DfouuuuMwzDMNxut3HfffcZCQkJhs1mMy644AJjx44dA9tpOeNpbDQ4aWzknzQ+8m8aG/knfx8fmQzDMPon/hIREREREREREfFQTSkREREREREREel3CqVERERERERERKTfKZQSEREREREREZF+p1BKRERERERERET6nUIpERERERERERHpdwqlRERERERERESk3ymUEhERERERERGRfqdQSkRERERERERE+p1CKRHxex9++CEmk4mKioqB7kq/OnLkCCaTiezs7IHuioiIiPgRjY2yB7orInKKKJQSkQH3/e9/H5PJhMlkwmq1MmLECJYtW0ZNTc1pfV+TycSbb755Wt9DRERE5ERpbCQiZ4uAge6AiAjAvHnzWLNmDU1NTWzcuJEf/vCH1NTUsGrVqoHu2hmnsbGRwMDAge6GiIiI9EBjo/6jsZHIwNFMKRHxCzabjYSEBIYOHcqiRYu45ppruv2krrS0lKuvvprk5GRCQkKYOHEiL7/8sk+bCy+8kFtvvZU777yT6OhoEhISWL58uff5YcOGAfD1r38dk8nkfdxR6zTx119/nYsuuoiQkBAmT57MJ5984m2zfPlypkyZ4vO6xx57zOeY3//+97nqqqtYsWIF8fHxREZGcv/999Pc3MzPfvYzoqOjSU5O5s9//nOnPuzdu5fMzEyCgoJIS0vjww8/9Hl+9+7dXH755YSFhREfH8/ixYspKSnx+VncfPPN3H777cTGxnLppZd2ea4iIiLiPzQ20thI5GygUEpE/FJwcDBNTU1dPldfX8/06dP5+9//zs6dO1myZAmLFy9m8+bNPu2effZZQkND2bx5Mw899BC//OUvWbduHQBbt24FYM2aNeTn53sfd+fee+9l2bJlZGdnM2bMGK6++mqam5tP6Jz+85//kJeXx4YNG3jkkUdYvnw58+fPJyoqis2bN/PjH/+YH//4xxw7dszndT/72c+444472L59O5mZmSxYsIDS0lIA8vPzmTNnDlOmTOG///0va9eupbCwkIULF3b6WQQEBPDxxx/zhz/84YT6LSIiIgNPY6M2GhuJnEEMEZEBdt111xlXXnml9/HmzZuNmJgYY+HChYZhGMYHH3xgAEZ5eXm3x7j88suNO+64w/t4zpw5xnnnnefTZubMmcZdd93lfQwYb7zxRo99O3z4sAEYf/zjH737du3aZQDGnj17DMMwjPvuu8+YPHmyz+seffRRIzU11eccU1NTDZfL5d03duxY4/zzz/c+bm5uNkJDQ42XX37Z570ffPBBb5umpiYjOTnZWLlypWEYhvGLX/zCuOyyy3ze+9ixYwZg7Nu3z/uzmDJlSo/nKSIiIv5DYyMPjY1EznyqKSUifuHvf/87YWFhNDc309TUxJVXXsnjjz/eZVuXy8WDDz7Iq6++Sm5uLg0NDTQ0NBAaGurTbtKkST6PExMTKSoq+lL9a3+sxMREAIqKihg3blyfj5GWlobZ3DZBNT4+nvT0dO9ji8VCTExMpz7Onj3b+31AQAAzZsxgz549AGzbto0PPviAsLCwTu938OBBxowZA8CMGTP63E8REREZeBobaWwkcjZQKCUifuGiiy5i1apVWK1WkpKSsFqt3bb97W9/y6OPPspjjz3GxIkTCQ0NZenSpTQ2Nvq063gMk8mE2+3+Uv1rfyyTyQTgPZbZbMYwDJ/2XU2v76o/X7aP7ftwxRVXsHLlyk5tWgeIQKdBqYiIiPg3jY1OrI8aG4kMTgqlRMQvhIaGMmrUqD613bhxI1deeSXXXnst4Bl8HDhwgPHjx5/Qe1qtVlwu1wn3taO4uDgKCgowDMM7IMrOzj7p47batGkTF1xwAQDNzc1s27aNm2++GYBp06bx2muvMWzYMAIC9CddRETkTKGxUfc0NhI5c6jQuYgMOqNGjWLdunVkZWWxZ88ebrzxRgoKCk74OMOGDePf//43BQUFlJeXf+n+XHjhhRQXF/PQQw9x8OBBnnzySd57770vfbyOnnzySd544w327t3LTTfdRHl5OTfccAMAN910E2VlZVx99dVs2bKFQ4cO8f7773PDDTeckkGliIiI+D+NjTQ2EhmsFEqJyKDzi1/8gmnTpjF37lwuvPBCEhISuOqqq074OL/97W9Zt24dQ4cOZerUqV+6P+PHj+epp57iySefZPLkyWzZsoVly5Z96eN19OCDD7Jy5UomT57Mxo0beeutt4iNjQUgKSmJjz/+GJfLxdy5c0lPT+e2227Dbrf71GgQERGRM5fGRhobiQxWJqPjYl8REREREREREZHTTFGxiIiIiIiIiIj0O4VSIiIiIiIiIiLS7xRKiYiIiIiIiIhIv1MoJSIiIiIiIiIi/U6hlIiIiIiIiIiI9DuFUiIiIiIiIiIi0u8USomIiIiIiIiISL9TKCUiIiIiIiIiIv1OoZSIiIiIiIiIiPQ7hVIiIiIiIiIiItLvFEqJiIiIiIiIiEi/UyglIiIiIiIiIiL97v8HoKFADvFAeREAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dashboard_path = OUTPUT_DIR / \"ap1000_china_crf_dashboard.png\"\n", + "save_dashboard(\n", + " crf_result,\n", + " dashboard_path,\n", + " title=\"AP1000 China ACCERT-IAT-CRF Dashboard\",\n", + " show_levers=True,\n", + ")\n", + "print(\"CRF dashboard:\", dashboard_path)\n", + "display(Image(filename=str(dashboard_path)))\n", + "\n", + "plants = results_to_dataframe(crf_result)\n", + "fig, axes = plt.subplots(1, 2, figsize=(12, 4))\n", + "axes[0].plot(plants[\"Plant number\"], plants[\"OCC\"], marker=\"o\", label=\"OCC\")\n", + "axes[0].plot(plants[\"Plant number\"], plants[\"TCI\"], marker=\"o\", label=\"TCI\")\n", + "axes[0].set_title(\"FOAK to NOAK Capital Cost\")\n", + "axes[0].set_xlabel(\"Plant number\")\n", + "axes[0].set_ylabel(\"$/kWe\")\n", + "axes[0].grid(alpha=0.3)\n", + "axes[0].legend()\n", + "\n", + "axes[1].plot(plants[\"Plant number\"], plants[\"Construction duration\"], marker=\"o\", color=\"#54A24B\")\n", + "axes[1].set_title(\"Construction Duration Learning\")\n", + "axes[1].set_xlabel(\"Plant number\")\n", + "axes[1].set_ylabel(\"Months\")\n", + "axes[1].grid(alpha=0.3)\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "workflow-summary", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ACCERT account CSVIAT China CSV for CRFFOAK OCC ($/kWe)NOAK OCC ($/kWe)FOAK TCI ($/kWe)NOAK TCI ($/kWe)FOAK construction duration (months)NOAK construction duration (months)
0/Users/jia.zhou/projects/ACCERT/tutorial/combi.../Users/jia.zhou/projects/ACCERT/tutorial/combi...7104.5623252753.7255097743.3176222876.85352888.18843854.976346
\n", + "
" + ], + "text/plain": [ + " ACCERT account CSV \\\n", + "0 /Users/jia.zhou/projects/ACCERT/tutorial/combi... \n", + "\n", + " IAT China CSV for CRF FOAK OCC ($/kWe) \\\n", + "0 /Users/jia.zhou/projects/ACCERT/tutorial/combi... 7104.562325 \n", + "\n", + " NOAK OCC ($/kWe) FOAK TCI ($/kWe) NOAK TCI ($/kWe) \\\n", + "0 2753.725509 7743.317622 2876.853528 \n", + "\n", + " FOAK construction duration (months) NOAK construction duration (months) \n", + "0 88.188438 54.976346 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "summary = pd.DataFrame(\n", + " [\n", + " {\n", + " \"ACCERT account CSV\": str(accert_account_csv),\n", + " \"IAT China CSV for CRF\": str(iat_china_csv),\n", + " \"FOAK OCC ($/kWe)\": crf_result[\"OCC_1\"],\n", + " \"NOAK OCC ($/kWe)\": crf_result[f\"OCC_{crf_levers['num_NOAK']}\"],\n", + " \"FOAK TCI ($/kWe)\": crf_result[\"TCI_1\"],\n", + " \"NOAK TCI ($/kWe)\": crf_result[f\"TCI_{crf_levers['num_NOAK']}\"],\n", + " \"FOAK construction duration (months)\": crf_result[\"duration_1\"],\n", + " \"NOAK construction duration (months)\": crf_result[f\"duration_{crf_levers['num_NOAK']}\"],\n", + " }\n", + " ]\n", + ")\n", + "summary" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorial/combined/accert_output_to_crf_iat_example.py b/tutorial/combined/accert_output_to_crf_iat_example.py new file mode 100644 index 0000000..d5953f8 --- /dev/null +++ b/tutorial/combined/accert_output_to_crf_iat_example.py @@ -0,0 +1,117 @@ +"""Use an ACCERT updated-account CSV as a CRF and IAT baseline. + +Run from the repository root with: + + python tutorial/combined/accert_output_to_crf_iat_example.py +""" + +from pathlib import Path +import os +import shutil +import subprocess +import sys +import tempfile + +REPO_ROOT = Path(__file__).resolve().parents[2] +SRC_PATH = REPO_ROOT / "src" +if str(SRC_PATH) not in sys.path: + sys.path.insert(0, str(SRC_PATH)) + +from crf import accert_output_to_crf_baseline, print_scenario_result, run_one_scenario +from crf.io.excel_inputs import InputStore +from iat import level_account_summary, run_adjustment + + +OUTPUT_DIR = REPO_ROOT / "tutorial" / "combined" / "outputs" +ACCERT_INPUT = REPO_ROOT / "tutorial" / "accert" / "AP1000.son" +CONVERTED_BASELINE = OUTPUT_DIR / "ap1000_accert_for_crf_iat.csv" +IAT_OUTPUT = OUTPUT_DIR / "ap1000_accert_china_iat.csv" + + +config = { + "reactor_type": "AP1000", + "f_22": 250_000_000, + "f_2321": 150_000_000, + "land_cost_per_acre_0": 22_000, + "construction_duration_0": 76, + "startup_0": 28, + "staggering_ratio": 0.75, +} + +levers = { + "num_orders": 10, + "num_NOAK": 8, + "itc_percent": 0, + "n_itc": 0, + "interest_percent": 6, + "design_completion_percent": 70, + "design_maturity": 1, + "proc_exp": 0.5, + "N_proc": 3, + "ce_exp": 0.5, + "N_cons": 5, + "ae_exp": 0.5, + "N_AE": 4, + "standardization_percent": 80, + "modularity_code": 0, + "bop_grade_code": 0, + "rb_grade_code": 0, +} + + +def ap1000_total_20s_labor_hours() -> float: + baseline, _ = InputStore().get_baseline("AP1000") + mask = baseline["Account"].astype(str).isin(["21", "22", "23", "24", "26"]) + return float(baseline.loc[mask, "Site Labor Hours"].sum()) + + +def run_accert_ap1000() -> Path: + OUTPUT_DIR.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory() as tmp: + db_path = Path(tmp) / "accertdb.sqlite" + shutil.copy2(REPO_ROOT / "src" / "accertdb.sqlite", db_path) + env = {**os.environ, "ACCERT_SQLITE_DB": str(db_path)} + subprocess.run( + [sys.executable, str(REPO_ROOT / "src" / "Main.py"), "-i", str(ACCERT_INPUT)], + cwd=OUTPUT_DIR, + env=env, + check=True, + ) + candidates = sorted(OUTPUT_DIR.glob("ap1000_upd_acc_*.csv")) + if not candidates: + raise FileNotFoundError("ACCERT did not create an ap1000_upd_acc CSV") + return candidates[-1] + + +if __name__ == "__main__": + print("Step 1: Run ACCERT AP1000 and collect the updated-account CSV") + accert_csv = run_accert_ap1000() + print(f"ACCERT account CSV: {accert_csv}") + + print("\nStep 2: Convert ACCERT output to CRF/IAT baseline shape") + total_hours = ap1000_total_20s_labor_hours() + accert_output_to_crf_baseline( + accert_csv, + CONVERTED_BASELINE, + reactor_type="AP1000", + total_20s_labor_hours=total_hours, + ) + print(f"Converted baseline: {CONVERTED_BASELINE}") + print(f"Assigned total 20s labor hours: {total_hours:,.2f}") + + print("\nStep 3: Run CRF with the ACCERT-derived baseline") + crf_result = run_one_scenario({**config, "baseline_csv": str(CONVERTED_BASELINE)}, levers) + print_scenario_result(crf_result) + + print("\nStep 4: Run IAT with the same ACCERT-derived baseline") + iat_result = run_adjustment( + { + "reactor_type": "ACCERT output-LR", + "country": "China", + "year_dollar": 2024, + "input_csv": CONVERTED_BASELINE, + "output_csv": IAT_OUTPUT, + } + ) + print(level_account_summary(iat_result["adjusted_costs"], max_level=2).to_string(index=False)) + print(f"\nIAT adjusted output: {IAT_OUTPUT}") diff --git a/tutorial/crf/crf_ap1000_example.py b/tutorial/crf/crf_ap1000_example.py index 9cd053b..7c7f8e7 100644 --- a/tutorial/crf/crf_ap1000_example.py +++ b/tutorial/crf/crf_ap1000_example.py @@ -21,6 +21,7 @@ "f_22": 250_000_000, "f_2321": 150_000_000, "land_cost_per_acre_0": 22_000, + "construction_duration_0": 76, "startup_0": 28, "staggering_ratio": 0.75, } diff --git a/tutorial/gui/CRFwithIAT.gif b/tutorial/gui/CRFwithIAT.gif new file mode 100644 index 0000000..e20ea61 Binary files /dev/null and b/tutorial/gui/CRFwithIAT.gif differ diff --git a/tutorial/gui/IAT.gif b/tutorial/gui/IAT.gif new file mode 100644 index 0000000..f344d41 Binary files /dev/null and b/tutorial/gui/IAT.gif differ diff --git a/tutorial/gui/crf_iat_gui.py b/tutorial/gui/crf_iat_gui.py index db0720e..69acb8c 100644 --- a/tutorial/gui/crf_iat_gui.py +++ b/tutorial/gui/crf_iat_gui.py @@ -28,13 +28,37 @@ if str(SRC_PATH) not in sys.path: sys.path.insert(0, str(SRC_PATH)) -from crf import results_to_dataframe, run_one_scenario, save_dashboard, waterfall_to_dataframe +from crf import ( + accert_output_to_crf_baseline, + results_to_dataframe, + run_one_scenario, + save_dashboard, + waterfall_to_dataframe, +) +from crf.io.excel_inputs import InputStore from iat import level_account_summary, occ_local_foreign_totals, run_adjustment, run_occ_scenarios HOST = "127.0.0.1" PORT = 8765 OUTPUT_DIR = REPO_ROOT / "tutorial" / "gui_outputs" +DEFAULT_CONSTRUCTION_DURATIONS = { + "AP1000": 76.0, + "SFR": 80.0, + "HTGR": 125.0, +} +DEFAULT_20S_LABOR_HOURS = { + "AP1000": 51_112_635.470753975, + "SFR": 10_402_590.638988608, + "HTGR": 37_288_941.04573331, +} +BASE_GROUP_TITLES = { + "10": "Capitalized Pre-Construction Costs", + "20": "Capitalized Direct Costs", + "30": "Capitalized Indirect Services Costs", + "50": "Capitalized Supplementary Costs", + "60": "Capitalized Financial Costs", +} HTML = r""" @@ -151,6 +175,14 @@ background: #f7fbff; color: var(--ink); } + .readonly-note { + border: 1px solid rgba(144,185,203,0.45); + border-radius: 5px; + padding: 8px 9px; + background: rgba(247,251,255,0.28); + color: #eef7fb; + font-weight: 700; + } input[type="checkbox"] { width: auto; margin-right: 7px; @@ -498,10 +530,27 @@ padding: 12px; margin: 12px 0 16px; } + .base-case { + border: 1px solid #bfd5df; + border-radius: 8px; + background: #fff; + padding: 14px; + margin: 0 0 16px; + box-shadow: 0 2px 8px rgba(25, 47, 70, 0.06); + } .scenario-card h4 { margin: 0 0 8px; font-size: 16px; } + .result-note { + border-left: 4px solid var(--accent); + background: #fff; + color: var(--muted); + padding: 10px 12px; + margin: 8px 0 12px; + font-weight: 700; + line-height: 1.42; + } img.dashboard { max-width: 100%; border: 1px solid var(--line); @@ -585,8 +634,8 @@
- - + +
2024 CPI-U basis
+
+
+
+
Include lever table in dashboard image
@@ -693,6 +746,13 @@ let _csvFilePath = null; let _crfFileContent = null; let _crfFilePath = null; + let _lastCrfReactorType = null; + const defaultConstructionDuration = {AP1000: 76, SFR: 80, HTGR: 125}; + const default20sLaborHours = { + AP1000: 51112635, + SFR: 10402591, + HTGR: 37288941 + }; function numberValue(id) { const value = $(id).value.trim(); @@ -733,8 +793,10 @@ $("electricOutputMwe").value = rt === "SMR" ? "310.8" : "2234"; } - function updateCrfDefaults() { + function updateCrfDefaults(force = false) { const rt = $("crfReactorType").value; + if (!force && _lastCrfReactorType === rt) return; + _lastCrfReactorType = rt; if (rt === "AP1000") { $("startup").value = "25"; $("bopGrade").value = "0"; @@ -744,6 +806,8 @@ $("bopGrade").value = "1"; $("modularity").value = "1"; } + $("constructionDuration").value = String(defaultConstructionDuration[rt] || 76); + $("total20sLaborHours").value = String(Math.round(default20sLaborHours[rt] || default20sLaborHours.AP1000)); } function apiReactorType() { @@ -761,7 +825,7 @@ input_mode: $("iatInputMode").value, reactor_type: apiReactorType(), countries: selectedCountries(), - year_dollar: numberValue("yearDollar"), + year_dollar: 2024, input_csv: _csvFilePath, csv_content: _csvFileContent, csv_filename: _csvFileContent ? $("iatCsvName").value : null, @@ -778,6 +842,8 @@ f_2321: numberValue("f2321"), land_cost_per_acre_0: numberValue("landCost"), startup_0: numberValue("startup"), + construction_duration_0: numberValue("constructionDuration"), + total_20s_labor_hours: numberValue("total20sLaborHours"), staggering_ratio: numberValue("staggering"), show_levers: $("showLevers").checked }, @@ -852,7 +918,6 @@ iatInputMode: "ACCERT CSV uses a COA cost file. Standalone OCC builds a cost structure from the localization shares.", iatReactorType: "Large reactor or SMR localization basis. ACCERT output options use the input COA file.", country: "Country where localization and adjustment factors are applied.", - yearDollar: "Dollar year label for the IAT run.", iatCsv: "Input ACCERT/COA CSV. Relative paths are resolved from the ACCERT repository root.", scenarioCount: "Standalone IAT scenario count. Choose 1 to 3 OCC scenarios.", occValue1: "Scenario 1 U.S.-based OCC input. IAT allocates this OCC to COA accounts using packaged COA breakdown percentages, then applies localization and adjustment factors.", @@ -864,6 +929,8 @@ f2321: "Turbine-generator equipment cost input used by the CRF baseline calculations.", landCost: "Land cost per acre for preconstruction land accounts.", startup: "FOAK startup duration in months.", + constructionDuration: "Reference FOAK construction duration in months. Defaults are AP1000 76, SFR 80, and HTGR 125.", + total20sLaborHours: "Total labor hours assigned across 20s direct accounts when a raw ACCERT account CSV is converted into a CRF/IAT baseline.", staggering: "Fractional overlap used for the sequential construction timeline.", numOrders: "Number of firm orders: This determines the size of the order book for a given reactor concept. It directly impacts equipment costs for all plants within the order (including the first).", numNoak: "NOAK unit: plant number used for the FOAK-to-NOAK comparison. Range: 1 to firm orders.", @@ -966,6 +1033,65 @@ return `$${(number / 1e9).toLocaleString(undefined, {maximumFractionDigits: 3})}B`; } + function iatResultColumns(formatter) { + return [ + {key: "COA", label: "COA"}, + {key: "Title", label: "Title"}, + {key: "Adjustment Ratio", label: "Ratio", format: fmt}, + {key: "Adjusted Equipment Cost", label: "Adj factory", format: formatter}, + {key: "Adjusted Material Cost", label: "Adj material", format: formatter}, + {key: "Adjusted Labor Cost", label: "Adj labor", format: formatter}, + {key: "Adjusted Total Cost", label: "Adj total", format: formatter} + ]; + } + + function baseCostColumns(formatter) { + return [ + {key: "COA", label: "COA"}, + {key: "Title", label: "Title"}, + {key: "Equipment Cost", label: "Factory", format: formatter}, + {key: "Material Cost", label: "Material", format: formatter}, + {key: "Labor Cost", label: "Labor", format: formatter}, + {key: "Total Cost", label: "Total", format: formatter} + ]; + } + + function baseCaseBlock(baseCase) { + if (!baseCase || !baseCase.comparison || !baseCase.comparison.length) return ""; + const isStandalone = !baseCase.power_kwe || baseCase.power_kwe === 1.0; + if (isStandalone) { + return `
+

Base Case

+
${esc(baseCase.source || "Baseline")} shown as $/kWe; factory, material, and labor categories are included.
+ ${coaTable(baseCase.comparison, baseCostColumns(v => fmtKwe(v)), 1.0, false)} +
`; + } + const unitLabel = coaUnit === "perkw" ? "$/kWe" : coaUnit === "million" ? "M USD" : "B USD"; + return `
+

Base Case

+
${esc(baseCase.source || "Baseline")} shown as ${unitLabel}; factory, material, and labor categories are included.
+ ${coaTable(baseCase.comparison, baseCostColumns((v, row, kwe) => moneyCell(v, row, kwe)), baseCase.power_kwe, true)} +
`; + } + + function crfResultsColumns() { + return [ + {key: "Plant number", label: "Plant"}, + {key: "OCC", label: "OCC ($/kW)", format: fmt}, + {key: "TCI", label: "TCI ($/kW)", format: fmt}, + {key: "Construction duration", label: "Construction mo.", format: fmt}, + {key: "Startup duration", label: "Startup mo.", format: fmt}, + {key: "Preconstruction costs", label: "10s", format: fmt}, + {key: "Direct costs", label: "20s", format: fmt}, + {key: "Direct costs: equipment", label: "20s factory", format: fmt}, + {key: "Direct costs: material", label: "20s material", format: fmt}, + {key: "Direct costs: labor", label: "20s labor", format: fmt}, + {key: "Indirect costs", label: "30s", format: fmt}, + {key: "Supplementary costs", label: "50s", format: fmt}, + {key: "Financing costs", label: "60s", format: fmt} + ]; + } + function links(files) { if (!files) return ""; return ``; @@ -1250,35 +1376,24 @@ } function fmtKwe(value) { - return value != null ? `$${fmt(value)}/kWe` : ""; + return value != null ? `$${fmtInt(value)}/kWe` : ""; } function iatBlock(iat, title = "") { let html = title ? `

${title}

` : ""; html += metrics([ - {label: "Input OCC ($/kWe)", value: fmtKwe(iat.input_occ_per_kw)}, - {label: "Adjusted OCC ($/kWe)", value: fmtKwe(iat.adjusted_occ_per_kw)}, + {label: "Base case OCC", value: fmtKwe(iat.input_occ_per_kw)}, + {label: "WE-FOAK OCC ($/kWe)", value: fmtKwe(iat.adjusted_occ_per_kw)}, {label: "OCC adjustment factor", value: fmt(iat.occ_adjustment_factor)}, {label: "Country", value: iat.country} ]); const isStandalone = !iat.power_kwe || iat.power_kwe === 1.0; if (isStandalone) { - html += coaTable(iat.comparison, [ - {key: "COA", label: "COA"}, - {key: "Title", label: "Title"}, - {key: "Original Total Cost", label: "Original ($/kWe)", format: v => fmtKwe(v)}, - {key: "Adjusted Total Cost", label: "Adjusted ($/kWe)", format: v => fmtKwe(v)}, - {key: "Adjustment Ratio", label: "Ratio", format: fmt} - ], 1.0, false); + html += coaTable(iat.comparison, iatResultColumns(v => fmtKwe(v)), 1.0, false); } else { const unitLabel = coaUnit === "perkw" ? "$/kWe" : coaUnit === "million" ? "M USD" : "B USD"; - html += coaTable(iat.comparison, [ - {key: "COA", label: "COA"}, - {key: "Title", label: "Title"}, - {key: "Original Total Cost", label: `Original (${unitLabel})`, format: (v, row, kwe) => moneyCell(v, row, kwe)}, - {key: "Adjusted Total Cost", label: `Adjusted (${unitLabel})`, format: (v, row, kwe) => moneyCell(v, row, kwe)}, - {key: "Adjustment Ratio", label: "Ratio", format: fmt} - ], iat.power_kwe, true); + html += `
Adjusted COA cost columns shown as ${unitLabel}; original values are shown in the Base Case section.
`; + html += coaTable(iat.comparison, iatResultColumns((v, row, kwe) => moneyCell(v, row, kwe)), iat.power_kwe, true); } return title ? `${html}
` : html; } @@ -1388,6 +1503,7 @@ if (!isStandaloneMultiCountryIat) { html += links(data.files); } + html += baseCaseBlock(data.base_case); if (data.iat) { if (data.iat.country_results && data.iat.country_results.length) { if (isStandaloneMultiCountryIat) { @@ -1456,17 +1572,22 @@ } if (data.crf) { html += `

CRF Result

`; + html += `
The IAT value above is the internationally adjusted WE-FOAK OCC baseline. CRF recalculates FOAK from that baseline using the CRF fixed inputs and first-unit project effects, including factory-equipment inputs, land, construction/startup duration, financing, design completion, and FOAK execution assumptions, so the CRF FOAK OCC can differ from the WE-FOAK OCC.
`; + html += metrics([ + {label: "FOAK OCC ($/kW)", value: fmtInt(data.crf.occ_1)}, + {label: "NOAK OCC ($/kW)", value: fmtInt(data.crf.occ_noak)}, + {label: "Average OCC ($/kW)", value: fmtInt(data.crf.avg_occ)}, + {label: "OCC reduction (%)", value: fmtInt(data.crf.occ_reduction_percent)} + ]); html += metrics([ - {label: "FOAK OCC ($/kW)", value: fmt(data.crf.occ_1)}, - {label: "NOAK OCC ($/kW)", value: fmt(data.crf.occ_noak)}, - {label: "FOAK TCI ($/kW)", value: fmt(data.crf.tci_1)}, - {label: "NOAK TCI ($/kW)", value: fmt(data.crf.tci_noak)} + {label: "FOAK TCI ($/kW)", value: fmtInt(data.crf.tci_1)}, + {label: "NOAK TCI ($/kW)", value: fmtInt(data.crf.tci_noak)}, + {label: "Average TCI ($/kW)", value: fmtInt(data.crf.avg_tci)}, + {label: "Average duration (months)", value: fmtInt(data.crf.avg_duration)} ]); html += metrics([ - {label: "Average OCC ($/kW)", value: fmt(data.crf.avg_occ)}, - {label: "Average TCI ($/kW)", value: fmt(data.crf.avg_tci)}, - {label: "Average duration (months)", value: fmtInt(data.crf.avg_duration)}, - {label: "OCC reduction (%)", value: fmt(data.crf.occ_reduction_percent)} + {label: `Years to build ${fmtInt(data.crf.num_noak)} plants`, value: `${fmtInt(data.crf.years_to_noak)} years`}, + {label: `Years to build ${fmtInt(data.crf.num_orders)} plants`, value: `${fmtInt(data.crf.years_to_orderbook)} years`} ]); html += `
@@ -1474,6 +1595,7 @@ +
`; html += `

Capital Cost: OCC and TCI

@@ -1495,6 +1617,10 @@ html += `CRF dashboard`; } html += `
`; + html += `
+ ${fileLink("Download CRF results CSV", data.files && data.files["CRF results CSV"])} + ${table(data.crf.plants, crfResultsColumns())} +
`; } if (data.notes && data.notes.length) { html += `

Notes

    ${data.notes.map(n => `
  • ${n}
  • `).join("")}
`; @@ -1594,7 +1720,7 @@ reader.onload = e => { _crfFileContent = e.target.result; }; reader.readAsText(file); }); - $("crfReactorType").addEventListener("change", updateCrfDefaults); + $("crfReactorType").addEventListener("change", () => updateCrfDefaults(true)); $("runBtn").addEventListener("click", runWorkflow); $("resetBtn").addEventListener("click", () => location.reload()); enhanceLabels(); @@ -1619,6 +1745,87 @@ def _resolve_path(value: str | None) -> Path | None: return path +def _write_uploaded_csv(prefix: str, filename: str | None, content: str) -> Path: + csv_name = re.sub(r"[^A-Za-z0-9_.-]+", "_", filename or "upload.csv") + tmp_path = OUTPUT_DIR / f"{prefix}{csv_name}" + tmp_path.write_text(content) + return tmp_path + + +def _is_accert_account_output(path: Path) -> bool: + columns = set(pd.read_csv(path, nrows=0).columns) + return {"code_of_account", "account_description", "total_cost"}.issubset(columns) + + +def _prepare_iat_input_csv(payload: dict) -> Path: + iat = payload["iat"] + prepared = iat.get("_prepared_input_csv") + if prepared: + return Path(prepared) + + csv_content = iat.get("csv_content") + if csv_content: + input_csv = _write_uploaded_csv("_upload_", iat.get("csv_filename"), csv_content) + else: + input_csv = _resolve_path(iat.get("input_csv")) + if input_csv is None: + raise ValueError("IAT CSV input path or uploaded file is required") + + if _is_accert_account_output(input_csv): + name = _safe_name(payload.get("output_name", "accert_gui_run")) + converted_csv = OUTPUT_DIR / f"{name}_accert_baseline_for_iat_crf.csv" + crf = payload.get("crf", {}) + accert_output_to_crf_baseline( + input_csv, + converted_csv, + reactor_type=crf.get("reactor_type", "AP1000"), + total_20s_labor_hours=_num( + crf.get("total_20s_labor_hours"), + DEFAULT_20S_LABOR_HOURS.get(crf.get("reactor_type", "AP1000"), DEFAULT_20S_LABOR_HOURS["AP1000"]), + ), + ) + iat["_prepared_from_accert_csv"] = str(input_csv) + iat["_prepared_input_csv"] = str(converted_csv) + return converted_csv + + iat["_prepared_input_csv"] = str(input_csv) + return input_csv + + +def _prepare_crf_baseline_csv(payload: dict) -> Path | None: + crf = payload["crf"] + prepared = crf.get("_prepared_baseline_csv") + if prepared: + return Path(prepared) + + csv_content = crf.get("baseline_csv_content") + if csv_content: + input_csv = _write_uploaded_csv("_crf_upload_", crf.get("baseline_csv_filename"), csv_content) + else: + input_csv = _resolve_path(crf.get("baseline_csv")) + if input_csv is None: + return None + + if _is_accert_account_output(input_csv): + name = _safe_name(payload.get("output_name", "accert_gui_run")) + converted_csv = OUTPUT_DIR / f"{name}_accert_baseline_for_crf.csv" + accert_output_to_crf_baseline( + input_csv, + converted_csv, + reactor_type=crf.get("reactor_type", "AP1000"), + total_20s_labor_hours=_num( + crf.get("total_20s_labor_hours"), + DEFAULT_20S_LABOR_HOURS.get(crf.get("reactor_type", "AP1000"), DEFAULT_20S_LABOR_HOURS["AP1000"]), + ), + ) + crf["_prepared_from_accert_csv"] = str(input_csv) + crf["_prepared_baseline_csv"] = str(converted_csv) + return converted_csv + + crf["_prepared_baseline_csv"] = str(input_csv) + return input_csv + + def _num(value, default=None): if value in (None, ""): return default @@ -1752,18 +1959,7 @@ def _iat_config(payload: dict, output_csv: Path | None = None, country: str | No config["occ_values"] = _parse_occ_values(iat["occ_values"]) return config - csv_content = iat.get("csv_content") - if csv_content: - csv_name = re.sub(r"[^A-Za-z0-9_.-]+", "_", iat.get("csv_filename") or "upload.csv") - tmp_path = OUTPUT_DIR / f"_upload_{csv_name}" - tmp_path.write_text(csv_content) - config["input_csv"] = tmp_path - return config - - input_csv = _resolve_path(iat.get("input_csv")) - if input_csv is None: - raise ValueError("IAT CSV input path or uploaded file is required") - config["input_csv"] = input_csv + config["input_csv"] = _prepare_iat_input_csv(payload) return config @@ -1775,19 +1971,16 @@ def _crf_config(payload: dict, baseline_csv: Path | None = None) -> dict: "f_2321": _num(crf["f_2321"], 0.0), "land_cost_per_acre_0": _num(crf["land_cost_per_acre_0"], 22_000.0), "startup_0": _num(crf["startup_0"], 28.0), + "construction_duration_0": _num( + crf.get("construction_duration_0"), + DEFAULT_CONSTRUCTION_DURATIONS.get(crf.get("reactor_type", "AP1000"), 76.0), + ), "staggering_ratio": _num(crf["staggering_ratio"], 0.75), } if baseline_csv is not None: config["baseline_csv"] = baseline_csv return config - csv_content = crf.get("baseline_csv_content") - if csv_content: - csv_name = re.sub(r"[^A-Za-z0-9_.-]+", "_", crf.get("baseline_csv_filename") or "crf_upload.csv") - tmp_path = OUTPUT_DIR / f"_crf_upload_{csv_name}" - tmp_path.write_text(csv_content) - config["baseline_csv"] = tmp_path - return config - path = _resolve_path(crf.get("baseline_csv")) + path = _prepare_crf_baseline_csv(payload) if path is not None: config["baseline_csv"] = path return config @@ -1827,6 +2020,29 @@ def _summarize_iat_result(result: dict, power_kwe: float) -> dict: } +def _base_case_from_iat_result(result: dict, power_kwe: float) -> dict: + metrics = _iat_metrics(result["adjusted_costs"], power_kwe) + comparison = [] + for row in metrics["comparison"]: + comparison.append( + { + "COA": row.get("COA"), + "Title": row.get("Title"), + "Equipment Cost": row.get("Original Equipment Cost", 0.0), + "Material Cost": row.get("Original Material Cost", 0.0), + "Labor Cost": row.get("Original Labor Cost", 0.0), + "Land Cost": row.get("Original Land Cost", 0.0), + "Catch-All Cost": row.get("Original Catch-All Cost", 0.0), + "Total Cost": row.get("Original Total Cost", 0.0), + } + ) + return { + "source": result.get("input_source", "IAT input baseline"), + "power_kwe": power_kwe, + "comparison": comparison, + } + + def _summarize_occ_result(result: dict, power_kwe: float) -> dict: first = result["scenario_results"][0] metrics = _iat_metrics(first["adjusted_costs"], power_kwe) @@ -1854,8 +2070,87 @@ def _summarize_occ_result(result: dict, power_kwe: float) -> dict: } +def _normalize_accounts(series: pd.Series) -> pd.Series: + return series.astype(str).str.strip().str.replace(r"\.0$", "", regex=True) + + +def _leaf_mask(accounts: pd.Series) -> pd.Series: + values = accounts.astype(str).tolist() + return pd.Series( + [ + not any(other != account and other.startswith(account) for other in values) + for account in values + ], + index=accounts.index, + ) + + +def _base_case_summary_from_dataframe(df: pd.DataFrame, power_kwe: float, source: str) -> dict: + data = df.copy() + data["Account"] = _normalize_accounts(data["Account"]) + for column in [ + "Total Cost (USD)", + "Factory Equipment Cost", + "Site Material Cost", + "Site Labor Cost", + "Land Cost", + "Catch-All Cost", + ]: + if column not in data.columns: + data[column] = 0.0 + data[column] = pd.to_numeric( + data[column].astype(str).str.replace(",", "", regex=False), + errors="coerce", + ).fillna(0.0) + accounts = data["Account"].astype(str) + leaf = data.loc[_leaf_mask(accounts)].copy() + leaf_accounts = leaf["Account"].astype(str) + rows = [] + + def add_row(code: str, title: str, subset: pd.DataFrame) -> None: + if subset.empty: + return + rows.append( + { + "COA": code, + "Title": title, + "Equipment Cost": float(subset["Factory Equipment Cost"].sum()), + "Material Cost": float(subset["Site Material Cost"].sum()), + "Labor Cost": float(subset["Site Labor Cost"].sum()), + "Land Cost": float(subset["Land Cost"].sum()), + "Catch-All Cost": float(subset["Catch-All Cost"].sum()), + "Total Cost": float(subset["Total Cost (USD)"].sum()), + } + ) + + for group in sorted({account[0] for account in leaf_accounts if account and account[0].isdigit()}): + add_row(f"{group}0", BASE_GROUP_TITLES.get(f"{group}0", ""), leaf.loc[leaf_accounts.str.startswith(group)]) + level_2_codes = sorted({account[:2] for account in accounts if len(account) >= 2 and account[:2].isdigit()}) + for code in level_2_codes: + subset = leaf.loc[leaf_accounts.str.startswith(code)] + if subset.empty: + continue + title_rows = data.loc[data["Account"].eq(code), "Title"] + add_row(code, str(title_rows.iloc[0]) if not title_rows.empty else "", subset) + return { + "source": source, + "power_kwe": power_kwe, + "comparison": rows, + } + + +def _base_case_from_crf_config(config: dict) -> dict: + df, power = InputStore( + data_dir=config.get("data_dir"), + baseline_csv=config.get("baseline_csv"), + ).get_baseline(config["reactor_type"]) + source = str(config.get("baseline_csv") or f"{config['reactor_type']} built-in baseline") + return _base_case_summary_from_dataframe(df, power, source) + + def _summarize_crf_result(result: dict) -> dict: noak = int(result.get("num_NOAK", result.get("Num_orders", 1))) + num_orders = int(result.get("Num_orders", result.get("num_orders", noak))) plant_columns = [ "Plant number", "OCC", @@ -1873,7 +2168,14 @@ def _summarize_crf_result(result: dict) -> dict: ] plants = results_to_dataframe(result) available = [column for column in plant_columns if column in plants.columns] + timeline = _timeline_records( + plants, + float(result.get("effective_staggering_ratio", result.get("staggering_ratio", 0.75))), + ) + years_by_plant = {int(row["plant"]): float(row["startup_end_year"]) for row in timeline} return { + "num_noak": noak, + "num_orders": num_orders, "occ_1": result.get("OCC_1"), "occ_noak": result.get(f"OCC_{noak}"), "tci_1": result.get("TCI_1"), @@ -1882,13 +2184,22 @@ def _summarize_crf_result(result: dict) -> dict: "avg_tci": result.get("avg_TCI"), "avg_duration": result.get("avg_duration"), "occ_reduction_percent": result.get("occ_reduction_from_FOAK_to_NOAK_percent"), + "years_to_noak": years_by_plant.get(noak), + "years_to_orderbook": years_by_plant.get(num_orders), "show_levers": False, "plants": _records(plants[available]), - "timeline": _timeline_records(plants, float(result.get("effective_staggering_ratio", result.get("staggering_ratio", 0.75)))), + "timeline": timeline, "waterfall": _records(waterfall_to_dataframe(result)), } +def _write_crf_results_csv(result: dict, path: Path) -> pd.DataFrame: + plants = results_to_dataframe(result) + path.parent.mkdir(parents=True, exist_ok=True) + plants.to_csv(path, index=False) + return plants + + def run_workflow(payload: dict) -> dict: OUTPUT_DIR.mkdir(parents=True, exist_ok=True) name = _safe_name(payload.get("output_name", "accert_gui_run")) @@ -1922,6 +2233,8 @@ def run_workflow(payload: dict) -> dict: if iat["input_mode"] == "occ": result = run_occ_scenarios(config) summary = _summarize_occ_result(result, power_kwe) + if "base_case" not in response and result["scenario_results"]: + response["base_case"] = _base_case_from_iat_result(result["scenario_results"][0], power_kwe) for scenario in summary["scenarios"]: scenario_name = scenario.get("scenario", "") if scenario_name not in base_scenarios_added: @@ -1944,7 +2257,12 @@ def run_workflow(payload: dict) -> dict: }) else: result = run_adjustment(config) + if iat.get("_prepared_from_accert_csv") and "Converted ACCERT baseline" not in files: + files["Converted ACCERT baseline"] = _file_info(Path(iat["_prepared_input_csv"])) + notes.append("The raw ACCERT account CSV was converted to CRF/IAT baseline format before IAT was run.") summary = _summarize_iat_result(result, power_kwe) + if "base_case" not in response: + response["base_case"] = _base_case_from_iat_result(result, power_kwe) comparison_chart.append({ "country": "Base case", "scenario": "Original OCC", @@ -1971,7 +2289,14 @@ def run_workflow(payload: dict) -> dict: if workflow == "crf_only": dashboard = OUTPUT_DIR / f"{name}_crf_dashboard.png" - result = run_one_scenario(_crf_config(payload), _levers(payload)) + results_csv = OUTPUT_DIR / f"{name}_crf_results.csv" + config = _crf_config(payload) + if payload["crf"].get("_prepared_from_accert_csv"): + files["Converted ACCERT baseline"] = _file_info(Path(payload["crf"]["_prepared_baseline_csv"])) + notes.append("The raw ACCERT account CSV was converted to CRF baseline format before CRF was run.") + response["base_case"] = _base_case_from_crf_config(config) + result = run_one_scenario(config, _levers(payload)) + _write_crf_results_csv(result, results_csv) save_dashboard( result, dashboard, @@ -1981,16 +2306,23 @@ def run_workflow(payload: dict) -> dict: response["crf"] = _summarize_crf_result(result) response["crf"]["show_levers"] = bool(payload["crf"].get("show_levers", True)) response["crf"]["dashboard_url"] = _file_info(dashboard)["url"] + files["CRF results CSV"] = _file_info(results_csv) files["CRF dashboard"] = _file_info(dashboard) return response if workflow == "iat_crf": iat_csv = OUTPUT_DIR / f"{name}_iat_adjusted_for_crf.csv" dashboard = OUTPUT_DIR / f"{name}_crf_dashboard.png" + results_csv = OUTPUT_DIR / f"{name}_crf_results.csv" iat_payload = json.loads(json.dumps(payload)) iat_payload["iat"]["input_mode"] = "csv" iat_result = run_adjustment(_iat_config(iat_payload, iat_csv)) + response["base_case"] = _base_case_from_iat_result(iat_result, _reactor_power_kwe(payload)) + if iat_payload["iat"].get("_prepared_from_accert_csv"): + files["Converted ACCERT baseline"] = _file_info(Path(iat_payload["iat"]["_prepared_input_csv"])) + notes.append("The raw ACCERT account CSV was converted to CRF/IAT baseline format before IAT and CRF were run.") crf_result = run_one_scenario(_crf_config(payload, baseline_csv=iat_csv), _levers(payload)) + _write_crf_results_csv(crf_result, results_csv) _crf_countries = payload["iat"].get("countries") or [payload["iat"].get("country", "")] save_dashboard( crf_result, @@ -2003,6 +2335,7 @@ def run_workflow(payload: dict) -> dict: response["crf"]["show_levers"] = bool(payload["crf"].get("show_levers", True)) response["crf"]["dashboard_url"] = _file_info(dashboard)["url"] files["IAT adjusted CSV"] = _file_info(iat_csv) + files["CRF results CSV"] = _file_info(results_csv) files["CRF dashboard"] = _file_info(dashboard) notes.append("The original CRF baseline CSV was not modified; CRF used the IAT output through baseline_csv.") return response diff --git a/tutorial/necost/AP1000.ACCERT.NECost.son b/tutorial/necost/AP1000.ACCERT.NECost.son new file mode 100644 index 0000000..22d27a3 --- /dev/null +++ b/tutorial/necost/AP1000.ACCERT.NECost.son @@ -0,0 +1,93 @@ +necost { + % AP1000 ACCERT-to-NEcost coupled example + % + % This tutorial first uses the ACCERT AP1000 OCC post-process result as the + % NEcost reactor capital cost input. The fuel-cycle structure is a + % once-through UOX PWR case, and the ACCERT output supplies the island OCC + % instead of relying only on NEcost's internal capital-cost distribution. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 1000 + + accert_coupling { + accert_input = "../accert/AP1000.son" + capital_cost_id = "capital_cost" + occ_metric = "total_OCC" + uncertainty_fraction = 0.0 + } + + fuel_cycles { + cycle(AP1000_ACCERT) { + % Single NE-COST island, so the LCAE weight is 100%. + % fleet_capacity is the physical electric capacity in MWe: + % 6800 MWt * 32.8529% efficiency = about 2234 MWe. + reactor(AP1000) { + fleet_capacity = 2234 + energy_fraction = 1 + } + } + } + + reactors { + reactor(AP1000) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 6.8E9 net_thermal_efficiency = 32.8529 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(UOX) { heavy_metal_mass = 176.46 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + distribution { type = triangular low = 7000 high = 7000 nominal = 7000 } + } + } + + om_costs { + item(OM_per_year) { cost_type = fixed distribution { type = triangular low = 58 high = 84 nominal = 70 } } + item(OM_per_MWh) { cost_type = variable distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } } + } + + fuel_costs { + item(cost_U) { cost_value = 110 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = triangular low = 70 high = 120 nominal = 100 } } + item(cost_fuel_fab) { cost_value = 350 lead_time = 0.5 distribution { type = triangular low = 200 high = 500 nominal = 350 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = triangular low = 6 high = 18 nominal = 12 } } + item(cost_deconv) { cost_value = 6 lead_time = 2 distribution { type = triangular low = 4 high = 8 nominal = 6 } } + item(cost_DU_disposal) { cost_value = 4 lead_time = 2 distribution { type = triangular low = 2 high = 22 nominal = 4 } } + } + + fuels { + fuel(UOX) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.01 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + conversion { loss_fraction = 0.01 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG01.OT01A.son b/tutorial/necost/EG01.OT01A.son new file mode 100644 index 0000000..a0c5eb0 --- /dev/null +++ b/tutorial/necost/EG01.OT01A.son @@ -0,0 +1,88 @@ +necost { + % EG01/OT01A - Commercial PWR UOX once through + % NE-COST input preparer: Francesco Ganda (INL) Technical Reviewer: Kent Williams (Consultant) + % + % Fuel cycle option description: + % This is the PWR once-through reference case used as a basis for + % comparison with other fuel-cycle options. Low-enriched uranium oxide + % fuel, enriched to 4.2% U-235 with 3-batch management, is irradiated once + % in a standard PWR and then sent to geologic disposal. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG01) { + % Single NE-COST island, so the LCAE weight is 100%. + % fleet_capacity is the physical electric capacity in MWe: + % 3000 MWt reference thermal power * 33% efficiency = 990 MWe. + reactor(PWR_UOX) { + fleet_capacity = 990 + energy_fraction = 1 + } + } + } + + reactors { + reactor(PWR_UOX) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3E9 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(UOX) { heavy_metal_mass = 88.23 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { cost_type = fixed distribution { type = triangular low = 58 high = 84 nominal = 70 } } + item(OM_per_MWh) { cost_type = variable distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } } + } + + fuel_costs { + item(cost_U) { cost_value = 110 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = triangular low = 70 high = 120 nominal = 100 } } + item(cost_fuel_fab) { cost_value = 350 lead_time = 0.5 distribution { type = triangular low = 200 high = 500 nominal = 350 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = triangular low = 6 high = 18 nominal = 12 } } + item(cost_deconv) { cost_value = 6 lead_time = 2 distribution { type = triangular low = 4 high = 8 nominal = 6 } } + item(cost_DU_disposal) { cost_value = 4 lead_time = 2 distribution { type = triangular low = 2 high = 22 nominal = 4 } } + } + + fuels { + fuel(UOX) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.01 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + conversion { loss_fraction = 0.01 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG02.OT01B.son b/tutorial/necost/EG02.OT01B.son new file mode 100644 index 0000000..561c80d --- /dev/null +++ b/tutorial/necost/EG02.OT01B.son @@ -0,0 +1,99 @@ +necost { + % EG02/OT01B - HTGR (graphite-moderated, He-cooled) with LEU fuel + % NE-COST input preparer: Tom Wood (PNNL) Technical Reviewer: Kent Williams (Consultant) + % + % Fuel cycle option description: + % This is a once-through High Temperature Gas Reactor case using + % TRISO-coated LEU fuel enriched to 15.5% U-235. The single island uses + % LEU, irradiates it once in the HTGR, and sends spent nuclear fuel to + % geologic disposal. The report notes the high HTGR thermal efficiency + % and high energy generation per unit heavy metal. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG02_OT01B) { + % Single NE-COST island, so the LCAE weight is 100%. + % fleet_capacity is the physical electric capacity in MWe: + % 350 MWt reference thermal power * 50% efficiency = 175 MWe. + reactor(HTGR_LEU) { + fleet_capacity = 175 + energy_fraction = 1 + } + } + } + + reactors { + reactor(HTGR_LEU) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 350E6 net_thermal_efficiency = 50 } + capital_costs { scaling_factor(capital_cost_htgr) = 1 } + om_costs { + scaling_factor(OM_per_year_htgr) = 1 + scaling_factor(OM_per_MWh_htgr) = 1 + } + fuel_reloads { + quantity(HTGR_LEU_FUEL) { heavy_metal_mass = 5.19 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost_htgr) { + cost_type = s_curve + expenditure_time = 5 + distribution { type = triangular low = 2500 high = 8000 nominal = 5000 } + } + } + + om_costs { + item(OM_per_year_htgr) { + cost_type = fixed + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh_htgr) { + cost_type = variable + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { cost_value = 110 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = uniform low = 70 high = 120 nominal = 100 } } + item(cost_fuel_fab) { cost_value = 10000 lead_time = 2 distribution { type = triangular low = 3000 high = 27000 nominal = 10000 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = uniform low = 6 high = 18 nominal = 12 } } + item(cost_deconv) { cost_value = 6 lead_time = 2 distribution { type = triangular low = 4 high = 8 nominal = 6 } } + item(cost_SNF_cond) { cost_value = 100 lead_time = 0 distribution { type = triangular low = 50 high = 130 nominal = 100 } } + item(cost_geologic_disposal) { cost_value = 550 lead_time = 0 distribution { type = triangular low = 265 high = 801 nominal = 550 } } + item(cost_DU_disposal) { cost_value = 4 lead_time = 1 distribution { type = triangular low = 2 high = 22 nominal = 4 } } + } + + fuels { + fuel(HTGR_LEU_FUEL) { + avg_discharge_burnup = 120 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + % Report line 50 is zero conversion loss; the schema requires + % a positive loss_fraction, so use a negligible positive value. + conversion { loss_fraction = 1E-12 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 15.5 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG03.OT01C.son b/tutorial/necost/EG03.OT01C.son new file mode 100644 index 0000000..de41f04 --- /dev/null +++ b/tutorial/necost/EG03.OT01C.son @@ -0,0 +1,174 @@ +necost { + % EG03/OT01/C - Once Through Heavy Water Reactor with Natural Uranium + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Mark Weimar (PNNL) + % Technical Reviewer: Ed Hoffman (ANL) + % In fuel cycle option EG03/OT01C (Figure 13) Once Through Heavy Water Reactor with Natural Uranium, naturally enriched uranium oxide fuel in a standard 37-element CANDU fuel assembly is irradiated in an Enhanced CANDU 6 (EC6) HWR, with on-power refueling, with an average fuel discharge burnup of 7.5 GWd/MTIHM. The DF (spent fuel) is stored on-site in a spent fuel pool until it is cool enough to send to a permanent disposal facility. + % This option is modeled using a single NE-COST island. + % Report LCAE at 3% discount rate: mean 46.7 mills/kWh, std 4.1 mills/kWh. + % Report LCAE at 5% discount rate: mean 57.4 mills/kWh, std 5.7 mills/kWh. + % Report LCAE at 10% discount rate: mean 93.1 mills/kWh, std 11.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG03) { + reactor(EG03) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG03) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.084e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG03_FUEL) { heavy_metal_mass = 88.4 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3900 + distribution { type = triangular low = 2200 high = 5600 nominal = 3900 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 200 + lead_time = 2 + distribution { type = triangular low = 115 high = 300 nominal = 200 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + } + + fuels { + fuel(EG03_FUEL) { + avg_discharge_burnup = 7.5 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG04.OT02.son b/tutorial/necost/EG04.OT02.son new file mode 100644 index 0000000..f0ce968 --- /dev/null +++ b/tutorial/necost/EG04.OT02.son @@ -0,0 +1,174 @@ +necost { + % EG04/OT02 - Breed and Burn SFR without separation + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Mark Weimar (PNNL) + % Technical Reviewer: Ed Hoffman (ANL) + % Fuel cycle option EG04/OT02 (Figure 15) Breed and Burn SFR without separation uses natural or depleted uranium to produce electricity. In the equlibrium state natural or depleted uranium is used to replace spent fuel which is cooled on-site and then sent to a geologic repository. + % This option is modeled using a single NE-COST island. + % Report LCAE at 3% discount rate: mean 33.7 mills/kWh, std 4.9 mills/kWh. + % Report LCAE at 5% discount rate: mean 45.8 mills/kWh, std 7.5 mills/kWh. + % Report LCAE at 10% discount rate: mean 86.4 mills/kWh, std 16.2 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG04) { + reactor(EG04) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG04) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG04_FUEL) { heavy_metal_mass = 177.5 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 450 + lead_time = 2 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + } + + fuels { + fuel(EG04_FUEL) { + avg_discharge_burnup = 276.6 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG05.OT03.son b/tutorial/necost/EG05.OT03.son new file mode 100644 index 0000000..64bd72d --- /dev/null +++ b/tutorial/necost/EG05.OT03.son @@ -0,0 +1,174 @@ +necost { + % EG05/OT03 - High-Conversion HTGR (graphite-moderated, He-cooled) with LEU and Th fuel + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (Consultant) + % Fuel cycle option EG05/OT03 (Figure 18) High-Conversion HTGR (graphite-moderated, He-cooled) with LEU and Th fuel is an HTGR with Th homogeneously mixed with Uin compacts with 19.9% enriched uranium. The reference design is the General Atomic MHTGR. + % This option is modeled using a single NE-COST island. The presence of Th adds a complication to the calculation. The total HM mass is that of uranium and of thorium in the fuel compacts. For the purpose of the calculation of the front end costs, Th is considered as an added cost during fabrication, in the proportion of 41% of total HM [Ref 1], such that U/Th=1.46. However, the HM is assumed to be that of the uranium only for the cost of ore, milling, U3O8 to UF6 conversion and enrichment. Since the 19.9% enriched U is 59% of the HM, the specific costs (i.e. in $/kgHM) of uranium ore, of conversion, of enrichment and of depleted uranium de-conversion and disposal are reduced to 59% of the nominal value. In this way, the total costs in $ are correctly computed and normalized (per kg of total HM) for the enriched uranium purchase part of the front-end costs. Fabrication costs are not reduced: in this way it is assumed that the fabrication cost per unit of fuel volume, with or without thorium, is at the reference value. On top of the standard cost of fabrication, the added cost of thorium purchase is included in the front-end fuel cycle cost calculation. + % Report LCAE at 3% discount rate: mean 55.2 mills/kWh, std 7.4 mills/kWh. + % Report LCAE at 5% discount rate: mean 70.0 mills/kWh, std 9.9 mills/kWh. + % Report LCAE at 10% discount rate: mean 118.9 mills/kWh, std 19.5 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG05) { + reactor(EG05) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG05) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.5e+08 net_thermal_efficiency = 50 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG05_FUEL) { heavy_metal_mass = 3.5 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 5000 + distribution { type = triangular low = 2500 high = 8000 nominal = 5000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 65 + lead_time = 2 + distribution { type = triangular low = 38 high = 136 nominal = 65 } + } + item(cost_SWU) { + cost_value = 59 + lead_time = 2 + distribution { type = uniform low = 41 high = 71 nominal = 59 } + } + item(cost_fuel_fab) { + cost_value = 10000 + lead_time = 2 + distribution { type = triangular low = 3000 high = 27000 nominal = 10000 } + } + item(cost_conv) { + cost_value = 7 + lead_time = 2 + distribution { type = uniform low = 4 high = 11 nominal = 7 } + } + item(cost_deconv) { + cost_value = 4 + distribution { type = triangular low = 2 high = 5 nominal = 4 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 2 + distribution { type = triangular low = 1 high = 13 nominal = 2 } + } + } + + fuels { + fuel(EG05_FUEL) { + avg_discharge_burnup = 97 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 19.9 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG06.OT04.son b/tutorial/necost/EG06.OT04.son new file mode 100644 index 0000000..eb248a3 --- /dev/null +++ b/tutorial/necost/EG06.OT04.son @@ -0,0 +1,174 @@ +necost { + % EG06/OT04 Thermal Spectrum FFH(Th) to DF + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG06/OT04 (Figure 20) Thermal Spectrum FFH(Th) to DF is composed of a single stage: An inertial confinement fusion (ICF) system is used to produce thermal power and DT neutrons. A subcritical blanket surrounding the ICF system contains Thorium (Th) molten salt fuel, breeding and fissioning 233U at equilibrium, moderated by graphite to produce a thermal neutron spectrum. + % This option is modeled using a single NE-COST island. The fuel procurement costs are computed using front-end path 1. The discharged fuel is than prepared for shipment and disposal and then disposed. + % Report LCAE at 3% discount rate: mean 91.1 mills/kWh, std 13.3 mills/kWh. + % Report LCAE at 5% discount rate: mean 115.1 mills/kWh, std 16.8 mills/kWh. + % Report LCAE at 10% discount rate: mean 195.8 mills/kWh, std 31.2 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG06) { + reactor(EG06) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG06) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1.94e+09 net_thermal_efficiency = 45.79 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG06_FUEL) { heavy_metal_mass = 19.9 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 9371 + distribution { type = triangular low = 4783 high = 13689 nominal = 9371 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 311 + distribution { type = triangular low = 129 high = 516 nominal = 311 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 6 + distribution { type = triangular low = 3 high = 8.1 nominal = 6 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 0 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 0 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG06_FUEL) { + avg_discharge_burnup = 117.71 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG07.OT05.son b/tutorial/necost/EG07.OT05.son new file mode 100644 index 0000000..aac0837 --- /dev/null +++ b/tutorial/necost/EG07.OT05.son @@ -0,0 +1,174 @@ +necost { + % EG07/OT05 - ADS(NU) to DF + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (Consultant) + % In fuel cycle option EG07/OT05 (Figure 22) ADS(NU) to DF, NU metal fuel is irradiated in a blanket zone of an ADS. In this case the blanket is assumed to be similar in design to the breed and burn SFR blanket. The target material is liquid lead, which acts as both the spallation neutron source and the heat removal medium. Initially a total of 200 MW of accelerator power is required to start building up the inventory of fissile material in the blanket volumes. However, after reaching equilibrium operations, the cycle duration is 2 years and the fuel assemblies are shuffled three times, thus the fuel assemblies reside in the blanket for a total of 6 years. Following exposure the fuel assemblies are discharged and stored as waste. The average thermal power for all four blankets is 1000 MW, or 250 MW per blanket unit. The average total accelerator beam power (for four units) is 61.5 MW, which requires approximately a total of 123 MW (assuming a 50% efficiency) of wall power, and the minimum keff reached during the equilibrium cycles is 0.8626, requiring a beam power of 138 MW. Assuming a power conversion system thermal efficiency of 40% the average electrical power generated by the blanket assemblies is 400 MW. Thus, subtracting the average power required for the accelerator leaves a net electrical output of 277 MW. + % This option is modeled using a single NE-COST island. It is noted that particular care has to be taken in this system in assessing an accurate specific capital cost for the accelerator and for the subcritical system. The methodology to identify those values is explained below. + % Report LCAE at 3% discount rate: mean 556.4 mills/kWh, std 169.6 mills/kWh. + % Report LCAE at 5% discount rate: mean 827.6 mills/kWh, std 260.9 mills/kWh. + % Report LCAE at 10% discount rate: mean 1742.8 mills/kWh, std 568.6 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG07) { + reactor(EG07) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG07) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 27.7 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG07_FUEL) { heavy_metal_mass = 40 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 95881 + distribution { type = triangular low = 21699 high = 189721 nominal = 95881 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 376 + distribution { type = triangular low = 146 high = 644 nominal = 376 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 7.6 + distribution { type = triangular low = 3.8 high = 10.3 nominal = 7.6 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 450 + lead_time = 2 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG07_FUEL) { + avg_discharge_burnup = 55 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG08.OT06.son b/tutorial/necost/EG08.OT06.son new file mode 100644 index 0000000..a9aa413 --- /dev/null +++ b/tutorial/necost/EG08.OT06.son @@ -0,0 +1,174 @@ +necost { + % EG08/OT06 - Subcritical Thorium Blanket Driven by an ICF Neutron Source + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % In fuel cycle option EG08/OT06 Subcritical Thorium Blanket Driven by an ICF Neutron Source, thorium fuel is irradiated in a blanket zone of a FFH. A continuous 500 MW of fusion power is available to start building up the inventory of fissile material in the blanket volumes and then continue driving the subcritical reactor. Over an approximately 2 year period the fission power goes from very small to the nominal power level of 1,500 MW of fission power. Following exposure the fuel assemblies are discharged and stored as waste. At nominal conditions, a total of 2,000 MWth power is produced and produces a gross output of 860 MWe. The fusion system consumes an average of 175 MWe and the balance of plant consumes an average of 20 MWe. This leaves an average net electrical generation of 665 MWe. + % The case is modeled using a single NE-COST island. The effect of the 2-year build-up phase on the LCAE was neglected, since (1) the focus of the Screening and Evaluation is on systems operating in equilibrium conditions; (2) the exact profile of the ramp-up is not available; (3) the NE-COST code is set-up to treat equilibrium conditions, while this involves a transient; (4) the fuel resides in the core for 53.2 EFPY; therefore neglecting the build-up phase would at the most account for an under-estimation of the calculated LCAE by 4%: this has to be viewed in the context of a high uncertainty in the input cost parameter, especially the capital investment, for this low TRL option. + % Report LCAE at 3% discount rate: mean 72.2 mills/kWh, std 8.8 mills/kWh. + % Report LCAE at 5% discount rate: mean 95.1 mills/kWh, std 12.1 mills/kWh. + % Report LCAE at 10% discount rate: mean 172.3 mills/kWh, std 24.6 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG08) { + reactor(EG08) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG08) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1.5e+09 net_thermal_efficiency = 44.33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG08_FUEL) { heavy_metal_mass = 40 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 8915 + distribution { type = triangular low = 4986 high = 12137 nominal = 8915 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 140 + distribution { type = triangular low = 85 high = 269 nominal = 140 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 9.1 + distribution { type = triangular low = 4.6 high = 12.4 nominal = 9.1 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = uniform low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 450 + lead_time = 0 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 0 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG08_FUEL) { + avg_discharge_burnup = 729 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG09.SL01.son b/tutorial/necost/EG09.SL01.son new file mode 100644 index 0000000..98ba7f5 --- /dev/null +++ b/tutorial/necost/EG09.SL01.son @@ -0,0 +1,174 @@ +necost { + % EG09/SL01 SFR Breed and Burn with Fuel Reconditioning + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Olga Livingston (PNNL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG09/SL01 (Figure 26) SFR Breed and Burn with Fuel Reconditioning is continuously fed with depleted uranium (DU) and refueled with its own reconditioned fuel. The Sodium-cooled Fast Reactor (SFR) is operated with eight batch fuel management scheme with fissile conversion ratio (CR) larger than unity. At the end of a cycle, one out the eight fuel batches is discarded when the accumulated average burnup is ~500 GWd/MT. The discarded fuel is replaced with a DU fuel. Three out of the eight fuel batches are reconditioned individually with the melt-refining process, in order to overcome the cladding radiation damage limit. Recovered fuel contains Transuranics (TRU), uranium (RU) and partial fission products (FPs). Non-recovered actinides and FPs are stored before being sent to a disposal site. The discarded fuel is stored and then sent to a disposal site. + % This option is modeled using a single NE-COST island. The natural uranium purchase and fabrication of fresh, depleted uranium fuel, is modeled through the use of front-end path 1, with line 52 set to 1 to indicate that at each reloading one batch is refabricated (fresh fuel fabrication cost on line 42) with natural uranium (line 33 at 0.711). This model makes simultaneous use of 2 back end routes: 100% of back-end route 2 for disposal of 1 batch at each recycle (line 76 set to 1) and 300% of back end route 5 for the re-conditioning of 3 batches (line 79 set to 3) at each fuel shuffle. + % Report LCAE at 3% discount rate: mean 38.9 mills/kWh, std 5.1 mills/kWh. + % Report LCAE at 5% discount rate: mean 52.1 mills/kWh, std 7.7 mills/kWh. + % Report LCAE at 10% discount rate: mean 97.4 mills/kWh, std 16.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG09) { + reactor(EG09) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG09) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG09_FUEL) { heavy_metal_mass = 141.5 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 450 + lead_time = 2 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = uniform low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 7.9 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 7.9 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 7.9 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 7.9 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 7.9 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 7.9 + distribution { type = triangular low = 3000 high = 9000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 7.9 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + } + + fuels { + fuel(EG09_FUEL) { + avg_discharge_burnup = 492 + num_batches = 8 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG10.SL02.son b/tutorial/necost/EG10.SL02.son new file mode 100644 index 0000000..e6afc9c --- /dev/null +++ b/tutorial/necost/EG10.SL02.son @@ -0,0 +1,185 @@ +necost { + % EG10/SL02 - MSR-Th with limited recycle + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (Consultant) + % In fuel cycle option EG10/SL02 (Figure 28) MSR-Th with limited recycle, a molten salt reactor (MSR) is used to irradiate fuel salt containing thorium (Th). The fuel salt undergoes continuous online treatment to remove various fission products (FP) that would otherwise not stay in solution and also undergoes continuous chemical separations processing to further remove fission products. Unlike full recycle cases, protactinium (Pa) is not separated from the fuel salt nor is it stored with the fuel salt outside the reactor to allow it to decay without parasitic neutron capture reactions; it is immediately returned to the reactor. Transuranics (TRU) undergo limited recycling; separated TRU and FP are stored and sent for disposal. Recovered Th and uranium (RU) are returned to Stage 1 along with remaining FP and TRU. Some fraction of the total fuel salt may be discarded, adding Th and other actinides to a waste stream. + % This option is modeled using a single NE-COST island. Because of the characteristics of this fuel cycle option, a few changes had to be made to the standard NE-COST modeling techniques. One important consideration is that the fuel in this core does not reach a burnup in the traditional sense, and similarly does not have a cycle length. This requires a change to the standard approach of NE-COST, which uses the burnup and the core HM mass and specific power density to obtain a cycle length, which is normally then used by NE-COST as a sort of internal clock to time all the fuel cycle expenditures. However, it is still possible to use NE-COST to calculate the correct LCAE, by using the NE-COST input fields of burnup and number of batches cleverly to obtain an equivalent annual cycle and HM mass flow, which allows the code to compute the correct annual purchases of fuel cycle services (i.e. the purchases of make-up Th and disposal of HLW) as fraction of this arbitrary annual mass flow. Any value for the annual HM can be chosen, as long as the Th and HLW disposal masses match the correct annual value in [Ref 1]. The unusual modeling approaches adopted for this option are explained further in the bullet points in the next paragraph. + % Report LCAE at 3% discount rate: mean 71.4 mills/kWh, std 11.8 mills/kWh. + % Report LCAE at 5% discount rate: mean 86.7 mills/kWh, std 14.2 mills/kWh. + % Report LCAE at 10% discount rate: mean 138.3 mills/kWh, std 24.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG10) { + reactor(EG10) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG10) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.25e+09 net_thermal_efficiency = 44.4 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG10_FUEL) { heavy_metal_mass = 70.98 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 5800 + distribution { type = triangular low = 2500 high = 9300 nominal = 5800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 284 + distribution { type = triangular low = 110 high = 486 nominal = 284 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 4 + distribution { type = triangular low = 2 high = 5.4 nominal = 4 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 0 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 0 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 0 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG10_FUEL) { + avg_discharge_burnup = 10.4 + num_batches = 1 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0132. + } + } +} diff --git a/tutorial/necost/EG11.SL03.son b/tutorial/necost/EG11.SL03.son new file mode 100644 index 0000000..c0d5f3a --- /dev/null +++ b/tutorial/necost/EG11.SL03.son @@ -0,0 +1,184 @@ +necost { + % EG11/SL03 - Thorium Breed and Burn with LEU Support in SFR with Partial Separation + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Ed Hoffman (ANL) + % In fuel cycle option EG11/SL03 (Figure 30) Thorium Breed and Burn with LEU Support in SFR with Partial Separation a Breed and Burn (B&B) SFR is continuously fed with metal thorium (232Th) and some LEU metal fuel. The thorium-based fuel is reconditioned three times and stays in the core for seven cycles. It is then discharged and sent to a repository. The LEU fuel resides in the core for a single cycle and is sent to a repository. The core is made of 8 fuel batches (7 are thorium based, one is LEU) and operates with a fissile conversion ratio (CR) slightly below unity. One fuel batch is made of 19.9% LEU, which is replaced every cycle. The seven other batches are made of U3/Th fuel. + % Report LCAE at 3% discount rate: mean 45.6 mills/kWh, std 5.0 mills/kWh. + % Report LCAE at 5% discount rate: mean 59.3 mills/kWh, std 7.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 105.3 mills/kWh, std 16.5 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG11) { + reactor(EG11) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG11) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG11_FUEL) { heavy_metal_mass = 84.7 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 825 + lead_time = 2 + distribution { type = triangular low = 475 high = 1180 nominal = 825 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_MOX_fab) { + cost_value = 450 + lead_time = 2 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 0 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 3000 high = 9000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG11_FUEL) { + avg_discharge_burnup = 380 + num_batches = 7 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 19.9 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.053. + } + } +} diff --git a/tutorial/necost/EG12.ML01.son b/tutorial/necost/EG12.ML01.son new file mode 100644 index 0000000..8189c70 --- /dev/null +++ b/tutorial/necost/EG12.ML01.son @@ -0,0 +1,238 @@ +necost { + % EG12/ML01 - Recover Pu from HWR(NU) and limited recycle in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG12/ML01 (Figure 32) Recover Pu from HWR(NU) and limited recycle in PWR is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The recycle of the used HWR fuel results in excess RU. The fractional energy generated by the UOX HWR type reactor on island 1 is 77.4%, while the remaining 22.6% is generated by the PWR of island 2. Those fractions are obtained such that all the Pu separated from the spent fuel in island 1 is utilized in the PWR reactor in island 2. + % Report LCAE at 3% discount rate: mean 54.6 mills/kWh, std 3.2 mills/kWh. + % Report LCAE at 5% discount rate: mean 66.1 mills/kWh, std 4.5 mills/kWh. + % Report LCAE at 10% discount rate: mean 103.9 mills/kWh, std 9.4 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG12) { + reactor(EG12_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.774 + } + reactor(EG12_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.226 + } + } + } + + reactors { + reactor(EG12_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.08e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG12_ISLAND_1_FUEL) { heavy_metal_mass = 86.83 fuel_fraction = 1 } + } + } + reactor(EG12_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.41e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG12_ISLAND_2_FUEL) { heavy_metal_mass = 88.1 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3900 + distribution { type = triangular low = 2200 high = 5600 nominal = 3900 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 200 + lead_time = 2 + distribution { type = triangular low = 115 high = 300 nominal = 200 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG12_ISLAND_1_FUEL) { + avg_discharge_burnup = 7.5 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0177. + } + fuel(EG12_ISLAND_2_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0. + } + } +} diff --git a/tutorial/necost/EG13.ML02.son b/tutorial/necost/EG13.ML02.son new file mode 100644 index 0000000..c8cdd5f --- /dev/null +++ b/tutorial/necost/EG13.ML02.son @@ -0,0 +1,131 @@ +necost { + % EG13/ML02 - Recover Pu from PWR and limited recycle in PWR (PWR-UOX to PWR-MOX) + % NE-COST input preparer: Francesco Ganda (INL) Technical Reviewer: Kent Williams (Consultant) + % + % Fuel cycle option description: + % This two-stage case uses standard UOX PWRs in island 1 and full MOX PWRs + % in island 2. Pu and U co-extracted from the UOX spent fuel are fabricated + % into MOX fuel; DU, surplus RU, minor actinides, and fission products are + % sent to geologic disposal. The reprocessing and MOX fuel fabrication + % facilities are modeled in island 2. + % Report LCAE at 3% discount rate: mean 42.4 mills/kWh, std 3.7 mills/kWh. + % Report LCAE at 5% discount rate: mean 53.6 mills/kWh, std 5.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 91.0 mills/kWh, std 11.9 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG13) { + % The report gives the LCAE weights as fractional energy: + % 90.2% from the UOX LWR island and 9.8% from the MOX PWR island. + % fleet_capacity is omitted because the report weighting is not + % based on physical MWe in this two-island case. + reactor(PWR_UOX) { + energy_fraction = 0.902 + } + reactor(PWR_MOX) { + energy_fraction = 0.098 + } + } + } + + reactors { + reactor(PWR_UOX) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3E9 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost_uox) = 1 } + om_costs { + scaling_factor(OM_per_year_uox) = 1 + scaling_factor(OM_per_MWh_uox) = 1 + } + fuel_reloads { + quantity(UOX) { heavy_metal_mass = 89 fuel_fraction = 1 } + } + } + + reactor(PWR_MOX) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3E9 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost_mox) = 1 } + om_costs { + scaling_factor(OM_per_year_mox) = 1 + scaling_factor(OM_per_MWh_mox) = 1 + } + fuel_reloads { + quantity(MOX) { heavy_metal_mass = 89 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost_uox) { cost_type = s_curve expenditure_time = 5 distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } } + item(capital_cost_mox) { cost_type = s_curve expenditure_time = 5 distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } } + } + + om_costs { + item(OM_per_year_uox) { cost_type = fixed distribution { type = triangular low = 58 high = 84 nominal = 70 } } + item(OM_per_MWh_uox) { cost_type = variable distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } } + item(OM_per_year_mox) { cost_type = fixed distribution { type = triangular low = 58 high = 84 nominal = 70 } } + item(OM_per_MWh_mox) { cost_type = variable distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } } + } + + fuel_costs { + item(cost_U) { cost_value = 110 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = triangular low = 70 high = 120 nominal = 100 } } + item(cost_fuel_fab) { cost_value = 350 lead_time = 0.5 distribution { type = triangular low = 200 high = 500 nominal = 350 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = triangular low = 6 high = 18 nominal = 12 } } + item(cost_deconv) { cost_value = 6 lead_time = 2 distribution { type = triangular low = 4 high = 8 nominal = 6 } } + item(cost_DU_disposal) { cost_value = 4 lead_time = 2 distribution { type = triangular low = 2 high = 22 nominal = 4 } } + item(cost_mox_fab) { cost_value = 3500 lead_time = 0.5 distribution { type = triangular low = 1750 high = 6000 nominal = 3500 } } + } + + fuels { + fuel(UOX) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.01 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + conversion { loss_fraction = 0.01 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.21 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + + fuel(MOX) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.01 costs = [cost_mox_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + conversion { loss_fraction = 0.01 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG14.ML03.son b/tutorial/necost/EG14.ML03.son new file mode 100644 index 0000000..079d6c1 --- /dev/null +++ b/tutorial/necost/EG14.ML03.son @@ -0,0 +1,226 @@ +necost { + % EG14/ML03 - Breed Pu in SFR and use it in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG14/ML03 (Figure 42) Breed Pu in SFR and use it in PWR is a two stage system in which excess Pu generated in a SFR with a conversion ratio of 1.5 is utilized in a single-pass PWR MOX reactor. Makeup NU is required in both stages. All the FP, MA and reprocessing losses from the SFR are geologically disposed-of as HLW. The discharged Pu-MOX fuel from the PWR is sent to a geologic disposal site as SNF. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the SFR type reactors on island 1 is 70.6%, while the remaining 29.4% is generated by the MOX PWRs of island 2. + % Report LCAE at 3% discount rate: mean 40.7 mills/kWh, std 3.9 mills/kWh. + % Report LCAE at 5% discount rate: mean 52.4 mills/kWh, std 5.8 mills/kWh. + % Report LCAE at 10% discount rate: mean 91.6 mills/kWh, std 12.3 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG14) { + reactor(EG14_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.706 + } + reactor(EG14_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.294 + } + } + } + + reactors { + reactor(EG14_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG14_ISLAND_1_FUEL) { heavy_metal_mass = 62.5 fuel_fraction = 1 } + } + } + reactor(EG14_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG14_ISLAND_2_FUEL) { heavy_metal_mass = 84.75 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 2 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 2397 + lead_time = 0 + distribution { type = triangular low = 1508 high = 3525 nominal = 2397 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG14_ISLAND_1_FUEL) { + avg_discharge_burnup = 46.21 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + fuel(EG14_ISLAND_2_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.042, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.053. + } + } +} diff --git a/tutorial/necost/EG15.ML04.son b/tutorial/necost/EG15.ML04.son new file mode 100644 index 0000000..8cbd742 --- /dev/null +++ b/tutorial/necost/EG15.ML04.son @@ -0,0 +1,227 @@ +necost { + % EG15/ML04 - Recover Pu from PWR and Recycle in SFR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (consultant) + % Fuel cycle option EG15/ML04 (Figure 47) Recover Pu from PWR and Recycle in SFR is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The reprocessing facility is modeled in island 2, which contains also the FR metallic fuel re-fabrication plant, the disposal of FP, MA and surplus RU separated at the reprocessing facility, and the disposal of SNF discharged after irradiation in island 2. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as the weighting determinant. The fractional energy generated by the UOX LWR type reactors on island 1 is 88.1%, while the remaining 11.9% is generated by the SFRs of island 2. + % Report LCAE at 3% discount rate: mean 40.8 mills/kWh, std 3.4 mills/kWh. + % Report LCAE at 5% discount rate: mean 52.2 mills/kWh, std 5.1 mills/kWh. + % Report LCAE at 10% discount rate: mean 90.1 mills/kWh, std 10.8 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG15) { + reactor(EG15_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.881 + } + reactor(EG15_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.119 + } + } + } + + reactors { + reactor(EG15_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG15_ISLAND_1_FUEL) { heavy_metal_mass = 88.2 fuel_fraction = 1 } + } + } + reactor(EG15_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG15_ISLAND_2_FUEL) { heavy_metal_mass = 10.5 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 265 high = 801 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG15_ISLAND_1_FUEL) { + avg_discharge_burnup = 51 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.3 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + fuel(EG15_ISLAND_2_FUEL) { + avg_discharge_burnup = 127 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.258, MA_new=0, Pu_prev=0.012, MA_prev=0, FP_prev=0.063. + } + } +} diff --git a/tutorial/necost/EG16.ML05.son b/tutorial/necost/EG16.ML05.son new file mode 100644 index 0000000..40e3a84 --- /dev/null +++ b/tutorial/necost/EG16.ML05.son @@ -0,0 +1,238 @@ +necost { + % EG16/ML05 - Recover Pu from PWR and burn in ADS + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (consultant) + % Fuel cycle option EG16 / MC05 (Figure 52) Recover Pu from PWR and burn in ADS is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The reprocessing facility for UOX spent fuel is in island 1, using front-end path 2. Therefore, in island 1, both front end paths available in NE-COST are utilized. Island 2 contains the ADS, and the facility to fabricate new ADS IMF, Pu-containing fuel, modeled using front-end path 2. No make-up uranium is required in island 2. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the UOX LWR type reactors on island 1 is 92.56%, while the remaining 7.44% is generated by the ADS of island 2. + % Report LCAE at 3% discount rate: mean 63.3 mills/kWh, std 7.9 mills/kWh. + % Report LCAE at 5% discount rate: mean 85.1 mills/kWh, std 15.9 mills/kWh. + % Report LCAE at 10% discount rate: mean 158.2 mills/kWh, std 26.5 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG16) { + reactor(EG16_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.9256 + } + reactor(EG16_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.0744 + } + } + } + + reactors { + reactor(EG16_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG16_ISLAND_1_FUEL) { heavy_metal_mass = 88.8 fuel_fraction = 1 } + } + } + reactor(EG16_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 8.4e+08 net_thermal_efficiency = 29.9 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG16_ISLAND_2_FUEL) { heavy_metal_mass = 2.02 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 0 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 0 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG16_ISLAND_1_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.012, MA_new=0, Pu_prev=0.012, MA_prev=0, FP_prev=0.062. + } + fuel(EG16_ISLAND_2_FUEL) { + avg_discharge_burnup = 388 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.053. + } + } +} diff --git a/tutorial/necost/EG17.ML06.son b/tutorial/necost/EG17.ML06.son new file mode 100644 index 0000000..2767323 --- /dev/null +++ b/tutorial/necost/EG17.ML06.son @@ -0,0 +1,227 @@ +necost { + % EG17/ML06 - Recover Pu from PWR and limited recycle in PWR with Thorium + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (consultant) + % Fuel cycle option EG17/ML06 (Figure 57) Recover Pu from PWR and limited recycle in PWR with Thorium is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The reprocessing facility is modeled in island 2, which contains also the Pu-Th fuel fabrication plant, the facilities for the disposal of FP, MA and surplus RU separated at the reprocessing facility, and the site for disposal of Pu-Th MOX-SNF discharged after irradiation in island 2. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the UOX LWR type reactors on island 1 is 90.49%, while the remaining 9.51% is generated by the Pu-Th MOX PWRs of island 2. Those fractions are obtained such that all the Pu separated from the UOX spent fuel in island 1 is utilized in the PWR reactors in island 2. + % Report LCAE at 3% discount rate: mean 41.4 mills/kWh, std 3.7 mills/kWh. + % Report LCAE at 5% discount rate: mean 52.6 mills/kWh, std 5.5 mills/kWh. + % Report LCAE at 10% discount rate: mean 90.0 mills/kWh, std 11.9 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG17) { + reactor(EG17_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.9049 + } + reactor(EG17_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.0951 + } + } + } + + reactors { + reactor(EG17_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG17_ISLAND_1_FUEL) { heavy_metal_mass = 80.2 fuel_fraction = 1 } + } + } + reactor(EG17_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG17_ISLAND_2_FUEL) { heavy_metal_mass = 76.9 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 0 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 5000 high = 5000 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 6500 high = 6500 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG17_ISLAND_1_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.001 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + fuel(EG17_ISLAND_2_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.111, MA_new=0, Pu_prev=0.012, MA_prev=0, FP_prev=0.063. + } + } +} diff --git a/tutorial/necost/EG18.ML07.son b/tutorial/necost/EG18.ML07.son new file mode 100644 index 0000000..a721fca --- /dev/null +++ b/tutorial/necost/EG18.ML07.son @@ -0,0 +1,227 @@ +necost { + % EG18/ML07 - Recover U3 from PWR and limited recycle in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG18/ML07 (Figure 62) Recover U3 from PWR and limited recycle in PWR is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fuel for the first stage PWR is produced from a mixture of natural and recycled thorium blended with 20% LEU and after irradiation all the used fuel is recycled with 100% of the Th (recycled back to stage 1 PWR) and RU (recycled to stage 2 PWR) being reused and the TRU and FPs sent to waste. The RU recycled from stage one is blended with natural Th and fabricated into RU/Th fuel that is irradiated in the stage 2 PWR and then stored and disposed without further recycle. The fractional energy generated by the first stage PWR type reactor on island 1 is 68.7%, while the remaining 31.3% is generated by the second stage LWR of island 2. Those fractions are obtained such that all the RU separated from the discharged fuel in island 1 is utilized in the PWR in island 2. + % Report LCAE at 3% discount rate: mean 49.9 mills/kWh, std 4.5 mills/kWh. + % Report LCAE at 5% discount rate: mean 61.6 mills/kWh, std 6.8 mills/kWh. + % Report LCAE at 10% discount rate: mean 100.4 mills/kWh, std 12.3 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG18) { + reactor(EG18_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.687 + } + reactor(EG18_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.313 + } + } + } + + reactors { + reactor(EG18_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.4e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG18_ISLAND_1_FUEL) { heavy_metal_mass = 83.3 fuel_fraction = 1 } + } + } + reactor(EG18_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.4e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG18_ISLAND_2_FUEL) { heavy_metal_mass = 85.4 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 30.6 + lead_time = 2 + distribution { type = triangular low = 18.1 high = 64.1 nominal = 30.6 } + } + item(cost_SWU) { + cost_value = 27.9 + lead_time = 2 + distribution { type = uniform low = 19.5 high = 64.1 nominal = 27.9 } + } + item(cost_fuel_fab) { + cost_value = 4880 + lead_time = 2 + distribution { type = triangular low = 2097 high = 7661 nominal = 4880 } + } + item(cost_conv) { + cost_value = 3.3 + lead_time = 2 + distribution { type = uniform low = 1.7 high = 21.7 nominal = 3.3 } + } + item(cost_deconv) { + cost_value = 1.7 + distribution { type = triangular low = 1.1 high = 2.2 nominal = 1.7 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1206 + lead_time = 2 + distribution { type = triangular low = 793 high = 1206 nominal = 1206 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 1.11 + distribution { type = triangular low = 0.56 high = 6.13 nominal = 1.11 } + } + } + + fuels { + fuel(EG18_ISLAND_1_FUEL) { + avg_discharge_burnup = 59.6 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 20 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0758. + } + fuel(EG18_ISLAND_2_FUEL) { + avg_discharge_burnup = 58 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG19.SC01.son b/tutorial/necost/EG19.SC01.son new file mode 100644 index 0000000..b397126 --- /dev/null +++ b/tutorial/necost/EG19.SC01.son @@ -0,0 +1,185 @@ +necost { + % EG19/SC01 Continuous Pu recycle in HWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (Consultant) + % In fuel cycle option EG19/SC01 (Figure 67) Continuous Pu recycle in HWR the entire amount of discharged Pu (minus reprocessing and re-fabrication losses) is recycled in the HWR core, with equal parts of RU and NU as makeup materials. The Burnup is 7.5 to 8 GWD/MT range. The un-used RU and fission products (FP) are conditioned and disposed of in the geologic repository. + % This option is modeled using a single NE-COST island with continuous recycling, using the reprocessing front-end route 2, which can conveniently account separately for reprocessing and re-fabrication as separate costs. The FP and RU disposal costs are also accounted for through front-end route 2, while no cost is included through the back-end costing functionality of NE-COST (i.e. input line 75 set to 1 and input lines 76 to 79 set to 0) + % Report LCAE at 3% discount rate: mean 114.1 mills/kWh, std 15.3 mills/kWh. + % Report LCAE at 5% discount rate: mean 128.6 mills/kWh, std 16.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 174.8 mills/kWh, std 21.2 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG19) { + reactor(EG19) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG19) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.08e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG19_FUEL) { heavy_metal_mass = 86.83 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3900 + distribution { type = triangular low = 2200 high = 5600 nominal = 3900 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 0 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 3500 + lead_time = 2 + distribution { type = triangular low = 1750 high = 6000 nominal = 3500 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG19_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.0092, MA_new=0, Pu_prev=0.0092, MA_prev=0, FP_prev=0. + } + } +} diff --git a/tutorial/necost/EG20.SC02.son b/tutorial/necost/EG20.SC02.son new file mode 100644 index 0000000..ed34ea5 --- /dev/null +++ b/tutorial/necost/EG20.SC02.son @@ -0,0 +1,185 @@ +necost { + % EG20/SC02 Continuous TRU recycle in HWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (Consultant) + % In fuel cycle option EG20/SC02 (Figure 69) Continuous TRU recycle in HWR the entire amount of discharged Pu and MA (minus reprocessing and re-fabrication losses) is recycled in the HWR core, with equal parts of RU and NU as makeup materials. The Burnup is 7.5 GWD/MT. The un-used RU and fission products (FP) are conditioned and permanently disposed-of. + % This option is modeled using a single NE-COST island with continuous recycling, using the aqueous reprocessing front-end route 2 (line 53 set to 1), which can account separately for reprocessing and re-fabrication as separate costs. The FP and RU disposal costs are also accounted for through front-end route 2, while no cost is included through the back-end costing functionality of NE-COST (i.e. input line 75 set to 1 and input lines 76 to 79 set to 0). + % Report LCAE at 3% discount rate: mean 143.9 mills/kWh, std 23.9 mills/kWh. + % Report LCAE at 5% discount rate: mean 159.9 mills/kWh, std 26.8 mills/kWh. + % Report LCAE at 10% discount rate: mean 210.1 mills/kWh, std 35.8 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG20) { + reactor(EG20) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG20) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.08e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG20_FUEL) { heavy_metal_mass = 86.8 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3900 + distribution { type = triangular low = 2200 high = 5600 nominal = 3900 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 0 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1120 + lead_time = 2 + distribution { type = triangular low = 903 high = 1339 nominal = 1120 } + } + item(cost_MOX_fab) { + cost_value = 4880 + lead_time = 2 + distribution { type = triangular low = 2097 high = 7661 nominal = 4880 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG20_FUEL) { + avg_discharge_burnup = 7.6 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=4, Pu_new=0.0114, MA_new=0.0021, Pu_prev=0.0114, MA_prev=0.0021, FP_prev=0.0179. + } + } +} diff --git a/tutorial/necost/EG21.SC03.son b/tutorial/necost/EG21.SC03.son new file mode 100644 index 0000000..0a09baf --- /dev/null +++ b/tutorial/necost/EG21.SC03.son @@ -0,0 +1,184 @@ +necost { + % EG21/SC03: Continuous Pu recycle in PWR (CORAIL-Pu) + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG21/SC03 (Figure 71) Continuous Pu recycle in PWR (CORAIL-Pu) is a single state continuous recycle of Pu (MA sent to waste) in a pressurized water reactor using a single heterogeneous fuel assembly that consists of a mix of standard enriched uranium fuel pins and mixed oxide fuel pins. + % Report LCAE at 3% discount rate: mean 45.0 mills/kWh, std 3.8 mills/kWh. + % Report LCAE at 5% discount rate: mean 56.5 mills/kWh, std 5.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 94.4 mills/kWh, std 11.9 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG21) { + reactor(EG21) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG21) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG21_FUEL) { heavy_metal_mass = 89 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 2 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3500 + lead_time = 2 + distribution { type = triangular low = 1750 high = 6000 nominal = 3500 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG21_FUEL) { + avg_discharge_burnup = 45 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.62 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.053. + } + } +} diff --git a/tutorial/necost/EG22.SC04.son b/tutorial/necost/EG22.SC04.son new file mode 100644 index 0000000..9d7441b --- /dev/null +++ b/tutorial/necost/EG22.SC04.son @@ -0,0 +1,184 @@ +necost { + % EG22/SC04: Continuous TRU recycle in PWR (CORAIL-TRU) + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG22/SC04 (Figure 73) Continuous TRU recycle in PWR (CORAIL-TRU) is a single state continuous recycle of TRU in a pressurized water reactor using a single heterogeneous fuel assembly that consists of a mix of standard enriched uranium fuel pins and mixed oxide fuel pins. + % Report LCAE at 3% discount rate: mean 46.3 mills/kWh, std 3.9 mills/kWh. + % Report LCAE at 5% discount rate: mean 57.8 mills/kWh, std 5.7 mills/kWh. + % Report LCAE at 10% discount rate: mean 96.0 mills/kWh, std 11.9 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG22) { + reactor(EG22) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG22) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG22_FUEL) { heavy_metal_mass = 89 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 2 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 4880 + lead_time = 2 + distribution { type = triangular low = 2097 high = 7661 nominal = 4880 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 1120 + lead_time = 2 + distribution { type = triangular low = 903 high = 1339 nominal = 1120 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG22_FUEL) { + avg_discharge_burnup = 45 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 5.12 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.053. + } + } +} diff --git a/tutorial/necost/EG23.SC05.son b/tutorial/necost/EG23.SC05.son new file mode 100644 index 0000000..5129200 --- /dev/null +++ b/tutorial/necost/EG23.SC05.son @@ -0,0 +1,135 @@ +necost { + % EG23/SC05 - Continuous Pu Recycle in SFR + % NE-COST input preparer: Ed Hoffman (ANL) Technical Reviewer: Francesco Ganda (INL) + % + % Fuel cycle option description: + % This two-island SFR case continuously recycles Pu and U in a metal-fueled + % sodium-cooled fast reactor with driver and blanket regions. Driver fuel is + % sent to separations after irradiation, recovered U/Pu is recycled into new + % driver fuel, and recovered blanket Pu plus a fraction of recovered U are + % used as makeup for driver and blanket fuel. MA, FP, and separation losses + % are disposed as HLW. + % Report LCAE at 3% discount rate: mean 40.0 mills/kWh, std 5.1 mills/kWh. + % Report LCAE at 5% discount rate: mean 51.9 mills/kWh, std 7.7 mills/kWh. + % Report LCAE at 10% discount rate: mean 91.5 mills/kWh, std 16.6 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG23) { + % EG23 has two fuel-cycle islands. The report derives the energy + % weights from 80% driver / 20% blanket mass fractions, giving + % 95.4% driver energy and 4.6% blanket energy. + reactor(FR_DRIVER) { + fleet_capacity = 381.6 + energy_fraction = 0.954 + mass_fraction = 0.8 + } + reactor(FR_BLANKET) { + fleet_capacity = 18.28 + energy_fraction = 0.046 + mass_fraction = 0.2 + } + } + } + + reactors { + reactor(FR_DRIVER) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 9.54E8 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost_driver) = 1 } + om_costs { + scaling_factor(OM_per_year_driver) = 1 + scaling_factor(OM_per_MWh_driver) = 1 + } + fuel_reloads { + quantity(DRIVER) { heavy_metal_mass = 15.4 fuel_fraction = 1 } + } + } + + reactor(FR_BLANKET) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 4.57E7 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost_blanket) = 1 } + om_costs { + scaling_factor(OM_per_year_blanket) = 1 + scaling_factor(OM_per_MWh_blanket) = 1 + } + fuel_reloads { + quantity(BLANKET) { heavy_metal_mass = 3.8 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost_driver) { cost_value = 4333 cost_type = s_curve expenditure_time = 5 distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } } + item(capital_cost_blanket) { cost_value = 4333 cost_type = s_curve expenditure_time = 5 distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } } + } + + om_costs { + item(OM_per_year_driver) { cost_type = fixed distribution { type = triangular low = 60 high = 85 nominal = 70 } } + item(OM_per_MWh_driver) { cost_type = variable distribution { type = triangular low = 1 high = 2.7 nominal = 2 } } + item(OM_per_year_blanket) { cost_type = fixed distribution { type = triangular low = 60 high = 85 nominal = 70 } } + item(OM_per_MWh_blanket) { cost_type = variable distribution { type = triangular low = 1 high = 2.7 nominal = 2 } } + } + + fuel_costs { + item(cost_U) { cost_value = 135 lead_time = 2 distribution { type = triangular low = 65 high = 230 nominal = 110 } } + item(cost_SWU) { cost_value = 100 lead_time = 2 distribution { type = triangular low = 70 high = 120 nominal = 100 } } + item(cost_driver_fab) { cost_value = 3750 lead_time = 0.5 distribution { type = triangular low = 1750 high = 6000 nominal = 3500 } } + item(cost_blanket_fab) { cost_value = 443 lead_time = 0.5 distribution { type = triangular low = 250 high = 630 nominal = 450 } } + item(cost_conv) { cost_value = 12 lead_time = 2 distribution { type = triangular low = 6 high = 18 nominal = 12 } } + item(cost_deconv) { cost_value = 6 lead_time = 2 distribution { type = triangular low = 4 high = 8 nominal = 6 } } + item(cost_DU_disposal) { cost_value = 4 lead_time = 2 distribution { type = triangular low = 2 high = 22 nominal = 4 } } + } + + fuels { + fuel(DRIVER) { + avg_discharge_burnup = 81.5 + num_batches = 4.3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.01 costs = [cost_driver_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + conversion { loss_fraction = 0.01 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + + fuel(BLANKET) { + avg_discharge_burnup = 23.5 + num_batches = 1.1 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.01 costs = [cost_blanket_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + EU { + conversion { loss_fraction = 0.01 costs = [cost_conv cost_deconv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG24.SC06.son b/tutorial/necost/EG24.SC06.son new file mode 100644 index 0000000..857741f --- /dev/null +++ b/tutorial/necost/EG24.SC06.son @@ -0,0 +1,173 @@ +necost { + % EG24/SC06: Continuous TRU recycle in SFR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG24/SC06 (Figure 80) SFR for continuous recycling is a single state continuous recycle of all transuranics in a sodium-cooled metal-fueled breeder fast reactor. + % Report LCAE at 3% discount rate: mean 43.2 mills/kWh, std 5.3 mills/kWh. + % Report LCAE at 5% discount rate: mean 55.5 mills/kWh, std 7.9 mills/kWh. + % Report LCAE at 10% discount rate: mean 96.5 mills/kWh, std 16.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG24) { + reactor(EG24) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG24) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG24_FUEL) { heavy_metal_mass = 16.7 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3000 + distribution { type = triangular low = 2200 high = 7000 nominal = 3000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 2 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 2 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 3000 high = 9000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG24_FUEL) { + avg_discharge_burnup = 73 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + } +} diff --git a/tutorial/necost/EG25.SC07.son b/tutorial/necost/EG25.SC07.son new file mode 100644 index 0000000..93e7ba5 --- /dev/null +++ b/tutorial/necost/EG25.SC07.son @@ -0,0 +1,238 @@ +necost { + % EG25/SC07 - U-233 Recycle in PWR with LEU Support + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Ed Hoffman (ANL) + % Fuel cycle option EG25/SC07 (Figure 82) U-233 Recycle in PWR with LEU Support is composed of one stage PWR, with a seed (driver) and blanket in a single assembly concept. The seed is burnt till 47 GWD/T and then is sent to a separation process. The separated TRU is used to fabricate a new seed fuel with an addition of LEU make-up. The separated U and FP are sent to disposal. The blanket fuel accumulates a burnup of 26.4 GWD/T and is sent to a separation process. The recovered U and Th materials then are used to make a new blanket fuel. The separated TRU and FP are sent to disposal. + % This option is modeled using 2 NE-COST islands, one for the seed and one for the blanket. The reprocessing facilities are included in each island using front-end path 2. Therefore, in island 1, both front end paths available in NE-COST are utilized, one to reprocess the TRU and one for the LEU calculations. All the FP and losses from separation in island 1 are disposed as HLW. All the RU is disposed. All the DU is de-converted and disposed. In island 2 the reprocessing is in on front-end path 2; all the separated RU is recycled in the newly fabricated fuel, and TRU, FP and losses are disposed as HLW. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the seed is 48%, while the remaining 52% is generated by the blanket of island 2. The fractional energy is calculated from the annual energy production of each island, as calculated by NE-COST. + % Report LCAE at 3% discount rate: mean 68.6 mills/kWh, std 6.0 mills/kWh. + % Report LCAE at 5% discount rate: mean 83.8 mills/kWh, std 8.1 mills/kWh. + % Report LCAE at 10% discount rate: mean 133.9 mills/kWh, std 15.6 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG25) { + reactor(EG25_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.48 + } + reactor(EG25_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.52 + } + } + } + + reactors { + reactor(EG25_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1.44e+09 net_thermal_efficiency = 30 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG25_ISLAND_1_FUEL) { heavy_metal_mass = 28.1 fuel_fraction = 1 } + } + } + reactor(EG25_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1.56e+09 net_thermal_efficiency = 30 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG25_ISLAND_2_FUEL) { heavy_metal_mass = 56.1 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 3000 high = 9000 nominal = 6000 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 0 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 0 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG25_ISLAND_1_FUEL) { + avg_discharge_burnup = 49 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.9 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=4, Pu_new=0, MA_new=0.04, Pu_prev=0, MA_prev=0.002, FP_prev=0. + } + fuel(EG25_ISLAND_2_FUEL) { + avg_discharge_burnup = 25 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0. + } + } +} diff --git a/tutorial/necost/EG26.SC08.son b/tutorial/necost/EG26.SC08.son new file mode 100644 index 0000000..b95ecb0 --- /dev/null +++ b/tutorial/necost/EG26.SC08.son @@ -0,0 +1,185 @@ +necost { + % EG26/SC08 - U-233 recycle in MSR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (Consultant) + % In fuel cycle option EG26/SC08 (Figure 87) U-233 recycle in MSR, a molten salt reactor (MSR) is used to irradiate fuel salt containing thorium (Th). Fuel salt containing thorium (Th) is irradiated in a molten salt reactor (MSR), using enriched uranium for initial startup. The fuel salt undergoes continuous online treatment to remove various fission products (FP) that would otherwise not stay in solution and also undergoes continuous chemical separations processing to further remove fission products. Protactinium (Pa) is allowed to decay outside of the reactor to optimize U-233 production. Recovered Th, uranium (RU), and transuranics (TRU) are returned to Stage 1 along with remnants of fission products (FP). Separated FP are stored and then sent for disposal. + % This option is modeled using a single NE-COST island. Because of the characteristics of this fuel cycle option, a few changes had to be made to the standard NE-COST modeling techniques. One important consideration is that the fuel in this core does not reach a burnup in the traditional sense, and similarly does not have a cycle length. This requires a change to the standard approach of NE-COST, which uses the burnup and the core HM mass and specific power density to obtain a cycle length, which is normally then used by NE-COST as a sort of internal clock to time all the fuel cycle expenditures. However, it is still possible to use NE-COST to calculate the correct LCAE, by using the NE-COST input fields of burnup and number of batches cleverly to obtain an equivalent annual cycle and HM mass flow, which allows the code to compute the correct annual purchases of fuel cycle services (i.e. the purchases of make-up Th and disposal of HLW) as fraction of this arbitrary annual mass flow. Any value for the annual HM can be chosen, as long as the Th and HLW disposal masses match the correct annual value in [Ref 1]. The unusual modeling approaches adopted for this option are explained further in the bullet points in the next paragraph. + % Report LCAE at 3% discount rate: mean 71.3 mills/kWh, std 11.8 mills/kWh. + % Report LCAE at 5% discount rate: mean 86.7 mills/kWh, std 14.2 mills/kWh. + % Report LCAE at 10% discount rate: mean 138.3 mills/kWh, std 24.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG26) { + reactor(EG26) { + % Single NE-COST island, so the LCAE weight is 100%. + energy_fraction = 1 + } + } + } + + reactors { + reactor(EG26) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.25e+09 net_thermal_efficiency = 44.4 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG26_FUEL) { heavy_metal_mass = 70.98 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 5800 + distribution { type = triangular low = 2500 high = 9300 nominal = 5800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 284 + distribution { type = triangular low = 110 high = 486 nominal = 284 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 4 + distribution { type = triangular low = 2 high = 5.4 nominal = 4 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 0 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 0 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 0 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 0 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG26_FUEL) { + avg_discharge_burnup = 10.4 + num_batches = 1 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0131. + } + } +} diff --git a/tutorial/necost/EG27.SC09.son b/tutorial/necost/EG27.SC09.son new file mode 100644 index 0000000..2accfae --- /dev/null +++ b/tutorial/necost/EG27.SC09.son @@ -0,0 +1,289 @@ +necost { + % EG27/SC09 - U-233 Recycle in SFR with LEU Support + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG27/SC09 (Figure 89) U-233 Recycle in SFR with LEU Support is a one stage FR system, with 2 drivers and 1 blanket. One driver is LEU/RU: 19% LEU is fed as make-up, while the irradiated fuel is reprocessed to recover RU, which is re-enriched to 19% and re-fabricated together with the LEU make-up fuel. The blanket is composed of pure Th at load. Discharged blanket fuel is reprocessed, and the Th is utilized, together with natural Th for make-up, to re-fabricate new blanket fuel. The uranium recovered from the blanket (primarily 233U) is utilized in the second driver. The second driver is LEU/RU/3U, in which 233U from the blanket is mixed with recovered uranium from the reprocessing of the second blanket fuel and with makeup 19% enriched LEU. This fuel is also reprocessed to recover the uranium. The TRU and FP from the reprocessing of both drivers and of the blanket are geologically disposed of. + % The LCAE of the system is the weighted average of the LCAE of the three individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the LEU/RU driver on island 1 is 58.4%, by the Th blanket on island 2 is 2%, while the remaining 39.6% is generated by the LEU/RU/233U driver of island 3. + % Report LCAE at 3% discount rate: mean 59.5 mills/kWh, std 6.0 mills/kWh. + % Report LCAE at 5% discount rate: mean 72.3 mills/kWh, std 8.4 mills/kWh. + % Report LCAE at 10% discount rate: mean 114.6 mills/kWh, std 17.0 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG27) { + reactor(EG27_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.584 + } + reactor(EG27_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.02 + } + reactor(EG27_ISLAND_3) { + % Report LCAE energy weight for this island. + energy_fraction = 0.396 + } + } + } + + reactors { + reactor(EG27_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 5.78e+08 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG27_ISLAND_1_FUEL) { heavy_metal_mass = 15.1 fuel_fraction = 1 } + } + } + reactor(EG27_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 19300000 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG27_ISLAND_2_FUEL) { heavy_metal_mass = 13.58 fuel_fraction = 1 } + } + } + reactor(EG27_ISLAND_3) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.92e+08 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG27_ISLAND_3_FUEL) { heavy_metal_mass = 10.49 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 450 + lead_time = 2 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 14 + lead_time = 2 + distribution { type = triangular low = 6 high = 20 nominal = 14 } + } + item(cost_nrchmt_rec) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG27_ISLAND_1_FUEL) { + avg_discharge_burnup = 37.8 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 19 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 14.8 product = 19 tails = 0.25 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=2, Pu_new=0.012, MA_new=0.012, Pu_prev=0.012, MA_prev=0.012, FP_prev=0.051. + } + fuel(EG27_ISLAND_2_FUEL) { + avg_discharge_burnup = 1.4 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.051. + } + fuel(EG27_ISLAND_3_FUEL) { + avg_discharge_burnup = 36.8 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 19 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.051. + } + } +} diff --git a/tutorial/necost/EG28.SC10.son b/tutorial/necost/EG28.SC10.son new file mode 100644 index 0000000..553ac69 --- /dev/null +++ b/tutorial/necost/EG28.SC10.son @@ -0,0 +1,238 @@ +necost { + % EG28/SC10: Thorium fueled SFR for continuous recycling + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG28/SC10 (Figure 94) Thorium fueled SFR for continuous recycling is a single state continuous recycle of all trans-thorium (TRTh) and thorium in a sodium-cooled metal-fueled breeder fast reactor, with driver and blanket fuel. The driver (including axial blanket) is burnt till 63 GWD/T and then is sent to a separation process. The separated Th/TrTh is used to fabricate a new driver fuel with an addition of Th/TrTh from the blanket. The FP are sent to disposal. The blanket fuel accumulates a burnup of 4 GWD/T and is sent to a separation process. The recovered TrTh along with a fraction of the Th is used as makeup for the driver fuel and the remaining Th along with and natural Th material is used to make a new blanket fuel. The separated FP are sent to disposal. + % This option is modeled using 2 NE-COST islands, one for the driver and one for the blanket. The reprocessing facilities are included in each island using front-end path 2. All the FP and losses from separations are disposed as HLW, all the TrTh and Th minus losses are recycled. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the driver is 87.8%, while the remaining 12.2% is generated by the blanket of island 2. The fractional energy is calculated from the average power density of the driver and blanket (burnup divided by fuel residence time) and core average power density which are provided in the system datasheet [Ref 1] by determining the fraction of mass (32% driver / 68% blanket) and the resulting average power distribution (880 MWt driver / 120 MWt blanket). + % Report LCAE at 3% discount rate: mean 64.4 mills/kWh, std 7.5 mills/kWh. + % Report LCAE at 5% discount rate: mean 77.2 mills/kWh, std 9.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 119.6 mills/kWh, std 17.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG28) { + reactor(EG28_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.878 + } + reactor(EG28_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.122 + } + } + } + + reactors { + reactor(EG28_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 8.8e+08 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG28_ISLAND_1_FUEL) { heavy_metal_mass = 13 fuel_fraction = 1 } + } + } + reactor(EG28_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1.2e+08 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG28_ISLAND_2_FUEL) { heavy_metal_mass = 28 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1232 + lead_time = 2 + distribution { type = triangular low = 948 high = 1473 nominal = 1232 } + } + item(cost_MOX_fab) { + cost_value = 4880 + lead_time = 2 + distribution { type = triangular low = 2097 high = 7661 nominal = 4880 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG28_ISLAND_1_FUEL) { + avg_discharge_burnup = 63 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.0936, MA_new=0.04, Pu_prev=0.0936, MA_prev=0.002, FP_prev=0.0331. + } + fuel(EG28_ISLAND_2_FUEL) { + avg_discharge_burnup = 4 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.0936, MA_new=0.04, Pu_prev=0.0936, MA_prev=0.002, FP_prev=0.0331. + } + } +} diff --git a/tutorial/necost/EG29.MC01.son b/tutorial/necost/EG29.MC01.son new file mode 100644 index 0000000..f6c3562 --- /dev/null +++ b/tutorial/necost/EG29.MC01.son @@ -0,0 +1,226 @@ +necost { + % EG29/MC01 - Breed Pu in SFR and use extra Pu in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG29/MC01 (Figure 99) Breed Pu in SFR and use it in PWR is a two stage system in which excess Pu generated in a SFR with a conversion ratio of 1.5 is utilized in a single-pass PWR MOX reactor. Makeup NU is required in in stage 1 only. All the FP, MA and reprocessing losses from the SFR are geologically disposed-of as HLW. All the FP and MA are sent to a disposal site. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the SFR type reactors on island 1 is 61.1%, while the remaining 38.9% is generated by the MOX PWRs of island 2. + % Report LCAE at 3% discount rate: mean 41.9 mills/kWh, std 3.6 mills/kWh. + % Report LCAE at 5% discount rate: mean 53.7 mills/kWh, std 5.3 mills/kWh. + % Report LCAE at 10% discount rate: mean 92.8 mills/kWh, std 11.3 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG29) { + reactor(EG29_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.611 + } + reactor(EG29_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.389 + } + } + } + + reactors { + reactor(EG29_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG29_ISLAND_1_FUEL) { heavy_metal_mass = 62.5 fuel_fraction = 1 } + } + } + reactor(EG29_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG29_ISLAND_2_FUEL) { heavy_metal_mass = 84.7 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 0 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 2 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 2397 + lead_time = 0 + distribution { type = triangular low = 1508 high = 3525 nominal = 2397 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG29_ISLAND_1_FUEL) { + avg_discharge_burnup = 46.21 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + fuel(EG29_ISLAND_2_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.069. + } + } +} diff --git a/tutorial/necost/EG30.MC02.son b/tutorial/necost/EG30.MC02.son new file mode 100644 index 0000000..82b02fe --- /dev/null +++ b/tutorial/necost/EG30.MC02.son @@ -0,0 +1,226 @@ +necost { + % EG30/MC02 - Breed TRU in SFR and use extra Pu in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG30/MC02 (Figure 104) Breed TRU in SFR and use extra Pu in PWR is a two stage system in which excess Pu generated in a SFR with a conversion ratio of 1.1 is utilized in a closed-cycle PWR MOX reactor. The MA from both stage 1 and 2 are recycled in stage 1. A relatively small amount of makeup NU is required in both stages, and no Pu or MA are disposed (except for processing losses). The FP and the reprocessing losses are sent to a disposal site. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the SFR type reactors on island 1 is 87%, while the remaining 13% is generated by the MOX PWRs of island 2. + % Report LCAE at 3% discount rate: mean 41.3 mills/kWh, std 4.5 mills/kWh. + % Report LCAE at 5% discount rate: mean 53.1 mills/kWh, std 6.8 mills/kWh. + % Report LCAE at 10% discount rate: mean 92.7 mills/kWh, std 14.5 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG30) { + reactor(EG30_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.87 + } + reactor(EG30_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.13 + } + } + } + + reactors { + reactor(EG30_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG30_ISLAND_1_FUEL) { heavy_metal_mass = 27 fuel_fraction = 1 } + } + } + reactor(EG30_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG30_ISLAND_2_FUEL) { heavy_metal_mass = 88.23 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 80 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 2 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3200 + lead_time = 2 + distribution { type = triangular low = 3200 high = 3200 nominal = 3200 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 3794 + lead_time = 2 + distribution { type = triangular low = 2080 high = 5499 nominal = 3794 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG30_ISLAND_1_FUEL) { + avg_discharge_burnup = 65.2 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + } + fuel(EG30_ISLAND_2_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.103, MA_new=0.0003, Pu_prev=0.103, MA_prev=0.002, FP_prev=0.06. + } + } +} diff --git a/tutorial/necost/EG31.MC03.son b/tutorial/necost/EG31.MC03.son new file mode 100644 index 0000000..a1804de --- /dev/null +++ b/tutorial/necost/EG31.MC03.son @@ -0,0 +1,238 @@ +necost { + % EG31/MC03 - Burn recovered Pu from PWR in SFR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG31/MC03 (Figure 109) Burn recovered Pu from PWR in SFR is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The used fuel from both the PWR and SFR is all recycled with both recycling Pu and RU with the MA and FPs sent to waste. The recycle of the used PWR fuel results in excess RU that is also sent to waste as well as the DU from the enrichment process. The fractional energy generated by the UOX LWR type reactor on island 1 is 68.2%, while the remaining 31.8% is generated by the SFR of island 2. Those fractions are obtained such that all the Pu separated from the spent fuel in island 1 is utilized in the SFR reactor in island 2. + % Report LCAE at 3% discount rate: mean 39.8 mills/kWh, std 3.0 mills/kWh. + % Report LCAE at 5% discount rate: mean 51.2 mills/kWh, std 4.5 mills/kWh. + % Report LCAE at 10% discount rate: mean 89.2 mills/kWh, std 9.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG31) { + reactor(EG31_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.682 + } + reactor(EG31_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.318 + } + } + } + + reactors { + reactor(EG31_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG31_ISLAND_1_FUEL) { heavy_metal_mass = 88.2 fuel_fraction = 1 } + } + } + reactor(EG31_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG31_ISLAND_2_FUEL) { heavy_metal_mass = 12.2 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG31_ISLAND_1_FUEL) { + avg_discharge_burnup = 51 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.21 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0634. + } + fuel(EG31_ISLAND_2_FUEL) { + avg_discharge_burnup = 169 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.2074. + } + } +} diff --git a/tutorial/necost/EG32.MC04.son b/tutorial/necost/EG32.MC04.son new file mode 100644 index 0000000..8c4e94c --- /dev/null +++ b/tutorial/necost/EG32.MC04.son @@ -0,0 +1,238 @@ +necost { + % EG32/MC04 - Burn recovered TRU from PWR in SFR (GNEP scenario) + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG32/MC04 (Figure 114) Burn recovered TRU from PWR in SFR (GNEP scenario) is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The TRU and RU separated from the used fuel of both the PWR and SFR is all recycled, while the FPs are sent to waste. The recycle of the used PWR fuel results in excess RU that is also sent to waste as well as the DU from the enrichment process. The fractional energy generated by the UOX LWR type reactor on island 1 is 62.02%, while the remaining 37.98% is generated by the SFR of island 2. Those fractions are obtained such that all the TRU separated from the spent fuel in island 1 is utilized in the SFR reactor in island 2. + % Report LCAE at 3% discount rate: mean 40.7 mills/kWh, std 3.0 mills/kWh. + % Report LCAE at 5% discount rate: mean 52.2 mills/kWh, std 4.5 mills/kWh. + % Report LCAE at 10% discount rate: mean 90.5 mills/kWh, std 9.7 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG32) { + reactor(EG32_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.6202 + } + reactor(EG32_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.3798 + } + } + } + + reactors { + reactor(EG32_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG32_ISLAND_1_FUEL) { heavy_metal_mass = 88.2 fuel_fraction = 1 } + } + } + reactor(EG32_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 1e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG32_ISLAND_2_FUEL) { heavy_metal_mass = 16.7 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1120 + lead_time = 2 + distribution { type = triangular low = 903 high = 1339 nominal = 1120 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG32_ISLAND_1_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.061. + } + fuel(EG32_ISLAND_2_FUEL) { + avg_discharge_burnup = 132 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.1524. + } + } +} diff --git a/tutorial/necost/EG33.MC05.son b/tutorial/necost/EG33.MC05.son new file mode 100644 index 0000000..7d112c3 --- /dev/null +++ b/tutorial/necost/EG33.MC05.son @@ -0,0 +1,289 @@ +necost { + % EG33/MC05 - Breed Pu in ADS and use extra Pu in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG33/MC05 (Figure 119) Breed Pu in ADS and use extra Pu in PWR is a two stage system, with an ADS with a fissile conversion ratio higher than 1.0 in stage 1, and a MOX PWR in stage 2. Excess Pu generated in the ADS is utilized in the closed cycle PWR MOX reactor, along with Pu and RU recovered from the PWR MOX reprocessed fuel. Makeup NU is required in both stages, and no Pu is disposed (except for processing losses). All the FP and MA are sent to a geologic disposal site. + % The LCAE of the system is the weighted average of the LCAE of the three individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the ADS driver on island 1 is 77.2%, by the ADS blanket on island 2 is 6.5%, while the remaining 16.3% is generated by the MOX PWRs of island 3. + % Report LCAE at 3% discount rate: mean 145.1 mills/kWh, std 27.2 mills/kWh. + % Report LCAE at 5% discount rate: mean 198.6 mills/kWh, std 40.8 mills/kWh. + % Report LCAE at 10% discount rate: mean 378.2 mills/kWh, std 87.4 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG33) { + reactor(EG33_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.772 + } + reactor(EG33_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.065 + } + reactor(EG33_ISLAND_3) { + % Report LCAE energy weight for this island. + energy_fraction = 0.163 + } + } + } + + reactors { + reactor(EG33_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 7.75e+08 net_thermal_efficiency = 34.5 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG33_ISLAND_1_FUEL) { heavy_metal_mass = 9.04 fuel_fraction = 1 } + } + } + reactor(EG33_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 65000000 net_thermal_efficiency = 34.5 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG33_ISLAND_2_FUEL) { heavy_metal_mass = 5.37 fuel_fraction = 1 } + } + } + reactor(EG33_ISLAND_3) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG33_ISLAND_3_FUEL) { heavy_metal_mass = 88.8 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 21834 + distribution { type = triangular low = 6514 high = 42031 nominal = 21834 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 284 + distribution { type = triangular low = 110 high = 486 nominal = 284 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 4 + distribution { type = triangular low = 2 high = 5.4 nominal = 4 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 3500 + lead_time = 2 + distribution { type = triangular low = 1750 high = 6000 nominal = 3500 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG33_ISLAND_1_FUEL) { + avg_discharge_burnup = 77.3 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.109, MA_new=0, Pu_prev=0.109, MA_prev=0, FP_prev=0. + } + fuel(EG33_ISLAND_2_FUEL) { + avg_discharge_burnup = 11.3 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.109, MA_new=0, Pu_prev=0.109, MA_prev=0, FP_prev=0. + } + fuel(EG33_ISLAND_3_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.102, MA_new=0, Pu_prev=0.102, MA_prev=0.002, FP_prev=0. + } + } +} diff --git a/tutorial/necost/EG34.MC06.son b/tutorial/necost/EG34.MC06.son new file mode 100644 index 0000000..096898b --- /dev/null +++ b/tutorial/necost/EG34.MC06.son @@ -0,0 +1,289 @@ +necost { + % EG34/MC06 - Breed TRU in ADS and use extra TRU in PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG34/MC06 (Figure 124) Breed TRU in ADS and use extra TRU in PWR is a two stage system, with an ADS with a fissile conversion ratio higher than 1.0 in stage 1, and a MOX PWR in stage 2. Excess TRU generated in the ADS is utilized in the closed cycle PWR MOX reactor, along with Pu and RU recovered from the PWR MOX reprocessed fuel. MA recovered in stage 1 are used to fabricate fuel for stage 1. Makeup NU is required in both stages, and no Pu is disposed (except for processing losses). All the FP are sent to a geologic disposal site. + % The LCAE of the system is the weighted average of the LCAE of the three individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the ADS driver on island 1 is 75.7%, by the ADS blanket on island 2 is 6.4%, while the remaining 17.9% is generated by the MOX PWRs of island 3. + % Report LCAE at 3% discount rate: mean 136.9 mills/kWh, std 24.1 mills/kWh. + % Report LCAE at 5% discount rate: mean 185.5 mills/kWh, std 35.9 mills/kWh. + % Report LCAE at 10% discount rate: mean 348.2 mills/kWh, std 76.8 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG34) { + reactor(EG34_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.757 + } + reactor(EG34_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.064 + } + reactor(EG34_ISLAND_3) { + % Report LCAE energy weight for this island. + energy_fraction = 0.179 + } + } + } + + reactors { + reactor(EG34_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 7.77e+08 net_thermal_efficiency = 34.8 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG34_ISLAND_1_FUEL) { heavy_metal_mass = 9.02 fuel_fraction = 1 } + } + } + reactor(EG34_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 66000000 net_thermal_efficiency = 34.8 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG34_ISLAND_2_FUEL) { heavy_metal_mass = 5.39 fuel_fraction = 1 } + } + } + reactor(EG34_ISLAND_3) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG34_ISLAND_3_FUEL) { heavy_metal_mass = 88.8 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 19945 + distribution { type = triangular low = 6124 high = 38267 nominal = 19945 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 284 + distribution { type = triangular low = 110 high = 486 nominal = 284 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 4 + distribution { type = triangular low = 2 high = 5.4 nominal = 4 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_fuel_fab) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_conv) { + cost_value = 0 + lead_time = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_deconv) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_SNF_cond) { + cost_value = 0 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_rprocsng) { + cost_value = 1120 + lead_time = 2 + distribution { type = triangular low = 903 high = 1339 nominal = 1120 } + } + item(cost_MOX_fab) { + cost_value = 4880 + lead_time = 2 + distribution { type = triangular low = 2097 high = 7661 nominal = 4880 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG34_ISLAND_1_FUEL) { + avg_discharge_burnup = 77.6 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.109, MA_new=0, Pu_prev=0.109, MA_prev=0, FP_prev=0. + } + fuel(EG34_ISLAND_2_FUEL) { + avg_discharge_burnup = 11 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.109, MA_new=0, Pu_prev=0.109, MA_prev=0, FP_prev=0. + } + fuel(EG34_ISLAND_3_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 0.711 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.102, MA_new=0, Pu_prev=0.102, MA_prev=0.002, FP_prev=0. + } + } +} diff --git a/tutorial/necost/EG35.MC07.son b/tutorial/necost/EG35.MC07.son new file mode 100644 index 0000000..5fea494 --- /dev/null +++ b/tutorial/necost/EG35.MC07.son @@ -0,0 +1,238 @@ +necost { + % EG35/MC07 - Burn recovered Pu from PWR in ADS + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (consultant) + % Fuel cycle option EG35/MC07 (Figure 129) Burn recovered Pu from PWR in ADS is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The reprocessing facility for UOX spent fuel is in island 1, using front-end path 2. Therefore, in island 1, both front end paths available in NE-COST are utilized. Island 2 contains the ADS, and the facility to reprocess the discharged ADS fuel and to re-fabricate new IMF. The reprocessing facility for ADS IMF spent fuel is modeled using front-end path 2. No make-up uranium is required in island 2. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the UOX LWR type reactors on island 1 is 84.7%, while the remaining 15.3% is generated by the ADS of island 2. + % Report LCAE at 3% discount rate: mean 78.2 mills/kWh, std 13.1 mills/kWh. + % Report LCAE at 5% discount rate: mean 106.8 mills/kWh, std 23.3 mills/kWh. + % Report LCAE at 10% discount rate: mean 202.8 mills/kWh, std 40.4 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG35) { + reactor(EG35_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.847 + } + reactor(EG35_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.153 + } + } + } + + reactors { + reactor(EG35_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG35_ISLAND_1_FUEL) { heavy_metal_mass = 88.8 fuel_fraction = 1 } + } + } + reactor(EG35_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 8.4e+08 net_thermal_efficiency = 31.1 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG35_ISLAND_2_FUEL) { heavy_metal_mass = 2.89 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 925 + lead_time = 2 + distribution { type = triangular low = 755 high = 1096 nominal = 925 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 6500 + lead_time = 0 + distribution { type = triangular low = 1625 high = 8125 nominal = 6500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 0 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG35_ISLAND_1_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.012, MA_new=0, Pu_prev=0.012, MA_prev=0, FP_prev=0. + } + fuel(EG35_ISLAND_2_FUEL) { + avg_discharge_burnup = 303 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.642, MA_new=0, Pu_prev=0.642, MA_prev=0, FP_prev=0.356. + } + } +} diff --git a/tutorial/necost/EG36.MC08.son b/tutorial/necost/EG36.MC08.son new file mode 100644 index 0000000..286c578 --- /dev/null +++ b/tutorial/necost/EG36.MC08.son @@ -0,0 +1,238 @@ +necost { + % EG36/MC08 - Recycle Pu in PWR and burn MA in ADS + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG36/MC08 (Figure 134) Recycle Pu in PWR and burn MA in ADS is composed of two stages: + % This option is modeled using 2 NE-COST islands, 1 for each stage. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the PWR island 1 is 93.5%, while the remaining 6.5% is generated by the ADS of island 2. Those fractions are obtained such that the MA separated from the spent fuel in island 1 is fully utilized in the ADS reactor in island 2. + % Report LCAE at 3% discount rate: mean 51.7 mills/kWh, std 4.1 mills/kWh. + % Report LCAE at 5% discount rate: mean 65.9 mills/kWh, std 6.1 mills/kWh. + % Report LCAE at 10% discount rate: mean 113.2 mills/kWh, std 13.0 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG36) { + reactor(EG36_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.935 + } + reactor(EG36_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.065 + } + } + } + + reactors { + reactor(EG36_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG36_ISLAND_1_FUEL) { heavy_metal_mass = 89 fuel_fraction = 1 } + } + } + reactor(EG36_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 8.4e+08 net_thermal_efficiency = 34.5 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG36_ISLAND_2_FUEL) { heavy_metal_mass = 5.1 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1850 + lead_time = 2 + distribution { type = triangular low = 1850 high = 1850 nominal = 1850 } + } + item(cost_MOX_fab) { + cost_value = 3500 + lead_time = 2 + distribution { type = triangular low = 1750 high = 6000 nominal = 3500 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 1300 + lead_time = 2 + distribution { type = triangular low = 1040 high = 1558 nominal = 1300 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG36_ISLAND_1_FUEL) { + avg_discharge_burnup = 45 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.62 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.053. + } + fuel(EG36_ISLAND_2_FUEL) { + avg_discharge_burnup = 172 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.1827. + } + } +} diff --git a/tutorial/necost/EG37.MC09.son b/tutorial/necost/EG37.MC09.son new file mode 100644 index 0000000..8eed4df --- /dev/null +++ b/tutorial/necost/EG37.MC09.son @@ -0,0 +1,342 @@ +necost { + % EG37/MC09 - Stages 1 and 3 are PWRs, while stage 2 is SFR. Recycle recovered TRU in stage 2 and burn recovered U3 from stage 2 in stage 3. + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Kent Williams (consultant) + % Fuel cycle option EG37/MC09 (Figure 139) Stages 1 and 3 are PWRs, while stage 2 is SFR. Recycle recovered TRU in stage 2 and burn recovered U3 from stage 2 in stage 3. is composed of three stages: + % This option is modeled using 4 NE-COST islands, as follows: + % The LCAE of the system is the weighted average of the LCAE of the 4 individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the UOX LWR type reactors on island 1 is 11.9%, that of the SFR type reactors is 50.1% and that of the DU/233U PWR type reactors is 38%. The energy generated by the SFR type reactors is further broken down between the driver and the blanket, with the former generating 86.7% and the latter 13.3% of the SFR total, or respectively 43.4% and 6.7% of the overall system. + % Report LCAE at 3% discount rate: mean 44.7 mills/kWh, std 3.4 mills/kWh. + % Report LCAE at 5% discount rate: mean 56.5 mills/kWh, std 5.0 mills/kWh. + % Report LCAE at 10% discount rate: mean 95.7 mills/kWh, std 10.4 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG37) { + reactor(EG37_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.119 + } + reactor(EG37_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.434 + } + reactor(EG37_ISLAND_3) { + % Report LCAE energy weight for this island. + energy_fraction = 0.067 + } + reactor(EG37_ISLAND_4) { + % Report LCAE energy weight for this island. + energy_fraction = 0.38 + } + } + } + + reactors { + reactor(EG37_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG37_ISLAND_1_FUEL) { heavy_metal_mass = 88.2 fuel_fraction = 1 } + } + } + reactor(EG37_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 2.6e+09 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG37_ISLAND_2_FUEL) { heavy_metal_mass = 37.5 fuel_fraction = 1 } + } + } + reactor(EG37_ISLAND_3) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 4e+08 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG37_ISLAND_3_FUEL) { heavy_metal_mass = 58.7 fuel_fraction = 1 } + } + } + reactor(EG37_ISLAND_4) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.4e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG37_ISLAND_4_FUEL) { heavy_metal_mass = 91.9 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 2 + distribution { type = triangular low = 200 high = 500 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1120 + lead_time = 2 + distribution { type = triangular low = 903 high = 1339 nominal = 1120 } + } + item(cost_MOX_fab) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 0 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 0 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 0 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 75 high = 75 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 0 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG37_ISLAND_1_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=4, Pu_new=0.013, MA_new=0.04, Pu_prev=0.013, MA_prev=0.002, FP_prev=0.061. + } + fuel(EG37_ISLAND_2_FUEL) { + avg_discharge_burnup = 103 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=4, Pu_new=0.102, MA_new=0.04, Pu_prev=0.102, MA_prev=0.002, FP_prev=0. + } + fuel(EG37_ISLAND_3_FUEL) { + avg_discharge_burnup = 14 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=4, Pu_new=0.102, MA_new=0.04, Pu_prev=0.102, MA_prev=0.002, FP_prev=0. + } + fuel(EG37_ISLAND_4_FUEL) { + avg_discharge_burnup = 55 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0. + } + } +} diff --git a/tutorial/necost/EG38.MC10.son b/tutorial/necost/EG38.MC10.son new file mode 100644 index 0000000..070cc31 --- /dev/null +++ b/tutorial/necost/EG38.MC10.son @@ -0,0 +1,290 @@ +necost { + % EG38/MC10 - Recycle U-233 in SFR and PWR + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG38/MC10 (Figure 144) Recycle U-233 in SFR and PWR is composed of two stages: + % This option is modeled using three NE-COST islands. The SFR stage has 1 island for the driver and 1 for the blanket to allow for the modeling of potential cost differences between driver and blanket fuel. The PWR stage is modeled as a single island. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the three individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the SFR type reactor 85.5% (79.6% driver and 5.9% blanket), while the remaining 14.5% is generated by the PWR. The fractional energy for the SFR is calculated from the average power density of the driver and blanket (burnup divided by fuel residence time) and core average power density which are provided in the system datasheet [Ref 1] by determining the fraction of mass (26% driver / 74% blanket) and the resulting average power distribution (559 MWt driver / 41 MWt blanket) for the 600 MWt reactor core. + % Report LCAE at 3% discount rate: mean 78.8 mills/kWh, std 9.3 mills/kWh. + % Report LCAE at 5% discount rate: mean 92.3 mills/kWh, std 10.9 mills/kWh. + % Report LCAE at 10% discount rate: mean 136.3 mills/kWh, std 17.2 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG38) { + reactor(EG38_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.796 + } + reactor(EG38_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.059 + } + reactor(EG38_ISLAND_3) { + % Report LCAE energy weight for this island. + energy_fraction = 0.145 + } + } + } + + reactors { + reactor(EG38_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 5.59e+08 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG38_ISLAND_1_FUEL) { heavy_metal_mass = 15.8 fuel_fraction = 1 } + } + } + reactor(EG38_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 41400000 net_thermal_efficiency = 40 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG38_ISLAND_2_FUEL) { heavy_metal_mass = 44.2 fuel_fraction = 1 } + } + } + reactor(EG38_ISLAND_3) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG38_ISLAND_3_FUEL) { heavy_metal_mass = 88.23 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 3800 + distribution { type = triangular low = 2200 high = 7000 nominal = 3800 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 60 high = 85 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 2 + distribution { type = triangular low = 1 high = 2.7 nominal = 2 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 0 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 0 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 0 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1232 + lead_time = 2 + distribution { type = triangular low = 948 high = 1473 nominal = 1232 } + } + item(cost_MOX_fab) { + cost_value = 4880 + lead_time = 2 + distribution { type = triangular low = 2097 high = 7661 nominal = 4880 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG38_ISLAND_1_FUEL) { + avg_discharge_burnup = 49 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.0642, MA_new=0.04, Pu_prev=0.0642, MA_prev=0.002, FP_prev=0.024. + } + fuel(EG38_ISLAND_2_FUEL) { + avg_discharge_burnup = 1.3 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.0642, MA_new=0.04, Pu_prev=0.0642, MA_prev=0.002, FP_prev=0.024. + } + fuel(EG38_ISLAND_3_FUEL) { + avg_discharge_burnup = 50 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0, MA_new=0.04, Pu_prev=0, MA_prev=0.002, FP_prev=0.061. + } + } +} diff --git a/tutorial/necost/EG39.MC11.son b/tutorial/necost/EG39.MC11.son new file mode 100644 index 0000000..7be71be --- /dev/null +++ b/tutorial/necost/EG39.MC11.son @@ -0,0 +1,290 @@ +necost { + % EG39/MC11 - Recycle recovered U3 from stage 1 in stage 2 (both PWRs), while burn TRU in ADS + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Edward Hoffman (ANL) + % Technical Reviewer: Francesco Ganda (INL) + % Fuel cycle option EG39/MC11 (Figure 149) Recycle recovered U3 from stage 1 in stage 2 (both PWRs), while burn TRU in ADS is composed of three stages: + % This option is modeled using three NE-COST islands, 1 for each stage. The fuel fabrication, used fuel reprocessing, and waste disposal is modeled on each island for the respective fuel. + % The LCAE of the system is the weighted average of the LCAE of the three individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the seed/blanket PWR type reactor on island 1 is 69.64%, by the Th/U MOX type PWR type reactor on island 2 is 24.34%, while the remaining 6.02% is generated by the ADS of island 3. + % Report LCAE at 3% discount rate: mean 66.4 mills/kWh, std 6.3 mills/kWh. + % Report LCAE at 5% discount rate: mean 87.4 mills/kWh, std 9.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 157.5 mills/kWh, std 20.6 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG39) { + reactor(EG39_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.6964 + } + reactor(EG39_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.2434 + } + reactor(EG39_ISLAND_3) { + % Report LCAE energy weight for this island. + energy_fraction = 0.0602 + } + } + } + + reactors { + reactor(EG39_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG39_ISLAND_1_FUEL) { heavy_metal_mass = 85.8 fuel_fraction = 1 } + } + } + reactor(EG39_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG39_ISLAND_2_FUEL) { heavy_metal_mass = 82 fuel_fraction = 1 } + } + } + reactor(EG39_ISLAND_3) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 8.4e+08 net_thermal_efficiency = 26 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG39_ISLAND_3_FUEL) { heavy_metal_mass = 3.01 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 4000 + distribution { type = triangular low = 2300 high = 5800 nominal = 4000 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 70 + distribution { type = triangular low = 58 high = 84 nominal = 70 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 1.9 + distribution { type = triangular low = 0.84 high = 2.6 nominal = 1.9 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 2 + distribution { type = triangular low = 65 high = 230 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 2 + distribution { type = uniform low = 70 high = 120 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 782.2 + lead_time = 2 + distribution { type = triangular low = 447 high = 1117.4 nominal = 782.2 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 2 + distribution { type = uniform low = 6 high = 18 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 4 high = 8 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1184 + lead_time = 2 + distribution { type = triangular low = 929 high = 1415 nominal = 1184 } + } + item(cost_MOX_fab) { + cost_value = 2783 + lead_time = 2 + distribution { type = triangular low = 1196 high = 4368 nominal = 2783 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 72 + lead_time = 2 + distribution { type = triangular low = 61 high = 93 nominal = 72 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 2 high = 22 nominal = 4 } + } + } + + fuels { + fuel(EG39_ISLAND_1_FUEL) { + avg_discharge_burnup = 61.7 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 19.9 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.074. + } + fuel(EG39_ISLAND_2_FUEL) { + avg_discharge_burnup = 56 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0739. + } + fuel(EG39_ISLAND_3_FUEL) { + avg_discharge_burnup = 194.9 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.215. + } + } +} diff --git a/tutorial/necost/EG40.MC12.son b/tutorial/necost/EG40.MC12.son new file mode 100644 index 0000000..e8974c3 --- /dev/null +++ b/tutorial/necost/EG40.MC12.son @@ -0,0 +1,237 @@ +necost { + % EG40/MC12 - Breed U3 in ADS and recycle it in PWR. + % Source: FCRD-FCO-2013-000196, Appendix A report input tables. + % Structured from the report into fuel_cycles, reactors, cost tables, and fuels. + % NE-COST input preparer: Francesco Ganda (INL) + % Technical Reviewer: Edward Hoffman (ANL) + % Fuel cycle option EG40/MC12 (Figure 154) Breed U3 in ADS and recycle it in PWR is a two stage system, in which stage 1 is an ADS with a Th blanket, and stage 2 is a PWR fueled with RU (mostly 233U) recovered from the ADS spent fuel, natural Th makeup and Th and RU recovered from the reprocessing of stage 2. All the fission products (FP) and TRU from both stages are stored and then sent to a disposal site. Additionally, Th recovered from the reprocessing of the spent ADS fuel is sent to disposal. + % The LCAE of the system is the weighted average of the LCAE of the two individual islands, with the fractional energy generated by each island as weights. The fractional energy generated by the ADS on island 1 is 20.5%, while the remaining 79.5% is generated by the PWR of island 2. + % Report LCAE at 3% discount rate: mean 135.9 mills/kWh, std 25.3 mills/kWh. + % Report LCAE at 5% discount rate: mean 186.1 mills/kWh, std 38.6 mills/kWh. + % Report LCAE at 10% discount rate: mean 354.7 mills/kWh, std 83.9 mills/kWh. + + construction_interest_rate = 0.05 + operations_interest_rate = 0.05 + sample_size = 2000 + + fuel_cycles { + cycle(EG40) { + reactor(EG40_ISLAND_1) { + % Report LCAE energy weight for this island. + energy_fraction = 0.205 + } + reactor(EG40_ISLAND_2) { + % Report LCAE energy weight for this island. + energy_fraction = 0.795 + } + } + } + + reactors { + reactor(EG40_ISLAND_1) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 6.11e+08 net_thermal_efficiency = 23.6 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG40_ISLAND_1_FUEL) { heavy_metal_mass = 29.9 fuel_fraction = 1 } + } + } + reactor(EG40_ISLAND_2) { + capacity_factor = 0.9 + cycle_length = 1.5 + lifetime_years = 60 + power_level { reference_thermal = 3.4e+09 net_thermal_efficiency = 33 } + capital_costs { scaling_factor(capital_cost) = 1 } + om_costs { + scaling_factor(OM_per_year) = 1 + scaling_factor(OM_per_MWh) = 1 + } + fuel_reloads { + quantity(EG40_ISLAND_2_FUEL) { heavy_metal_mass = 81.3 fuel_fraction = 1 } + } + } + } + + capital_costs { + item(capital_cost) { + cost_type = s_curve + expenditure_time = 5 + cost_value = 69658 + distribution { type = triangular low = 16989 high = 136922 nominal = 69658 } + } + } + + om_costs { + item(OM_per_year) { + cost_type = fixed + nominal_value = 442 + distribution { type = triangular low = 171 high = 756 nominal = 442 } + } + item(OM_per_MWh) { + cost_type = variable + nominal_value = 35.4 + distribution { type = triangular low = 13.7 high = 60.5 nominal = 35.4 } + } + } + + fuel_costs { + item(cost_U) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_SWU) { + cost_value = 100 + lead_time = 0 + distribution { type = triangular low = 100 high = 100 nominal = 100 } + } + item(cost_fuel_fab) { + cost_value = 350 + lead_time = 0 + distribution { type = triangular low = 350 high = 350 nominal = 350 } + } + item(cost_conv) { + cost_value = 12 + lead_time = 0 + distribution { type = triangular low = 12 high = 12 nominal = 12 } + } + item(cost_deconv) { + cost_value = 6 + distribution { type = triangular low = 6 high = 6 nominal = 6 } + } + item(cost_SNF_cond) { + cost_value = 100 + distribution { type = triangular low = 50 high = 130 nominal = 100 } + } + item(cost_rprocsng) { + cost_value = 1206 + lead_time = 2 + distribution { type = triangular low = 793 high = 1206 nominal = 1206 } + } + item(cost_MOX_fab) { + cost_value = 450 + lead_time = 2 + distribution { type = triangular low = 250 high = 630 nominal = 450 } + } + item(cost_FP_cond) { + cost_value = 5000 + lead_time = 2 + distribution { type = triangular low = 2200 high = 6600 nominal = 5000 } + } + item(cost_FP_geologic) { + cost_value = 5500 + lead_time = 2 + distribution { type = triangular low = 1377 high = 6880 nominal = 5500 } + } + item(cost_conv_rec) { + cost_value = 11 + lead_time = 0 + distribution { type = triangular low = 11 high = 11 nominal = 11 } + } + item(cost_nrchmt_rec) { + cost_value = 110 + lead_time = 0 + distribution { type = triangular low = 110 high = 110 nominal = 110 } + } + item(cost_geologic_disposal) { + cost_value = 550 + lead_time = 2 + distribution { type = triangular low = 550 high = 550 nominal = 550 } + } + item(cost_ec_rprocsng) { + cost_value = 6000 + lead_time = 2 + distribution { type = triangular low = 6000 high = 6000 nominal = 6000 } + } + item(cost_Th) { + cost_value = 75 + distribution { type = triangular low = 45 high = 155 nominal = 75 } + } + item(cost_RU_disposal) { + cost_value = 0 + lead_time = 2 + distribution { type = triangular low = 0 high = 0 nominal = 0 } + } + item(cost_DU_disposal) { + cost_value = 4 + distribution { type = triangular low = 4 high = 4 nominal = 4 } + } + } + + fuels { + fuel(EG40_ISLAND_1_FUEL) { + avg_discharge_burnup = 138 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=1.876. + } + fuel(EG40_ISLAND_2_FUEL) { + avg_discharge_burnup = 62.5 + num_batches = 3 + avg_specific_power = 1 + fresh_fuel { + fabrication { loss_fraction = 0.002 costs = [cost_fuel_fab] } + EU { fuel_fraction = 1 costs = [cost_U] } + } + spent_fuel { + costs = [cost_SNF_cond cost_geologic_disposal] + } + EU { + conversion { loss_fraction = 1e-12 costs = [cost_conv] } + enrichment { + type = one_stage + loss_fraction = 0.01 + stage_1 { feed = 0.711 product = 4.2 tails = 0.25 } + SWU_costs = [cost_SWU] + NU_costs = [cost_U] + DU_costs = [cost_DU_disposal] + } + } + RU { + reprocess { loss_fraction = 0.01 costs = [cost_rprocsng] } + conversion { loss_fraction = 1e-12 costs = [cost_conv_rec] } + reenrichment { + loss_fraction = 0.01 + stage_1 { feed = 1.5 product = 4.95 tails = 0.3 } + SWU_costs = [cost_nrchmt_rec] + DU_costs = [cost_DU_disposal] + } + } + % Reprocessed stream details from report: primary_fissile=1, Pu_new=0.098, MA_new=0.04, Pu_prev=0.012, MA_prev=0.002, FP_prev=0.0727. + } + } +} diff --git a/tutorial/necost/NECost-OT.son b/tutorial/necost/Example.OnceThrough.TwoStageEnrichment.son similarity index 79% rename from tutorial/necost/NECost-OT.son rename to tutorial/necost/Example.OnceThrough.TwoStageEnrichment.son index 61824f0..c70e013 100644 --- a/tutorial/necost/NECost-OT.son +++ b/tutorial/necost/Example.OnceThrough.TwoStageEnrichment.son @@ -1,10 +1,25 @@ necost { + % Generic once-through NEcost example with two-stage enrichment + % + % This file is a compact non-report tutorial input retained from the older + % NECost-OT example. It uses a single PWR-like once-through island and a + % two-stage enrichment setup to demonstrate schema syntax and cost table + % mapping. For report-backed cases, prefer EG01.OT01A.son or EG02.OT01B.son. + construction_interest_rate = 0.05 operations_interest_rate = 0.05 sample_size = 5000 fuel_cycles { - cycle(initial_cycle) {reactor(PWR) { fleet_capacity=1000 }} + cycle(initial_cycle) { + % Single island, so the LCAE weight is 100%. + % fleet_capacity is the physical electric capacity in MWe: + % 3000 MWt * 33% efficiency = 990 MWe. + reactor(PWR) { + fleet_capacity = 990 + energy_fraction = 1 + } + } } reactors { diff --git a/tutorial/necost/accert_necost_workflow.py b/tutorial/necost/accert_necost_workflow.py new file mode 100644 index 0000000..d9cefd6 --- /dev/null +++ b/tutorial/necost/accert_necost_workflow.py @@ -0,0 +1,24 @@ +from pathlib import Path +import sys + + +REPO_ROOT = Path(__file__).resolve().parents[2] +SRC = REPO_ROOT / "src" +if str(SRC) not in sys.path: + sys.path.insert(0, str(SRC)) + +from necostmain import run_necost + + +def main(): + input_path = Path(__file__).with_name("AP1000.ACCERT.NECost.son") + output_dir = Path(__file__).with_name("outputs") / "ap1000_accert_necost" + results = run_necost(input_path, output_dir=output_dir) + summary = results[["Capital", "O&M", "FCC", "LCOE"]].mean().round(2) + print("\nACCERT to NEcost mean LCOE components ($/MWh):") + print(summary.to_string()) + print(f"\nResults written to {output_dir}") + + +if __name__ == "__main__": + main() diff --git a/tutorial/necost/check_report_examples.py b/tutorial/necost/check_report_examples.py new file mode 100644 index 0000000..146f159 --- /dev/null +++ b/tutorial/necost/check_report_examples.py @@ -0,0 +1,65 @@ +"""Run EG03-EG40 NEcost examples and compare their 5% LCAE mean to the report.""" + +from __future__ import annotations + +import re +import sys +from pathlib import Path + +import pandas as pd + + +PROJECT_ROOT = Path(__file__).resolve().parents[2] +SRC = PROJECT_ROOT / "src" +sys.path.insert(0, str(SRC)) + +from necostmain import run_necost # noqa: E402 + + +def report_mean_5pct(input_file: Path): + match = re.search( + r"Report LCAE at 5% discount rate: mean ([0-9.]+)", + input_file.read_text(), + ) + return None if match is None else float(match.group(1)) + + +def main(): + output_root = Path(__file__).with_name("outputs") / "report_check" + output_root.mkdir(parents=True, exist_ok=True) + rows = [] + for input_file in sorted(Path(__file__).parent.glob("EG[0-9][0-9].*.son")): + eg = input_file.name[:4] + if not 3 <= int(eg[2:]) <= 40: + continue + report = report_mean_5pct(input_file) + try: + results = run_necost(input_file, output_dir=output_root / eg, make_plot=False) + computed = float(results["LCOE"].mean()) + status = "ok" + except Exception as exc: + computed = None + status = f"{type(exc).__name__}: {exc}" + rows.append( + { + "case": eg, + "input": input_file.name, + "report_5pct_mean_mills_per_kwh": report, + "computed_5pct_mean_mills_per_kwh": computed, + "delta_mills_per_kwh": None if report is None or computed is None else computed - report, + "relative_delta_pct": None + if report in (None, 0) or computed is None + else (computed - report) / report * 100, + "status": status, + } + ) + + summary = pd.DataFrame(rows) + summary_file = output_root / "summary.csv" + summary.to_csv(summary_file, index=False) + print(summary.to_string(index=False, max_colwidth=80)) + print(f"\nSaved comparison summary to {summary_file}") + + +if __name__ == "__main__": + main() diff --git a/tutorial/necost/eg23_two_island_example.py b/tutorial/necost/eg23_two_island_example.py new file mode 100644 index 0000000..d1a9b07 --- /dev/null +++ b/tutorial/necost/eg23_two_island_example.py @@ -0,0 +1,32 @@ +from pathlib import Path +import sys + + +REPO_ROOT = Path(__file__).resolve().parents[2] +SRC = REPO_ROOT / "src" +if str(SRC) not in sys.path: + sys.path.insert(0, str(SRC)) + +import pandas as pd + +from necostmain import run_necost + + +def main(): + input_path = Path(__file__).with_name("EG23.SC05.son") + output_dir = Path(__file__).with_name("outputs") / "eg23_two_island" + results = run_necost(input_path, output_dir=output_dir) + + details = pd.read_csv(output_dir / "NECOST_reactor_results.csv") + print("\nEG23 two-island setup") + print("Driver island mass fraction: 0.80") + print("Blanket island mass fraction: 0.20") + print("\nPer-island mean LCOE components ($/MWh):") + print(details.groupby("reactor_id")[["Capital", "O&M", "FCC", "LCOE"]].mean().round(2).to_string()) + print("\nWeighted cycle mean LCOE components ($/MWh):") + print(results[["Capital", "O&M", "FCC", "LCOE"]].mean().round(2).to_string()) + print(f"\nResults written to {output_dir}") + + +if __name__ == "__main__": + main()