diff --git a/docs/source/_static/ACCERT_Screenshot (1).png b/docs/source/_static/ACCERT_Screenshot (1).png
new file mode 100644
index 0000000..3425d21
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (1).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (10).png b/docs/source/_static/ACCERT_Screenshot (10).png
new file mode 100644
index 0000000..ab592fa
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (10).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (2).png b/docs/source/_static/ACCERT_Screenshot (2).png
new file mode 100644
index 0000000..8defcc8
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (2).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (3).png b/docs/source/_static/ACCERT_Screenshot (3).png
new file mode 100644
index 0000000..e40b4d0
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (3).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (4).png b/docs/source/_static/ACCERT_Screenshot (4).png
new file mode 100644
index 0000000..ed7ace3
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (4).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (5).png b/docs/source/_static/ACCERT_Screenshot (5).png
new file mode 100644
index 0000000..e7699e0
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (5).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (6).png b/docs/source/_static/ACCERT_Screenshot (6).png
new file mode 100644
index 0000000..dfaa9b5
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (6).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (7).png b/docs/source/_static/ACCERT_Screenshot (7).png
new file mode 100644
index 0000000..4bb82d2
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (7).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (8).png b/docs/source/_static/ACCERT_Screenshot (8).png
new file mode 100644
index 0000000..123d34c
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (8).png differ
diff --git a/docs/source/_static/ACCERT_Screenshot (9).png b/docs/source/_static/ACCERT_Screenshot (9).png
new file mode 100644
index 0000000..1a52794
Binary files /dev/null and b/docs/source/_static/ACCERT_Screenshot (9).png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-26-54 ACCERT Output Data.png b/docs/source/_static/Screenshot 2025-07-19 at 21-26-54 ACCERT Output Data.png
new file mode 100644
index 0000000..3425d21
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-26-54 ACCERT Output Data.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-05 ACCERT Output Processor.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-05 ACCERT Output Processor.png
new file mode 100644
index 0000000..8defcc8
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-05 ACCERT Output Processor.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-07 ACCERT Output Processor.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-07 ACCERT Output Processor.png
new file mode 100644
index 0000000..e40b4d0
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-07 ACCERT Output Processor.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-13 ACCERT Output Processor.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-13 ACCERT Output Processor.png
new file mode 100644
index 0000000..ed7ace3
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-13 ACCERT Output Processor.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-17 ACCERT Output Processor.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-17 ACCERT Output Processor.png
new file mode 100644
index 0000000..e7699e0
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-17 ACCERT Output Processor.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-23 ACCERT Output Processor.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-23 ACCERT Output Processor.png
new file mode 100644
index 0000000..dfaa9b5
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-23 ACCERT Output Processor.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-28 ACCERT Output Processor.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-28 ACCERT Output Processor.png
new file mode 100644
index 0000000..4bb82d2
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-28 ACCERT Output Processor.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-39 ACCERT Output Data.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-39 ACCERT Output Data.png
new file mode 100644
index 0000000..123d34c
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-39 ACCERT Output Data.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-47 ACCERT Output Data.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-47 ACCERT Output Data.png
new file mode 100644
index 0000000..1a52794
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-47 ACCERT Output Data.png differ
diff --git a/docs/source/_static/Screenshot 2025-07-19 at 21-27-55 ACCERT Output Data.png b/docs/source/_static/Screenshot 2025-07-19 at 21-27-55 ACCERT Output Data.png
new file mode 100644
index 0000000..ab592fa
Binary files /dev/null and b/docs/source/_static/Screenshot 2025-07-19 at 21-27-55 ACCERT Output Data.png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (1).png b/docs/source/user/screenshots/ACCERT_Screenshot (1).png
new file mode 100644
index 0000000..8defcc8
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (1).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (10).png b/docs/source/user/screenshots/ACCERT_Screenshot (10).png
new file mode 100644
index 0000000..3425d21
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (10).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (2).png b/docs/source/user/screenshots/ACCERT_Screenshot (2).png
new file mode 100644
index 0000000..e40b4d0
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (2).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (3).png b/docs/source/user/screenshots/ACCERT_Screenshot (3).png
new file mode 100644
index 0000000..ed7ace3
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (3).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (4).png b/docs/source/user/screenshots/ACCERT_Screenshot (4).png
new file mode 100644
index 0000000..dfaa9b5
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (4).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (5).png b/docs/source/user/screenshots/ACCERT_Screenshot (5).png
new file mode 100644
index 0000000..4bb82d2
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (5).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (6).png b/docs/source/user/screenshots/ACCERT_Screenshot (6).png
new file mode 100644
index 0000000..948f128
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (6).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (7).png b/docs/source/user/screenshots/ACCERT_Screenshot (7).png
new file mode 100644
index 0000000..123d34c
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (7).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (8).png b/docs/source/user/screenshots/ACCERT_Screenshot (8).png
new file mode 100644
index 0000000..1a52794
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (8).png differ
diff --git a/docs/source/user/screenshots/ACCERT_Screenshot (9).png b/docs/source/user/screenshots/ACCERT_Screenshot (9).png
new file mode 100644
index 0000000..ab592fa
Binary files /dev/null and b/docs/source/user/screenshots/ACCERT_Screenshot (9).png differ
diff --git a/docs/source/user/webhost_output copy.md b/docs/source/user/webhost_output copy.md
new file mode 100644
index 0000000..cab451b
--- /dev/null
+++ b/docs/source/user/webhost_output copy.md
@@ -0,0 +1,278 @@
+# Webhost Output Visualization
+
+The ACCERT webhost module provides a web-based interface for processing and visualizing ACCERT output data. This tool allows you to upload output files, extract tabular data, and view interactive tables and charts through your web browser.
+
+## Installation Requirements
+
+### Prerequisites
+
+- Python 3.7 or higher
+- Web browser (Chrome, Firefox, Safari, or Edge)
+
+### Installing Dependencies
+
+1. Navigate to the webhost directory:
+
+ ```bash
+ cd src/webhost
+ ```
+
+2. Install the required Python packages:
+
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+ This will install:
+
+ - Flask 2.3.3 (web framework)
+ - Werkzeug 2.3.7 (WSGI utility library)
+
+## Starting the Local Server
+
+### Method 1: Using Python (Recommended)
+
+1. Open a terminal/command prompt and navigate to the webhost directory:
+
+ ```bash
+ cd src/webhost
+ ```
+
+2. Start the Flask server:
+
+ ```bash
+ python server.py
+ ```
+
+3. You should see output similar to:
+
+ ```text
+ Starting ACCERT Output Processor Server...
+ Access the application at: http://localhost:3000
+ Upload page: http://localhost:3000
+ Table display: http://localhost:3000/table_display.html
+ * Running on all addresses (0.0.0.0)
+ * Running on http://127.0.0.1:3000
+ * Running on http://[::]:3000
+ ```
+
+### Method 2: Using Windows Batch File
+
+On Windows systems, you can use the provided batch file:
+
+1. Double-click `start_server.bat` in the webhost directory
+2. The server will start automatically in a command prompt window
+
+## Accessing the Web Interface
+
+Once the server is running, open your web browser and navigate to:
+
+- **Main page**: http://localhost:3000
+- **Upload processor**: http://localhost:3000/upload_processor.html
+- **Table display**: http://localhost:3000/table_display.html
+- **Debug viewer**: http://localhost:3000/debug_table.html
+
+## Using the Webhost Application
+
+### Step 1: Upload and Process Output Files
+
+1. Go to the **Upload Processor** page (http://localhost:3000)
+
+ .png)
+
+ *Figure 1: Main ACCERT Output Processor interface*
+
+ .png)
+
+ *Figure 2: Button for File upload page*
+
+2. Click **Choose File** and select your ACCERT output file (`.out` extension)
+
+ .png)
+
+ *Figure 3: File upload interface with file selection*
+
+3. The "Process File" will turn green when the file is uploaded. Click "Process File" to extract the tabular data
+
+ .png)
+
+ *Figure 4: File processing interface showing upload status*
+
+4. The system will process the file and create `init_process_data.csv`.
+
+ .png)
+
+ *Figure 5: Processing complete with success message*
+
+5. You'll see a success message when processing is complete
+
+### Step 2: View Processed Data
+
+1. Click on the **View Results Table** to see the results.
+
+ .png)
+
+ *Figure 5: Table display page showing processed data*
+
+2. The page will automatically load the processed CSV data
+
+ .png)
+
+ *Figure 6: Interactive data table with search functionality*
+
+3. Use the available features:
+
+ **Search and Filter:**
+
+ - Use the search box to filter rows by any column content
+ - Results update in real-time as you type
+
+ .png)
+
+ *Figure 7: Search and filtering options*
+
+ **Data Grouping:**
+
+ - Toggle "Group by Level" to organize data hierarchically
+ - Select different account levels (0-4) using the dropdown
+ - Filter accounts by code or description
+
+ **Interactive Charts:**
+
+ - Click "Show Charts" to enable visualization
+ - Select "Group by Level" before selecting "show Charts" for levelized items.
+ - Select specific accounts to chart using the multi-select dropdown
+ - Use "Select All" or "Clear Selection" for quick selection
+ - Refresh charts with updated data using "Refresh Chart"
+
+ **Data Export:**
+
+ - Click "Download CSV" to save the current filtered data
+
+### Step 3: View Detailed Data Analysis
+
+The processed data can be viewed in various formats:
+
+.png)
+
+*Figure 8: Detailed data view showing Pie Chart of each levels*
+
+.png)
+
+*Figure 9: Detailed data view showing Bar Chart of each levels*
+
+
+### Step 4: Debug Data Issues
+
+If you encounter issues with data processing:
+
+1. Visit the **Debug Table** page (http://localhost:3000/debug_table.html)
+2. This page shows:
+
+ - CSV file loading status
+ - Parse errors (if any)
+ - Column information
+ - First 5 rows of data
+ - Detailed error messages
+
+## File Structure and Processing
+
+### Input File Requirements
+
+The webhost application expects ACCERT output files with:
+
+- Markdown-style table format
+- Column separator: `|` (pipe character)
+- Header containing `code_of_account`
+- Horizontal rules with `+--` pattern
+
+### Output File Location
+
+Processed CSV files are saved as:
+
+- **Filename**: `init_process_data.csv`
+- **Location**: Same directory as the webhost application (`src/webhost/`)
+
+### Command Line Processing
+
+You can also process files directly using the command line:
+
+```bash
+cd src/webhost
+python csv_extractor.py /path/to/your/output_file.out
+```
+
+This will create `init_process_data.csv` in the webhost directory.
+
+## Troubleshooting
+
+### Common Issues
+
+**Server won't start:**
+
+- Check if Python is installed: `python --version`
+- Verify dependencies are installed: `pip list | grep Flask`
+- Try a different port if 3000 is busy
+
+**File upload fails:**
+
+- Ensure file size is under 16MB
+- Check file format (should be plain text with table structure)
+- Verify the file contains a table with `code_of_account` header
+
+**CSV not displaying:**
+
+- Check if `init_process_data.csv` exists in the webhost directory
+- Try the debug page to see detailed error information
+- Refresh the browser page
+
+**Charts not showing:**
+
+- Enable "Group by Level" first
+- Click "Show Charts" button
+- Select at least one account from the dropdown
+- Try "Refresh Chart" if data seems stale
+
+### Cross-Platform Compatibility
+
+The webhost application works on:
+
+- **Windows**: Use `start_server.bat` or `python server.py`
+- **macOS**: Use `python server.py` in Terminal
+- **Linux**: Use `python server.py` in terminal
+
+All file paths and operations are cross-platform compatible.
+
+## Stopping the Server
+
+To stop the webhost server:
+
+1. Return to the terminal/command prompt where the server is running
+2. Press `Ctrl+C` (Windows/Linux) or `Cmd+C` (macOS)
+3. The server will shut down gracefully
+
+## Advanced Configuration
+
+### Port Configuration
+
+To change the default port (3000), modify `server.py`:
+
+```python
+app.run(debug=True, host='0.0.0.0', port=YOUR_PORT_NUMBER)
+```
+
+### File Size Limits
+
+To modify the maximum upload file size, edit `server.py`:
+
+```python
+app.config['MAX_CONTENT_LENGTH'] = SIZE_IN_BYTES
+```
+
+### Development Mode
+
+The server runs in debug mode by default. For production use, change:
+
+```python
+app.run(debug=False, host='0.0.0.0', port=3000)
+```
diff --git a/docs/source/user/webhost_output.rst b/docs/source/user/webhost_output.rst
new file mode 100644
index 0000000..f09abd8
--- /dev/null
+++ b/docs/source/user/webhost_output.rst
@@ -0,0 +1,331 @@
+Webhost Output Visualization
+============================
+
+The ACCERT webhost module provides a web-based interface for processing and visualizing ACCERT output data. This tool allows you to upload output files, extract tabular data, and view interactive tables and charts through your web browser.
+
+Installation Requirements
+-------------------------
+
+Prerequisites
+~~~~~~~~~~~~~
+
+- Python 3.7 or higher
+- Web browser (Chrome, Firefox, Safari, or Edge)
+
+Installing Dependencies
+~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Navigate to the webhost directory:
+
+ .. code-block:: bash
+
+ cd src/webhost
+
+2. Install the required Python packages:
+
+ .. code-block:: bash
+
+ pip install -r requirements.txt
+
+ This will install:
+
+ - Flask 2.3.3 (web framework)
+ - Werkzeug 2.3.7 (WSGI utility library)
+
+Starting the Local Server
+--------------------------
+
+Method 1: Using Python (Recommended)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Open a terminal/command prompt and navigate to the webhost directory:
+
+ .. code-block:: bash
+
+ cd src/webhost
+
+2. Start the Flask server:
+
+ .. code-block:: bash
+
+ python server.py
+
+3. You should see output similar to:
+
+ .. code-block:: text
+
+ Starting ACCERT Output Processor Server...
+ Access the application at: http://localhost:3000
+ Upload page: http://localhost:3000
+ Table display: http://localhost:3000/table_display.html
+ * Running on all addresses (0.0.0.0)
+ * Running on http://127.0.0.1:3000
+ * Running on http://[::]:3000
+
+Method 2: Using Windows Batch File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+On Windows systems, you can use the provided batch file:
+
+1. Double-click ``start_server.bat`` in the webhost directory
+2. The server will start automatically in a command prompt window
+
+Accessing the Web Interface
+----------------------------
+
+Once the server is running, open your web browser and navigate to:
+
+- **Main page**: http://localhost:3000
+- **Upload processor**: http://localhost:3000/upload_processor.html
+- **Table display**: http://localhost:3000/table_display.html
+- **Debug viewer**: http://localhost:3000/debug_table.html
+
+Using the Webhost Application
+------------------------------
+
+Step 1: Upload and Process Output Files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Go to the **Upload Processor** page (http://localhost:3000)
+
+ .. image:: ../_static/ACCERT_Screenshot (1).png
+ :alt: ACCERT Output Processor main page
+ :width: 800px
+ :align: center
+
+ *Figure 1: Main ACCERT Output Processor interface*
+
+2. Click "Choose File" and select your ACCERT output file (``.out`` extension)
+
+ .. image:: ../_static/ACCERT_Screenshot (2).png
+ :alt: File upload interface
+ :width: 800px
+ :align: center
+
+ *Figure 2: File upload interface with file selection*
+
+3. Click "Process File" to extract the tabular data
+
+ .. image:: ../_static/ACCERT_Screenshot (3).png
+ :alt: File processing in progress
+ :width: 800px
+ :align: center
+
+ *Figure 3: File processing interface showing upload status*
+
+4. The system will process the file and create ``init_process_data.csv``
+
+ .. image:: ../_static/ACCERT_Screenshot (4).png
+ :alt: Processing results and success message
+ :width: 800px
+ :align: center
+
+ *Figure 4: Processing complete with success message*
+
+5. You'll see a success message when processing is complete
+
+Step 2: View Processed Data
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Navigate to the **Table Display** page (http://localhost:3000/table_display.html)
+
+ .. image:: ../_static/ACCERT_Screenshot (5).png
+ :alt: Table display page with data loaded
+ :width: 800px
+ :align: center
+
+ *Figure 5: Table display page showing processed data*
+
+2. The page will automatically load the processed CSV data
+
+ .. image:: ../_static/ACCERT_Screenshot (6).png
+ :alt: Data table with search and filter options
+ :width: 800px
+ :align: center
+
+ *Figure 6: Interactive data table with search functionality*
+
+3. Use the available features:
+
+ **Search and Filter:**
+
+ - Use the search box to filter rows by any column content
+ - Results update in real-time as you type
+
+ .. image:: ../_static/ACCERT_Screenshot (7).png
+ :alt: Search and filtering interface
+ :width: 800px
+ :align: center
+
+ *Figure 7: Search and filtering options*
+
+ **Data Grouping:**
+
+ - Toggle "Group by Level" to organize data hierarchically
+ - Select different account levels (0-4) using the dropdown
+ - Filter accounts by code or description
+
+ **Interactive Charts:**
+
+ - Click "Show Charts" to enable visualization
+ - Select specific accounts to chart using the multi-select dropdown
+ - Use "Select All" or "Clear Selection" for quick selection
+ - Refresh charts with updated data using "Refresh Chart"
+
+ **Data Export:**
+
+ - Click "Download CSV" to save the current filtered data
+
+Step 3: View Detailed Data Analysis
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The processed data can be viewed in various formats:
+
+.. image:: ../_static/ACCERT_Screenshot (8).png
+ :alt: Detailed data view with multiple columns
+ :width: 800px
+ :align: center
+
+*Figure 8: Detailed data view showing comprehensive table structure*
+
+.. image:: ../_static/ACCERT_Screenshot (9).png
+ :alt: Filtered data view
+ :width: 800px
+ :align: center
+
+*Figure 9: Filtered data view with specific criteria applied*
+
+.. image:: ../_static/ACCERT_Screenshot (10).png
+ :alt: Final data analysis view
+ :width: 800px
+ :align: center
+
+*Figure 10: Final data analysis view with complete dataset*
+
+Step 4: Debug Data Issues
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you encounter issues with data processing:
+
+1. Visit the **Debug Table** page (http://localhost:3000/debug_table.html)
+2. This page shows:
+
+ - CSV file loading status
+ - Parse errors (if any)
+ - Column information
+ - First 5 rows of data
+ - Detailed error messages
+
+File Structure and Processing
+-----------------------------
+
+Input File Requirements
+~~~~~~~~~~~~~~~~~~~~~~~
+
+The webhost application expects ACCERT output files with:
+
+- Markdown-style table format
+- Column separator: ``|`` (pipe character)
+- Header containing ``code_of_account``
+- Horizontal rules with ``+--`` pattern
+
+Output File Location
+~~~~~~~~~~~~~~~~~~~~
+
+Processed CSV files are saved as:
+
+- **Filename**: ``init_process_data.csv``
+- **Location**: Same directory as the webhost application (``src/webhost/``)
+
+Command Line Processing
+~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also process files directly using the command line:
+
+.. code-block:: bash
+
+ cd src/webhost
+ python csv_extractor.py /path/to/your/output_file.out
+
+This will create ``init_process_data.csv`` in the webhost directory.
+
+Troubleshooting
+---------------
+
+Common Issues
+~~~~~~~~~~~~~
+
+**Server won't start:**
+
+- Check if Python is installed: ``python --version``
+- Verify dependencies are installed: ``pip list | grep Flask``
+- Try a different port if 3000 is busy
+
+**File upload fails:**
+
+- Ensure file size is under 16MB
+- Check file format (should be plain text with table structure)
+- Verify the file contains a table with ``code_of_account`` header
+
+**CSV not displaying:**
+
+- Check if ``init_process_data.csv`` exists in the webhost directory
+- Try the debug page to see detailed error information
+- Refresh the browser page
+
+**Charts not showing:**
+
+- Enable "Group by Level" first
+- Click "Show Charts" button
+- Select at least one account from the dropdown
+- Try "Refresh Chart" if data seems stale
+
+Cross-Platform Compatibility
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The webhost application works on:
+
+- **Windows**: Use ``start_server.bat`` or ``python server.py``
+- **macOS**: Use ``python server.py`` in Terminal
+- **Linux**: Use ``python server.py`` in terminal
+
+All file paths and operations are cross-platform compatible.
+
+Stopping the Server
+--------------------
+
+To stop the webhost server:
+
+1. Return to the terminal/command prompt where the server is running
+2. Press ``Ctrl+C`` (Windows/Linux) or ``Cmd+C`` (macOS)
+3. The server will shut down gracefully
+
+Advanced Configuration
+----------------------
+
+Port Configuration
+~~~~~~~~~~~~~~~~~~
+
+To change the default port (3000), modify ``server.py``:
+
+.. code-block:: python
+
+ app.run(debug=True, host='0.0.0.0', port=YOUR_PORT_NUMBER)
+
+File Size Limits
+~~~~~~~~~~~~~~~~
+
+To modify the maximum upload file size, edit ``server.py``:
+
+.. code-block:: python
+
+ app.config['MAX_CONTENT_LENGTH'] = SIZE_IN_BYTES
+
+Development Mode
+~~~~~~~~~~~~~~~~
+
+The server runs in debug mode by default. For production use, change:
+
+.. code-block:: python
+
+ app.run(debug=False, host='0.0.0.0', port=3000)
diff --git a/src/Algorithm/MsrFunc.py b/src/Algorithm/MsrFunc.py
new file mode 100644
index 0000000..55760ad
--- /dev/null
+++ b/src/Algorithm/MsrFunc.py
@@ -0,0 +1,319 @@
+import numpy as np
+from .Algorithm import Algorithm
+
+class MsrFunc(Algorithm):
+ 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:
+ """
+ Executes the algorithm specified by the name in the instance variables.
+
+ Parameters:
+ inputs (dict): Dictionary of input variables required for the algorithm.
+
+ Returns:
+ float: Result of the algorithm computation.
+ """
+ # run the algorithm use self.name not self.alg_name
+ return self._run_algorithm(self.name, [inputs[var] for var in self.variables.split(",")])
+
+ def _run_algorithm(self, alg_name: str, variables: list) -> float:
+ """
+ Runs the specified algorithm with given variables.
+
+ Parameters:
+ alg_name (str): The name of the algorithm to run.
+ variables (list): List of input variables for the algorithm.
+
+ Returns:
+ float: Result of the algorithm computation.
+ """
+ try:
+ algorithm = getattr(self, alg_name)
+ return algorithm(*variables)
+ except AttributeError:
+ raise ValueError(f"Algorithm {alg_name} not found")
+
+ @staticmethod
+ #acc211: SITE IMPROVEMENTS, FACILITES, LAND
+ def acc211(csi, lsa, cland):
+ lsa=int(lsa)
+ cmlsa=[0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc211 = csi * cmlsa[lsa - 1] + cland
+ return acc211
+
+ @staticmethod
+ #acc212: REACTOR BUILDING COST
+ def acc212(ucrb, rbvol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc212 = (1.0e-6 * ucrb * rbvol) ** exprb * cmlsa[lsa - 1]
+ return acc212
+
+ @staticmethod
+ #acc213: TURBINE BUILDING COST
+ def acc213(ireactor, cturbb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ if ireactor == 1:
+ acc213 = cturbb * cmlsa[lsa - 1]
+ else:
+ acc213 = 0.0e0
+ return acc213
+
+ @staticmethod
+ #acc2141: REACTOR MAINTENANCE BUILDING COST
+ def acc2141(ucmb, rmbvol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc2141 = 1.0e-6 * ucmb * rmbvol ** exprb * cmlsa[lsa - 1]
+ return acc2141
+
+ @staticmethod
+ #acc2142: WARM SHOP COST
+ def acc2142(ucws, wsvol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc2142 = (1.0e-6 * ucws * wsvol) ** exprb * cmlsa[lsa - 1]
+ return acc2142
+
+ @staticmethod
+ #acc215: TRITIUM BUILDING COST
+ def acc215(uctr, triv, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc215 = ((1.0e-6 * uctr * triv) * exprb) * cmlsa[lsa - 1]
+ return acc215
+
+ @staticmethod
+ #acc216: ELECTICAL EQUIPMENT BUILDING COST
+ def acc216(ucel, elevol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc216 = 1.0e-6 * ucel * elevol ** exprb * cmlsa[lsa - 1]
+ return acc216
+
+ @staticmethod
+ #acc2171: ADDITIONAL BUILDINGS COST
+ def acc2171(ucad, admvol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc2171 = 1.0e-6 * ucad * admvol ** exprb * cmlsa[lsa - 1]
+ return acc2171
+
+ @staticmethod
+ #acc2172: CONTROLROOM BUILDINGS COST
+ def acc2172(ucconc, convol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc2172 = 1.0e-6 * ucconc * convol ** exprb * cmlsa[lsa - 1]
+ return acc2172
+
+ @staticmethod
+ #acc2173: SHOP AND WAREHOUSES COST
+ def acc2173(ucsh, shovol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc2173 = 1.0e-6 * ucsh * shovol ** exprb * cmlsa[lsa - 1]
+ return acc2173
+
+ @staticmethod
+ #acc2174: CRYOGENIC BUILDING COST
+ def acc2174(uccr, cryvol, exprb, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc2174 = 1.0e-6 * uccr * cryvol ** exprb * cmlsa[lsa - 1]
+ return acc2174
+
+ @staticmethod
+ #acc2211: FIRST WALL COST (MSR specific - simplified)
+ def acc2211(ife, ucfwa, ucfws, fwarea, ucfwps, ucblss, fwmatm, uccarb, ucblli2o, ucconc, ifueltyp, fwallcst, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ acc2211 = (1.0e-6 * cmlsa[lsa - 1] * (ucblss * (fwmatm(1, 1) + fwmatm(2, 1) + fwmatm(3, 1))
+ + uccarb * (fwmatm(1, 2) + fwmatm(2, 2) + fwmatm(3, 2))
+ + ucblli2o * (fwmatm(1, 4) + fwmatm(2, 4) + fwmatm(3, 4))
+ + ucconc * (fwmatm(1, 5) + fwmatm(2, 5) + fwmatm(3, 5))))
+ else:
+ acc2211 = (1.0e-6 * cmlsa[lsa - 1] * ((ucfwa + ucfws) * fwarea + ucfwps))
+ acc2211 = acc2211
+ if ifueltyp == 1:
+ acc2211 = 0
+ acc2211 = fwallcst
+ elif ifueltyp == 2:
+ fwallcst = acc2211
+ else:
+ fwallcst = 0.0e0
+ return acc2211
+
+ @staticmethod
+ #acc22121: BLANKET BERYLLIUM COST
+ def acc22121(ife, wtbllipb, ucbllipb, whtblbe, ucblbe, iblanket, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ acc22121 = 0
+ else:
+ if iblanket == 4:
+ acc22121 = 1.0e-6 * wtbllipb * ucbllipb
+ else:
+ acc22121 = 1.0e-6 * whtblbe * ucblbe
+ acc22121 = acc22121 * cmlsa[lsa - 1]
+ return acc22121
+
+ @staticmethod
+ #acc22122: BLANKET BREEDER MATERIAL COST
+ def acc22122(whtblli, ucblli, whtblbreed, ucblbreed, wtblli2o, ucblli2o, iblanket, lsa, ife):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ if iblanket == 4:
+ acc22122 = 1.0e-6 * whtblli * ucblli
+ else:
+ if iblanket == 2:
+ acc22122 = 1.0e-6 * whtblbreed * ucblbreed
+ else:
+ acc22122 = 1.0e-6 * wtblli2o * ucblli2o
+ else:
+ acc22122 = 1.0e-6 * wtblli2o * ucblli2o
+ acc22122 = acc22122 * cmlsa[lsa - 1]
+ return acc22122
+
+ @staticmethod
+ #acc22123: BLANKET STAINLESS STEEL COST
+ def acc22123(whtblss, ucblss, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ acc22123 = 1.0e-6 * whtblss * ucblss
+ acc22123 = acc22123 * cmlsa[lsa - 1]
+ return acc22123
+
+ @staticmethod
+ #acc22124: BLANKET VANADIUM COST
+ def acc22124(whtblvd, ucblvd, ife, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ acc22124 = 1.0e-6 * whtblvd * ucblvd
+ else:
+ acc22124 = 0
+ acc22124 = acc22124 * cmlsa[lsa - 1]
+ return acc22124
+
+ @staticmethod
+ #acc22131: BULK SHIELD COST
+ def acc22131(ife, whtshld, ucshld, lsa, shmatm, uccarb, ucblli2o, ucconc):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ acc22131 = 1.0e-6 * cmlsa[lsa - 1] * ucshld * (shmatm(1, 0) + shmatm(2, 0) + shmatm(3, 0)) + uccarb * (shmatm(1, 1) + shmatm(2, 1) + shmatm(3, 1)) + ucblli2o * (shmatm(1, 1) + shmatm(2, 1) + shmatm(3, 1)) + ucconc * (shmatm(1, 1) + shmatm(2, 1) + shmatm(3, 1))
+ else:
+ acc22131 = 1.0e-6 * whtshld * ucshld * cmlsa[lsa - 1]
+ acc22131 = acc22131
+ return acc22131
+
+ @staticmethod
+ #acc22132: PENETRATION SHIELDING COST
+ def acc22132(ife, wpenshld, ucpens, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ acc22132 = 1.0e-6 * wpenshld * ucpens * cmlsa[lsa - 1]
+ else:
+ acc22132 = 1.0e-6 * wpenshld * ucpens * cmlsa[lsa - 1]
+ acc22132 = acc22132
+ return acc22132
+
+ @staticmethod
+ #acc2214: TOTAL SUPPORT STRUCTURE COST
+ def acc2214(gsmass, ucgss, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ acc2214 = 1.0e-6 * gsmass * ucgss * cmlsa[lsa - 1]
+ acc2214 = acc2214
+ return acc2214
+
+ @staticmethod
+ #acc2215: DIVERTOR COST
+ def acc2215(ife, divsur, ucdiv, ifueltyp, divcst, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.5000e0, 0.7500e0, 0.8750e0, 1.0000e0]
+ if ife == 1:
+ acc2215 = 1.0e-6 * divsur * ucdiv * cmlsa[lsa - 1]
+ else:
+ acc2215 = 1.0e-6 * divsur * ucdiv * cmlsa[lsa - 1]
+ acc2215 = acc2215
+ if ifueltyp == 1:
+ acc2215 = 0
+ acc2215 = divcst
+ elif ifueltyp == 2:
+ divcst = acc2215
+ else:
+ divcst = 0.0e0
+ return acc2215
+
+ # Add more MSR-specific algorithms as needed...
+ # For now, we'll use the same structure as fusion but with MSR-specific modifications
+
+ @staticmethod
+ #acc241: SWITCHYARD EQUIPMENT COST
+ def acc241(ucswyd, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc241 = 1.0e-6 * ucswyd * cmlsa[lsa - 1]
+ return acc241
+
+ @staticmethod
+ #acc242: TRANSFORMERS COST
+ def acc242(ucpp, pacpmw, expepe, ucap, fcsht, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc242 = 1.0e-6 * ((ucpp * (pacpmw * 1.0e3) ** expepe) + ucap * (fcsht * 1.0e3))
+ acc242 = acc242 * cmlsa[lsa - 1]
+ return acc242
+
+ @staticmethod
+ #acc243: LOW VOLTAGE EQUIPMENT COST
+ def acc243(uclv, tlvpmw, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc243 = 1.0e-6 * uclv * tlvpmw * cmlsa[lsa - 1]
+ return acc243
+
+ @staticmethod
+ #acc244: DIESEL BACKUP EQUIPMENT COST
+ def acc244(ucdgen, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc244 = 1.0e-6 * ucdgen * 4.0e0 * cmlsa[lsa - 1]
+ return acc244
+
+ @staticmethod
+ #acc245: AUXILIARY FACILITIES COST
+ def acc245(ucaf, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc245 = 1.0e-6 * ucaf * cmlsa[lsa - 1]
+ return acc245
+
+ @staticmethod
+ #acc25: MISCELLANEOUS PLANT EQUIPMENT COST
+ def acc25(ucmisc, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ acc25 = 1.0e-6 * ucmisc * cmlsa[lsa - 1]
+ return acc25
+
+ @staticmethod
+ #acc26: HEAT REJECTION SYSTEM COST
+ def acc26(ireactor, powfmw, pinjwp, tfcmw, pthermmw, pgrossmw, uchrs, lsa):
+ lsa=int(lsa)
+ cmlsa = [0.6800e0, 0.8400e0, 0.9200e0, 1.0000e0]
+ if ireactor == 0:
+ pwrrej = powfmw + pinjwp + tfcmw
+ else:
+ pwrrej = pthermmw - pgrossmw
+ acc26 = (1.0e-6 * uchrs * pwrrej) / 2300.0e0 * cmlsa[lsa - 1]
+ return acc26
\ No newline at end of file
diff --git a/src/Algorithm/__init__.py b/src/Algorithm/__init__.py
index d04cbef..5af7ac7 100644
--- a/src/Algorithm/__init__.py
+++ b/src/Algorithm/__init__.py
@@ -1,3 +1,4 @@
from .Algorithm import Algorithm
from .FusionFunc import FusionFunc
from .user_defined_func import user_defined_func
+from .MsrFunc import MsrFunc
diff --git a/src/Main.py b/src/Main.py
index 37bebc3..8498bc4 100755
--- a/src/Main.py
+++ b/src/Main.py
@@ -95,6 +95,14 @@ def setup_table_names(self,xml2obj):
self.alg_tabl = 'fusion_alg'
self.esc_tabl = 'escalation'
self.fac_tabl = 'facility'
+ elif "msr" in str(xml2obj.ref_model.value).lower():
+ self.ref_model = 'msr'
+ self.acc_tabl = 'msr_acco'
+ self.cel_tabl = None
+ self.var_tabl = 'msr_varv'
+ self.alg_tabl = 'msr_alg'
+ self.esc_tabl = 'escalation'
+ self.fac_tabl = 'facility'
elif "user_defined" in str(xml2obj.ref_model.value).lower():
self.ref_model = 'user_defined'
self.acc_tabl = 'user_defined_account'
@@ -1377,7 +1385,7 @@ 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_table_names(c, self)
# if ref.model is not fusion or user defined then process cost elements:
if self.cel_tabl:
ut.print_user_request_parameter(c)
@@ -1748,7 +1756,7 @@ def generate_results(self, c, ut, accert):
accert : ACCERT
xml2obj class instantiates objects that can parse the ACCERT XML file.
"""
- model = Accert.ref_model
+ model = self.ref_model
if model:
# generate results for the models in the future we can add more models
self._generate_common_results(c, ut, accert, model)
@@ -1936,24 +1944,43 @@ def generate_results_table(self, c, conn, level=3):
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"
- )
+ try:
+ conn = mysql.connector.connect(
+ host="localhost",
+ user="root",
+ password=passwd,
+ database="accert_db",
+ use_pure=True,
+ autocommit=True
+ )
+ except mysql.connector.Error as err:
+ print(f"MySQL connection failed: {err}")
+ print("Trying alternative connection method...")
+ try:
+ conn = mysql.connector.connect(
+ host="localhost",
+ user="root",
+ password=passwd,
+ database="accert_db",
+ auth_plugin="caching_sha2_password",
+ use_pure=True,
+ autocommit=True
+ )
+ except mysql.connector.Error as err2:
+ print(f"Alternative connection also failed: {err2}")
+ print("Please check your MySQL installation and credentials.")
+ sys.exit(1)
# 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()
ut = Utility_methods()
accert_path = os.path.abspath(os.path.join(code_folder, os.pardir))
- user_input = sys.argv[2]
+ user_input = sys.argv[1]
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)
\ No newline at end of file
+ accert_instance = Accert(input_path,accert_path)
+ accert_instance.execute_accert(c,ut)
\ No newline at end of file
diff --git a/src/accertdb.sql b/src/accert_db.sql
similarity index 100%
rename from src/accertdb.sql
rename to src/accert_db.sql
diff --git a/src/etc/accert.sch b/src/etc/accert.sch
index 80894e5..c71d95b 100644
--- a/src/etc/accert.sch
+++ b/src/etc/accert.sch
@@ -495,7 +495,7 @@ accert{
}
EndOfSchema{}
-ref_models = [ "PWR12-BE" "ABR1000" "LFR", "heatpipe","fusion"]
+ref_models = [ "PWR12-BE" "ABR1000" "LFR", "heatpipe","fusion" "msr"]
power_type = ["Thermal" "Electric"]
power_unit = ["W" "kWW" "MW"]
total_cost_unit = ["million" "dollar"]
diff --git a/src/setup_accert.sh b/src/setup_accert.sh
index 0556548..06d5cb8 100755
--- a/src/setup_accert.sh
+++ b/src/setup_accert.sh
@@ -7,7 +7,7 @@ YELLOW='\033[0;33m'
NC='\033[0m' # No color
# 1) Gather workbench_path from workbench.sh
-workbench_path=$(grep "workbench_path" workbench.sh | cut -d '=' -f 2 | tr -d '"')
+workbench_path=$(grep "workbench_path" "$(dirname "$0")/workbench.sh" | cut -d '=' -f 2 | tr -d '"')
# 2) Check that workbench_path was retrieved
if [ -z "$workbench_path" ]; then
@@ -28,8 +28,8 @@ fi
# 4) Find conda
conda_path="${workbench_path}/rte/conda"
if [ ! -d "$conda_path" ]; then
- echo -e "${RED}Error: conda directory not found in workbench_path${NC}"
- exit 1
+ echo -e "${YELLOW}Warning: conda directory not found in workbench_path, skipping conda-based installation${NC}"
+ echo -e "${YELLOW}Using system pip instead${NC}"
else
echo -e "${GREEN}conda directory found: $conda_path${NC}"
fi
@@ -40,23 +40,21 @@ 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}"
-if [ -x "$conda_path/bin/pip" ]; then
+echo -e "${GREEN}Installing requirements from $ACCERT_DIR/../requirements.txt...${NC}"
+if [ -d "$conda_path" ] && [ -x "$conda_path/bin/pip" ]; then
"$conda_path/bin/pip" install -r "$ACCERT_DIR/../requirements.txt"
-elif [ -x "$conda_path/Scripts/pip" ]; then
+elif [ -d "$conda_path" ] && [ -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 "${YELLOW}Using system pip to install requirements${NC}"
+ pip install -r "$ACCERT_DIR/../requirements.txt"
fi
-echo -e "${GREEN}Installing requirements from $ACCERT_DIR/../requirement.txt...${NC} using system pip"
-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
+PASSWD = Wkdeogh0711#
# NOTE: ALL OTHER information should be set up later
# INSTALL_PATH = /usr/local
diff --git a/src/test_workbench.sh b/src/test_workbench.sh
new file mode 100644
index 0000000..c7de9be
--- /dev/null
+++ b/src/test_workbench.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+echo "Testing workbench path detection..."
+echo "OSTYPE: '$OSTYPE'"
+
+case "$OSTYPE" in
+ darwin*) # macOS
+ workbench_path="/Applications/Workbench-5.5.1.app/Contents"
+ echo "Detected macOS - using: $workbench_path"
+ ;;
+ linux*) # Linux (if you ever build a Linux bundle)
+ workbench_path="/opt/Workbench-5.5.1"
+ echo "Detected Linux - using: $workbench_path"
+ ;;
+ msys*|cygwin*) # Git-bash or Cygwin on Windows
+ # note: /c/... maps to C:\... in Git-bash/Cygwin
+ workbench_path="/C:/Workbench-5.5.1"
+ echo "Detected Windows (msys/cygwin) - using: $workbench_path"
+ ;;
+ *)
+ echo "❌ unsupported OS: '$OSTYPE'"
+ echo "Available paths to check:"
+ echo " - B:/Workbench-5.5.1.exe (if exists)"
+ echo " - C:/Workbench-5.5.1 (if exists)"
+ exit 1
+ ;;
+esac
+
+echo "Final workbench_path: $workbench_path"
+
+# Test if path exists
+if [ -e "$workbench_path" ]; then
+ echo "✅ Path exists: $workbench_path"
+else
+ echo "❌ Path does not exist: $workbench_path"
+ echo "Checking alternative paths..."
+
+ # Check some common Windows paths
+ if [ -e "/C/Workbench-5.5.1" ]; then
+ echo "✅ Found: /C/Workbench-5.5.1"
+ fi
+ if [ -e "/B/Workbench-5.5.1.exe" ]; then
+ echo "✅ Found: /B/Workbench-5.5.1.exe"
+ fi
+fi
\ No newline at end of file
diff --git a/src/webhost/AHTR_table_display.html b/src/webhost/AHTR_table_display.html
new file mode 100644
index 0000000..dab2f37
--- /dev/null
+++ b/src/webhost/AHTR_table_display.html
@@ -0,0 +1,2304 @@
+
+
+
+
+
+
+
+ ACCERT-Plus: AHTR Cost Analysis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
$0
+
Total Factory Cost
+
+
+
1530 MW
+
Electrical Output
+
+
+
3400 MW
+
Thermal Output
+
+
+
+
+
+
+
+
+
+ Group by Category
+ Hierarchical Group
+ Show Charts
+ Download as CSV
+ Print to PDF
+
+
+
+
+
+ Chart Type:
+
+ Pie Chart
+ Bar Chart
+ Doughnut Chart
+
+ Cost Type:
+
+ Total Cost
+ Materials
+ Labor
+
+ Group By:
+
+ Category
+ Account
+ Subcategory
+
+ Account:
+
+ All Accounts
+
+ Filter Categories:
+
+ Categories:
+
+ All Categories
+
+
+
+ Select All
+ Clear Selection
+ Clear Filter
+ Refresh Chart
+ No categories selected
+
+
+ Select categories to generate a chart showing cost distribution.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/webhost/argonne logo.png b/src/webhost/argonne logo.png
new file mode 100644
index 0000000..2ee33c3
Binary files /dev/null and b/src/webhost/argonne logo.png differ
diff --git a/src/webhost/index.html b/src/webhost/index.html
new file mode 100644
index 0000000..942016c
--- /dev/null
+++ b/src/webhost/index.html
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+
+ ACCERT-Plus
+
+
+
+
+
+
+
+
+
ACCERT-Plus
+
Web-based application modules for Cost Evaluation and Data Analysis
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/webhost/input/AHTR.csv b/src/webhost/input/AHTR.csv
new file mode 100644
index 0000000..70d8091
--- /dev/null
+++ b/src/webhost/input/AHTR.csv
@@ -0,0 +1,46 @@
+Account,Account Description,Factory Cost,Site Labor Cost,Site Material Cost, Total Cost ,
+211,Yardwork," $921,051 "," $46,994,124 "," $33,060,587 "," $80,975,762 ",
+212,Reactor containment building," $46,234,606 "," $115,431,045 "," $48,403,121 "," $210,068,772 ",
+213,Turbine room and heater bay," $2,013,385 "," $36,199,085 "," $36,801,080 "," $75,013,549 ",
+214,Security building," $168,224 "," $3,054,364 "," $1,190,147 "," $4,412,734 ",
+215,Primary auxiliary building and tunnels," $10,180,816 "," $34,084,198 "," $15,584,738 "," $59,849,751 ",
+216,Waste processing building," $2,109,555 "," $29,236,575 "," $15,203,982 "," $46,550,111 ",
+217,Fuel storage building," $3,232,032 "," $14,596,268 "," $14,179,992 "," $32,008,292 ",
+218,Other structures," $7,914,239 "," $84,591,359 "," $43,218,953 "," $135,724,550 ",
+218A,Control and diesel generator building," $4,742,751 "," $36,224,785 "," $17,672,085 "," $58,639,621 ",
+218B,Administration and service building," $2,658,012 "," $10,988,668 "," $7,887,486 "," $21,534,166 ",
+218E,Emergency feed pump building," $72,326 "," $5,540,604 "," $2,482,092 "," $8,095,023 ",
+218J,Main steam and feedwater pipe enclosure," $107,600 "," $17,124,148 "," $8,257,862 "," $25,489,611 ",
+218K,Pipe tunnels, $- ," $662,664 "," $365,391 "," $1,028,055 ",
+218L,Technical support center," $168,224 "," $1,611,330 "," $778,248 "," $2,557,802 ",
+218P,Containment equipment hatch and missile shield, $- ," $542,959 "," $169,607 "," $712,566 ",
+218S,Waste water treatment," $26,915 "," $1,567,431 "," $891,680 "," $2,486,026 ",
+218T,Ultimate heat sink structure," $138,410 "," $10,131,762 "," $4,622,719 "," $14,892,891 ",
+218V,Control room emergency air intake structure, $- ," $197,008 "," $91,782 "," $288,791 ",
+221,Reactor equipment," $235,141,146 "," $12,194,038 "," $19,164,144 "," $266,499,329 ",
+222,Main heat transfer transport system," $183,716,843 "," $20,631,073 "," $2,041,443 "," $206,389,358 ",
+223,Safeguards system," $107,436,524 "," $17,757,695 "," $2,193,704 "," $127,387,922 ",
+224,Radwaste processing," $52,360,104 "," $13,001,754 "," $2,491,541 "," $67,853,399 ",
+225,Fuel handling and storage," $36,192,404 "," $2,779,566 "," $342,708 "," $39,314,678 ",
+226,Other reactor plant equipment," $89,814,145 "," $53,570,167 "," $8,009,585 "," $151,393,896 ",
+227,Reactor instrumentation and control," $71,737,138 "," $24,971,261 "," $2,183,757 "," $98,892,156 ",
+228,Reactor plant miscellaneous items," $13,844,779 "," $10,300,592 "," $24,145,371 "," $48,290,742 ",
+231,Turbine generator," $404,835,813 "," $24,727,067 "," $4,546,164 "," $434,109,044 ",
+232,Condensing systems," $64,062,379 "," $26,112,200 "," $3,727,056 "," $93,901,634 ",
+233,Feedwater heating system," $51,025,613 "," $23,102,438 "," $2,299,664 "," $76,427,715 ",
+235,Other turbine plant equipment," $36,214,524 "," $32,209,863 "," $3,902,761 "," $72,327,148 ",
+236,Instrumentation and control," $6,052,450 "," $14,876,703 "," $1,278,495 "," $22,207,647 ",
+237,Turbine plant miscellaneous items, $- ," $14,930,827 "," $11,137,889 "," $26,068,716 ",
+241,Switchgear," $33,454,311 "," $4,687,853 "," $563,792 "," $38,705,957 ",
+242,Station service equipment," $54,486,000 "," $7,908,921 "," $2,934,456 "," $65,329,377 ",
+243,Switchboards," $5,311,953 "," $1,196,235 "," $130,241 "," $6,638,429 ",
+244,Protective equipment," $11,826,911 "," $1,384,561 "," $595,418 "," $13,806,890 ",
+245,Electric structure and wiring, $- ," $58,260,148 "," $13,997,305 "," $72,257,453 ",
+246,Power and control wiring," $5,129,260 "," $38,017,677 "," $23,600,581 "," $66,747,518 ",
+251,Structures," $567,333 "," $8,690,256 "," $4,780,423 "," $14,038,013 ",
+252,Mechanical equipment," $98,714,276 "," $40,817,268 "," $5,128,772 "," $144,660,315 ",
+261,Transportation and lifting equipment," $14,017,860 "," $2,010,880 "," $159,369 "," $16,188,109 ",
+262,"Air, water and steam service systems"," $28,278,655 "," $50,454,190 "," $14,338,273 "," $93,071,118 ",
+263,Communications equipment," $6,314,112 "," $12,548,971 "," $1,921,667 "," $20,784,750 ",
+264,Furnishings and fixtures," $7,029,404 "," $1,628,227 "," $206,958 "," $8,864,589 ",
+265,Waste water treatment equipment," $2,430,000 "," $6,075,000 "," $675,000 "," $9,180,000 ",
diff --git a/src/webhost/input/MSBR.csv b/src/webhost/input/MSBR.csv
new file mode 100644
index 0000000..e86a460
--- /dev/null
+++ b/src/webhost/input/MSBR.csv
@@ -0,0 +1,97 @@
+Account No.,Item,Materials (dollars),Labor (dollars),Total (dollars)
+20,Land (see account 94), $- , $- ," $4,633,430 "
+21,Siructures and site facilities," $113,432,630 "," $97,160,660 "," $210,593,290 "
+211,Site improvements," $3,926,640 "," $4,437,100 "," $8,363,730 "
+212,Reactor building, $- , $- , $-
+212.1,Basic structured," $26,371,280 "," $26,371,280 "," $52,742,560 "
+,Special materials (see Table D.3), $- , $- , $-
+,Stainless steel liner at 1.20/Ib," $2,622,990 "," $1,123,020 "," $3,746,010 "
+,Carbon steel at 0.60/lb," $14,528,550 "," $9,738,050 "," $24,266,600 "
+,Insulation at 510/ft3," $2,520,900 "," $1,075,900 "," $3,596,800 "
+212.2,Building services," $2,552,310 "," $1,374,320 "," $3,926,640 "
+212.3,Containment structures at 2/," $14,921,210 "," $14,921,210 "," $29,842,430 "
+,Subtotal for account 212," $63,517,250 "," $54,603,790 "," $118,121,030 "
+213,Turbine building," $17,277,190 "," $14,135,890 "," $31,413,080 "
+214,Intake and discharge structures," $4,240,770 "," $2,827,180 "," $7,067,940 "
+218,other structures," $21,957,740 "," $17,387,140 "," $39,344,880 "
+218A,Feedwater heater bayj," $13,507,620 "," $11,073,110 "," $24,580,740 "
+218B,Loading and setdown -bayf," $4,633,430 "," $3,769,570 "," $8,403,000 "
+218C,"Offices, control rooms, etc."," $3,533,970 "," $2,355,980 "," $5,889,950 "
+218D,Warehouses and miscellaneous," $282,720 "," $188,480 "," $471,200 "
+219,Heat rejection stack," $2,513,050 "," $3,769,570 "," $6,282,620 "
+22,Reactor plant equipment," $439,005,650 "," $46,915,430 "," $485,921,080 "
+221,Reactor equipmenth," $135,861,570 "," $5,497,290 "," $141,358,860 "
+221.1,Reactor vessel," $71,464,760 "," $3,141,310 "," $74,606,070 "
+221.2,Control rods," $7,853,270 "," $785,330 "," $8,638,600 "
+221.3,Graphite (see Table D.5," $56,543,540 "," $1,570,650 "," $58,114,200 "
+222,Main heat transfer system," $182,886,950 "," $15,541,620 "," $198,428,570 "
+222.11,Fuel-salt pumps," $24,345,140 "," $1,570,650 "," $25,915,790 "
+222.12,Primary system salt piping," $2,355,980 "," $1,013,070 "," $3,369,050 "
+222.13,Primary heat exchangers (see Table D.6)," $55,758,220 "," $1,570,650 "," $57,328,870 "
+222.31,Coolant-salt pumps," $32,983,730 "," $1,570,650 "," $34,554,390 "
+222.32,Secondary system salt piping," $10,444,850 "," $4,476,360 "," $14,921,210 "
+222.33,Steam generators (see Table D.7)," $45,470,430 "," $3,769,570 "," $49,240,000 "
+,Reheaters (see Table D.8)," $11,528,600 "," $1,570,650 "," $13,099,250 "
+224,Radioactive waste treatment and disposal," $3,691,040 "," $1,492,120 "," $5,183,160 "
+224.1,Liquid waste," $353,400 "," $117,800 "," $471,200 "
+224.2,Off-gas system," $2,748,640 "," $1,177,990 "," $3,926,640 "
+224.3,Solid waste disposal (not fission products)," $589,000 "," $196,330 "," $785,330 "
+225,Nuclear fuel storage," $29,865,990 "," $3,062,780 "," $32,928,760 "
+225.4,Prima.y drain tank (see Table D.9)," $21,046,760 "," $2,355,980 "," $23,402,740 "
+,Fuel-salt storage tank (see Table D.10)," $5,049,650 "," $549,730 "," $5,599,380 "
+,Salt transfer pump and jets," $3,769,570 "," $157,070 "," $3,926,640 "
+226,Other reactor equipment," $61,569,640 "," $15,039,010 "," $76,608,650 "
+226.1,Inert gas systems," $2,198,920 "," $942,390 "," $3,141,310 "
+226.2,Auxiliary boaerk," $20,025,840 "," $3,533,970 "," $23,559,810 "
+,Cell heating systems," $1,570,650 "," $1,020,930 "," $2,591,580 "
+225.3,Coolant-salt drain tanks (see Table D.i!)," $6,007,750 "," $274,860 "," $6,282,620 "
+226.4,Coolant-salt handling," $157,070 "," $39,270 "," $196,330 "
+226.5,Coolant-salt purification system," $981,660 "," $196,330 "," $1,177,990 "
+226.6,Leakdetection -system," $1,177,990 "," $785,330 "," $1,963,320 "
+226.7,Cell cooling system," $1,177,990 "," $1,177,990 "," $2,355,980 "
+226.8,Maintenance equipment (see Table D.12)," $28,271,770 "," $7,067,940 "," $35,339,720 "
+227,Instruments and controls," $25,130,460 "," $6,282,620 "," $31,413,080 "
+23,Turbine plant equipment," $251,014,070 "," $59,158,680 "," $310,172,750 "
+231,Turbine," $153,814,150 "," $9,620,260 "," $163,434,400 "
+231.1,Turbine-generator," $152,047,160 "," $7,853,270 "," $159,900,430 "
+231.2,Foundations," $1,766,990 "," $1,766,990 "," $3,533,970 "
+232.3,Condensing water system," $8,638,600 "," $7,067,940 "," $15,706,540 "
+233,Condensers," $11,779,910 "," $5,497,290 "," $17,277,190 "
+234,Feedwater heating system," $46,546,330 "," $14,159,450 "," $60,705,780 "
+234.1,Regenerative feedwater heaters," $14,135,890 "," $785,330 "," $14,921,210 "
+234.2,Condensate pumps," $1,413,590 "," $157,070 "," $1,570,650 "
+,Boiler feed pumps," $14,842,680 "," $1,649,190 "," $16,491,870 "
+234.3,Piping and miscellaneous, $- , $- , $-
+,Feedwater and condensate," $7,067,940 "," $7,067,940 "," $14,135,890 "
+,Extraction steam," $2,944,980 "," $2,944,980 "," $5,889,950 "
+,Drains and vents," $981,660 "," $981,660 "," $1,963,320 "
+,Mixing chambers," $565,440 "," $62,830 "," $628,260 "
+,Pressure-booster pumps," $4,594,160 "," $510,460 "," $5,104,630 "
+235,Other turbine plan equipment," $27,643,510 "," $21,478,690 "," $49,122,200 "
+235.1,Main steam piping," $13,350,560 "," $13,350,560 "," $26,701,120 "
+235.2,Turbine auxiliaries," $1,963,320 "," $1,570,650 "," $3,533,970 "
+235.3,Auxiliary cooling systems?," $4,711,960 "," $2,355,980 "," $7,067,940 "
+235.4,Makeup and treatment," $2,513,050 "," $1,256,520 "," $3,769,570 "
+235.5,Condensate treatment," $3,769,570 "," $2,513,050 "," $6,282,620 "
+235.6,Central lubrication system," $471,200 "," $235,600 "," $706,790 "
+235.7,Reheat steam preheaters (see Table D.13)," $863,860 "," $196,330 "," $1,060,190 "
+,Turbine plant instruments and controls," $2,591,580 "," $1,335,060 "," $3,926,640 "
+24,Electric plant equipment," $32,983,730 "," $25,601,660 "," $58,585,390 "
+241,Switchgear, $- , $- , $-
+241.1,Generator circuits," $785,330 "," $235,600 "," $1,020,930 "
+241.2,Station service," $7,853,270 "," $785,330 "," $8,638,600 "
+242,Station service," $3,533,970 "," $2,827,180 "," $6,361,150 "
+243,Switchboards," $3,141,310 "," $549,730 "," $3,691,040 "
+244,Protective equipment," $785,330 "," $785,330 "," $1,570,650 "
+245,Electric structures," $1,177,990 "," $4,711,960 "," $5,889,950 "
+246,Wiring," $15,706,540 "," $15,706,540 "," $31,413,080 "
+25,Miscellaneous plant equipment," $9,604,550 "," $3,431,880 "," $13,036,430 "
+251,Turbine plant hoists," $2,615,140 "," $290,570 "," $2,905,710 "
+252,Air and water services," $3,848,100 "," $2,591,580 "," $6,439,680 "
+253,Communications," $392,660 "," $392,660 "," $785,330 "
+254,Furnishing and fixtures," $2,748,640 "," $157,070 "," $2,905,710 "
+26,Special materials, $- , $- , $-
+264,Coolant-salt inventory, $- , $- ," $3,926,640 "
+265,Miscellaneous special materials, $- , $- ," $3,926,640 "
+,Subtotal for account 26, $- , $- ," $7,853,270 "
+,Total direct construction cost (TDC), $- , $- ," $1,196,092,290 "
diff --git a/src/webhost/integrated_accert_analyzer.html b/src/webhost/integrated_accert_analyzer.html
new file mode 100644
index 0000000..cce5935
--- /dev/null
+++ b/src/webhost/integrated_accert_analyzer.html
@@ -0,0 +1,2187 @@
+
+
+
+
+
+
+
+ ACCERT-Plus: ACCERT Output Analyzer
+
+
+
+
+
+
+
+
+
Upload & Process ACCERT Output File
+
+
+
How to use:
+
+ Upload your output.out file from ACCERT
+ The file will be automatically processed to extract table data
+ View and analyze results in the interactive table and charts below
+
+
+
+
+
+
+
File Information
+
Name:
+
Size:
+
Type:
+
+
+
Process File
+
+
+
+
+
+
+
+
+
+
+
+
$0
+
Average Per Account
+
+
+
-- MW
+
Electrical Output
+
+
+
-- MW
+
Thermal Output
+
+
+
+
+
+
+
+
+
+ Group by Level
+ Hierarchical Group
+ Show Charts
+ Download as CSV
+ Print to PDF
+
+
+
+
+
+ Chart Type:
+
+ Pie Chart
+ Bar Chart
+ Doughnut Chart
+
+ Level:
+
+ Level 0 (Plant)
+ Level 1 (Major Accounts)
+ Level 2 (Sub-accounts)
+ Level 3 (Components)
+ Level 4 (Sub-components)
+
+ Filter Accounts:
+
+ Accounts:
+
+ All Accounts
+
+
+
+ Select All
+ Clear Selection
+ Select Parent Group
+ Clear Filter
+ Refresh Chart
+ No accounts selected
+
+
+ Select a level and accounts to generate a chart showing cost distribution.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/webhost/msbr_table_display.html b/src/webhost/msbr_table_display.html
new file mode 100644
index 0000000..c97c19b
--- /dev/null
+++ b/src/webhost/msbr_table_display.html
@@ -0,0 +1,2564 @@
+
+
+
+
+
+
+
+ ACCERT-Plus: MSBR Cost Analysis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1000 MW
+
Electrical Output
+
+
+
2250 MW
+
Thermal Output
+
+
+
+
+
+
+
+
+
+ Group by Category
+ Hierarchical Group
+ Show Charts
+ Use Leaf Accounts Only
+ Download as CSV
+ Print to PDF
+
+
+
+
+
+ Chart Type:
+
+ Pie Chart
+ Bar Chart
+ Doughnut Chart
+
+ Cost Type:
+
+ Total Cost
+ Materials
+ Labor
+
+ Group By:
+
+ Category
+ Account
+ Subcategory
+
+ Account:
+
+ All Accounts
+
+ Filter Categories:
+
+ Categories:
+
+ All Categories
+
+
+
+ Select All
+ Clear Selection
+ Clear Filter
+ Refresh Chart
+ No categories selected
+
+
+ Select categories to generate a chart showing cost distribution.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/webhost/temp/ahtr.csv b/src/webhost/temp/ahtr.csv
new file mode 100644
index 0000000..70d8091
--- /dev/null
+++ b/src/webhost/temp/ahtr.csv
@@ -0,0 +1,46 @@
+Account,Account Description,Factory Cost,Site Labor Cost,Site Material Cost, Total Cost ,
+211,Yardwork," $921,051 "," $46,994,124 "," $33,060,587 "," $80,975,762 ",
+212,Reactor containment building," $46,234,606 "," $115,431,045 "," $48,403,121 "," $210,068,772 ",
+213,Turbine room and heater bay," $2,013,385 "," $36,199,085 "," $36,801,080 "," $75,013,549 ",
+214,Security building," $168,224 "," $3,054,364 "," $1,190,147 "," $4,412,734 ",
+215,Primary auxiliary building and tunnels," $10,180,816 "," $34,084,198 "," $15,584,738 "," $59,849,751 ",
+216,Waste processing building," $2,109,555 "," $29,236,575 "," $15,203,982 "," $46,550,111 ",
+217,Fuel storage building," $3,232,032 "," $14,596,268 "," $14,179,992 "," $32,008,292 ",
+218,Other structures," $7,914,239 "," $84,591,359 "," $43,218,953 "," $135,724,550 ",
+218A,Control and diesel generator building," $4,742,751 "," $36,224,785 "," $17,672,085 "," $58,639,621 ",
+218B,Administration and service building," $2,658,012 "," $10,988,668 "," $7,887,486 "," $21,534,166 ",
+218E,Emergency feed pump building," $72,326 "," $5,540,604 "," $2,482,092 "," $8,095,023 ",
+218J,Main steam and feedwater pipe enclosure," $107,600 "," $17,124,148 "," $8,257,862 "," $25,489,611 ",
+218K,Pipe tunnels, $- ," $662,664 "," $365,391 "," $1,028,055 ",
+218L,Technical support center," $168,224 "," $1,611,330 "," $778,248 "," $2,557,802 ",
+218P,Containment equipment hatch and missile shield, $- ," $542,959 "," $169,607 "," $712,566 ",
+218S,Waste water treatment," $26,915 "," $1,567,431 "," $891,680 "," $2,486,026 ",
+218T,Ultimate heat sink structure," $138,410 "," $10,131,762 "," $4,622,719 "," $14,892,891 ",
+218V,Control room emergency air intake structure, $- ," $197,008 "," $91,782 "," $288,791 ",
+221,Reactor equipment," $235,141,146 "," $12,194,038 "," $19,164,144 "," $266,499,329 ",
+222,Main heat transfer transport system," $183,716,843 "," $20,631,073 "," $2,041,443 "," $206,389,358 ",
+223,Safeguards system," $107,436,524 "," $17,757,695 "," $2,193,704 "," $127,387,922 ",
+224,Radwaste processing," $52,360,104 "," $13,001,754 "," $2,491,541 "," $67,853,399 ",
+225,Fuel handling and storage," $36,192,404 "," $2,779,566 "," $342,708 "," $39,314,678 ",
+226,Other reactor plant equipment," $89,814,145 "," $53,570,167 "," $8,009,585 "," $151,393,896 ",
+227,Reactor instrumentation and control," $71,737,138 "," $24,971,261 "," $2,183,757 "," $98,892,156 ",
+228,Reactor plant miscellaneous items," $13,844,779 "," $10,300,592 "," $24,145,371 "," $48,290,742 ",
+231,Turbine generator," $404,835,813 "," $24,727,067 "," $4,546,164 "," $434,109,044 ",
+232,Condensing systems," $64,062,379 "," $26,112,200 "," $3,727,056 "," $93,901,634 ",
+233,Feedwater heating system," $51,025,613 "," $23,102,438 "," $2,299,664 "," $76,427,715 ",
+235,Other turbine plant equipment," $36,214,524 "," $32,209,863 "," $3,902,761 "," $72,327,148 ",
+236,Instrumentation and control," $6,052,450 "," $14,876,703 "," $1,278,495 "," $22,207,647 ",
+237,Turbine plant miscellaneous items, $- ," $14,930,827 "," $11,137,889 "," $26,068,716 ",
+241,Switchgear," $33,454,311 "," $4,687,853 "," $563,792 "," $38,705,957 ",
+242,Station service equipment," $54,486,000 "," $7,908,921 "," $2,934,456 "," $65,329,377 ",
+243,Switchboards," $5,311,953 "," $1,196,235 "," $130,241 "," $6,638,429 ",
+244,Protective equipment," $11,826,911 "," $1,384,561 "," $595,418 "," $13,806,890 ",
+245,Electric structure and wiring, $- ," $58,260,148 "," $13,997,305 "," $72,257,453 ",
+246,Power and control wiring," $5,129,260 "," $38,017,677 "," $23,600,581 "," $66,747,518 ",
+251,Structures," $567,333 "," $8,690,256 "," $4,780,423 "," $14,038,013 ",
+252,Mechanical equipment," $98,714,276 "," $40,817,268 "," $5,128,772 "," $144,660,315 ",
+261,Transportation and lifting equipment," $14,017,860 "," $2,010,880 "," $159,369 "," $16,188,109 ",
+262,"Air, water and steam service systems"," $28,278,655 "," $50,454,190 "," $14,338,273 "," $93,071,118 ",
+263,Communications equipment," $6,314,112 "," $12,548,971 "," $1,921,667 "," $20,784,750 ",
+264,Furnishings and fixtures," $7,029,404 "," $1,628,227 "," $206,958 "," $8,864,589 ",
+265,Waste water treatment equipment," $2,430,000 "," $6,075,000 "," $675,000 "," $9,180,000 ",
diff --git a/src/webhost/temp/msbr.csv b/src/webhost/temp/msbr.csv
new file mode 100644
index 0000000..8c94c4e
--- /dev/null
+++ b/src/webhost/temp/msbr.csv
@@ -0,0 +1,132 @@
+Account No.,Item,Materials (thousands of dollars),Labor (thousands of dollars),Total (thousands of dollars)
+20,Land (see account 94), $- , $- ," $4,633.43 "
+21,Structures and site facilities, $- , $- , $-
+211,Site Improvement," $3,926.64 "," $4,437.10 "," $8,363.73 "
+212,Reactor building, $- , $- , $-
+2121,Basic Structure," $26,371.28 "," $26,371.28 "," $52,742.56 "
+2122,Building services, $- , $- , $-
+2123,Containment structures at 2/lb," $2,622.99 "," $1,123.02 "," $3,746.01 "
+213,Turbine building," $14,528.55 "," $9,738.05 "," $24,266.60 "
+214,Intake and discharge structures," $2,520.90 "," $1,075.90 "," $3,596.80 "
+218,," $2,552.31 "," $1,374.32 "," $3,926.64 "
+2181,Feedwater heater bay," $14,921.21 "," $14,921.21 "," $29,842.43 "
+2182,Loading and setdown bay," $63,517.25 "," $54,603.79 "," $118,121.03 "
+2183,"Offices, control rooms, etc."," $17,277.19 "," $14,135.89 "," $31,413.08 "
+2184,Warehouses and miscellaneous," $4,240.77 "," $2,827.18 "," $7,067.94 "
+219,Heat rejection stack," $13,507.62 "," $11,073.11 "," $24,580.74 "
+22,Reactor plant equipment," $4,633.43 "," $3,769.57 "," $8,403.00 "
+221,Reactor equipment," $3,533.97 "," $2,355.98 "," $5,889.95 "
+2211,Reactor vessel, $282.72 , $188.48 , $471.20
+2212,Control rods," $21,957.74 "," $17,387.14 "," $39,344.88 "
+2213,Graphite," $2,513.05 "," $3,769.57 "," $6,282.62 "
+222,Main heat transfer system," $113,432.63 "," $97,160.66 "," $210,593.29 "
+2224,Reheaters," $5,670.06 "," $9,714.49 "," $15,384.56 "
+224,Radioactive waste treatment and disposal, $596.85 , $- , $596.85
+2241,Liquid waste," $119,699.54 "," $106,875.15 "," $226,574.69 "
+2242,Off-gas system, $- , $- , $-
+2243,Solid waste disposal (not fission products), $- , $- , $-
+225,Nuclear fuel storage," $71,464.76 "," $3,141.31 "," $74,606.07 "
+2254,Prima.y drain tank ," $7,853.27 ", $785.33 ," $8,638.60 "
+226,Other reactor equipment," $56,543.54 "," $1,570.65 "," $58,114.20 "
+2261,Inert gas systems," $135,861.57 "," $5,497.29 "," $141,358.86 "
+2262,Auxiliary boiler, $- , $- , $-
+2263,Coolant-salt drain tanks (see Table D.i!)," $24,345.14 "," $1,570.65 "," $25,915.79 "
+2264,Coolant-salt handling," $2,355.98 "," $1,013.07 "," $3,369.05 "
+2265,Coolant-salt purification system," $55,758.22 "," $1,570.65 "," $57,328.87 "
+2266,Leakdetection -system," $32,983.73 "," $1,570.65 "," $34,554.39 "
+2267,Cell cooling system," $10,444.85 "," $4,476.36 "," $14,921.21 "
+2268,Maintenance equipment (see Table D.12)," $45,470.43 "," $3,769.57 "," $49,240.00 "
+227,Instruments and controls," $11,528.60 "," $1,570.65 "," $13,099.25 "
+23,Turbine plant equipment," $182,886.95 "," $15,541.62 "," $198,428.57 "
+231,Turbine Plant, $- , $- , $-
+2311,Turbine generator, $353.40 , $117.80 , $471.20
+2312,Foundations," $2,748.64 "," $1,177.99 "," $3,926.64 "
+2323,Condensing water system, $589.00 , $196.33 , $785.33
+233,Condensers," $3,691.04 "," $1,492.12 "," $5,183.16 "
+234,Feedwater heating system, $- , $- , $-
+2341,Regenerative feedwater heaters," $21,046.76 "," $2,355.98 "," $23,402.74 "
+2342,Condensate pumps," $5,049.65 ", $549.73 ," $5,599.38 "
+235,Other turbine plan equipment," $3,769.57 ", $157.07 ," $3,926.64 "
+2351,Main steam piping," $29,865.99 "," $3,062.78 "," $32,928.76 "
+2352,Turbine auxiliaries, $- , $- , $-
+2353,Auxiliary cooling systems?," $2,198.92 ", $942.39 ," $3,141.31 "
+2354,Makeup and treatment," $20,025.84 "," $3,533.97 "," $23,559.81 "
+2355,Condensate treatment," $1,570.65 "," $1,020.93 "," $2,591.58 "
+2356,Central lubrication system," $6,007.75 ", $274.86 ," $6,282.62 "
+2357,Reheat steam preheaters (see Table D.13), $157.07 , $39.27 , $196.33
+236,Turbine plant instruments and controls, $981.66 , $196.33 ," $1,177.99 "
+24,Electric plant equipment," $1,177.99 ", $785.33 ," $1,963.32 "
+241,Switchgear," $1,177.99 "," $1,177.99 "," $2,355.98 "
+2411,Generator circuits," $28,271.77 "," $7,067.94 "," $35,339.72 "
+2412,Station service," $61,569.64 "," $15,039.01 "," $76,608.65 "
+242,Station service," $25,130.46 "," $6,282.62 "," $31,413.08 "
+243,Switchboards," $439,005.65 "," $46,915.43 "," $485,921.08 "
+244,Protective equipment," $65,849.67 "," $4,688.40 ", $-
+245,Electric structures, $801.03 , $- , $-
+246,Wiring," $505,656.35 "," $51,603.84 "," $557,260.19 "
+25,Miscellaneous plant equipment, $- , $- , $-
+251,Turbine plant hoists," $152,047.16 "," $7,853.27 "," $159,900.43 "
+252,Air and water services," $1,766.99 "," $1,766.99 "," $3,533.97 "
+253,Communications," $153,814.15 "," $9,620.26 "," $163,434.40 "
+254,Furnishing and fixtures," $8,638.60 "," $7,067.94 "," $15,706.54 "
+26,Special materials," $11,779.91 "," $5,497.29 "," $17,277.19 "
+264,Coolant-salt inventory, $- , $- , $-
+265,Miscellaneous special materials," $14,135.89 ", $785.33 ," $14,921.21 "
+,Total direct construction cost (TDC)," $1,413.59 ", $157.07 ," $1,570.65 "
+91,Construction equipment and services at 0.8% TDC2," $14,842.68 "," $1,649.19 "," $16,491.87 "
+921,Reactor engineering, $- , $- , $-
+922,"Engineering, at 5.5% TDC"," $7,067.94 "," $7,067.94 "," $14,135.89 "
+93,"Insurance, taxes, etc., at 4.2% TDC"," $2,944.98 "," $2,944.98 "," $5,889.95 "
+94,"Interest during construction, at 18.58%μ", $981.66 , $981.66 ," $1,963.32 "
+942,Land interest during construction, $565.44 , $62.83 , $628.26
+,Total indirect cost," $4,594.16 ", $510.46 ," $5,104.63 "
+,Total plant capital investment," $46,546.33 "," $14,159.45 "," $60,705.78 "
+,, $- , $- , $-
+,," $13,350.56 "," $13,350.56 "," $26,701.12 "
+,," $1,963.32 "," $1,570.65 "," $3,533.97 "
+,," $4,711.96 "," $2,355.98 "," $7,067.94 "
+,," $2,513.05 "," $1,256.52 "," $3,769.57 "
+,," $3,769.57 "," $2,513.05 "," $6,282.62 "
+,, $471.20 , $235.60 , $706.79
+,, $863.86 , $196.33 ," $1,060.19 "
+,," $27,643.51 "," $21,478.69 "," $49,122.20 "
+,," $2,591.58 "," $1,335.06 "," $3,926.64 "
+,," $251,014.07 "," $59,158.68 "," $310,172.75 "
+,," $10,044.33 "," $4,735.52 "," $14,779.85 "
+,," $1,727.72 ", $- ," $1,727.72 "
+,," $262,786.12 "," $63,894.20 "," $326,680.33 "
+,, $- , $- , $-
+,, $- , $- , $-
+,, $785.33 , $235.60 ," $1,020.93 "
+,," $7,853.27 ", $785.33 ," $8,638.60 "
+,," $3,533.97 "," $2,827.18 "," $6,361.15 "
+,," $3,141.31 ", $549.73 ," $3,691.04 "
+,, $785.33 , $785.33 ," $1,570.65 "
+,," $1,177.99 "," $4,711.96 "," $5,889.95 "
+,," $15,706.54 "," $15,706.54 "," $31,413.08 "
+,," $32,983.73 "," $25,601.66 "," $58,585.39 "
+,," $1,570.65 "," $2,355.98 "," $3,926.64 "
+,, $314.13 , $- , $314.13
+,," $34,868.52 "," $27,957.64 "," $62,826.16 "
+,, $- , $- , $-
+,," $2,615.14 ", $290.57 ," $2,905.71 "
+,," $3,848.10 "," $2,591.58 "," $6,439.68 "
+,, $392.66 , $392.66 , $785.33
+,," $2,748.64 ", $157.07 ," $2,905.71 "
+,," $9,604.55 "," $3,431.88 "," $13,036.43 "
+,, $479.05 , $345.54 , $-
+,, $102.09 , $- , $-
+,," $10,185.69 "," $3,824.54 "," $13,963.11 "
+,, $- , $- , $-
+,, $- , $- ," $3,926.64 "
+,, $- , $- ," $3,926.64 "
+,, $- , $- ," $7,853.27 "
+,, $- , $- ," $1,196,092.29 "
+,, $- , $- ," $9,565.28 "
+,, $- , $- ," $17,669.86 "
+,, $- , $- ," $65,786.84 "
+,, $- , $- ," $50,237.37 "
+,, $- , $- ," $248,846.57 "
+,, $- , $- ," $3,298.37 "
+,, $- , $- ," $395,404.29 "
+,, $- , $- ," $1,591,496.58 "
diff --git a/src/workbench.sh b/src/workbench.sh
index fb9bb24..e987b40 100644
--- a/src/workbench.sh
+++ b/src/workbench.sh
@@ -3,5 +3,5 @@
# Authors: jia.zhou (jia [dot] zhou [at] anl [dot] gov)
########################################################################
-# Provide path to workbench-.app/Contents for macOS
-workbench_path="/Applications/Workbench-5.4.0.app/Contents"
\ No newline at end of file
+ workbench_path="/b/Workbench-5.5.1.exe"
+
diff --git a/test/conftest.py b/test/conftest.py
index 0696730..ff02ab0 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -8,7 +8,7 @@
@pytest.fixture
def input_params_data():
- input_params_file = "./OT01A_i1_r5_rev6.csv"
+ input_params_file = os.path.join(os.path.dirname(__file__), "OT01A_i1_r5_rev6.csv")
return pd.read_csv(input_params_file).set_index("var_name").transpose()
diff --git a/test/test_integration.py b/test/test_integration.py
index 6fac3b9..41306f0 100644
--- a/test/test_integration.py
+++ b/test/test_integration.py
@@ -6,7 +6,11 @@
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]
+ main_py_path = os.path.join(os.path.dirname(__file__), '..', 'src', 'Main.py')
+ input_file_path = os.path.join(os.path.dirname(__file__), '..', 'tutorial', os.path.basename(input_file))
+ expected_output_file_path = os.path.join(os.path.dirname(__file__), expected_output_file)
+
+ command = ["python", main_py_path, input_file_path]
# Run the command
result = subprocess.run(command, capture_output=True, text=True)
@@ -18,7 +22,7 @@ def run_accert_and_check_output(input_file, expected_output_file):
# Compare output.out content with expected output
with open("output.out", "r") as output_file:
output_content = output_file.read()
- with open(expected_output_file, "r") as expected_output:
+ with open(expected_output_file_path, "r") as expected_output:
expected_output_content = expected_output.read()
# compare the content of the output.out file with the expected output
diff --git a/test/test_main.py b/test/test_main.py
index a7dc4a3..f56ff5a 100644
--- a/test/test_main.py
+++ b/test/test_main.py
@@ -9,8 +9,8 @@
ut = Utility_methods()
-accert_path = os.path.dirname(os.getcwd())
-input_path = os.path.join(os.getcwd(), 'accert_unit_test_input.son')
+accert_path = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
+input_path = os.path.join(os.path.dirname(__file__), 'accert_unit_test_input.son')
accert = Accert(input_path, accert_path)
accert.ref_model = 'pwr12-be'
accert.acc_tabl = 'account'
diff --git a/tutorial/MSR.son b/tutorial/MSR.son
new file mode 100644
index 0000000..977e34e
--- /dev/null
+++ b/tutorial/MSR.son
@@ -0,0 +1,20 @@
+% ACCERT Test input file for MSR
+% Author: Daeho Chang (daeho.chang@anl.gov)
+% Last updated: 06/19/2024
+
+
+accert{
+ ref_model = "msr"
+ power( Thermal ){ value = 2000 unit = MW }
+ power( Electric ){ value = 800 unit = MW }
+ l0COA(2){
+ l1COA(21){
+ l2COA("211"){
+ alg("acc211"){
+ var("csi"){value = 16 unit = million}
+ var("lsa"){value = 4 unit = 1}
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tutorial/ref_tables/fusion_acc.csv b/tutorial/ref_tables/fusion_acc.csv
index 705d63f..90ec5b3 100644
--- a/tutorial/ref_tables/fusion_acc.csv
+++ b/tutorial/ref_tables/fusion_acc.csv
@@ -1,91 +1,92 @@
ind,code_of_account,account description,total_cost,level,supaccount,review_status,prn,alg_name,fun_unit,variables
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,
+3,211,"Site improvements, facilities, land",35200000,2,21,Unchanged,0.006372272,acc211,million,
+4,212,Reactor building cost,452161853.1,2,21,Unchanged,0.08185506,acc212,million,"csi, lsa, cland"
+5,213,Turbine building cost,38000000,2,21,Unchanged,0.006879157,acc213,million,"ucrb, rbvol, exprb, lsa"
+6,214,Reactor maintenance and warm shop buildings cost,160708943.7,2,21,Unchanged,0.029093211,acc214,million,"ireactor, cturbb, lsa"
+7,2141,Reactor maintenance building cost,103067666.8,3,214,Unchanged,0.018658385,acc2141,million,
+8,2142,Warm shop cost,57641276.92,3,214,Unchanged,0.010434826,acc2142,million,"ucmb, rmbvol, exprb, lsa"
+9,215,Tritium building cost,14800000,2,21,Unchanged,0.002679251,acc215,million,"ucws, wsvol, exprb, lsa"
+10,216,Electrical equipment building cost,19706763.56,2,21,Unchanged,0.003567524,acc216,million,"uctr, triv, exprb, lsa"
+11,217,Other buildings cost,58070723.2,2,21,Unchanged,0.010512569,acc217,million,"ucel, elevol, exprb, lsa"
+12,2171,Additional buildings cost,18000000,3,217,Unchanged,0.003258548,acc2171,million,
+13,2172,Control room buildings cost,21000000,3,217,Unchanged,0.003801639,acc2172,million,"ucad, admvol, exprb, lsa"
+14,2173,Shop and warehouses cost,11500000,3,217,Unchanged,0.00208185,acc2173,million,"ucco, convol, exprb, lsa"
+15,2174,Cryogenic building cost,7570723.2,3,217,Unchanged,0.001370531,acc2174,million,"ucsh, shovol, exprb, lsa"
+16,22,Total account 22 cost,4450975680,1,2,Unchanged,0.805762094,acc22,million,"uccr, cryvol, exprb, lsa"
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"
-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,
+18,2211,First wall cost,191300792.1,3,221,Unchanged,0.034631267,acc2211,million,
+19,2212,Blanket total cost,981664978.6,3,221,Unchanged,0.177711245,acc2212,million,"ife, ucfwa, ucfws, fwarea, ucfwps, ucblss, fwmatm, uccarb, ucblli2o, ucconc, ifueltyp, fwallcst"
+20,22121,Blanket beryllium cost,261092739.8,4,2212,Unchanged,0.047265734,acc22121,million,
+21,22122,Blanket breeder material cost,639846060.7,4,2212,Unchanged,0.115831615,acc22122,million,"ife, wtbllipb, ucbllipb, whtblbe, ucblbe, iblanket, lsa"
+22,22123,Blanket stainless steel cost,80726178.24,4,2212,Unchanged,0.014613896,acc22123,million,"whtblli, ucblli, whtblbreed, ucblbreed, wtblli2o, ucblli2o, iblanket, lsa, ife"
+23,22124,Blanket vanadium cost,0,4,2212,Unchanged,0,acc22124,million,"whtblss, ucblss, lsa"
+24,2213,Total shield cost,156788405.4,3,221,Unchanged,0.028383474,acc2213,million,"whtblvd, ucblvd, ife, lsa"
+25,22131,Bulk shield cost,78394202.68,4,2213,Unchanged,0.014191737,acc22131,million,
+26,22132,Penetration shielding cost,78394202.68,4,2213,Unchanged,0.014191737,acc22132,million,"ife, whtshld, ucshld, lsa, shmatm, uccarb, ucblli2o, ucconc"
+27,2214,Total support structure cost,41648347.22,3,221,Unchanged,0.007539619,acc2214,million,"ife, wpenshld, ucpens, lsa"
+28,2215,Divertor cost,41660031.86,3,221,Unchanged,0.007541734,acc2215,million,"gsmass, ucgss, lsa"
+29,222,Total account 222 cost,1755392733,2,22,Unchanged,0.317779522,acc222,million,"ife, divsur, ucdiv, ifueltyp, divcst"
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, ucsc_4, whtconsc, tfleng, n_tf_turn, uccu, whtconcu, cconshtf, cconfix, n_tf, lsa, i_tf_sup"
-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"
-44,2232,Lower hybrid system cost,0,3,223,Unchanged,0,acc2232,million,"iefrf, uclh, plhybd, exprf, ucich"
-45,2233,Neutral beam system cost,0,3,223,Unchanged,0,acc2233,million,"ucnbi, exprf, fcdfuel"
-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,
+31,22211,TF coil conductor cost,130258092.5,4,2221,Unchanged,0.02358068,acc22211,million,
+32,22212,TF coil winding cost,55700223.23,4,2221,Unchanged,0.010083436,acc22212,million,"whtcp, uccpcl1, itart, ifueltyp, cpstcst, ucsc_4, whtconsc, tfleng, n_tf_turn, uccu, whtconcu, cconshtf, cconfix, n_tf, lsa, i_tf_sup"
+33,22213,TF coil case cost,439106666.3,4,2221,Unchanged,0.079491674,acc22213,million,"whttflgs, uccpclb, lsa, ucwindtf, n_tf, tfleng, n_tf_turn, i_tf_sup"
+34,22214,TF intercoil structure cost,150045051.6,4,2221,Unchanged,0.027162722,acc22214,million,"whtcas, uccase, n_tf, lsa, i_tf_sup"
+35,22215,TF coil gravity support structure,45440398.23,4,2221,Unchanged,0.008226095,acc22215,million,"aintmass, ucint, lsa, i_tf_sup"
+36,2222,PF magnet assemblies cost,680800177,3,222,Unchanged,0.123245557,acc2222,million,"clgsmass, ucgss, lsa, i_tf_sup"
+37,22221,PF coil conductor cost,466068431.2,4,2222,Unchanged,0.084372574,acc22221,million,
+38,22222,PF coil winding cost,77130237.29,4,2222,Unchanged,0.013962921,acc22222,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"
+39,22223,PF coil case cost,129551313.8,4,2222,Unchanged,0.023452732,acc22223,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"
+40,22224,PF coil support structure cost,8050194.63,4,2222,Unchanged,0.00145733,acc22224,million,"uccase, whtpfs, lsa"
+41,2223,Vacuum vessel assembly cost,254042123.8,3,222,Unchanged,0.045989358,acc2223,million,"ucfnc, fncmass, lsa"
+42,223,Total account 223 cost,241046837.7,2,22,Unchanged,0.043636816,acc223,million,"vvmass, uccryo, lsa"
+43,2231,ECH system cost,241046837.7,3,223,Unchanged,0.043636816,acc2231,million,
+44,2232,Lower hybrid system cost,0,3,223,Unchanged,0,acc2232,million,"ucech, echpwr, exprf, ifedrv, dcdrv1, dcdrv2, cdriv1, mcdriv, edrive, etadrv, dcdrv0, cdriv0 ,cdriv3, fcdfuel"
+45,2233,Neutral beam system cost,0,3,223,Unchanged,0,acc2233,million,"iefrf, uclh, plhybd, exprf, ucich"
+46,224,Total account 224 cost,26934799.04,2,22,Unchanged,0.004876019,acc224,million,"ucnbi, exprf, fcdfuel"
+47,2241,High vacuum pumps cost,12480000,3,224,Unchanged,0.00225926,acc2241,million,
+48,2242,Backing pumps cost,4680000,3,224,Unchanged,0.000847222,acc2242,million,"vpumpn, uccpmp, uctpmp, ntype"
+49,2243,Vacuum duct cost,2590254.5,3,224,Unchanged,0.000468915,acc2243,million,"nvduct, ucbpmp"
+50,2244,Valves cost,5884544.54,3,224,Unchanged,0.001065282,acc2244,million,"nvduct, dlscal, ucduct"
+51,2245,Duct shielding cost,0,3,224,Unchanged,0,acc2245,million,"nvduct, vcdimax, ucvalv"
+52,2246,Instrumentation cost,1300000,3,224,Unchanged,0.00023534,acc2246,million,"nvduct, vacdshm, ucvdsh"
+53,225,Total account 225 cost,154876266,2,22,Unchanged,0.028037319,acc225,million,ucviac
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"
-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"
-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,"cal_acc2261, cal_acc2262, cal_acc2263"
-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, 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, 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"
\ No newline at end of file
+55,22511,TF coil power supplies cost,3967323.07,4,2251,Unchanged,0.000718206,acc22511,million,
+56,22512,TF coil breakers cost,34112697.55,4,2251,Unchanged,0.006175437,acc22512,million,"uctfps, tfckw, tfcmw, expel"
+57,22513,TF coil dump resistors cost,21125590.34,4,2251,Unchanged,0.003824375,acc22513,million,"uctfbr, n_tf, cpttf, vtfskv, expel, uctfsw"
+58,22514,TF coil instrumentation and control,4800000,4,2251,Unchanged,0.000868946,acc22514,million,"uctfdr, estotftgj, uctfgr, n_tf"
+59,22515,TF coil bussing cost,34202680.49,4,2251,Unchanged,0.006191726,acc22515,million,"uctfic, n_tf, "
+60,2252,"Total, PF coil power costs",39768511.04,3,225,Unchanged,0.007199311,acc2252,million,"uctfbus, tfbusmas, ucbus, cpttf, tfbusl"
+61,22521,PF coil power supplies cost,2932371.33,4,2252,Unchanged,0.000530848,acc22521,million,
+62,22522,PF coil instrumentation and control,3600000,4,2252,Unchanged,0.00065171,acc22522,million,"ucpfps, peakmva"
+63,22523,PF coil bussing cost,11995200,4,2252,Unchanged,0.002171496,acc22523,million,"ucpfic, pfckts"
+64,22524,PF coil burn power supplies cost,1267929.14,4,2252,Unchanged,0.000229534,acc22524,million,"ucpfb, spfbusl, acptmax"
+65,22525,PF coil breakers cost,14709370.28,4,2252,Unchanged,0.002662844,acc22525,million,"ucpfbs, pfckts, srcktpm"
+66,22526,PF coil dump resistors cost,4363640.29,4,2252,Unchanged,0.000789952,acc22526,million,"ucpfbk, pfckts, acptmax, vpfskv"
+67,22527,PF coil ac breakers cost,900000,4,2252,Unchanged,0.000162927,acc22527,million,"ucpfdr1, ensxpfm"
+68,2253,"Total, energy storage cost",16899463.51,3,225,Unchanged,0.003059317,acc2253,million,"ucpfcb, pfckts"
+69,226,Total account 226 cost,332122997.5,2,22,Unchanged,0.060124373,acc226,million,"lpulse, istore, ucblss, pthermmw, tdown, dtstor, pnetelmw"
+70,2261,"Total, reactor cooling system cost",109472365.6,3,226,Unchanged,0.019817831,acc2261,million,"cal_acc2261, cal_acc2262, cal_acc2263"
+71,22611,Pumps and piping system cost,37134735.98,4,2261,Unchanged,0.006722518,acc22611,million,
+72,22612,Primary heat exchanger cost,72337629.6,4,2261,Unchanged,0.013095313,acc22612,million,"uchts, coolwh, pfwdiv, exphts, pnucblkt, pnucshld, lsa"
+73,2262,"Pumps, piping cost",29300032.53,3,226,Unchanged,0.005304198,acc2262,million,"ucphx, nphx, pthermmw, exphts, lsa"
+74,2263,"Total, cryogenic system cost",193350599.4,3,226,Unchanged,0.035002344,acc2263,million,"ucahts, pinjht, exphts, crypmw, vachtmw, trithtmw, fachtmw, ife, tdspmw, tfacmw, lsa"
+75,227,Total account 227 cost,252539491.6,2,22,Unchanged,0.045717336,acc227,million,"uccry, tmpcry, helpow, lsa, expcry"
+76,2271,Fuelling system cost,22300000,3,227,Unchanged,0.004036979,acc2271,million,
+77,2272,Fuel processing and purification cost,103001575.3,3,227,Unchanged,0.018646421,acc2272,million,ucf1
+78,2273,Atmospheric recovery systems cost,58061674.55,3,227,Unchanged,0.010510931,acc2273,million,"ife, rndfuel, afuel, umass, gain, edrive, fburn, reprat, ucfpr"
+79,2274,Nuclear building ventilation cost,69176241.77,3,227,Unchanged,0.012523006,acc2274,million,"ftrit, ucdtc, volrci, wsvol"
+80,228,Instrumentation and control cost,150000000,2,22,Unchanged,0.027154566,acc228,million,"ucnbv, volrci, wsvol"
+81,229,Maintenance equipment cost,125000000,2,22,Unchanged,0.022628805,acc229,million,uciac
+82,23,Turbine plant equipment cost,178012556.3,1,2,Unchanged,0.032225692,acc23,million,ucme
+83,24,Total account 24 cost,40776153.7,1,2,Unchanged,0.007381725,acc24,million,"ireactor, ucturb, coolwh, pgrossmw, exptpe"
+84,241,Switchyard equipment cost,18400000,2,24,Unchanged,0.00333096,acc241,million,
+85,242,Transformers cost,7502814.23,2,24,Unchanged,0.001358238,acc242,million,"ucswyd, lsa"
+86,243,Low voltage equipment cost,6573339.47,2,24,Unchanged,0.001189975,acc243,million,"ucpp, pacpmw, expepe, ucap, fcsht, lsa"
+87,244,Diesel backup equipment cost,6800000,2,24,Unchanged,0.001231007,acc244,million,"uclv, tlvpmw, lsa"
+88,245,Auxiliary facilities cost,1500000,2,24,Unchanged,0.000271546,acc245,million,"ucdgen, lsa"
+89,25,Miscellaneous plant equipment cost,25000000,1,2,Unchanged,0.004525761,acc25,million,"ucaf, lsa"
+90,26,Heat rejection system cost,50520149.78,1,2,Unchanged,0.009145685,acc26,million,"ucmisc, lsa"
+,,,,,,,,,,"ireactor, powfmw, pinjwp, tfcmw, pthermmw, pgrossmw, uchrs, lsa"
\ No newline at end of file
diff --git a/tutorial/ref_tables/fusion_alg.csv b/tutorial/ref_tables/fusion_alg.csv
index af1245f..80c8eba 100644
--- a/tutorial/ref_tables/fusion_alg.csv
+++ b/tutorial/ref_tables/fusion_alg.csv
@@ -1,17 +1,17 @@
-ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
-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
+ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
+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:
acc213 = cturbb * cmlsa[lsa - 1]
- 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
+ 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:
acc2211 = (1.0e-6*cmlsa[lsa - 1]
* (ucblss*(fwmatm(1, 1)+ fwmatm(2, 1)+ fwmatm(3, 1))
@@ -27,7 +27,7 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
elif ifueltyp == 2:
fwallcst = acc2211
else:
- fwallcst = 0.0e0",million
+ fwallcst = 0.0e0",million
13,acc22121,c,Blanket_beryllium_cost_(M$),FusionFunc,"if ife == 1:
acc22121 = 0
else:
@@ -35,7 +35,7 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
acc22121 = 1.0e-6*wtbllipb*ucbllipb
else:
acc22121 = 1.0e-6*whtblbe*ucblbe
- acc22121 = fkind*acc22121*cmlsa[lsa-1]",million
+ acc22121 = fkind*acc22121*cmlsa[lsa-1]",million
14,acc22122,c,Blanket_breeder_material_cost_(M$),FusionFunc,"if ife == 1:
if iblanket == 4:
acc22122 = 1.0e-6*whtblli*ucblli
@@ -46,15 +46,15 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
acc22122 = 1.0e-6*wtblli2o*ucblli2o
else:
acc22122 = 1.0e-6*wtblli2o*ucblli2o
- acc22122 =fkind*acc22122*cmlsa[lsa - 1]",million
+ acc22122 =fkind*acc22122*cmlsa[lsa - 1]",million
15,acc22123,c,Blanket_stainless_steel_cost_(M$),FusionFunc,"acc22123 = acc22123 = 1.0e-6*whtblss*ucblss
- acc22123 = fkind*acc22123*cmlsa[lsa - 1]",million
+ acc22123 = fkind*acc22123*cmlsa[lsa - 1]",million
16,acc22124,c,Blanket_vanadium_cost_(M$),FusionFunc,"if ife == 1:
acc22124 = 1.0e-6*whtblvd*ucblvd
else:
acc22124 = 0
acc22124 = fkind*acc22124*cmlsa[lsa-1]
- return acc22124",million
+ return acc22124",million
17,acc22131,c,Bulk_shield_cost_(M$),FusionFunc,"if ife == 1:
acc22131 = 1.0e-6*cmlsa[lsa - 1]*ucshld*(shmatm[1, 0] + shmatm[2, 0]+shmatm[3, 0])
+ uccarb*(shmatm[1, 1]+ shmatm[2, 1]+ shmatm[3, 1])
@@ -62,14 +62,14 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
+ ucconc* (shmatm[1, 1] + shmatm[2, 1]+ shmatm[3, 1])
else:
acc22131 = 1.0e-6*whtshld*ucshld*cmlsa[lsa - 1]
- acc22131 = fkind*acc22131",million
+ acc22131 = fkind*acc22131",million
18,acc22132,c,Penetration_shielding_cost_(M$),FusionFunc,"if ife == 1:
acc22132 = 1.0e-6*wpenshld*ucpens* cmlsa[lsa - 1]
else:
acc22132 = 1.0e-6*wpenshld*ucpens* cmlsa[lsa - 1]
- acc22132 = fkind*acc22132",million
+ acc22132 = fkind*acc22132",million
19,acc2214,c,Total_support_structure_cost_(M$),FusionFunc,"acc2214 = 1.0e-6*gsmass*ucgss*cmlsa[lsa - 1]
- acc2214 = fkind*acc2214",million
+ acc2214 = fkind*acc2214",million
20,acc2215,c,Divertor_cost_(M$),FusionFunc,"if ife == 1:
acc2215 = 0
divcst = 0
@@ -82,7 +82,7 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
elif ifueltyp == 2:
divcst = acc2215
else:
- divcst = 0.0e0 ",million
+ divcst = 0.0e0 ",million
21,acc22211,c,TF_coil_conductor_cost_(M$),FusionFunc,"if i_tf_sup == 1:
costtfsc = ucsc[i_tf_sc_mat - 1]*whtconsc/(tfleng*n_tf_turn)
costtfcu = uccu*whtconcu/(tfleng*n_tf_turn)
@@ -97,40 +97,40 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
acc22211 = cpstcst
accc22211 = 0.0e0
elif (itart == 1) and (ifueltyp == 2):
- acc22211 = cpstcst",million
+ acc22211 = cpstcst",million
22,acc22212,c,TF_coil_winding_cost_(M$),FusionFunc,"if i_tf_sup == 1:
acc22212 = 1.0e-6*ucwindtf*n_tf*tfleng*n_tf_turn
acc22212 = fkind*acc22212*cmlsa[lsa-1]
else:
acc22212 = 1.0e-6*whttflgs*uccpclb*cmlsa[lsa - 1]
- acc22212 = fkind*acc22212",million
+ acc22212 = fkind*acc22212",million
23,acc22213,c,TF_coil_case_cost_(M$),FusionFunc," if i_tf_sup == 1:
acc22213 = 1.0e-6*(whtcas*uccase)*n_tf
acc22213 = fkind*acc22213*cmlsa[lsa - 1]
else:
- acc22213 = 0",million
+ acc22213 = 0",million
24,acc22214,c,TF_intercoil_structure_cost_(M$),FusionFunc,"if i_tf_sup == 1:
acc22214 = 1.0e-6*aintmass*ucint
acc22214 = fkind*acc22214*cmlsa[lsa - 1]
else:
- acc22214 = 0",million
+ acc22214 = 0",million
25,acc22215,c,TF_coil_gravity_support_structure_(M$),FusionFunc,"if i_tf_sup == 1:
acc22215 = 1.0e-6*clgsmass*ucgss
acc22215 = fkind*acc22215*cmlsa[lsa - 1]
else:
- acc22215 = 0",million
-26,acc22221,c,PF_coil_conductor_cost_(M$),FusionFunc,,million
+ acc22215 = 0",million
+26,acc22221,c,PF_coil_conductor_cost_(M$),FusionFunc,,million
27,acc22222,c,PF_coil_winding_cost_(M$),FusionFunc,"for i in range(0, nohc):
pfwndl = pfwndl +(twopi*rpf[i] *turns[i])
acc22222 = 1.0e-6*ucwindpf*pfwndl
- acc22222 = fkind*acc22222*cmlsa[lsa - 1]",million
+ acc22222 = fkind*acc22222*cmlsa[lsa - 1]",million
28,acc22223,c,PF_coil_case_cost_(M$),FusionFunc,"acc22223 = 1.0e-6*uccase*whtpfs
- acc22223 = fkind*acc22223*cmlsa[lsa - 1]",million
+ acc22223 = fkind*acc22223*cmlsa[lsa - 1]",million
29,acc22224,c,PF_coil_support_structure_cost_(M$),FusionFunc,"acc22224 = 1.0e-6*ucfnc*fncmass
- acc22224 = fkind*acc22224*cmlsa[lsa - 1]",million
+ acc22224 = fkind*acc22224*cmlsa[lsa - 1]",million
30,acc2223,c,Vacuum_vessel_assembly_cost_(M$),FusionFunc,"acc2223 = 1.0e-6*vvmass*uccryo
- acc2223 = fkind*acc2223*cmlsa[lsa - 1]",million
-31,acc2231,c,ECH_system_cost_(M$),FusionFunc,,million
+ acc2223 = fkind*acc2223*cmlsa[lsa - 1]",million
+31,acc2231,c,ECH_system_cost_(M$),FusionFunc,,million
32,acc2232,c,Lower_hybrid_system_cost_(M$),FusionFunc,"if ife == 1:
if iefrf == 2:
acc2232 = (1.0e-6*uclh*(1.0e6*plhybd)**exprf)
@@ -141,7 +141,7 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
acc2232 = fkind * acc2232
else:
if ifueltyp == 1:
- acc2232 = 0.0e0",million
+ acc2232 = 0.0e0",million
33,acc2233,c,Neutral_beam_system_cost_(M$),FusionFunc,"if ife == 1:
acc2233 = (1.0e-6*ucnbi*(1.0e6*pnbitot)**exprf)
if ifueltyp == 1:
@@ -149,53 +149,53 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
acc2233 = fkind*acc2233
else:
if ifedrv == 2:
- acc2233 = 0.0e0",million
+ acc2233 = 0.0e0",million
34,acc2241,c,High_vacuum_pumps_cost_(M$),FusionFunc,"if ntype == 1:
acc2241 = 1.0e-6*vpumpn*uccpmp
else:
acc2241 = 1.0e-6*vpumpn*uctpmp
- acc2241 = fkind*acc2241",million
+ acc2241 = fkind*acc2241",million
35,acc2242,c,Backing_pumps_cost_(M$),FusionFunc,"acc2242 = 1.0e-6*nvduct*ucbpmp
- acc2242 = fkind*acc2242 ",million
-36,acc2243,c,Vacuum_duct_cost_(M$),FusionFunc,,million
+ acc2242 = fkind*acc2242 ",million
+36,acc2243,c,Vacuum_duct_cost_(M$),FusionFunc,,million
37,acc2244,c,Valves_cost_(M$),FusionFunc,"acc2244 = 1.0e-6*2.0e0*nvduct*((vcdimax*1.2e0)**1.4e0)*ucvalv
- acc2244 = fkind*acc2244",million
+ acc2244 = fkind*acc2244",million
38,acc2245,c,Duct_shielding_cost_(M$),FusionFunc,"acc2245 = 1.0e-6*nvduct*vacdshm*ucvdsh
- acc2245 = fkind*acc2245",million
+ acc2245 = fkind*acc2245",million
39,acc2246,c,Instrumentation_cost_(M$),FusionFunc,"acc2246 = 1.0e-6*ucviac
- acc2246 = fkind*acc2246",million
+ 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
- acc22511 = fkind*acc22511",million
+ acc22511 = fkind*acc22511",million
41,acc22512,c,TF_coil_breakers_cost_(M$),FusionFunc," if i_tf_sup == 1:
acc22512 = 1.0e-6*(uctfbr*n_tf*(cpttf*vtfskv*1.0e3)**expel+uctfsw*cpttf)
else:
acc22512 = 0.0e0
- acc22512 = fkind*acc22512",million
+ 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)
- acc22513 = fkind*acc22513",million
+ acc22513 = fkind*acc22513",million
43,acc22514,c,TF_coil_instrumentation_and_control_(M$),FusionFunc,"acc22514 = 1.0e-6*uctfic*(30.0e0*n_tf)
- acc22514 = fkind*acc22514 ",million
+ acc22514 = fkind*acc22514 ",million
44,acc22515,c,TF_coil_bussing_cost_(M$),FusionFunc," if i_tf_sup == 1:
acc22515 = 1.0e-6*ucbus*cpttf*tfbusl
else:
acc22515 = 1.0e-6*uctfbus*tfbusmas
- acc22515 = fkind*acc22515",million
-45,acc22521,c,PF_coil_power_supplies_cost_(M$),FusionFunc,,million
+ acc22515 = fkind*acc22515",million
+45,acc22521,c,PF_coil_power_supplies_cost_(M$),FusionFunc,,million
46,acc22522,c,PF_coil_instrumentation_and_control_(M$),FusionFunc,"acc22522 = 1.0e-6*ucpfic*pfckts*30.0e0
- acc22522 = fkind*acc22522",million
+ acc22522 = fkind*acc22522",million
47,acc22523,c,PF_coil_bussing_cost_(M$),FusionFunc,"acc22523 = 1.0e-6*ucpfb*spfbusl*acptmax
- acc22523 = fkind*acc22523",million
+ acc22523 = fkind*acc22523",million
48,acc22524,c,PF_coil_burn_power_supplies_cost_(M$),FusionFunc,"if pfckts == 0:
acc22524 = 0.0e0
else:
acc22524 = 1.0e-6*ucpfbs*pfckts*(srcktpm/pfckts)**0.7e0
- acc22524 = fkind*acc22524",million
+ acc22524 = fkind*acc22524",million
49,acc22525,c,PF_coil_breakers_cost_(M$),FusionFunc,"acc22525 = 1.0e-6*ucpfbk*pfckts*((acptmax*vpfskv)**0.7e0)
- acc22525 = fkind*acc22525",million
+ acc22525 = fkind*acc22525",million
50,acc22526,c,PF_coil_dump_resistors_cost_(M$),FusionFunc,"acc22526 = 1.0e-6*ucpfdr1*ensxpfm
- acc22526 = fkind*acc22526",million
+ acc22526 = fkind*acc22526",million
51,acc22527,c,PF_coil_ac_breakers_cost_(M$),FusionFunc," acc22527 = 1.0e-6*ucpfcb*pfckts
- acc22527 = fkind*acc22527",million
+ acc22527 = fkind*acc22527",million
52,acc2253,c,"Total,_energy_storage_cost_(M$)",FusionFunc,"if lpulse == 1:
if istore == 1:
acc2253 = 0.1e0
@@ -218,51 +218,51 @@ ind,alg_name,alg_for,alg_description,alg_python,alg_formulation,alg_units
acc2253 = ucblss*(pthermmw * 1.0e6)*tdown/(shcss*dtstor)
if istore < 3:
acc2253 = acc2253*pnetelmw / 1200.0e0
- acc2253 = acc2253*1.36e0",million
+ acc2253 = acc2253*1.36e0",million
53,accpp,c,Pumps_and_piping_system_cost_(M$),FusionFunc,"accpp = 1.0e-6*uchts[coolwh-1]*((1.0e6*pfwdiv)**exphts+
(1.0e6*pnucblkt)**exphts+(1.0e6*pnucshld)**exphts)
- accpp =fkind*accpp*cmlsa[lsa - 1]",million
+ accpp =fkind*accpp*cmlsa[lsa - 1]",million
54,acchx,c,Primary_heat_exchanger_cost_(M$),FusionFunc,"acchx = 1.0e-6*ucphx*nphx*(1.0e6*pthermmw/nphx)**exphts
- acchx =fkind*acchx*cmlsa[lsa - 1]",million
+ acchx =fkind*acchx*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+
(1.0e6*vachtmw)**exphts+(1.0e6*trithtmw)**exphts+(1.0e6*fachtmw)**exphts))
if ife == 1:
acccppa = acccppa+1.0e-6*ucahts*((1.0e6*tdspmw)**exphts
+ (1.0e6*tfacmw)**exphts)
- acccppa =fkind*acccppa*cmlsa[lsa - 1]",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,,million
+ acccppa =fkind*acccppa*cmlsa[lsa - 1]",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,,million
58,acc2271,c,Fuelling_system_cost_(M$),FusionFunc,"acc2271 = 1.0e-6*ucf1
- acc2271 = fkind*acc2271",million
+ acc2271 = fkind*acc2271",million
59,acc2272,c,Fuel_processing_and_purification_cost_(M$),FusionFunc,"if ife == 1:
targtm = (gain*edrive*3.0e0*1.67e-27*1.0e3)/(1.602e-19 * 17.6e6 * fburn)
wtgpd = targtm*reprat*86400.0e0
else:
wtgpd = 2.0e0*rndfuel*afuel*umass*1000.0e0*86400.0e0
acc2272 = 1.0e-6*ucfpr*(0.5e0+0.5e0*(wtgpd/60.0e0)**0.67e0)
- acc2272 = fkind*acc2272",million
+ acc2272 = fkind*acc2272",million
60,acc2273,c,Atmospheric_recovery_systems_cost_(M$),FusionFunc,"if ftrit > 1.0e-3:
acc2273 = (1.0e-6*ucdtc*((cfrht / 1.0e4) ** 0.6e0*(volrci+wsvol)))
else:
acc2273 = 0.0e0
- acc2273 = fkind*acc2273",million
+ acc2273 = fkind*acc2273",million
61,acc2274,c,Nuclear_building_ventilation_cost_(M$),FusionFunc,"acc2274 = 1.0e-6*ucnbv*(volrci+wsvol)**0.8e0
- acc2274 =fkind*acc2274",million
+ acc2274 =fkind*acc2274",million
62,acc228,c,Instrumentation_and_control_cost_(M$),FusionFunc,"acc228 = 1.0e-6*uciac
- acc228 = fkind*acc228",million
+ acc228 = fkind*acc228",million
63,acc229,c,Maintenance_equipment_cost_(M$),FusionFunc,"acc229 = 1.0e-6*ucme
- acc229 = fkind*acc229",million
+ acc229 = fkind*acc229",million
64,acc23,c,Turbine_plant_equipment_cost_(M$),FusionFunc,"if ireactor == 1:
- 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
+ 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))
- acc242 = acc242 * cmlsa[lsa - 1]",million
-67,acc243,c,Low_voltage_equipment_cost_(M$),FusionFunc,,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
+ acc242 = acc242 * cmlsa[lsa - 1]",million
+67,acc243,c,Low_voltage_equipment_cost_(M$),FusionFunc,,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:
pwrrej = powfmw+pinjwp+tfcmw
else:
pwrrej = pthermmw - pgrossmw
- acc26 = (1.0e-6*uchrs*pwrrej)/ 2300.0e0*cmlsa[lsa - 1]",million
+ acc26 = (1.0e-6*uchrs*pwrrej)/ 2300.0e0*cmlsa[lsa - 1]",million
\ No newline at end of file