diff --git a/docs/.doctrees/common/developer_manual/how_to_build/desktop/how_to_build.doctree b/docs/.doctrees/common/developer_manual/how_to_build/desktop/how_to_build.doctree
index 1acbee84..3b5d88aa 100644
Binary files a/docs/.doctrees/common/developer_manual/how_to_build/desktop/how_to_build.doctree and b/docs/.doctrees/common/developer_manual/how_to_build/desktop/how_to_build.doctree differ
diff --git a/docs/.doctrees/common/front-matter/cite.doctree b/docs/.doctrees/common/front-matter/cite.doctree
index f16963b0..ad194332 100644
Binary files a/docs/.doctrees/common/front-matter/cite.doctree and b/docs/.doctrees/common/front-matter/cite.doctree differ
diff --git a/docs/.doctrees/common/reqments/All-Requirements_allCols.doctree b/docs/.doctrees/common/reqments/All-Requirements_allCols.doctree
new file mode 100644
index 00000000..e754fa7f
Binary files /dev/null and b/docs/.doctrees/common/reqments/All-Requirements_allCols.doctree differ
diff --git a/docs/.doctrees/common/reqments/Common.doctree b/docs/.doctrees/common/reqments/Common.doctree
index a5bf06a7..359a9510 100644
Binary files a/docs/.doctrees/common/reqments/Common.doctree and b/docs/.doctrees/common/reqments/Common.doctree differ
diff --git a/docs/.doctrees/common/reqments/key.doctree b/docs/.doctrees/common/reqments/key.doctree
index daba94cb..11176979 100644
Binary files a/docs/.doctrees/common/reqments/key.doctree and b/docs/.doctrees/common/reqments/key.doctree differ
diff --git a/docs/.doctrees/common/reqments/reqPelicun.doctree b/docs/.doctrees/common/reqments/reqPelicun.doctree
index 4c5e71c0..ab11a4ee 100644
Binary files a/docs/.doctrees/common/reqments/reqPelicun.doctree and b/docs/.doctrees/common/reqments/reqPelicun.doctree differ
diff --git a/docs/.doctrees/common/reqments/reqQUOFE.doctree b/docs/.doctrees/common/reqments/reqQUOFE.doctree
index 6d7892df..20ee564b 100644
Binary files a/docs/.doctrees/common/reqments/reqQUOFE.doctree and b/docs/.doctrees/common/reqments/reqQUOFE.doctree differ
diff --git a/docs/.doctrees/common/technical_manual/desktop/SimCenterUQTechnical.doctree b/docs/.doctrees/common/technical_manual/desktop/SimCenterUQTechnical.doctree
index 3a5c37d1..0592671c 100644
Binary files a/docs/.doctrees/common/technical_manual/desktop/SimCenterUQTechnical.doctree and b/docs/.doctrees/common/technical_manual/desktop/SimCenterUQTechnical.doctree differ
diff --git a/docs/.doctrees/common/user_manual/about/quoFEM/quoFEMtutorial.doctree b/docs/.doctrees/common/user_manual/about/quoFEM/quoFEMtutorial.doctree
index 35a4a2e3..55be330c 100644
Binary files a/docs/.doctrees/common/user_manual/about/quoFEM/quoFEMtutorial.doctree and b/docs/.doctrees/common/user_manual/about/quoFEM/quoFEMtutorial.doctree differ
diff --git a/docs/.doctrees/common/user_manual/examples/desktop/hdro-0001/README.doctree b/docs/.doctrees/common/user_manual/examples/desktop/hdro-0001/README.doctree
index 31a2cbfa..98b7de37 100644
Binary files a/docs/.doctrees/common/user_manual/examples/desktop/hdro-0001/README.doctree and b/docs/.doctrees/common/user_manual/examples/desktop/hdro-0001/README.doctree differ
diff --git a/docs/.doctrees/common/user_manual/installation/desktop/install_Windows.doctree b/docs/.doctrees/common/user_manual/installation/desktop/install_Windows.doctree
index 5f1ed2b8..b298813f 100644
Binary files a/docs/.doctrees/common/user_manual/installation/desktop/install_Windows.doctree and b/docs/.doctrees/common/user_manual/installation/desktop/install_Windows.doctree differ
diff --git a/docs/.doctrees/common/user_manual/installation/desktop/install_macOS.doctree b/docs/.doctrees/common/user_manual/installation/desktop/install_macOS.doctree
index 08b55571..440bf65d 100644
Binary files a/docs/.doctrees/common/user_manual/installation/desktop/install_macOS.doctree and b/docs/.doctrees/common/user_manual/installation/desktop/install_macOS.doctree differ
diff --git a/docs/.doctrees/common/user_manual/releases/eeCapabilities.doctree b/docs/.doctrees/common/user_manual/releases/eeCapabilities.doctree
index a36f00cf..21b48af8 100644
Binary files a/docs/.doctrees/common/user_manual/releases/eeCapabilities.doctree and b/docs/.doctrees/common/user_manual/releases/eeCapabilities.doctree differ
diff --git a/docs/.doctrees/common/user_manual/releases/eePlans.doctree b/docs/.doctrees/common/user_manual/releases/eePlans.doctree
index 392d66fb..e5d5aa2d 100644
Binary files a/docs/.doctrees/common/user_manual/releases/eePlans.doctree and b/docs/.doctrees/common/user_manual/releases/eePlans.doctree differ
diff --git a/docs/.doctrees/common/user_manual/releases/eeReleaseNotes.doctree b/docs/.doctrees/common/user_manual/releases/eeReleaseNotes.doctree
index 4bd8a427..bd91e6e4 100644
Binary files a/docs/.doctrees/common/user_manual/releases/eeReleaseNotes.doctree and b/docs/.doctrees/common/user_manual/releases/eeReleaseNotes.doctree differ
diff --git a/docs/.doctrees/common/user_manual/usage/desktop/SimCenterUQSurrogate.doctree b/docs/.doctrees/common/user_manual/usage/desktop/SimCenterUQSurrogate.doctree
index 7f08fcbd..bb655c89 100644
Binary files a/docs/.doctrees/common/user_manual/usage/desktop/SimCenterUQSurrogate.doctree and b/docs/.doctrees/common/user_manual/usage/desktop/SimCenterUQSurrogate.doctree differ
diff --git a/docs/.doctrees/common/user_manual/usage/desktop/UQ.doctree b/docs/.doctrees/common/user_manual/usage/desktop/UQ.doctree
index 7d23b9a7..097c6575 100644
Binary files a/docs/.doctrees/common/user_manual/usage/desktop/UQ.doctree and b/docs/.doctrees/common/user_manual/usage/desktop/UQ.doctree differ
diff --git a/docs/.doctrees/common/user_manual/usage/desktop/quoFEM/FEM.doctree b/docs/.doctrees/common/user_manual/usage/desktop/quoFEM/FEM.doctree
index 93f5dca0..385ebf18 100644
Binary files a/docs/.doctrees/common/user_manual/usage/desktop/quoFEM/FEM.doctree and b/docs/.doctrees/common/user_manual/usage/desktop/quoFEM/FEM.doctree differ
diff --git a/docs/.doctrees/common/user_manual/usage/desktop/usage.doctree b/docs/.doctrees/common/user_manual/usage/desktop/usage.doctree
index ceebf434..478dac67 100644
Binary files a/docs/.doctrees/common/user_manual/usage/desktop/usage.doctree and b/docs/.doctrees/common/user_manual/usage/desktop/usage.doctree differ
diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle
index 92b9212a..25d9b977 100644
Binary files a/docs/.doctrees/environment.pickle and b/docs/.doctrees/environment.pickle differ
diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree
index 97dea45c..c4a97861 100644
Binary files a/docs/.doctrees/index.doctree and b/docs/.doctrees/index.doctree differ
diff --git a/docs/_images/9Story.png b/docs/_images/9Story.png
new file mode 100644
index 00000000..e9b3b121
Binary files /dev/null and b/docs/_images/9Story.png differ
diff --git a/docs/_images/9story-EVENT.png b/docs/_images/9story-EVENT.png
new file mode 100644
index 00000000..9a2958b5
Binary files /dev/null and b/docs/_images/9story-EVENT.png differ
diff --git a/docs/_images/9story-FEM.png b/docs/_images/9story-FEM.png
new file mode 100644
index 00000000..81418b17
Binary files /dev/null and b/docs/_images/9story-FEM.png differ
diff --git a/docs/_images/9story-GI.png b/docs/_images/9story-GI.png
new file mode 100644
index 00000000..847f1ca7
Binary files /dev/null and b/docs/_images/9story-GI.png differ
diff --git a/docs/_images/9story-RES1.png b/docs/_images/9story-RES1.png
new file mode 100644
index 00000000..806eaa84
Binary files /dev/null and b/docs/_images/9story-RES1.png differ
diff --git a/docs/_images/9story-RES2.png b/docs/_images/9story-RES2.png
new file mode 100644
index 00000000..f607de7c
Binary files /dev/null and b/docs/_images/9story-RES2.png differ
diff --git a/docs/_images/9story-RES6.png b/docs/_images/9story-RES6.png
new file mode 100644
index 00000000..05633a2b
Binary files /dev/null and b/docs/_images/9story-RES6.png differ
diff --git a/docs/_images/9story-RV.png b/docs/_images/9story-RV.png
new file mode 100644
index 00000000..c05c5396
Binary files /dev/null and b/docs/_images/9story-RV.png differ
diff --git a/docs/_images/9story-SIM1.png b/docs/_images/9story-SIM1.png
new file mode 100644
index 00000000..12f1347c
Binary files /dev/null and b/docs/_images/9story-SIM1.png differ
diff --git a/docs/_images/9story-SIM2.png b/docs/_images/9story-SIM2.png
new file mode 100644
index 00000000..3eb8f960
Binary files /dev/null and b/docs/_images/9story-SIM2.png differ
diff --git a/docs/_images/9story-UQ.png b/docs/_images/9story-UQ.png
new file mode 100644
index 00000000..39e20c60
Binary files /dev/null and b/docs/_images/9story-UQ.png differ
diff --git a/docs/_images/AppleSecurity.png b/docs/_images/AppleSecurity.png
new file mode 100644
index 00000000..7a2322e8
Binary files /dev/null and b/docs/_images/AppleSecurity.png differ
diff --git a/docs/_images/SimUQ_surrogate_MF1.png b/docs/_images/SimUQ_surrogate_MF1.png
deleted file mode 100644
index 3e5b0255..00000000
Binary files a/docs/_images/SimUQ_surrogate_MF1.png and /dev/null differ
diff --git a/docs/_images/SimUQ_surrogate_MF2.png b/docs/_images/SimUQ_surrogate_MF2.png
deleted file mode 100644
index d364840b..00000000
Binary files a/docs/_images/SimUQ_surrogate_MF2.png and /dev/null differ
diff --git a/docs/_images/SimUQ_surrogate_MF3.png b/docs/_images/SimUQ_surrogate_MF3.png
deleted file mode 100644
index 595550ab..00000000
Binary files a/docs/_images/SimUQ_surrogate_MF3.png and /dev/null differ
diff --git a/docs/_images/Surrogate5_SimUQ.png b/docs/_images/Surrogate5_SimUQ.png
deleted file mode 100644
index 2aecfd72..00000000
Binary files a/docs/_images/Surrogate5_SimUQ.png and /dev/null differ
diff --git a/docs/_images/Surrogate6_SimUQ.png b/docs/_images/Surrogate6_SimUQ.png
deleted file mode 100644
index 15c58f20..00000000
Binary files a/docs/_images/Surrogate6_SimUQ.png and /dev/null differ
diff --git a/docs/_images/Surrogate_EEUQ1.png b/docs/_images/Surrogate_EEUQ1.png
new file mode 100644
index 00000000..af295153
Binary files /dev/null and b/docs/_images/Surrogate_EEUQ1.png differ
diff --git a/docs/_images/Surrogate_Hetero.png b/docs/_images/Surrogate_Hetero.png
deleted file mode 100644
index 4c8107cf..00000000
Binary files a/docs/_images/Surrogate_Hetero.png and /dev/null differ
diff --git a/docs/_sources/common/developer_manual/how_to_build/desktop/how_to_build.rst.txt b/docs/_sources/common/developer_manual/how_to_build/desktop/how_to_build.rst.txt
index 06f592d8..0933af28 100644
--- a/docs/_sources/common/developer_manual/how_to_build/desktop/how_to_build.rst.txt
+++ b/docs/_sources/common/developer_manual/how_to_build/desktop/how_to_build.rst.txt
@@ -17,7 +17,7 @@ Install Dependencies
First, ensure the following dependencies are installed:
-* **C++17 compliant compiler**: many of the workflow applications included use C++17 features; consequently, they may need a newer C++17 compliant compiler. For Windows users, MSVC in `Visual Studio (Community Edition) `_ can be used. Some extensions of Visual Studio are also needed: Open Visual Studio Installer, go to Installed / More / Modify, under the Workloads tab, check Desktop development with C++ and Visual Studio extension development; under the Individual components tab, check C++ CMake tools for windows. Then click Modify.
+* **C++17 compliant compiler**: many of the workflow applications included use C++17 features; consequently, they may need a newer C++17 compliant compiler. For Windows users, MSVC in `Visual Studio 2019 (Community Edition) `_ can be used. Some extensions of Visual Studio are also needed: Open Visual Studio Installer, go to Installed / More / Modify, under the Workloads tab, check Desktop development with C++ and Visual Studio extension development; under the Individual components tab, check C++ CMake tools for windows. Then click Modify.
* **OpenSees**: The workflow applications require an installation of `OpenSees `_ to carry out a structural analysis using the finite element method.
diff --git a/docs/_sources/common/front-matter/cite.rst.txt b/docs/_sources/common/front-matter/cite.rst.txt
index afc6eb20..9519a69e 100644
--- a/docs/_sources/common/front-matter/cite.rst.txt
+++ b/docs/_sources/common/front-matter/cite.rst.txt
@@ -35,8 +35,8 @@ How To Cite
1. Frank McKenna, Sang-ri Yi, Aakash Bangalore Satish, Kuanshi Zhong, Adam Zsarnoczay, & Wael Elhaddad. (2023).
- NHERI-SimCenter/quoFEM: Version 3.3.0 (v3.3.0). Zenodo. https://doi.org/10.5281/zenodo.7786857
- Zenodo: `DOI: 10.5281/zenodo.6404498 `_
+ NHERI-SimCenter/quoFEM: Version 3.3.0 (v3.3.0).
+ Zenodo. `DOI: 10.5281/zenodo.6404498 `_
2. Gregory G. Deierlein, Frank McKenna, Adam Zsarnóczay, Tracy Kijewski-Correa, Ahsan Kareem,
diff --git a/docs/_sources/common/reqments/All-Requirements_allCols.rst.txt b/docs/_sources/common/reqments/All-Requirements_allCols.rst.txt
new file mode 100644
index 00000000..d4dd9fe9
--- /dev/null
+++ b/docs/_sources/common/reqments/All-Requirements_allCols.rst.txt
@@ -0,0 +1,224 @@
+The following is the list of all requirements across all the tools. It is helpful to view an abstract hierarchy of the tools, showing **R2D** at the top and the components at the bottom. Each application pulls in many of the requirements from the others. For Example PBE, builds upon EE-UQ. It has it;'s own requirements, i.e. DL, but includes the loading, modeling and analysis requirements from EE-UQ. It specializes the UQ requirement, in that it only incorporates the sampling option. One set of requirements not shown in the figure is CR, a listing of all the common functionalty required of all the applications.
+
+
+R2D
+---
+
+.. csv-filter:: Requirements - R2D
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :file: R2D.csv
+
+.. include:: key.rst
+
+PBE
+---
+
+.. csv-filter:: Requirements - PBE
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :file: generalPBE.csv
+
+.. include:: key.rst
+
+WE-UQ Requirements
+------------------
+
+.. csv-filter:: Requirements - WE
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :file: generalWE.csv
+
+.. include:: key.rst
+
+
+Hydro-UQ Requirements
+---------------------
+
+.. csv-filter:: Requirements - H
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :file: generalHydro.csv
+
+.. include:: key.rst
+
+
+EE-UQ Requirements
+------------------
+
+.. csv-filter:: Requirements - EE
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :file: generalEEUQ.csv
+
+.. include:: key.rst
+
+quoFEM Requirements
+-------------------
+
+.. csv-filter:: Requirements - QF
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :file: generalQUO-FEM.csv
+
+.. include:: key.rst
+
+
+Earthquake Loading Requirements
+-------------------------------
+
+.. csv-filter:: Requirements - EL
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Loading.csv
+ :include: {0: 'EL\..*'}
+
+.. include:: key.rst
+
+
+Wind Loading Requirements
+-------------------------
+
+.. csv-filter:: Requirements - WL
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Loading.csv
+ :include: {0: 'WL\..*'}
+
+.. include:: key.rst
+
+Surge/Tsunami Loading Requirements
+----------------------------------
+
+.. csv-filter:: Requirements - HL
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10
+ :included_cols: 0, 1, 2, 3, 4
+ :file: HydroLoading.csv
+
+.. include:: key.rst
+
+UQ Requirements
+---------------
+
+.. csv-filter:: Requirements - Uncertainty Quantification Methods and Variables
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Uncertainty.csv
+
+
+.. include:: key.rst
+
+
+RV Requirements
+---------------
+
+.. csv-filter:: Requirements - Random Variables
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/RandomVariables.csv
+
+.. include:: key.rst
+
+
+Modeling Requirements
+---------------------
+
+.. csv-filter:: Requirements - MOD
+ :header: "#", "Description", "Source", "Priority", "Status"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Modeling.csv
+
+.. include:: key.rst
+
+Analysis Requirements
+---------------------
+
+.. csv-filter:: Requirements - ANA
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Analysis.csv
+
+.. include:: key.rst
+
+
+Damage & Loss Requirements
+--------------------------
+
+.. csv-filter:: Requirements - DL
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Damage.csv
+ :include: {0: 'DL\..*'}
+
+.. include:: key.rst
+
+
+Recovery Requirements
+---------------------
+
+.. csv-filter:: Requirements - REC
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Recovery.csv
+
+.. include:: key.rst
+
+
+Common Research Application Requirements
+----------------------------------------
+
+.. csv-filter:: Requirements - CR
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Common.csv
+
+.. include:: key.rst
+
+
+BRAILS
+------
+
+.. csv-filter:: Requirements - BR
+ :header: "#", "Description", "Source", "Priority", "Status", "WBS"
+ :widths: 10, 50, 10, 10, 10, 10
+ :file: BRAILS.csv
+
+.. include:: key.rst
+
+
+PELICUN
+-------
+
+.. csv-filter:: Requirements - P
+ :header: "#", "Description", "Source", "Priority", "Status", "WBS"
+ :widths: 10, 50, 10, 10, 10, 10
+ :file: requirements_pelicun_general.csv
+
+.. include:: key.rst
+
+BE Database
+-----------
+
+.. csv-filter:: Requirements - BE
+ :header: "#", "Description", "Source", "Priority", "Status", "WBS"
+ :widths: 10, 50, 10, 10, 10, 10
+ :file: BE.csv
+
+.. include:: key.rst
+
+DL Database
+-----------
+
+
+.. csv-filter:: Requirements - DLD
+ :header: "#", "Description", "Source", "Priority", "Status", "quoFEM", "EE-UQ", "WE-UQ", "PBE", "R2D"
+ :widths: 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10
+ :file: _out/Damage.csv
+ :include: {0: 'DLD.*'}
+
+.. include:: key.rst
+
+
+
+
diff --git a/docs/_sources/common/reqments/key.rst.txt b/docs/_sources/common/reqments/key.rst.txt
index 754deeff..868800d6 100644
--- a/docs/_sources/common/reqments/key.rst.txt
+++ b/docs/_sources/common/reqments/key.rst.txt
@@ -2,3 +2,6 @@
| Source: GC=Needed for Grand Challenges, SP=Senior Personnel, UF=User Feedback
| Priority: M=Mandatory, D=Desirable, P=Possible Future
| Status: Implements, InProgress and Blank (i.e. not started)
+|
+|
+|
diff --git a/docs/_sources/common/reqments/reqPelicun.rst.txt b/docs/_sources/common/reqments/reqPelicun.rst.txt
index 8a76cd2e..59ea4984 100644
--- a/docs/_sources/common/reqments/reqPelicun.rst.txt
+++ b/docs/_sources/common/reqments/reqPelicun.rst.txt
@@ -26,8 +26,8 @@ General
-------
.. csv-table:: Requirements - General
- :header: "#", "Description", "Source", "Priority", "Version"
- :widths: 10, 60, 10, 10, 10
+ :header: "#", "Description", "Source", "Priority", "Version", "WBS"
+ :widths: 10, 60, 10, 10, 10, 10
:file: requirements_pelicun_general.csv
.. include:: key.rst
@@ -36,8 +36,8 @@ Databases & Files
-----------------
.. csv-table:: Requirements - Databases & Files
- :header: "#", "Description", "Source", "Priority", "Version"
- :widths: 10, 60, 10, 10, 10
+ :header: "#", "Description", "Source", "Priority", "Version", "WBS"
+ :widths: 10, 60, 10, 10, 10, 10
:file: requirements_pelicun_db.csv
.. include:: key.rst
diff --git a/docs/_sources/common/technical_manual/desktop/SimCenterUQTechnical.rst.txt b/docs/_sources/common/technical_manual/desktop/SimCenterUQTechnical.rst.txt
index 3bd356d4..7fd92128 100644
--- a/docs/_sources/common/technical_manual/desktop/SimCenterUQTechnical.rst.txt
+++ b/docs/_sources/common/technical_manual/desktop/SimCenterUQTechnical.rst.txt
@@ -130,9 +130,8 @@ Aggregated sensitivity index
When the quantities of interest (QoI) are given as a vector or field variable, aggregated sensitivity index can provide insight into the system's overall sensitivity characteristics. The aggregated sensitivity index achieves this by calculating the weighted average of the sensitivity indices of each QoI component, where the weights are proportional to the variances of the components [Jung2022]_. Component sensitivity indices are useful for visualization, while the aggregated sensitivity index gives instant intuition on how much each variable influences the system response overall. See :ref:`this example`.
-
.. [Jung2022]
- To be added
+ Jung, W., & Taflanidis, A. A. (2023). Efficient global sensitivity analysis for high-dimensional outputs combining data-driven probability models and dimensionality reduction. *Reliability Engineering & System Safety*, 231, 108805.
Global surrogate modeling
@@ -220,43 +219,61 @@ Dealing with noisy measurements
-
Construction of surrogate model
---------------------------------
Input-Output settings
^^^^^^^^^^^^^^^^^^^^^
-+-----------+----------------------------------------------------------+-------------------------------------------+
-| | Input (RV) type | Output (QoI) type |
-+===========+==========================================================+===========================================+
-| **Case1** | Adaptive Design of Experiments (DoE) : | Simulator : |
-| | | |
-| | a bounded variable space of :math:`\boldsymbol{x}` | :math:`\boldsymbol{y}=f(\boldsymbol{x})` |
-+-----------+------------------------------------------+---------------+-------------------------------------------+
-| **Case2** | Data set : | Simulator : |
-| | | |
-| | {:math:`\boldsymbol{x_1,x_2, ... ,x_N}`} | :math:`\boldsymbol{y}=f(\boldsymbol{x})` |
-+-----------+----------------------------------------------------------+-------------------------------------------+
-| **Case3** | Data set : | Data set : |
-| | | |
-| | {:math:`\boldsymbol{x_1,x_2, ... ,x_N}`} | {:math:`\boldsymbol{y_1,y_2, ... ,y_N}`} |
-+-----------+----------------------------------------------------------+-------------------------------------------+
+.. only:: quoFEM_app
+
+ +-----------+----------------------------------------------------------+-------------------------------------------+
+ | | Input (RV) type | Output (QoI) type |
+ +===========+==========================================================+===========================================+
+ | **Case1** | Adaptive Design of Experiments (DoE) : | Simulator : |
+ | | | |
+ | | a bounded variable space of :math:`\boldsymbol{x}` | :math:`\boldsymbol{y}=f(\boldsymbol{x})` |
+ +-----------+------------------------------------------+---------------+-------------------------------------------+
+ | **Case2** | Data set : | Simulator : |
+ | | | |
+ | | {:math:`\boldsymbol{x_1,x_2, ... ,x_N}`} | :math:`\boldsymbol{y}=f(\boldsymbol{x})` |
+ +-----------+----------------------------------------------------------+-------------------------------------------+
+ | **Case3** | Data set : | Data set : |
+ | | | |
+ | | {:math:`\boldsymbol{x_1,x_2, ... ,x_N}`} | {:math:`\boldsymbol{y_1,y_2, ... ,y_N}`} |
+ +-----------+----------------------------------------------------------+-------------------------------------------+
+
+.. only:: EEUQ_app
+
+ +-----------+----------------------------------------------------------+-------------------------------------------+
+ | | Input (RV) type | Output (QoI) type |
+ +===========+==========================================================+===========================================+
+ | **Case1** | Adaptive Design of Experiments (DoE) : | Simulator : |
+ | | | |
+ | | a bounded variable space of :math:`\boldsymbol{x}` | :math:`\boldsymbol{y}=f(\boldsymbol{x})` |
+ +-----------+------------------------------------------+---------------+-------------------------------------------+
+
+
+.. only:: quoFEM_app
+
+ User have the following options:
+
+ * **Case1** : users can provide a range of input variables (bounds) and a simulation model. After initial space-filling phase using Latin hypercube sampling (LHS), **adaptive design of experiment (DoE)** is activated. Given current predictions, the next optimal simulation point is optimized such that expected gain is maximized.
+ * **Case2** : users can provide pairs of input-output dataset
+ * **Case3** : users can provide input data points and a simulation model
-User have the following options:
+.. only:: EEUQ_app
-* **Case1** : users can provide a range of input variables (bounds) and a simulation model. After initial space-filling phase using Latin hypercube sampling (LHS), **adaptive design of experiment (DoE)** is activated. Given current predictions, the next optimal simulation point is optimized such that expected gain is maximized.
-* **Case2** : users can provide pairs of input-output dataset
-* **Case3** : users can provide input data points and a simulation model
+ User have the following option:
+ * **Case1** : users can provide a range of input variables (bounds) and a simulation model. After initial space-filling phase using Latin hypercube sampling (LHS), **adaptive design of experiment (DoE)** is activated. Given current predictions, the next optimal simulation point is optimized such that expected gain is maximized.
Kernel and basis functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The covariance kernel of the outcome process is unknown in most practical applications. Therefore, the mathematical form of the kernel is first assumed, and its parameters are calibrated based on the observation data. Followings are some of the popular stationary covariance kernels.
-
* **Radial-basis function (RBF)**
| Radial-basis function, also known as squared-exponential or Gaussian kernel, is one of the most widely used covariance kernel.
@@ -316,63 +333,68 @@ Once the kernel form is selected, the parameters are calibrated to maximize the
Adaptive Design of Experiments (DoE)
-------------------------------------
-In the case where bounds of input variables and a simulator model is provided (Case 1), model evaluation points can be selected by space-filling methods, e.g. Latin hyper cube sampling (LHS). This is non-adaptive Design of Experiments (DoE) in a sense that the whole samples can be located before running any simulations. On the other hand, the number of model evaluations can be reduced by selecting evaluation points *adaptively* after each run to get the best model improvements.
+.. only:: quoFEM_app
-.. _figGP_DoE1:
+ In the case where bounds of input variables and a simulator model is provided (Case 1), model evaluation points can be selected by space-filling methods, e.g. Latin hyper cube sampling (LHS). This is non-adaptive Design of Experiments (DoE) in a sense that the whole samples can be located before running any simulations. On the other hand, the number of model evaluations can be reduced by selecting evaluation points *adaptively* after each run to get the best model improvements.
-.. figure:: figures/UQ/GPtmp1.png
- :align: center
- :figclass: align-center
- :width: 600
+ .. _figGP_DoE1:
- Two optimizations in design of experiments
+ .. figure:: figures/UQ/GPtmp1.png
+ :align: center
+ :figclass: align-center
+ :width: 600
+ Two optimizations in design of experiments
-However, as shown in the figure, adaptive DoE requires multiple optimization turns to find the optimal surrogate model parameters as well as the next optimal DoE. Therefore, it is noted that the adaptive DoE is efficient only when model evaluation time is significantly greater than the optimization time.
-**Adaptive DoE algorithm: IMSEw, MMSEw** ([Kyprioti2020]_)
+ However, as shown in the figure, adaptive DoE requires multiple optimization turns to find the optimal surrogate model parameters as well as the next optimal DoE. Therefore, it is noted that the adaptive DoE is efficient only when model evaluation time is significantly greater than the optimization time.
-The optimal design points can be selected by finding arguments that maximize (or minimize) the so-called score function. The score function in global surrogate modeling is often designed to predict the amount of reduced (or remaining) variance and bias after adding the new sample points. While there are many variations of the score function [Fuhg2020]_, in quoFEM, the modified integrated mean squared error (IMSE) from Kyprioti *et al.* (2020) is introduced as:
+ **Adaptive DoE algorithm: IMSEw, MMSEw** ([Kyprioti2020]_)
-.. math::
- :label: IMSE
+ The optimal design points can be selected by finding arguments that maximize (or minimize) the so-called score function. The score function in global surrogate modeling is often designed to predict the amount of reduced (or remaining) variance and bias after adding the new sample points. While there are many variations of the score function [Fuhg2020]_, in quoFEM, the modified integrated mean squared error (IMSE) from Kyprioti *et al.* (2020) is introduced as:
+
+ .. math::
+ :label: IMSE
- \begin{align*}
- \rm{IMSE}_w(\boldsymbol{X},\boldsymbol{x_{new}}) &= \int_{\boldsymbol{X_d}} \phi^\rho\boldsymbol{\sigma_n}^2(\boldsymbol{x}|\boldsymbol{X,x_{new}})dx
- \end{align*}
+ \begin{align*}
+ \rm{IMSE}_w(\boldsymbol{X},\boldsymbol{x_{new}}) &= \int_{\boldsymbol{X_d}} \phi^\rho\boldsymbol{\sigma_n}^2(\boldsymbol{x}|\boldsymbol{X,x_{new}})dx
+ \end{align*}
-where :math:`\phi` is bias measure from leave-one-out cross validation (LOOCV) analysis, :math:`\rho` is a weighting coefficient, and :math:`\boldsymbol{\sigma_n}^2(\boldsymbol{x}|\boldsymbol{X,x_{new}})` is the predictive variance after additional observation :math:`x_{new}` [Kyprioti2020]_. To find the sample location that gives minimum IMSE value, two step screening-clustering algorithm is implemented.
+ where :math:`\phi` is bias measure from leave-one-out cross validation (LOOCV) analysis, :math:`\rho` is a weighting coefficient, and :math:`\boldsymbol{\sigma_n}^2(\boldsymbol{x}|\boldsymbol{X,x_{new}})` is the predictive variance after additional observation :math:`x_{new}` [Kyprioti2020]_. To find the sample location that gives minimum IMSE value, two step screening-clustering algorithm is implemented.
-.. _figGP_DoE2:
+ .. _figGP_DoE2:
-.. figure:: figures/UQ/GPtmp2.png
- :align: center
- :figclass: align-center
- :width: 600
+ .. figure:: figures/UQ/GPtmp2.png
+ :align: center
+ :figclass: align-center
+ :width: 600
- Adaptive DoE procedure by Kyprioti et al. (2020) [Kyprioti2020]_
+ Adaptive DoE procedure by Kyprioti et al. (2020) [Kyprioti2020]_
-**Adaptive DoE algorithm: Pareto**
+ **Adaptive DoE algorithm: Pareto**
-Alternatively, multiple design points can be selected by multi-objective optimization scheme. The variance mesure and bias measure defined by
+ Alternatively, multiple design points can be selected by multi-objective optimization scheme. The variance mesure and bias measure defined by
-.. math::
- :label: Pareto
+ .. math::
+ :label: Pareto
- \begin{align*}
- \rm{IMSE}_w(\boldsymbol{X},\boldsymbol{x_{new}}) &= \int_{\boldsymbol{X_d}} \phi^\rho\boldsymbol{\sigma_n}^2(\boldsymbol{x}|\boldsymbol{X,x_{new}})dx
- \end{align*}
+ \begin{align*}
+ \rm{IMSE}_w(\boldsymbol{X},\boldsymbol{x_{new}}) &= \int_{\boldsymbol{X_d}} \phi^\rho\boldsymbol{\sigma_n}^2(\boldsymbol{x}|\boldsymbol{X,x_{new}})dx
+ \end{align*}
-Adaptive DoE is terminated when one of the three conditions is met:
+ Adaptive DoE is terminated when one of the three conditions is met:
-* **Time**: analysis time exceeds a predefined (rough) time constraint
-* **Count**: number of model evaluation exceeds a predefined count constraint
-* **Accuracy**: accuracy measure of the model meets a predefined convergence level
+ * **Time**: analysis time exceeds a predefined (rough) time constraint
+ * **Count**: number of model evaluation exceeds a predefined count constraint
+ * **Accuracy**: accuracy measure of the model meets a predefined convergence level
+only:: EEUQ_app
+
+ Currently not supported in EE-UQ.
Verification of surrogate model
-------------------------------
@@ -381,7 +403,12 @@ Once the training is completed, the following three verification measures are pr
* **Leave-one-out cross-validation (LOOCV)**
- | LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` at each sample location :math:`\boldsymbol{x}_k` is obatined by the following procedure: A temporary surrogate model :math:`\hat{\boldsymbol{y}}=f^{sur}_{loo,k}(\boldsymbol{\boldsymbol{x}})` is constructed using the samples :math:`\{\boldsymbol{x}_1,\boldsymbol{x}_2,...,\boldsymbol{x}_{k-1},\boldsymbol{x}_{k+1},...,\boldsymbol{x}_N\}` and the calibrated parameters, and the prediction :math:`\hat{\boldsymbol{y}}_k=f^{sur}_{loo,k}(\boldsymbol{x}_k)` is compared with the exact outcome :math:`y_k=f(\boldsymbol{x}_k)`.
+ | LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` at each sample location :math:`\boldsymbol{x}_k` is obatined by the following procedure: A temporary surrogate model :math:`\hat{\boldsymbol{y}}=f^{sur}_{loo,k}(\boldsymbol{\boldsymbol{x}})` is constructed using the samples :math:`\{\boldsymbol{x}_1,\boldsymbol{x}_2,...,\boldsymbol{x}_{k-1},\boldsymbol{x}_{k+1},...,\boldsymbol{x}_N\}` and the calibrated parameters, and the prediction :math:`\hat{\boldsymbol{y}}_k=f^{sur}_{loo,k}(\boldsymbol{x}_k)` is compared with the exact outcome .
+
+
+We provide different verification measures for two different cases.
+
+(i) When nugget variance is low : The LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` is expected to match the exact outcome :math:`\boldsymbol{y_k}=f(\boldsymbol{x}_k)` when the surrogate model is well-trained. To quantify the goodness, R2 error, normalized root-mean-squared-error (NRMSE), and correlation coefficient are provided:
* **R2 error**
@@ -430,6 +457,19 @@ Once the training is completed, the following three verification measures are pr
Since these measures are calculated from the cross-validation predictions rather than external validation predictions, they can be biased, particularly when a **highly localized nonlinear range exists in the actual response surface** and those regions are not covered by the training samples.
+(ii) When nugget variance is high : The distance between LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` and the exact outcome :math:`\boldsymbol{y_k}=f(\boldsymbol{x}_k)` is expected to follow a normal distribution when the surrogate model is well-trained. To quantify the goodness, inter-quartile ratio (IQR) and Cramer-Von Mises statistics can be evaluated:
+
+ * **Inter-quartile ratio (IQR)**: IQR provides the ratio of the sample QoIs that lies in 25-75% LOOCV prediction bounds (interquartile range). The IQR values should theoretically approach 0.5 if the prediction is accurate.
+
+ * **Cramer-Von Mises statistics**: Cramer-Von Mises statistics calculates the normality score. The assumption of a GP is that the observations follow a normal distribution conditional on the input parameters. To assess the normality of the model predictions, the difference between the mean prediction :math:`\hat{y}_k` and the sample observation :math:`y_k` value is divided by the standard deviation prediction from surrogate :math:`\hat{\sigma}_{y,k}`:
+
+ .. math::
+ :label: normed
+
+ u_k = \frac{y_k-\hat{y}_k} {\hat{\sigma}_{y,k}}
+
+
+ If the values of :math:`{u_k}` follow standard normal distribution, the resulting surrogate model may be considered well-constructed. The Cramer-Von Mises test is calculated using the ``scipy.stats.cramervonmises`` function in the Python package Scipy, and the resulting p-value is displayed. Conventionally, if the p-value exceeds a significance threshold, e.g. 0.05, the null hypothesis that the samples are from a normal distribution is not rejected, meaning the samples may be considered to follow a Gaussian distribution.
.. [Rasmussen2006]
Rasmussen, C.E. and Williams, C.K. (2006). *Gaussian Process for Machine Learning*. Cambridge, MA: The MIT Press, 2006 (available on-line at http://www.gaussianprocess.org/gpml/)
diff --git a/docs/_sources/common/technical_manual/desktop/technical_manual.rst.txt b/docs/_sources/common/technical_manual/desktop/technical_manual.rst.txt
index 2b238f03..303c44bb 100644
--- a/docs/_sources/common/technical_manual/desktop/technical_manual.rst.txt
+++ b/docs/_sources/common/technical_manual/desktop/technical_manual.rst.txt
@@ -7,14 +7,16 @@ Technical Manual
:maxdepth: 1
uqTechnical
+ :EEUQ:SimCenterUQTechnical
+ :quoFEM:SimCenterUQTechnical
+ :quoFEM:UCSDUQTechnical
+
:EEUQ:damping
:WEUQ:damping
:PBE:damping
:WEUQ:WEUQ/scalingWindTunnelData
:WEUQ:WEUQ/TinF
- :quoFEM:SimCenterUQTechnical
- :quoFEM:UCSDUQTechnical
-
+
:EEUQ:spatial_correlation
:PBE:spatial_correlation
:R2D:spatial_correlation
diff --git a/docs/_sources/common/user_manual/about/quoFEM/quoFEMtutorial.rst.txt b/docs/_sources/common/user_manual/about/quoFEM/quoFEMtutorial.rst.txt
index 033b586f..7298bab9 100644
--- a/docs/_sources/common/user_manual/about/quoFEM/quoFEMtutorial.rst.txt
+++ b/docs/_sources/common/user_manual/about/quoFEM/quoFEMtutorial.rst.txt
@@ -268,7 +268,7 @@ This tutorial will show how a **deterministic** model written/interfaced in pyth
The order should match that written in the ``results.out`` file, and the specified name of QoIs are used only for the display in this example. Please see :ref:`here` to learn about vector QoIs which have a length greater than 1
- When all the fields are filled in, click the **Run** button, and the analysis will be performed. The program will go into "not responding", but that means quoFEM is busy running the analysis. You can check the progress status in your **Local Working directory** which can be found in the preference window. The number attached to 'workdir.' indicates the simulation index, and each folder contains the details for each simulation run.
+ When all the fields are filled in, click the **Run** button, and the analysis will be performed. **Do not press the Run button twice** - it will give you an error. You can check the progress status in your **Local Working directory** which can be found in the preference window. The number attached to 'workdir.' indicates the simulation index, and each folder contains the details for each simulation run.
.. figure:: figures/step2_RES1.PNG
:align: center
diff --git a/docs/_sources/common/user_manual/examples/desktop/hdro-0001/README.rst.txt b/docs/_sources/common/user_manual/examples/desktop/hdro-0001/README.rst.txt
new file mode 100644
index 00000000..0b1a62e6
--- /dev/null
+++ b/docs/_sources/common/user_manual/examples/desktop/hdro-0001/README.rst.txt
@@ -0,0 +1,115 @@
+.. _hdro-0001:
+
+Wave flume digital twin
+===================================
+
+Consider the problem of uncertainty quantification in a nine story steel building. The building being modelled is the 9 story LA building presented in the FEMA-355C report. From the description in Appendix B of the FEMA document the building is a **150** ft square building with a height above ground of **120** ft with a weight of approx. **19,800** kips. Eigenvalues are shown in Table 5.1. of the FEMA document to be between **2.3** sec and **2.2** sec depending on connection detals. For this example (and for demonstrative purposes only), this building will be modelled as a shear building with **10** nodes and **9** elements, as shown in following figure. For loading, the Stochastic Wind Generation tool will be used with the gust wind speed being treated as a random variable with a normal distribtion described by a mean :math:`\mu_{gustWS}=20 \mathrm{mph}` and standard deviation :math:`\sigma_{gustWS} =3 \mathrm{mph}`.
+
+.. figure:: figures/9Story.png
+ :align: center
+ :width: 600
+ :figclass: align-center
+
+ Nine Story Downtown LA Building from FEMA-355C
+
+The structure has uncertain properties that all follow normal distribution:
+
+1. Weight of Typical Floor(``w``): mean :math:`\mu_w=2200 \mathrm{kip}` and standard deviation :math:`\sigma_w =200 \mathrm{kip}` (COV = 10%)
+2. Story Stiffness(``k``): mean :math:`\mu_k=1600 \mathrm{kip/in}` and standard deviation :math:`\sigma_k =160 \mathrm{kip/in}` (COV = 10%)
+
+.. note::
+
+ #. For the mean values provided the natural period of the structure is **2.27** sec.
+ #. The choice of COV percentages is for demonstrative purposes only.
+
+ #. The exercise will use both the MDOF, :numref:`lblMDOFSIM`, and OpenSees, :numref:`lblOpenSeesSIM`, structural generators. For the OpenSees generator the following model script, :weuq-0001:`Frame9Model.tcl `.
+
+ .. literalinclude:: src/Frame9Model.tcl
+ :language: tcl
+
+ #. The first lines containing ``pset`` will be read by the application when the file is selected and the application will auto-populate the random variables ``w`` and ``k`` in the **RV** panel with this same variable name. It is of course possible to explicitly use random variables without the ``pset`` command by "RV.**variable name" in the input file. However, no random variables will be auto-populated if user chooses this route.
+
+.. warning::
+
+ Do not place the file in your root, downloads, or desktop folder as when the application runs it will copy the contents on the directories and subdirectories containing this file multiple times (a copy will be made for each sample specified). If you are like us, your root, Downloads or Documents folders contains and awful lot of files and when the backend workflow runs you will slowly find you will run out of disk space!
+
+
+Sampling Analysis
+^^^^^^^^^^^^^^^^^
+
++----------------+-------------------------+
+| Problem files | :weuq-0001:`/` |
++----------------+-------------------------+
+
+
+To perform a Sampling or Forward propagation uncertainty analysis the user would perform the following steps:
+
+1. Start the application and the UQ Selection will be highlighted. In the panel for the UQ selection, keep the UQ engine as that selected, i.e. Dakota, and the UQ Method Category as Forward Propagation, and the Forward Propagation method as LHS (Latin Hypercube). Change the #samples to 500 and the seed to 20 as shown in the figure.
+
+.. figure:: figures/9story-UQ.png
+ :align: center
+ :figclass: align-center
+
+#. Next select the **GI** panel. In this panel the building properties and units are set. For this example enter **9** for the number of stories, **1400** for building height, and **1600** for building breadth and depth
+
+.. figure:: figures/9story-GI.png
+ :align: center
+ :figclass: align-center
+
+#. Next select the **SIM** panel from the input panel. This will default in the MDOF model generator. We will use this generator (the NOTE below contains instruction on how to use the OpenSees scipt instead). In the building information panel, the number of stories should show **9** and the story heights **160**. In the building Information box specify **w** for the floor weights and **k** for story stiffness (in both x and y directions).
+
+
+.. figure:: figures/9story-SIM1.png
+ :align: center
+ :figclass: align-center
+
+.. note::
+
+ To specify instead to use the OpenSees script instead, from thee Model Generator pull down menu select ``OpenSees``. For the fields in the panel presented enter the path to the :weuq-0001:`Frame9Model.tcl ` script. For both the Centroid Nodes (those nodes were the floor loads will be applied) the Response Nodes (those nodes from which the reponse quantities will be evaluated) as **1 2 3 4 5 6 7 8 9 10** in the panel. The Response nodes will tell model generator which nodes correspond to nodes at the 4 floor levels for which responses are to be obtained when using the standard earthquake EDP's.
+
+ .. figure:: figures/9story-SIM2.png
+ :align: center
+ :figclass: align-center
+
+#. Next select the **EVT** panel. From the Load Generator pull down menu select the **Stochastic Wind** option. Leave the exposure condition as **B**. Set the drag coefficient as **1.3** and enter ``gustWS`` for the 3 sec gust wind speed at the 33 ft height.
+
+.. figure:: figures/9story-EVENT.png
+ :align: center
+ :figclass: align-center
+
+#. Next choose the **FEM** panel. Here we will change the entries to use Rayleigh damping, with rayleigh factor chosen using **1** and **6** modes. For the **MDOF** model generator, because it generates a model with two translational and 1 rotational degree-of-freedom in each direction and because we have provided the same **k** values in each translational direction, i.e. we will have duplicate eigenvalues, we specify as shown in the figure modes **1** and **6**.
+
+.. figure:: figures/9story-FEM.png
+ :align: center
+ :figclass: align-center
+
+4. We will skip the **EDP** panel leaving it in it's default condition, that being to use the **Standard Wind** EDP generator.
+
+5. For the **RV** panel, we will enter the distributions and values for our random variables. Because of the steps we have followed and entries we have made, the panel when we open it should contain the **3** random variables and they should all be set constant. For the w, k and wS random variables we change the distributions to normal and enter the values given for the problem, as shown in figure below.
+
+.. figure:: figures/9story-RV.png
+ :align: center
+ :figclass: align-center
+
+.. warning::
+
+ The user cannot leave any of the distributions for these values as constant for the Dakota UQ engine.
+
+5. Next click on the **Run** button. This will cause the backend application to launch dakota. When done the **RES** panel will be selected and the results will be displayed. The results show the values the mean and standard deviation. The peak displacement of the roof, is the quantity **1-PFD-9-1** (first event (tool to be extended to multiple events), 9th floor (in US ground floor considered 0), and 1 dof direction). the **PFA** quantity defines peak floor acceleration, the **RMSA** quantity the root mean square of floor accelerations, and the **PID** quantity corresponds to peak interstory drift.
+
+.. figure:: figures/9story-RES1.png
+ :align: center
+ :figclass: align-center
+
+If the user selects the "Data" tab in the results panel, they will be presented with both a graphical plot and a tabular listing of the data. By left- and right-clicking with the mouse in the individual columns the axis change (left mouse click controls vertical axis, right mouse click the horizontal axis).
+
+.. figure:: figures/9story-RES2.png
+ :align: center
+ :figclass: align-center
+
+Various views of the graphical display can be obtained by left and right clicking in the columns of the tabular data. If a singular column of the tabular data is pressed with both right and left buttons a frequency and CDF will be displayed, as shown in figure below.
+
+.. figure:: figures/9story-RES6.png
+ :align: center
+ :figclass: align-center
+
diff --git a/docs/_sources/common/user_manual/installation/desktop/install_Windows.rst.txt b/docs/_sources/common/user_manual/installation/desktop/install_Windows.rst.txt
index 8ac0c3fa..52f56ac7 100644
--- a/docs/_sources/common/user_manual/installation/desktop/install_Windows.rst.txt
+++ b/docs/_sources/common/user_manual/installation/desktop/install_Windows.rst.txt
@@ -88,8 +88,9 @@ To download the |app|, navigate to the |appLink| page which should resemble |fig
Click on the file with a name ending with **Windows_Download.zip** to download the |app|. In the pop-up window, click on the **Download** button in the bottom right corner.
-After the download completed, extract the zip archive to a location in your filesystem. We suggest extracting to the **C:\\SimCenter\** folder. You can create a shortcut that points to the |short tool id|.exe executable of the application and move this shortcut to your Desktop for easy access.
+After the download completed, extract the zip archive to a location in your filesystem. We suggest extracting to the **C:/SimCenter/** folder. You can create a shortcut that points to the |short tool id|.exe executable of the application and move this shortcut to your Desktop for easy access.
+.. tip:: Using an external compressor program, such as `7-Zip `_, can significantly reduce the zip archive extraction time compared to the Windows default extraction function.
Test the Installation
^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/_sources/common/user_manual/installation/desktop/install_macOS.rst.txt b/docs/_sources/common/user_manual/installation/desktop/install_macOS.rst.txt
index 36cec66a..e0ab9670 100644
--- a/docs/_sources/common/user_manual/installation/desktop/install_macOS.rst.txt
+++ b/docs/_sources/common/user_manual/installation/desktop/install_macOS.rst.txt
@@ -185,7 +185,14 @@ Once the installation procedure has been completed, it is a good practice to run
.. note::
- SimCenter apps are code-signed and notarized, but because they are not downloaded from the operating system's app store, they may not be recognized as safe applications. Depending on your security settings, when you start a SimCenter app for the first time, your operating system may show a dialog box indicating it is unsafe. If this dialog appears, choose the cancel button. Restart the app by right clicking on it and selecting open.
+ SimCenter apps are code-signed and notarized, but because they are not downloaded from the operating system's app store, they may not be recognized as safe applications. Depending on your security settings, when you start a SimCenter app for the first time, your operating system may show a dialog box indicating it is unsafe. If this dialog appears, choose the cancel button. Try to start the app again, this time by right clicking on it and selecting open.
+
+ If the app still fails to open. You need to go to System Settings->Privacy and Security. Under the Security section you need to at least temprarily select the option to allow applications downloaded from the **App Store and Identified Developers**. With this schecked try again. If it fails again, go back to System Settings->Privacy and Security. Just below the section you just checked, there should be some text about why the app was stopped and an option to **Open Anayway" , as shown in figure below. Click on the button and the app should start.
+
+ .. figure:: figures/AppleSecurity.png
+ :align: center
+ :figclass: align-center
+
Once the application started, you should see the user interface shown in |figUI|. We recommend running the example problem |test example| to test the application.
diff --git a/docs/_sources/common/user_manual/releases/eeCapabilities.rst.txt b/docs/_sources/common/user_manual/releases/eeCapabilities.rst.txt
index ee02a349..a18e5ff0 100644
--- a/docs/_sources/common/user_manual/releases/eeCapabilities.rst.txt
+++ b/docs/_sources/common/user_manual/releases/eeCapabilities.rst.txt
@@ -18,6 +18,8 @@ Applications used to specify/select the structural model to be used in analysis.
#. Steel Building Model: automating steel frame design and modeling
#. Concrete Building Model: automating concrete moment frame design and modeling
#. MDOF-LU: MDOF shear building model
+#. :blue:`SurrogateGP: surrogate model trained in EE-UQ`
+#. :blue:`Multimodel: selecting multiple structural information models`
Earthquake Motion Event
@@ -26,7 +28,7 @@ Earthquake Motion Event
Applications used to specify/select ground motions for the structure.
#. Stochastic Ground Motion: simulating stochastic ground motion recordings
-#. PEER NGA Records: selecting and scaling PEER NGA West2 ground motions
+#. PEER NGA Records: selecting and scaling PEER NGA West2 ground motions :blue:`[<- New option to select a suit of ground motions with uniformly populated IMs. This can be useful when training a surrogate model]`
#. Site Response: propagating rock motions to the surface
#. Multiple PEER: using multiple PEER recordings
#. Multiple SimCenter: using multiple SimCenter-format recordings
@@ -40,6 +42,7 @@ Applications to identify the output parameters of interest given the ground moti
#. Standard Earthquake: maximum story drift ratio, lateral story displacement, peak floor acceleration
#. User Defined: user-specified EDP
+#. :blue:`None: used only for surrogate model-based predictions`
Finite Element Application
@@ -48,7 +51,9 @@ Finite Element Application
Applications used to determine the response output parameters given the ground motion and structural model.
#. OpenSees: Open System for Earthquake Engineering Simulation
-
+#. :blue:`CustomPy-Simulation: user-provided python script`
+#. :blue:`None: used only for surrogate model-based predictions`
+#. :blue:`Multimodel: selecting multiple finite element applications`
Uncertainty Quantification
==========================
@@ -57,7 +62,7 @@ Applications to perform the uncertainty quantification for the response paramete
#. Forward Uncertainty Propagation
- A. Dakota Options :blue:`[← New option to discard working directories after each model evaluation]`
+ A. Dakota Options
#. Monte Carlo Sampling (MCS)
#. Latin Hypercube Sampling (LHS)
@@ -86,8 +91,8 @@ Applications to perform the uncertainty quantification for the response paramete
#. Surrogate Modeling
- A. SimCenterUQ Engine Surrogating Options:
+ A. SimCenterUQ Engine Surrogate Options:
- #. Surrogate modeling using Probabilistic Learning on Manifolds (PLoM)
- #. :blue:`Gaussian process surrogate modeling`
+ #. Probabilistic Learning on Manifolds (PLoM) Surrogate modeling
+ #. :blue:`Gaussian Process Surrogate Modeling`
diff --git a/docs/_sources/common/user_manual/releases/eePlans.rst.txt b/docs/_sources/common/user_manual/releases/eePlans.rst.txt
index b8b858f6..e0173d51 100644
--- a/docs/_sources/common/user_manual/releases/eePlans.rst.txt
+++ b/docs/_sources/common/user_manual/releases/eePlans.rst.txt
@@ -8,12 +8,6 @@ Release Plans
The following features are planned to be developed for upcoming releases of |app|. We are actively working on the features in the next release. Farther development priorities may change depending on feedback from the community. If you have any suggestions, we encourage you to contribute and contact us through the SimCenter Forum.
-March 2023
-----------
- #. Quantify epistemic uncertainty in structural response by considering multiple models to represent various candidates for events, structural models, or simulation methods (1.2.4.1) - Define weights for each model candidate and propagate epistemic uncertainty by randomly selecting a model for each realization according to these weights.
- #. Use any simulation engine with the CustomPy feature - CustomPy allows you to execute a Python script that can serve as a wrapper for any other application. After preparing a wrapper, you can take leverage the applications in the SimCenter backend while running the FEM engine of your choice - OpenSeesPy, ETABS, Perform3D, ANSYS, Abaqus, etc.
-
-
Sept 2023
---------
#. New, state-of-the-art surrogate methods - Heteroscedastic Gaussian Process Surrogates (1.2.2.2) - First, train a GP surrogate to capture the mean response, then train another GP surrogate the capture the variance using the residuals. This approach is especially powerful when large differences are observed in the variance of the output in different parts of the input space.
diff --git a/docs/_sources/common/user_manual/releases/eeReleaseNotes.rst.txt b/docs/_sources/common/user_manual/releases/eeReleaseNotes.rst.txt
index 928b5f99..0aed2d64 100644
--- a/docs/_sources/common/user_manual/releases/eeReleaseNotes.rst.txt
+++ b/docs/_sources/common/user_manual/releases/eeReleaseNotes.rst.txt
@@ -5,7 +5,7 @@
Release Notes
*************
-Version 3.2.0 (Current)
+Version 3.3.0 (Current)
-----------------------
**Release date:** March. 2023
diff --git a/docs/_sources/common/user_manual/usage/desktop/SimCenterUQSurrogate.rst.txt b/docs/_sources/common/user_manual/usage/desktop/SimCenterUQSurrogate.rst.txt
index 23408767..0f3e5e14 100644
--- a/docs/_sources/common/user_manual/usage/desktop/SimCenterUQSurrogate.rst.txt
+++ b/docs/_sources/common/user_manual/usage/desktop/SimCenterUQSurrogate.rst.txt
@@ -1,89 +1,125 @@
.. _lblSimSurrogate:
+.. role:: blue
-Surrogate Modeling
-*********************
+Gaussian Process (GP) Surrogate Modeling
+******************************************
.. Note::
- Surrogate modeling functionality of quoFEM is built upon `GPy `_ library (available under BSD 3-clause license), an opensource python framework for Gaussian process modeling developed in the Sheffield machine learning group.
+ Surrogate modeling functionality of |short tool id| is built upon `GPy `_ library (available under BSD 3-clause license), an opensource python framework for Gaussian process modeling developed in the Sheffield machine learning group.
-The ``Train GP Surrogate Model`` module is used to construct a Gaussian process (GP) based **surrogate model** that substitutes expensive computational **simulation models** or physical experiments. Consider a simulation model, with input random variables (or parameters) :math:`\boldsymbol{x}` and output quantity of interests, denoted as :math:`\boldsymbol{y}=f(\boldsymbol{x})`. A surrogate model for the corresponding simulation model can be built by different user-provided information types (RV-random variables, QoI-quantities of interest):
+.. only:: quoFEM
-.. list-table:: User-provided information types
- :widths: 3 10 10
- :header-rows: 1
+ The ``Train GP Surrogate Model`` module is used to construct a Gaussian process (GP) based **surrogate model** that substitutes expensive computational **simulation models** or physical experiments. Consider a simulation model, with input random variables (or parameters) :math:`\boldsymbol{x}` and output quantity of interests, denoted as :math:`\boldsymbol{y}=f(\boldsymbol{x})`. A surrogate model for the corresponding simulation model can be built by different user-provided information types (RV-random variables, QoI-quantities of interest):
- * -
- - RV (model input :math:`\boldsymbol{x}`)
- - QoI (model response :math:`\boldsymbol{y}`)
- * - **Case1**
- - bounds of random variables :math:`\boldsymbol{x}`
- - simulation model: :math:`\boldsymbol{y}=f(\boldsymbol{x})`
- * - **Case2**
- - dataset: :math:`\{\boldsymbol{x^{(1)},x^{(2)}, ... ,x^{(N)}}\}`
- - simulation model: :math:`\boldsymbol{y}=f(\boldsymbol{x})`
- * - **Case3**
- - dataset: :math:`\{\boldsymbol{x^{(1)},x^{(2)}, ... ,x^{(N)}}\}`
- - dataset: :math:`\{\boldsymbol{y^{(1)},y^{(2)}, ... ,y^{(N)}}\}`
+ .. list-table:: User-provided information types
+ :widths: 3 10 10
+ :header-rows: 1
+ * -
+ - RV (model input :math:`\boldsymbol{x}`)
+ - QoI (model response :math:`\boldsymbol{y}`)
+ * - **Case1**
+ - bounds of random variables :math:`\boldsymbol{x}`
+ - simulation model: :math:`\boldsymbol{y}=f(\boldsymbol{x})`
+ * - **Case2**
+ - dataset: :math:`\{\boldsymbol{x^{(1)},x^{(2)}, ... ,x^{(N)}}\}`
+ - simulation model: :math:`\boldsymbol{y}=f(\boldsymbol{x})`
+ * - **Case3**
+ - dataset: :math:`\{\boldsymbol{x^{(1)},x^{(2)}, ... ,x^{(N)}}\}`
+ - dataset: :math:`\{\boldsymbol{y^{(1)},y^{(2)}, ... ,y^{(N)}}\}`
-**Case 1 (Sampling and Simulation)**: User provides lower and upper bounds of each random variable (RV) and a simulation model. quoFEM will find the best training points sequentially by the adaptive **design of experiments** (DoE) strategies until the model converges or reaches a user-specified computational tolerance.
+ **Case 1 (Sampling and Simulation)**: The user provides lower and upper bounds of each random variable (RV) and a simulation model. |short tool id| will find the best training points sequentially by the adaptive **design of experiments** (DoE) strategies until the model converges or reaches a user-specified computational tolerance.
-**Case 2 (Import RV Dataset and run Simulation)**: User provides sample population of RVs as a separate text file. quoFEM will run simulations to get QoI values and build a surrogate model.
+ **Case 2 (Import RV Dataset and run Simulation)**: The user provides sample population of RVs as a separate text file. |short tool id| will run simulations to get QoI values and build a surrogate model.
-**Case 3 (Import both RV and QoI Dataset)**: User provides sample population of RVs and QoIs. quoFEM will not run any simulations and build a surrogate model purely based on the provided dataset.
+ **Case 3 (Import both RV and QoI Dataset)**: The user provides sample population of RVs and QoIs. |short tool id| will not run any simulations and build a surrogate model purely based on the provided dataset.
-.. list-table:: quoFEM workflow (DoE: Design of experiments)
- :widths: 2 5 5 5
- :header-rows: 1
- :align: center
+ .. list-table:: |short tool id| workflow (DoE: Design of experiments)
+ :widths: 2 5 5 5
+ :header-rows: 1
+ :align: center
+
+ * -
+ - Sampling (Adaptive DoE)
+ - Model simulation
+ - Surrogate Construction
+ * - **Case1**
+ - O
+ - O
+ - O
+ * - **Case2**
+ - X
+ - O
+ - O
+ * - **Case3**
+ - X
+ - X
+ - O
+
+ **The trained surrogate model can be saved in a portable file (.json format) and later imported** in place of the original simulation model for UQ analysis or optimization purposes. See user guide section 2.3.5 for how to import the surrogate model in |short tool id|.
+
+.. only:: EE-UQ
+
+ The ``Train GP Surrogate Model`` module is used to construct a Gaussian process (GP) based **surrogate model** that substitutes expensive computational **simulation models**. The challenge of surrogate modeling in earthquake engineering arrives from the stochasticity in the ground motion time history and corresponding stochastic output.
+
+ .. _figSimEE1:
+
+ .. figure:: figures/SimCenterUQ/Surrogate_EEUQ1.png
+ :align: center
+ :figclass: align-center
+ :width: 1000
+
+ Surrogate Modeling in EE-UQ
+
+ * **Output of surrogate model**: Following the performance-based earthquake engineering practice, the response estimation module in SimCenter workflow concerns only the peak responses (e.g. peak acceleration, peak drift ratio at each floor) rather than the whole time history. Therefore, the surrogate modeling algorithms in this tool are designed to predict the non-time history responses.
+
+ * **Input of surrogate model**: To keep the input dimension of the surrogate model to a reasonable scale, the ground motion time history are first parameterized into a number of key features in the algorithm. This can be, for example, the sources properties (e.g. M,R) or time/frequency domain excitation property at the site of interest (e.g. intensity measures) ([Kyprioti2021]_, [Zhong2023]_).
+
+ The surrogate prediction of EDP given the ground motion parameters typically inherits significant randomness, as the amount of information provided by these parameters are not sufficient to determine the exact model peak response. Therefore, the key task in surrogate modeling is to capture the remaining amount of uncertainty in the EDP predictions, as shown in the above figure.
+
+ **The trained surrogate model can be saved in a portable file (.json format) and later imported** in place of the original simulation model for UQ analysis or optimization purposes. See user guide :ref:`section 2.2.5 ` for how to import the surrogate model in |short tool id|.
+
+
+ .. [Kyprioti2021]
+ Kyprioti, A. P., & Taflanidis, A. A. (2021). "Kriging metamodeling for seismic response distribution estimation". *Earthquake Engineering & Structural Dynamics*, 50(13), 3550-3576.
+
+ .. [Zhong2023]
+ Zhong, K., Navarro, J.G., Govindjee, S., and Deierlein, G.G. (2023). "Surrogate Modeling of Structural Seismic Response Using Probabilistic Learning on Manifolds," *Earthquake Engineering & Structural Dynamics*, 1-22, https://doi.org/10.1002/eqe.3839
- * -
- - Sampling (Adaptive DoE)
- - Model simulation
- - Surrogate Construction
- * - **Case1**
- - O
- - O
- - O
- * - **Case2**
- - X
- - O
- - O
- * - **Case3**
- - X
- - X
- - O
-
-
-**The trained surrogate model can be saved in a file (.pkl format) along with a meta-information (.json format) and later imported in quoFEM** in place of the original simulation model for UQ analysis or optimization purposes. See 2.2.5 for how to import the surrogate model in quoFEM.
Input description
^^^^^^^^^^^^^^^^^
Case 1: Sampling and Simulation
--------------------------------
-When the **Training Dataset** option is set to the ``Sampling and Simulation``, a simulation model should be presented in the **FEM tab**. The training points are sampled adaptively by the design of experiments.
+
+.. only:: EEUQ_app
+
+ .. Note::
+ Another SimCenter tool named `quoFEM `_ also supports surrogate modeling capability that shares the same algorithm with EE-UQ. However, quoFEM is targeted at more general applications not restricted to earthquake problems. quoFEM additionally supports different user-provided information types, allowing users to directly (i) Import RV Dataset and run the Simulation (Case 2), or (ii) Import both RV and EDP Dataset (Case 3). Currently, in EE-UQ, we only support the Sampling and simulation option (Case 1).
+
+When the **Training Dataset** option is set to the ``Sampling and Simulation``, a simulation model should be presented in the later tabs. The training points are sampled adaptively by the design of experiments.
.. _figSim1:
.. figure:: figures/Surrogate1_SimUQ.png
:align: center
:figclass: align-center
- :width: 1200
+ :width: 900
Input panel for surrogate modeling
* **Maximum Number of Model Runs**: When the number of simulation runs reaches the limit, the analysis will be terminated.
* **Maximum Computation Time (in minutes)**: When the tolerance limit of the computation time is reached, the analysis will be terminated. There will be a few minutes of error.
-* **Target Accuracy (Normalized Error)**: The target accuracy is defined in terms of normalized root-mean squared error (NRMSE) estimated by leave-out-one cross-validation (LOOCV).
+* **Target Accuracy (Normalized Error)**: The target accuracy is defined in terms of normalized root-mean-squared error (NRMSE) estimated by leave-out-one cross-validation (LOOCV).
- .. math::
- :label: NRMSE
+ .. math::
+ :label: NRMSE
- \begin{align*}
- \rm{NRMSE} ~ &= \frac{\sqrt{\frac{1}{N} \sum^{N}_{k=1} (y_k-\hat{y}_k)^2}}{\max_{k=1,...,N}(y_k)-\min_{k=1,...,N}(y_k)}
- \end{align*}
+ \begin{align*}
+ \rm{NRMSE} ~ &= \frac{\sqrt{\frac{1}{N} \sum^{N}_{k=1} (y_k-\hat{y}_k)^2}}{\max_{k=1,...,N}(y_k)-\min_{k=1,...,N}(y_k)}
+ \end{align*}
| where
| :math:`y_k` : exact response from the model simulation
@@ -91,251 +127,317 @@ When the **Training Dataset** option is set to the ``Sampling and Simulation``,
| :math:`N`: number of samples used to train the surrogate model
* **Random Seed**: Seed of the random number generator
-* **Parallel excution**: This engine implemented multiprocessing (local) or mpi4py (remote) python packages to run parallel execution.
-Note that the results from the parallel and serial run may not be exactly the same because parallel execution sets the number of batch design of experiments (DoE) in order to maximize the use of resources (Default DoE interval: 5)
+* **Parallel execution**: This engine implemented multiprocessing (local) or mpi4py (remote) python packages to run parallel execution.
+Note that the results from the parallel and serial run may not be exactly the same because parallel execution sets the number of batch design of experiments (DoE) in order to maximize the use of resources (Default DoE interval: 5). User can also activate the following advanced options:
-User can also activate the **Advanced Options for Gaussian Process Model**
+:blue:`Advanced Options for Gaussian Process Model`
.. _figSim2:
.. figure:: figures/Surrogate2_SimUQ.png
:align: center
:figclass: align-center
- :width: 1200
+ :width: 600
Sampling and Simulation - Case 1
-* **Kernel function**: Correlation function for Gaussian process regression. Matern5/2 function is the default, and Matern3/2, Radial Basis, and Exponential functions (exponent :math:`\gamma=1`) are additionally supported. (For details, please refer to `chapter 4 `_ of the book Gaussian Processes for Machine Learning)
-* **Add Linear Trend Function**: When increasing or decreasing trend is expected over the variables domain, a linear trend function may be introduced. The default is unchecked, ie. no trend function.
-* **Log-space Transform of QoI**: When the user can guarantee that the response quantities are always greater than 0, user may want to introduce a surrogate model in log-transformed space of QoI. The default is unchecked, ie. original physical coordinate.
-* **Design of Experiments options**: User may manually select the design of experiments (DoE) method and the number of the initial DoE. The default is "none" and the default number of DoE is 4 times the number of random variables.
-* **Nugget Variances**: User may define nugget variances or bounds of the nugget variances if needed. The default is "optimize".
+.. only:: quoFEM_app
-Additionally, users may populate the initial samples directly from data files by activating **Start with Existing Dataset**
+ * **Kernel function**: Correlation function for Gaussian process regression. Matern5/2 function is the default, and Matern3/2, Radial Basis, and Exponential functions (exponent :math:`\gamma=1`) are additionally supported. (For details, please refer to `chapter 4 `_ of the book Gaussian Processes for Machine Learning)
+ * **Add Linear Trend Function**: When increasing or decreasing trend is expected over the variables domain, a linear trend function may be introduced. The default is unchecked, ie. no trend function.
+ * **Log-space Transform of QoI**: When the user can guarantee that the response quantities are always greater than 0, user may want to introduce a surrogate model in log-transformed space of QoI. The default is unchecked, ie. original physical coordinate.
+ * **Design of Experiments options**: User may manually select the design of experiments (DoE) method and the number of the initial DoE. The default is "none" and the default number of DoE is 4 times the number of random variables.
+ * **Nugget Variances**: User may define nugget variances or bounds of the nugget variances if needed. The default is "optimize". See subsection titled 'Heteroscedastic Gaussian Process' to learn more about this feature.
-.. _figSim3:
-.. figure:: figures/Surrogate3_SimUQ.png
- :align: center
- :figclass: align-center
- :width: 1200
+.. only:: EEUQ_app
- Input panel for surrogate modeling
+ * **Kernel function**: Correlation function for Gaussian process regression. Matern5/2 function is the default, and Matern3/2, Radial Basis, and Exponential functions (exponent :math:`\gamma=1`) are additionally supported. (For details, please refer to `chapter 4 `_ of the book Gaussian Processes for Machine Learning)
+ * **Add Linear Trend Function**: When an increasing or decreasing trend is expected over the variables domain, a linear trend function may be introduced. The default is checked.
+ * **Log-space Transform of QoI**: When the user can guarantee that the response quantities are always greater than 0, the user may want to introduce a surrogate model in the log-transformed space of QoI. The default is checked.
+ * **Design of Experiments options**: The user may manually select the design of experiments (DoE) method and the number of the initial DoE. The default is "none" and the default number of DoE is 4 times the number of random variables.
+ * **Nugget Variances**: The default is "heteroscedastic" with replication size 1.
-The following two data files are requested:
+:blue:`Start with Existing Dataset`
-* **Train Points (Input)**
-* **System Responses (Output)**
+.. only:: EEUQ_app
-where
+ This option is not recommended in EE-UQ at this point. For the users who are interested in using this option, please refer to `quoFEM `_ documentation.
-* Each text file is a numeric table with the columns separated by a tab, space, or comma. Multiple headers can be presented following the symbol %.
-* The number of rows corresponds to the number of training data samples.
-* Train Points (Input): The number of columns should match the number of RVs presented in the **RV tab** and also match with required inputs of the simulation model provided in the **FEM tab**. **The order of the columns should match thoses of the random variables presented in the RV tab** (See :numref:`figSim4` and :numref:`figSim7` for example.)
-* System Responses (Output): The number of columns and the order of columns should match the QoI quantities presented in **QoI tab**.
-* Both files need to be provided, and the number of columns for the two files should be the same.
-* See :numref:`figSim4` for example input data sheets.
+.. only:: quoFEM_app
-.. _figSim4:
+ .. _figSim3:
-.. figure:: figures/Surrogate4_SimUQ.jpg
- :align: center
- :figclass: align-center
- :width: 1200
+ .. figure:: figures/Surrogate3_SimUQ.png
+ :align: center
+ :figclass: align-center
+ :width: 900
- Example of data input files
+ Input panel for surrogate modeling
-.. Note::
+ Additionally, users may populate the initial samples directly from data files by activating. The following two data files are requested:
- * When the **Start with Existing Dataset** is checked, one redundant simulation will be performed in order to check the consistency between the data and the simulation model. An error will be thrown when the dataset cannot be reproduced by the simulation model.
- * If the user wants to use the samples purely from data files and does not wish to introduce any simulation model, refer to Case 3 below.
+ * **Train Points (Input)**
+ * **System Responses (Output)**
+ where
-Case 2: Import RV Dataset and run Simulation
-----------------------------------------------
-When the **Training Dataset** option is set to ``Import Data File`` AND **Get results from datafile** check box is unchecked, quoFEM will run simulations to get result (QoI) values for imported RV locations and build a surrogate model.
+ * Each text file is a numeric table with columns separated by a tab, space, or comma. Multiple headers can be presented following the symbol %.
+ * The number of rows corresponds to the number of training data samples.
+ * Train Points (Input): The number of columns should match the number of RVs presented in the **RV tab** and also match the required inputs of the simulation model provided in the **FEM tab**. **The order of the columns should match those of the random variables presented in the RV tab** (See :numref:`figSim4` and :numref:`figSim7` for example.)
+ * System Responses (Output): The number of columns and the order of columns should match the QoI quantities presented in **QoI tab**.
+ * Both files need to be provided, and the number of columns for the two files should be the same.
+ * See :numref:`figSim4` for example input data sheets.
-.. _figSim5:
+ .. _figSim4:
-.. figure:: figures/Surrogate5_SimUQ.png
- :align: center
- :figclass: align-center
- :width: 1200
+ .. figure:: figures/Surrogate4_SimUQ.jpg
+ :align: center
+ :figclass: align-center
+ :width: 900
- Import Data File - Case 2
+ Example of data input files
-The following data file is requested
+ .. Note::
-* **Train Points (Input)**
+ * When the **Start with Existing Dataset** is checked, one redundant simulation will be performed in order to check the consistency between the data and the simulation model. An error will be thrown when the dataset cannot be reproduced by the simulation model.
+ * If the user wants to use the samples purely from data files and does not wish to introduce any simulation model, refer to Case 3 below.
-where
-* The text file is a numeric table with columns separated by a tab, space, or comma. Multiple headers can be presented following the symbol %.
-* The number of rows corresponds to the number of training data samples.
-* The number of columns should match the number of RVs presented in the FEM model in the **FEM tab**. The order of columns should match those presented in the **RV tab**.
-* See :numref:`figSim4` (left) for an example data file.
+.. only:: EEUQ_app
+ :blue:`Advanced Options (Earthquake specific)`
-Case 3: Import both RV and QoI Dataset
-------------------------------------------------------------------
-When the **Training Dataset** option is set to ``Import Data File`` AND **Get results from datafile** check box is unchecked, quoFEM will not run any simulations and build a surrogate model purely based on the user-provided dataset.
+ .. _figSimEE1:
-.. _figSim6:
+ .. figure:: figures/SimCenterUQ/Surrogate_Advanced_EEUQ.png
+ :align: center
+ :figclass: align-center
+ :width: 600
-.. figure:: figures/Surrogate6_SimUQ.png
- :align: center
- :figclass: align-center
- :width: 1200
+ Advanced Options (Earthquake Specific)
- Import Data File - Case 3
+ The user can select intensity measures (IMs) that will be used as auxiliary inputs of the surrogate model, in addition to those specified in the RV tab. If ground motions have more than one directional component, either each component's IM can be added as a separate surrogate input parameter, or they can be aggregated by using their geometric mean. The latter can be selected by checking 'Use geometric mean when 2 or more ground motion components are given'.
-The following two data files are requested:
-* **Train Points (Input)**
-* **System Responses (Output)**
+.. only:: quoFEM
-where
+ Case 2: Import RV Dataset and run Simulation
+ ----------------------------------------------
+ When the **Training Dataset** option is set to ``Import Data File`` AND **Get results from datafile** check box is unchecked, |short tool id| will run simulations to get result (QoI) values for imported RV locations and build a surrogate model.
-* Each text file is a numeric table with columns separated by a tab, space, or comma. Multiple headers can be presented following the symbol %.
-* The number of columns corresponds to the number of training data samples.
-* The number of rows of each file respectively corresponds to the number of RVs and QoIs.
-* Both files need to be presented, and the number of columns should correspond to each other.
-* See :numref:`figSim4` for example data files.
+ .. _figSim5:
-**FEM tab** will be inactivated in Case 3 as model information is not required.
+ .. figure:: figures/Surrogate5_SimUQ.png
+ :align: center
+ :figclass: align-center
+ :width: 900
-.. Tip::
- - Surrogate model training can be continued after termination by reusing RV and QoI samples obtained by the previous training.
+ Import Data File - Case 2
+ The following data file is requested
-Multi-Fidelity Modeling
------------------------
+ * **Train Points (Input)**
-When a user provides two different models, i.e. high and low fidelity models, the surrogate model for the high fidelity can be constructed with better performance in assisted by the low fidelity simulation results. The two models should share the same input RVs and output QoIs pools. Ideally, combined model should have the best prediction better than each individual ones, however, the benefit from low fidelity model differs depending on the correlation between the two model outputs [Patsialis2021]_. Currently, adaptive design of experiments capacity of the multi-fidelity surrogate modeling is NOT supported.
+ where
-.. Note::
- Multi-fidelity surrogate modeling functionality of quoFEM is built upon `emukit `_ library (available under Apache-2.0 license), an opensource python toolkit for emulation (surrogate modeling) and decision making under uncertainty.
+ * The text file is a numeric table with columns separated by a tab, space, or comma. Multiple headers can be presented following the symbol %.
+ * The number of rows corresponds to the number of training data samples.
+ * The number of columns should match the number of RVs presented in the FEM model in the **FEM tab**. The order of columns should match those presented in the **RV tab**.
+ * See :numref:`figSim4` (left) for an example data file.
-.. _figSimMF1:
-.. figure:: figures/SimUQ_surrogate_MF1.png
- :align: center
- :figclass: align-center
- :width: 1200
+ Case 3: Import both RV and QoI Dataset
+ ------------------------------------------------------------------
+ When the **Training Dataset** option is set to ``Import Data File`` AND **Get results from datafile** check box is unchecked, |short tool id| will not run any simulations and build a surrogate model purely based on the user-provided dataset.
- Multi-fidelity modeling panel
+ .. _figSim6:
-For each fidelity models, either model, data, or both can be provided for each fidelity level.
+ .. figure:: figures/Surrogate6_SimUQ.png
+ :align: center
+ :figclass: align-center
+ :width: 900
-.. _figSimMF2:
+ Import Data File - Case 3
-.. figure:: figures/SimUQ_surrogate_MF2.png
- :align: center
- :figclass: align-center
- :width: 1200
+ The following two data files are requested:
- Providing a simulation model for the high-fidelity response
+ * **Train Points (Input)**
+ * **System Responses (Output)**
-.. _figSimMF3:
+ where
-.. figure:: figures/SimUQ_surrogate_MF3.png
- :align: center
- :figclass: align-center
- :width: 1200
+ * Each text file is a numeric table with columns separated by a tab, space, or comma. Multiple headers can be presented following the symbol %.
+ * The number of columns corresponds to the number of training data samples.
+ * The number of rows of each file respectively corresponds to the number of RVs and QoIs.
+ * Both files need to be presented, and the number of columns should correspond to each other.
+ * See :numref:`figSim4` for example data files.
- Directly providing input(RV)-response(QoI) data pair of high-fidelity model
+ **FEM tab** will be inactivated in Case 3 as model information is not required.
-Heteroscedastic Gaussian Process
-------------------------------------
-When the noise in the response surface is expected to vary across the domains, heteroscedastic measurement noise model should be introduced. See the :ref:`theory manual` for more.
-
-.. _figSimStoch1:
+ .. Tip::
+ - Surrogate model training can be continued after termination by reusing RV and QoI samples obtained by the previous training.
-.. figure:: figures/SimCenterUQ/Surrogate_Hetero.png
- :align: center
- :figclass: align-center
- :width: 1200
- Input fields for heteroscedastic GP
+ Multi-Fidelity Modeling
+ -----------------------
+
+ When a user provides two different models, i.e. high and low fidelity models, the surrogate model for the high fidelity can be constructed with better performance assisted by the low fidelity simulation results. The two models should share the same input RVs and output QoIs pools. Ideally, the combined model should have the best prediction better than each individual one, however, the benefit from the low fidelity model differs depending on the correlation between the two model outputs [Patsialis2021]_. Currently, the adaptive design of experiments capacity of the multi-fidelity surrogate modeling is NOT supported.
+
+ .. Note::
+ Multi-fidelity surrogate modeling functionality of |short tool id| is built upon `emukit `_ library (available under Apache-2.0 license), an opensource python toolkit for emulation (surrogate modeling) and decision making under uncertainty.
+
+ .. _figSimMF1:
+
+ .. figure:: figures/SimUQ_surrogate_MF1.png
+ :align: center
+ :figclass: align-center
+ :width: 900
+
+ Multi-fidelity modeling panel
+
+ For each fidelity models, either model, data, or both can be provided for each fidelity level.
+
+ .. _figSimMF2:
+
+ .. figure:: figures/SimUQ_surrogate_MF2.png
+ :align: center
+ :figclass: align-center
+ :width: 900
+
+ Providing a simulation model for the high-fidelity response
-Heteroscedastic Gaussian Process can be trained by selecting ``Heteroscedastic`` option in the ``Nugget Variance`` field. The following two parameters are are requested:
+ .. _figSimMF3:
-* **Number of samples to be replicated (A)** : Among number of unique samples specified in the ``Number of Samples`` field, decide how many of them will have its replications.
-* **Number of replications per sample (B)** : Specify how many replications will be generated for the number of samples specified in A.
-* Without DoE, the total number of simulations required is then ``Number of Samples``:math:`+A(B-1)`.
+ .. figure:: figures/SimUQ_surrogate_MF3.png
+ :align: center
+ :figclass: align-center
+ :width: 900
+
+ Directly providing input(RV)-response(QoI) data pair of high-fidelity model
+
+ Heteroscedastic Gaussian Process
+ ------------------------------------
+ When the noise in the response surface is expected to vary across the domains, a heteroscedastic measurement noise model should be introduced. See the :ref:`theory manual` for more.
+
+ .. _figSimStoch1:
+
+ .. figure:: figures/SimCenterUQ/Surrogate_Hetero.png
+ :align: center
+ :figclass: align-center
+ :width: 900
+
+ Input fields for heteroscedastic GP
+
+ Heteroscedastic Gaussian Process can be trained by selecting 'Heteroscedastic' option in the 'Nugget Variance' field. The following two parameters are requested:
+
+ * **Number of samples to be replicated (A)** : From the number of unique samples specified in the 'Number of Samples' field, decide how many of them will have replications.
+ * **Number of replications per sample (B)** : Specify how many replications will be generated for the number of samples specified in A.
+ * Without DoE, the total number of simulations required is then 'Number of Samples':math:`+A(B-1)`.
RV (Random Variables) Tab
--------------------------
-**Case 1 and 2**: The bounds of RVs need to cover the domain of interest in future applications, while it should not be unnecessarily stretched. **Input type** and **Distribution** should be set to **Parameters** and **Uniform**. When dataset is provided, make sure to match the order of RVs in the **RV tab** to the order of data columns. Any correlation values will be ignored.
+.. only:: quoFEM
+
+ **Case 1 and 2**:
+
+The bounds of RVs need to cover the domain of interest in future applications, while it should not be unnecessarily stretched. **Input type** and **Distribution** should be set to **Parameters** and **Uniform**. When a dataset is provided, make sure to match the order of RVs in the **RV tab** to the order of data columns. Any correlation values will be ignored.
.. _figSim7:
.. figure:: figures/Surrogate7_SimUQ.jpg
:align: center
:figclass: align-center
- :width: 1200
+ :width: 900
Example of RV tab
-**Case 3**: **RV data tab** will be populated automatically as soon as the dataset is imported.
+.. only:: quoFEM
+
+ **Case 3**: **RV data tab** will be populated automatically as soon as the dataset is imported.
Output description
^^^^^^^^^^^^^^^^^^^
Goodness-of-Fit
-----------------
-Once the training is completed, the following three verification measures are presented based on leave-one-out cross-validation (LOOCV) error estimation.
+Once the training is completed, the following three verification measures are presented based on leave-one-out cross-validation (LOOCV) error estimation.
* **Leave-one-out cross-validation (LOOCV)**
- | LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` at each sample location :math:`\boldsymbol{x}_k` is obatined by the following procedure: A temporary surrogate model :math:`\hat{\boldsymbol{y}}=f^{sur}_{loo,k}(\boldsymbol{\boldsymbol{x}})` is constructed using the samples :math:`\{\boldsymbol{x}_1,\boldsymbol{x}_2,...,\boldsymbol{x}_{k-1},\boldsymbol{x}_{k+1},...,\boldsymbol{x}_N\}` and the calibrated parameters, and the prediction :math:`\hat{\boldsymbol{y}}_k=f^{sur}_{loo,k}(\boldsymbol{x}_k)` is compared with the exact outcome :math:`y_k=f(\boldsymbol{x}_k)`.
+ | LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` at each sample location :math:`\boldsymbol{x}_k` is obatined by the following procedure: A temporary surrogate model :math:`\hat{\boldsymbol{y}}=f^{sur}_{loo,k}(\boldsymbol{\boldsymbol{x}})` is constructed using the samples :math:`\{\boldsymbol{x}_1,\boldsymbol{x}_2,...,\boldsymbol{x}_{k-1},\boldsymbol{x}_{k+1},...,\boldsymbol{x}_N\}` and the calibrated parameters, and the prediction :math:`\hat{\boldsymbol{y}}_k=f^{sur}_{loo,k}(\boldsymbol{x}_k)` is compared with the exact outcome .
+
-* **R2 error**
+We provide different verification measures for two different cases.
- | R2 error is defined in terms of the total sum of squares over the residual sum of squares
- .. math::
- :label: R2
+.. only:: EEUQ_app
+
+ .. Tip:: Due to the stochasticity in the ground motion, EE-UQ concerns case (ii).
- \begin{align*}
- R^2 &= 1 - \frac{\sum^N_{k=1} (\hat{y}_k-\mu_\hat{y})^2}{\sum^N_{k=1} (\hat{y}_k-y_k)^2}
- \end{align*}
+(i) When nugget variance is low : The LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` is expected to match the exact outcome :math:`\boldsymbol{y_k}=f(\boldsymbol{x}_k)` when the surrogate model is well-trained. To quantify the goodness, R2 error, normalized root-mean-squared-error (NRMSE), and correlation coefficient are provided:
- | The surrogate model is considered well-trained when the **R2 (<1) approaches 1**
-
+ * **R2 error**
-* **Normalized root-mean-squared-error (NRMSE)**
+ | R2 error is defined in terms of the total sum of squares over the residual sum of squares
- .. math::
- :label: NRMSE
+ .. math::
+ :label: R2
- \begin{align*}
- \rm{NRMSE} ~ &= \frac{\sqrt{\frac{1}{N_t} \sum^{N_t}_{k=1} (y_k-\hat{y}_k)^2}}{\max_{k=1,...,N_t}(y_k)-\min_{k=1,...,N_t}(y_k)}
- \end{align*}
+ \begin{align*}
+ R^2 &= 1 - \frac{\sum^N_{k=1} (\hat{y}_k-\mu_\hat{y})^2}{\sum^N_{k=1} (\hat{y}_k-y_k)^2}
+ \end{align*}
- | The surrogate model is considered well-trained when the **NRMSE (>0) approaches 0**
+ | The surrogate model is considered well-trained when the **R2 (<1) approaches 1**
+
-* **Correlation coefficient**
+ * **Normalized root-mean-squared-error (NRMSE)**
- | Correlation coefficient is a statistic that measures linear correlation between two variables
+ .. math::
+ :label: NRMSE
- .. math::
- :label: corr
+ \begin{align*}
+ \rm{NRMSE} ~ &= \frac{\sqrt{\frac{1}{N_t} \sum^{N_t}_{k=1} (y_k-\hat{y}_k)^2}}{\max_{k=1,...,N_t}(y_k)-\min_{k=1,...,N_t}(y_k)}
+ \end{align*}
- \rho_{y,\hat{y}} = \frac{\sum^N_{k=1}(y_k-\mu_{y})(\hat{y}_k-\mu_{\hat{y}})} {\sigma_y \sigma_\hat{y}}
+ | The surrogate model is considered well-trained when the **NRMSE (>0) approaches 0**
+ * **Correlation coefficient**
- | where
- | :math:`\mu_{y}` : mean of :math:`\{y_k\}`
- | :math:`\mu_{\hat{y}}`: mean of :math:`\{\hat{y}_k\}`
- | :math:`\sigma_{y}`: standard deviation of :math:`\{y_k\}`
- | :math:`\sigma_{\hat{y}}`: standard deviation of :math:`\{\hat{y}_k\}`
+ | Correlation coefficient is a statistic that measures linear correlation between two variables
- | The surrogate model is considered well-trained when the **correlation coefficient (** :math:`-1<\rho<1` **) approaches 1**
+ .. math::
+ :label: corr
+ \rho_{y,\hat{y}} = \frac{\sum^N_{k=1}(y_k-\mu_{y})(\hat{y}_k-\mu_{\hat{y}})} {\sigma_y \sigma_\hat{y}}
-* Additionally **scatter plot** between the predicted and exact responses are presented: Well-trained model will form a clear diagonal line while poorly trained model are more scattered around.
+
+ | where
+ | :math:`\mu_{y}` : mean of :math:`\{y_k\}`
+ | :math:`\mu_{\hat{y}}`: mean of :math:`\{\hat{y}_k\}`
+ | :math:`\sigma_{y}`: standard deviation of :math:`\{y_k\}`
+ | :math:`\sigma_{\hat{y}}`: standard deviation of :math:`\{\hat{y}_k\}`
+
+ | The surrogate model is considered well-trained when the **correlation coefficient (** :math:`-1<\rho<1` **) approaches 1**
+
+
+(ii) When nugget variance is high : The distance between LOOCV prediction :math:`\hat{\boldsymbol{y}}_k` and the exact outcome :math:`\boldsymbol{y_k}=f(\boldsymbol{x}_k)` is expected to follow a normal distribution when the surrogate model is well-trained. To quantify the goodness, inter-quartile ratio (IQR) and Cramer-Von Mises statistics can be evaluated:
+
+ * **Inter-quartile ratio (IQR)**: IQR provides the ratio of the sample QoIs that lies in 25-75% LOOCV prediction bounds (interquartile range). The IQR values should theoretically approach 0.5 if the prediction is accurate.
+
+ * **Cramer-Von Mises statistics**: Cramer-Von Mises statistics calculate the normality score. The assumption of a GP is that the observations follow a normal distribution conditional on the input parameters. To assess the normality of the model predictions, the difference between the mean prediction :math:`\hat{y}_k` and the sample observation :math:`y_k` value is divided by the standard deviation prediction from surrogate :math:`\hat{\sigma}_{y,k}`:
+
+ .. math::
+ :label: normed
+
+ u_k = \frac{y_k-\hat{y}_k} {\hat{\sigma}_{y,k}}
+
+
+ If the values of :math:`{u_k}` follow the standard normal distribution, the resulting surrogate model may be considered well-constructed. The Cramer-Von Mises test is calculated using the ``scipy.stats.cramervonmises`` function in the Python package Scipy, and the resulting p-value is displayed. Conventionally, if the p-value exceeds a significance threshold, e.g. 0.05, the null hypothesis that the samples are from a normal distribution is not rejected, meaning the samples may be considered to follow a Gaussian distribution.
+
+
+Additionally, **scatter plot** between the predicted and exact responses is presented: Well-trained model will form a clear diagonal line in case (i), or be distributed normally around the diagonal line in case (ii). A poorly trained model will have points that are more scattered around.
.. _figSim8:
@@ -343,13 +445,12 @@ Once the training is completed, the following three verification measures are pr
.. figure:: figures/Surrogate8_SimUQ.jpg
:align: center
:figclass: align-center
- :width: 1200
+ :width: 900
Well-trained surrogate (left) and poorly trained surrogate (right) models
.. Note::
- Since these validation measures are calculated from the cross-validation predictions, they can be **biased**, particularly when highly localized nonlinear range exists in actual response surface and those regions are not covered by the training samples. The introduction of adaptive design of experiments helps to suppress the bias by enabling the targeted selection of simulation points around potentially faulty regions.
-
+ Since these validation measures are calculated from the cross-validation predictions, they can be **biased**, particularly when a highly localized nonlinear range exists in the actual response surface, and those regions are not covered by the training samples. The introduction of adaptive design of experiments helps to suppress the bias by enabling the targeted selection of simulation points around potentially faulty regions.
.. Warning::
Note that GP-based surrogate models can be used to fit only smooth, continuous functions. When the surrogate model is poorly trained, a parametric study is highly recommended to check any possible discontinuity presented in the simulation model.
@@ -357,7 +458,13 @@ Once the training is completed, the following three verification measures are pr
Saving Options
--------------
-* **Save GP Model**: The constructed surrogate model is saved. Two files and a folder will be saved, which are the **SurroateGP Info File** (default name: ``SimGpModel.json``), **SurroateGP model file** (default name: ``SimGpModel.pkl``), and **Simulation template directory** that contains the simulation model information (``templatedir_SIM``). **IMPORTANT**: User may NOT change the name of the template directory ``templatedir_SIM``.
+* **Save GP Model**: The constructed surrogate model is saved. One main file and one auxiliary folder will be saved.
+
+ - **SurroateGP Info File** (default name: ``SimGpModel.json``) : This file contains information required to quickly reconstruct the surrogate model and predict the response for different input realizations. This can be later imported in EEUQ.
+ - **Simulation template directory** (default name: ``tmplatedir_SIM``) : This folder contains all the scripts and commands to run the original dynamic time history analysis. This folder can later be imported into EEUQ along with the surrogate model to alternate between original simulations and surrogate predictions or compare the surrogate predictions to the response of the original model.
+
+ - Only for the multi-fidelity case in quoFEM, additional **SurroateGP model file** (default name: ``SimGpModel.pkl``) will be written along with the above two.
+
.. warning::
@@ -371,7 +478,7 @@ Saving Options
.. figure:: figures/Surrogate9_SimUQ.jpg
:align: center
:figclass: align-center
- :width: 1200
+ :width: 900
Saving options
@@ -386,7 +493,5 @@ Saving Options
Example outputs from saving options
-
-
.. [Patsialis2021]
- Patsialis, D., and A. A. Taflanidis. (2021). Multi-fidelity Monte Carlo for seismic risk assessment applications. *Structural Safety* 93: 102129.
\ No newline at end of file
+ Patsialis, D., and A. A. Taflanidis. (2021). Multi-fidelity Monte Carlo for seismic risk assessment applications. *Structural Safety* 93: 102129.
diff --git a/docs/_sources/common/user_manual/usage/desktop/UQ.rst.txt b/docs/_sources/common/user_manual/usage/desktop/UQ.rst.txt
index 5656c6ec..389d2263 100644
--- a/docs/_sources/common/user_manual/usage/desktop/UQ.rst.txt
+++ b/docs/_sources/common/user_manual/usage/desktop/UQ.rst.txt
@@ -9,7 +9,7 @@ The first selection panel the user must select from and enter data into is the *
.. only:: quoFEM_app
- The **UQ Engine** options currently available are Dakota, SimCenterUQ, and UCSD-UQ. Users can also configure quoFEM to use their own UQ methods and algorithms in the quoFEM workflow by selecting the CustomUQ option.
+ The **UQ Engine** options currently available are Dakota, SimCenterUQ, and UCSD-UQ. Users can also configure |appName| to use their own UQ methods and algorithms in the |appName| workflow by selecting the CustomUQ option.
UQ Features At-a-Glance
-------------------------
@@ -170,7 +170,7 @@ The following categories are available:
:quoFEM:DakotaBayesianCalibration
:quoFEM:DakotaGradientFreeOptimization
-.. only:: quoFEM_app
+.. only:: quoFEM_app or EEUQ_app
SimCenter UQ Engine
-------------------
@@ -196,6 +196,7 @@ The following categories are available:
SimCenterUQSurrogate
SimCenterUQPLoM
+.. only:: quoFEM_app
UCSD UQ Engine
--------------
@@ -221,7 +222,7 @@ The following categories are available:
Custom UQ Engine
----------------
- The **CustomUQ** option enables users to switch out the UQ engine in the quoFEM workflow such that different methods and tools can be applied within the SimCenter framework with minimal effort on the part of the user. The CustomUQ option can be accessed as shown below:
+ The **CustomUQ** option enables users to switch out the UQ engine in the |appName| workflow such that different methods and tools can be applied within the SimCenter framework with minimal effort on the part of the user. The CustomUQ option can be accessed as shown below:
.. _figCustomUQ:
.. figure:: figures/customUQ.png
@@ -243,28 +244,3 @@ The following categories are available:
Configuring_CustomUQ
-.. only:: EEUQ_app
-
- SimCenter UQ Engine
- -------------------
-
- The **SimCenterUQ** engine is a UQ engine developed in-house at the SimCenter that accommodates different UQ methods, which are organized into categories that can be accessed through a pull-down menu, as shown in :numref:`figSimCenterUQ`.
-
- .. _figSimCenterUQ:
-
- .. figure:: figures/SimCenterUQ.png
- :align: center
- :figclass: align-center
- :width: 1200
-
- SimCenterUQ engine and category selection.
-
- The following category options are available:
-
-
- .. toctree-filt::
- :maxdepth: 1
-
- SimCenterUQSampling
- SimCenterUQSensitivity
- SimCenterUQPLoM
diff --git a/docs/_sources/common/user_manual/usage/desktop/quoFEM/FEM.rst.txt b/docs/_sources/common/user_manual/usage/desktop/quoFEM/FEM.rst.txt
index 179f0775..04d91522 100644
--- a/docs/_sources/common/user_manual/usage/desktop/quoFEM/FEM.rst.txt
+++ b/docs/_sources/common/user_manual/usage/desktop/quoFEM/FEM.rst.txt
@@ -182,22 +182,7 @@ In place of the physical simulation models, the Gaussian process surrogate model
Input for Surrogate model FEM Application
-When users select the SurrogateGP option, they are requested to provide the following files:
-
-.. Note::
-
- All the required input files described below can be generated from the quoFEM. See :ref:`lblSimSurrogate`.
-
-
-1. **Surrogate info file (.json)**: This file contains the meta-information about the surrogate model. Users can open it with a text editor to see the contents.
-
-2. **Surrogate model file (.pkl)**: Surrogate model is saved in a binary format. GPy python package is required to view or use this model outside of quoFEM.
-
-Additionally, if users want to allow alternation between the exact simulation model and surrogate model depending on the predicted error rate, an additional folder that contains the simulation information is required (See **Run Exact FEM Simulation** option below). Note that this folder is not explicitly specified in the input panel, but it needs to be located in the specific directory under the specific name (``templatedir_SIM``).
-
-3. **Simulation template folder (templatedir_SIM)**: This folder contains the simulator scripts (workflow driver) and required files to run the original simulation model. **Note that the folder should be located in the same directory as the Surrogate info file**. If the folder is not presented in the right directory, the analysis can fail. The name of the folder should not be modified.
-
-Once the files are loaded, users may choose the tolerance level of the predictive variance.
+When users select the SurrogateGP option, they are requested to provide **Surrogate info file (.json)** that contains the information about the surrogate model. Users can open it with a text editor to see the contents. Once the file is loaded, users may choose the tolerance level of the predictive variance.
* **Maximum Allowable Normalized Variance**: Prediction variance divided by the variance level of the training dataset. If more than one QoIs is introduced, only the highest normalized variance value will be considered.
@@ -211,8 +196,11 @@ Users may either stop the analysis, continue, or run exact FEM simulations whene
* **Continue**: The tolerance level is ignored and the analysis is continued. This option is not recommended.
-* **Run Exact FEM Simulation**: The program will run the exact FEM simulation user provided in the training session. In case the surrogate model is constructed purely based on the data and without any model information (case 3 in section 2.1.2.2), this option will be disabled.
+* **Run Exact FEM Simulation**: The program will run the exact FEM simulation user provided in the training session. In case the surrogate model is constructed purely based on the data and without any model information (case 3 in section 2.1.2.2), this option will be disabled. To allow this option, an additional folder that contains the simulation information is required. This folder, called **Simulation template folder (templatedir_SIM)**, contains the simulator scripts (workflow driver) and required files to run the original simulation model. This file can be obtained by
+
+.. Note::
+ The **surrogate model file (.json)** and **Simulation template folder (templatedir_SIM)** can be generated from the quoFEM. See :ref:`lblSimSurrogate`.
Additionally, **GP output** can be set as either the *median prediction* or a *random sample* generated from the normal distribution (or lognormal distribution if the user used log-transform when training) with the predictive median and variance. **NOTE:** the random generator does not account for the Gaussian process correlation, and each realization of QoI given RVs is independent of each other. Only users familiar with GP modeling and who understand the limitation are recommended to use the *random sample* option.
diff --git a/docs/_sources/common/user_manual/usage/desktop/usage.rst.txt b/docs/_sources/common/user_manual/usage/desktop/usage.rst.txt
index 2daf9943..dead2017 100644
--- a/docs/_sources/common/user_manual/usage/desktop/usage.rst.txt
+++ b/docs/_sources/common/user_manual/usage/desktop/usage.rst.txt
@@ -1,8 +1,8 @@
.. _lbl-usage:
-**********
-User Guide
-**********
+**************
+User Interface
+**************
The |app| is a scientific workflow application that creates workflows and runs them in the background. These workflows can involve multiple different workflow applications (see more information the backend and workflows under :ref:`lblArchitecture`). Once the |app| is started, the user is presented with the user interface (UI) shown in |figGenericUI|. This interface allows the user to select the applications to run in a workflow, input the controlling parameters for each of these applications, start the workflow either locally or
@@ -76,36 +76,24 @@ remotely, and finally view the results of the simulation.
The main window of the UI is made up from the following areas:
-#. **Input Panel Selection Ribbon**
-
- | The ribbon on the left side provides buttons that represent each step of the simulation workflow (e.g., **EVT: Event Description**, **SIM: Structural Model**, **RES: Results**). Clicking on one of these buttons shows the corresponding workflow applications in the central input panel.
-
-#. **Input Panel**
-
- | The input panel is the large central area of the user-interface where the user provides input for the workflow applications. You can select a workflow application using the drop-down menu at the top of each input panel. Each panel collects input parameters and paths to files with input data for the selected workflow application. The RES (results) panel is different; it shows the results after a simulation is completed.
-
-
#. **Login Button**
| The **Login** button is at the top right of the user interface. You can only launch jobs on DesignSafe after logging in to DesignSafe using your DesignSafe login and password. Pressing the login button will open up the login window to enter this information. You can register for an account on the `DesignSafe-CI `_ website [#]_.
+#. **Message Area**
-#. **Push Buttons**
-
- | This is the area near the bottom of the UI with the following four buttons:
-
- * **RUN**: Run the simulation locally on your computer.
- * **RUN at DesignSafe**: Process the input information and send the data to DesignSafe. The simulation will be run there on a supercomputer and the results will be stored in your DesignSafe jobs folder.
- * **GET from DesignSafe**: Obtain the list of jobs you ran on DesignSafe. You can select a job to download its results to your computer.
- * **Exit**: Close the application.
+ | The message area is located in the bottom of the UI and displays the status and error messages for a running background application. The message area is a dockable dialog which can be resized, moved, and closed as needed. The dialog visibility can be toggled by clicking on the menu item **View** -> **Program Output**. If moved from its default location, the status dialog can be restored to the bottom of the UI by dragging the dialog back to the bottom of the UI and hovering over the area.
+
+#. **Input Panel**
+ | The input panel is the large central area of the user-interface where the user provides input for the workflow applications. You can select a workflow application using the drop-down menu at the top of each input panel. Each panel collects input parameters and paths to files with input data for the selected workflow application. The RES (results) panel is different; it shows the results after a simulation is completed.
-#. **Message Area**
- | The message area is located in the bottom of the UI and displays the status and error messages for a running background application. The message area is a dockable dialog which can be resized, moved, and closed as needed. The dialog visibility can be toggled by clicking on the menu item **View** -> **Program Output**. If moved from its default location, the status dialog can be restored to the bottom of the UI by dragging the dialog back to the bottom of the UI and hovering over the area.
+#. **Input Panel Selection Ribbon**
+ | The ribbon on the left side provides buttons that represent each step of the simulation workflow (e.g., **EVT: Event Description**, **SIM: Structural Model**, **RES: Results**). Clicking on one of these buttons shows the corresponding workflow applications in the central input panel.
-The following sections of the user guide describe in detail each of the steps presented in the input panel selection ribbon and the corresponding workflow applications available in the tool:
+ The following sections of the user guide describe in detail each of the steps presented in the input panel selection ribbon and the corresponding workflow applications available in the tool:
.. toctree-filt::
:maxdepth: 1
@@ -150,54 +138,74 @@ The following sections of the user guide describe in detail each of the steps pr
:R2D:R2DTool/RES
:Hydro:hydro/resHydro
+
+#. **Push Buttons**
-**Running Jobs Remotely**
+ | This is the area near the bottom of the UI with the following four buttons:
-.. only:: notR2D
+ * **RUN**: Run the simulation locally on your computer.
+ * **RUN at DesignSafe**: Process the input information and send the data to DesignSafe. The simulation will be run there on a supercomputer and the results will be stored in your DesignSafe jobs folder.
+ * **GET from DesignSafe**: Obtain the list of jobs you ran on DesignSafe. You can select a job to download its results to your computer.
+ * **Exit**: Close the application.
- Clicking on the **RUN at DesignSafe** button will show the remote job submission dialog shown below (:numref:`figRemJobPanel-notR2D`)
- .. _figRemJobPanel-notR2D:
+ **Running Jobs Remotely**
- .. figure:: figures/RemoteJobPanel_sWHALE.png
- :align: center
- :scale: 25%
- :figclass: align-center
+ .. only:: notR2D
- Remote job submission dialog.
+ Clicking on the **RUN at DesignSafe** button will show the remote job submission dialog shown below (:numref:`figRemJobPanel-notR2D`)
-.. only:: R2D_app
+ .. _figRemJobPanel-notR2D:
- Clicking on the **RUN at DesignSafe** button will show the remote job submission dialog shown below (:numref:`figRemJobPanel-R2D`)
+ .. figure:: figures/RemoteJobPanel_sWHALE.png
+ :align: center
+ :scale: 25%
+ :figclass: align-center
- .. _figRemJobPanel-R2D:
+ Remote job submission dialog.
- .. figure:: figures/RemoteJobPanel_rWHALE.png
- :align: center
- :figclass: align-center
+ .. only:: R2D_app
- Remote job submission dialog.
+ Clicking on the **RUN at DesignSafe** button will show the remote job submission dialog shown below (:numref:`figRemJobPanel-R2D`)
-Descriptions and guidelines for each input are given below:
+ .. _figRemJobPanel-R2D:
-* **Job Name**: An easy to remember and meaningful name to differentiate this job from others.
+ .. figure:: figures/RemoteJobPanel_rWHALE.png
+ :align: center
+ :figclass: align-center
-* **Number of Nodes**: Number of compute nodes requested. Each node includes several cores and each core can run one thread of a parallel calculation.
+ Remote job submission dialog.
-.. note:: The number of nodes requested affects the time it takes for the job to start. Jobs are queued by a so-called scheduler on the supercomputer that optimizes its performance. Jobs that use 1-2 nodes typically start almost immediately, while a larger number of nodes (e.g., more than 10) may stay in the queue for several hours.
+ Descriptions and guidelines for each input are given below:
-* **Number of processes per Node**: Number of processors that will be utilized on each node. It is advantageous to use all available processors of a node when the memory demand of a job is small. When a job is memory intensive, e.g., large finite element models, utilizing all available processors may overwhelm the memory cache of a core and the computation will slow down. Currently, the maximum number of processors is 48 and the minimum is 1.
+ * **Job Name**: An easy to remember and meaningful name to differentiate this job from others.
-.. only:: R2D_app
+ * **Number of Nodes**: Number of compute nodes requested. Each node includes several cores and each core can run one thread of a parallel calculation.
+
+ .. note:: The number of nodes requested affects the time it takes for the job to start. Jobs are queued by a so-called scheduler on the supercomputer that optimizes its performance. Jobs that use 1-2 nodes typically start almost immediately, while a larger number of nodes (e.g., more than 10) may stay in the queue for several hours.
+
+ * **Number of processes per Node**: Number of processors that will be utilized on each node. It is advantageous to use all available processors of a node when the memory demand of a job is small. When a job is memory intensive, e.g., large finite element models, utilizing all available processors may overwhelm the memory cache of a core and the computation will slow down. Currently, the maximum number of processors is 48 and the minimum is 1.
+
+ .. only:: R2D_app
- * **Number of Buildings per Task**: Number of buildings per task.
+ * **Number of Buildings per Task**: Number of buildings per task.
- .. note:: Each task will run in parallel on its own processor. The number of tasks is equal to the number of nodes multiplied by the number of processes per node. Since it takes time to assign buildings to a task and spool up the computation, it may be advantageous to assign a batch of buildings to a task when the individual building analyses are expected to have a short runtime. A good approach is to estimate the total number of buildings to be analyzed and then select the **Number of Nodes**, **Number of processors per Node**, and **Number of Buildings per Task** so that the buildings can be strategically distributed across all processors. This is so that all processors are effectively utilized and do not sit idle.
+ .. note:: Each task will run in parallel on its own processor. The number of tasks is equal to the number of nodes multiplied by the number of processes per node. Since it takes time to assign buildings to a task and spool up the computation, it may be advantageous to assign a batch of buildings to a task when the individual building analyses are expected to have a short runtime. A good approach is to estimate the total number of buildings to be analyzed and then select the **Number of Nodes**, **Number of processors per Node**, and **Number of Buildings per Task** so that the buildings can be strategically distributed across all processors. This is so that all processors are effectively utilized and do not sit idle.
+
+ * **Save Intermediate Results**: Save intermediate results to a compressed folder. This is only recommended for debugging purposes because intermediate results will use a substantial amount of disk space.
+
+ * **Max Run Time**: The maximum time a job will run on the DesignSafe computer, in the format of Hours:Min:Sec. The job will be terminated and the intermediate results will be lost if the run time exceeds this threshold. The maximum runtime allowed for a job on DesignSafe is 48 hours.
+
+ .. note:: You can check the status of a remote run by clicking on the **GET from DesignSafe** button. If the analysis status shows FAILED, log into your DesignSafe account to view the detailed output of the run. First, log in with your credentials on the `DesignSafe `_ webpage. Next, use the menu to navigate to **Workspace** -> **Tools & Applications** -> **Job Status** and then select a job and click on **More info** to view the status of that job.
+
+
+.. only:: R2D_app
- * **Save Intermediate Results**: Save intermediate results to a compressed folder. This is only recommended for debugging purposes because intermediate results will use a substantial amount of disk space.
+ 6. **Main Menu**
-* **Max Run Time**: The maximum time a job will run on the DesignSafe computer, in the format of Hours:Min:Sec. The job will be terminated and the intermediate results will be lost if the run time exceeds this threshold. The maximum runtime allowed for a job on DesignSafe is 48 hours.
+ | The main menu, which contains the typical pull down options found in almost all desktop applications, contains three additional options **Examples**, **Tools** and **GIS Map**. The **Examples** pull down provides a way to download and then load the examples described in this manual. The **Tools** pull down provide a number of options for generating inputs and additional attributed for the various input widgets of the tool, e.g. a user can use the Ground motion selection tool to create a set of ground motions using OpenSHA, PEER, etc., which can be subsequently used in the **HAZ** part of the workflow. The **GIS Map** pulldown provides access to the standard **QGIS** options, e.g. adding layers, maps, plugins.
-.. note:: You can check the status of a remote run by clicking on the **GET from DesignSafe** button. If the analysis status shows FAILED, log into your DesignSafe account to view the detailed output of the run. First, log in with your credentials on the `DesignSafe `_ webpage. Next, use the menu to navigate to **Workspace** -> **Tools & Applications** -> **Job Status** and then select a job and click on **More info** to view the status of that job.
+ .. include:: R2DTool/tools.rst
+
-.. [#] For more help on external services provided by DesignSafe-CI, such as creating an account, we encourage users to explore their `documentation `_ or consider `submitting a ticket `_.
\ No newline at end of file
+.. [#] For more help on external services provided by DesignSafe-CI, such as creating an account, we encourage users to explore their `documentation `_ or consider `submitting a ticket `_.
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index ea047c90..265384db 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -115,14 +115,9 @@
:Hydro:common/user_manual/usage/desktop/hydro/resguide
:Hydro:common/user_manual/usage/desktop/hydro/helpvideo
- :EEUQ:common/user_manual/troubleshooting/desktop/troubleshooting
- :WEUQ:common/user_manual/troubleshooting/desktop/troubleshooting
- :PBE:common/user_manual/troubleshooting/desktop/troubleshooting
- :quoFEM:common/user_manual/troubleshooting/desktop/troubleshooting
- :R2D:common/user_manual/troubleshooting/desktop/troubleshooting
- :pelicun:common/user_manual/troubleshooting/pelicun/troubleshooting
- :Hydro:common/user_manual/troubleshooting/pelicun/errors
+ :R2D:common/user_manual/usage/desktop/R2DTool/tools
+
:EEUQ:common/user_manual/examples/desktop/examples
:WEUQ:common/user_manual/examples/desktop/examples
:PBE:common/user_manual/examples/desktop/examples
@@ -131,6 +126,14 @@
:R2D:common/user_manual/examples/desktop/examples
:pelicun:common/user_manual/examples/pelicun/examples
+ :EEUQ:common/user_manual/troubleshooting/desktop/troubleshooting
+ :WEUQ:common/user_manual/troubleshooting/desktop/troubleshooting
+ :PBE:common/user_manual/troubleshooting/desktop/troubleshooting
+ :quoFEM:common/user_manual/troubleshooting/desktop/troubleshooting
+ :R2D:common/user_manual/troubleshooting/desktop/troubleshooting
+ :pelicun:common/user_manual/troubleshooting/pelicun/troubleshooting
+ :Hydro:common/user_manual/troubleshooting/pelicun/errors
+
:Hydro:common/user_manual/usage/desktop/hydro/bestpractices
:EEUQ:common/reqments/EEUQ
diff --git a/docs/common/developer_manual/architecture/desktop/applications/DLApps.html b/docs/common/developer_manual/architecture/desktop/applications/DLApps.html
index 7e8ef42b..4f7a6f25 100644
--- a/docs/common/developer_manual/architecture/desktop/applications/DLApps.html
+++ b/docs/common/developer_manual/architecture/desktop/applications/DLApps.html
@@ -123,9 +123,9 @@
First, ensure the following dependencies are installed:
-
C++17 compliant compiler: many of the workflow applications included use C++17 features; consequently, they may need a newer C++17 compliant compiler. For Windows users, MSVC in Visual Studio (Community Edition) can be used. Some extensions of Visual Studio are also needed: Open Visual Studio Installer, go to Installed / More / Modify, under the Workloads tab, check Desktop development with C++ and Visual Studio extension development; under the Individual components tab, check C++ CMake tools for windows. Then click Modify.
+
C++17 compliant compiler: many of the workflow applications included use C++17 features; consequently, they may need a newer C++17 compliant compiler. For Windows users, MSVC in Visual Studio 2019 (Community Edition) can be used. Some extensions of Visual Studio are also needed: Open Visual Studio Installer, go to Installed / More / Modify, under the Workloads tab, check Desktop development with C++ and Visual Studio extension development; under the Individual components tab, check C++ CMake tools for windows. Then click Modify.
OpenSees: The workflow applications require an installation of OpenSees to carry out a structural analysis using the finite element method.
DAKOTA: The workflow applications require an installation of DAKOTA to handle and propagate the uncertainties defined in the input files for the workflow applications.
Python: The workflow requires at least Python 3.7.
Gregory G. Deierlein, Frank McKenna, Adam Zsarnóczay, Tracy Kijewski-Correa, Ahsan Kareem,
Wael Elhaddad, Laura Lowes, Matt J. Schoettler, and Sanjay Govindjee (2020)
A Cloud-Enabled Application Framework for Simulating Regional-Scale Impacts of
diff --git a/docs/common/front-matter/desktop/ack.html b/docs/common/front-matter/desktop/ack.html
index b58fb905..4fffab80 100644
--- a/docs/common/front-matter/desktop/ack.html
+++ b/docs/common/front-matter/desktop/ack.html
@@ -123,9 +123,9 @@
The following is the list of all requirements across all the tools. It is helpful to view an abstract hierarchy of the tools, showing R2D at the top and the components at the bottom. Each application pulls in many of the requirements from the others. For Example PBE, builds upon EE-UQ. It has it;’s own requirements, i.e. DL, but includes the loading, modeling and analysis requirements from EE-UQ. It specializes the UQ requirement, in that it only incorporates the sampling option. One set of requirements not shown in the figure is CR, a listing of all the common functionalty required of all the applications.
Replacement of empirical linear models with multi-scale nonlinear models
+
GC
+
D
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.1.1.2
+
Include both multi-scale and multi-phase (account for liquefaction)
+
GC
+
M
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.1.1.3
+
Interface between asset and regional simulations using site response method
+
SP
+
M
+
InProgress
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.1.1.4
+
Interface between asset and regional simulations using DRM method
+
SP
+
M
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.1.2
+
Method to include both the intra-event residual and inter-event residual in simulating spatial correlated ground motion intensity measures with multiple correlation model options. Select site specific grouind motions from PEER to match target intensity
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.1.3
+
Use GIS-Specified Matrix of Recorded Motions
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.1.1
+
Select using default selection options
+
SP
+
D
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.1.2
+
Select using all options available at PEER site
+
UF
+
D
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.1.3
+
Select using user supplied spectrum
+
UF
+
D
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.2
+
Ability to select utilizing PEER NGA_West web service
+
SP
+
D
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.3
+
Ability to select from list of user supplied PEER motions
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.4
+
Ability to select from list of SimCenter motions
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.5
+
Ability to use OpenSHA and selection methods to generate motions
+
UF
+
D
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.6
+
Ability to Utilize Own Application in Workflow
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.7.1
+
1D nonlinear site response with effective stress analysis
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.7.2
+
Nonlinear site response with bidirectional loading
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.7.3
+
Nonlinear site response with full stochastic characterization of soil layers
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.7.4
+
Nonlinear site response, bidirectional different input motions
+
SP
+
M
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.8.1
+
per Vlachos, Papakonstantinou, Deodatis (2017)
+
SP
+
D
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.8.2
+
per Dabaghi, Der Kiureghian (2017)
+
UF
+
D
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.9
+
Ability to select from synthetic ground motions
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
EL.2.10
+
Ability to select surrogate modeling events
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
+
+
+
key:
+
Source: GC=Needed for Grand Challenges, SP=Senior Personnel, UF=User Feedback
Ability of Practicing Engineers to use multiple coupled resources (applications, databases, viz tools) in engineering practice
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
CR.2.1
+
Allow users to launch scientific workflows
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
CR.3
+
Ability to utilize resources beyond the desktop including HPC
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
CR.3.1
+
Allow users to utilize HPC resources at TACC through DesignSafe
+
SP
+
M
+
Implemented
+
_
+
_
+
_
+
_
+
_
+
_
+
+
CR.4
+
Efficient use of multiple coupled and linked models requiring sharing and inter-operability of databases, computing environments, networks, visualization tools, and analysis systems
Ability to benefit from programs that move research results into practice and obtain training
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
_
+
+
CR.6.1
+
Ability to use educational provisions to gain interdisclipinary education so as to gain expertise in earth sciences and physics, engineering mechanics, geotechnical engineering, and structural engineering in order to be qualified to perform these simulations
Need for scalable tools that autonomously create an accurate database of all infrastructure components, including points of inter- dependency with other infrastructure components
+
GC
+
M
+
InProgress
+
1.1.3.2
+
+
BR.2
+
Promote living community risk models utilizing local inventory data from various sources
+
GC
+
M
+
InProgress
+
+
+
BR.3
+
Developing and sharing standardized definitions, measurement protocols and strategies for data collection
+
GC
+
M
+
+
1.1.3.1
+
+
BR.4
+
Developing tools that utilize GIS information and online images, e.g. google maps, for data collection for gathering Building Information
Open-source software where developers can test new data and develop algorithms
-
-
-
-
-
-
-
-
+
_
+
_
+
_
+
_
CR.1.1
Provide open-source applications utilizing code hosting platforms, e.g. GitHub
@@ -1041,91 +816,73 @@
Common Research Application Requirements
CR.2
Ability of Practicing Engineers to use multiple coupled resources (applications, databases, viz tools) in engineering practice
-
-
-
-
-
-
-
-
+
_
+
_
+
_
+
_
CR.2.1
Allow users to launch scientific workflows
SP
M
Implemented
-
-
-
-
+
_
CR.3
Ability to utilize resources beyond the desktop including HPC
-
-
-
-
-
-
-
-
+
_
+
_
+
_
+
_
CR.3.1
Allow users to utilize HPC resources at TACC through DesignSafe
SP
M
Implemented
-
-
-
-
+
_
CR.4
Efficient use of multiple coupled and linked models requiring sharing and inter-operability of databases, computing environments, networks, visualization tools, and analysis systems
-
-
-
-
-
-
-
-
+
_
+
_
+
_
+
_
CR.4.1
Identify and include external analysis systems
SP
M
InProgress
-
-
-
-
+
_
CR.4.2
Identify and include external databases
SP
M
InProgress
-
-
-
-
+
_
CR.4.3
Identify and include external viz tools
SP
M
InProgress
-
-
-
-
+
_
CR.4.4
Identify and include external computing env
SP
M
Inprogress
-
-
-
-
+
_
CR.5
Tool available for download from web
-
-
-
-
-
-
-
-
+
_
+
_
+
_
+
_
CR.5.1
Tool downloadable from DesignSafe website
@@ -1136,79 +893,58 @@
Common Research Application Requirements
CR.6
Ability to benefit from programs that move research results into practice and obtain training
-
-
-
-
-
-
-
-
+
_
+
_
+
_
+
_
CR.6.1
Ability to use educational provisions to gain interdisclipinary education so as to gain expertise in earth sciences and physics, engineering mechanics, geotechnical engineering, and structural engineering in order to be qualified to perform these simulations
Aggregated sensitivity index[Jung2022]. Component sensitivity indices are useful for visualization, while the aggregated sensitivity index gives instant intuition on how much each variable influences the system response overall. See this example.
Jung2022
-
To be added
+
Jung, W., & Taflanidis, A. A. (2023). Efficient global sensitivity analysis for high-dimensional outputs combining data-driven probability models and dimensionality reduction. Reliability Engineering & System Safety, 231, 108805.
When one expects a high noise level in the response observations with varying variance scales across the domain, one may want to consider modeling the heteroscedastic noise. Note that the observation noise here comes from the variability not captured by the RV values we defined (i.e. \(x\)). For example, mapping between structural parameters (\(x\)) and its earthquake response (\(y\)) typically requires heteroscedastic GP models to capture effect of the aleatoric variability in the response ground motion time history. The below figure shows an example data shape for which a heteroscedastic GP model is required. quoFEM app introduces the stochastic Kriging algorithm in [Kyprioti2021] to achieve this, which relies on the so-called partial replication strategy, that is, to generate multiple realizations for a subset of inputs to examine response variance. In particular, a subset of initial samples are replicated to obtain variance estimates, i.e., variance realizations, at different sample locations, and these values are used to construct a variance-field model. Then by constraining the relative scales of the variance, the stochastic kriging emulator is trained using both replication and unique (non-replicated) samples. This example reproduces the results of Fig. 1.2.6
We provide different verification measures for two different cases.
+
+
When nugget variance is low : The LOOCV prediction \(\hat{\boldsymbol{y}}_k\) is expected to match the exact outcome \(\boldsymbol{y_k}=f(\boldsymbol{x}_k)\) when the surrogate model is well-trained. To quantify the goodness, R2 error, normalized root-mean-squared-error (NRMSE), and correlation coefficient are provided:
+
+
R2 error
R2 error is defined in terms of the total sum of squares over the residual sum of squares
When nugget variance is high : The distance between LOOCV prediction \(\hat{\boldsymbol{y}}_k\) and the exact outcome \(\boldsymbol{y_k}=f(\boldsymbol{x}_k)\) is expected to follow a normal distribution when the surrogate model is well-trained. To quantify the goodness, inter-quartile ratio (IQR) and Cramer-Von Mises statistics can be evaluated:
+
+
+
+
Inter-quartile ratio (IQR): IQR provides the ratio of the sample QoIs that lies in 25-75% LOOCV prediction bounds (interquartile range). The IQR values should theoretically approach 0.5 if the prediction is accurate.
+
Cramer-Von Mises statistics: Cramer-Von Mises statistics calculates the normality score. The assumption of a GP is that the observations follow a normal distribution conditional on the input parameters. To assess the normality of the model predictions, the difference between the mean prediction \(\hat{y}_k\) and the sample observation \(y_k\) value is divided by the standard deviation prediction from surrogate \(\hat{\sigma}_{y,k}\):
If the values of \({u_k}\) follow standard normal distribution, the resulting surrogate model may be considered well-constructed. The Cramer-Von Mises test is calculated using the scipy.stats.cramervonmises function in the Python package Scipy, and the resulting p-value is displayed. Conventionally, if the p-value exceeds a significance threshold, e.g. 0.05, the null hypothesis that the samples are from a normal distribution is not rejected, meaning the samples may be considered to follow a Gaussian distribution.
Rasmussen, C.E. and Williams, C.K. (2006). Gaussian Process for Machine Learning. Cambridge, MA: The MIT Press, 2006 (available on-line at http://www.gaussianprocess.org/gpml/)
Step 1. Modify the Model Script to Define Random Variables and Quantities of Interest
@@ -545,8 +545,8 @@
2.2. quoFEM for a Python Model Interface
-
-
+
+
Step 2
Step 2. Run quoFEM
@@ -605,7 +605,7 @@
2.2. quoFEM for a Python Model Interface
The order should match that written in the results.out file, and the specified name of QoIs are used only for the display in this example. Please see here to learn about vector QoIs which have a length greater than 1
-
When all the fields are filled in, click the Run button, and the analysis will be performed. The program will go into “not responding”, but that means quoFEM is busy running the analysis. You can check the progress status in your Local Working directory which can be found in the preference window. The number attached to ‘workdir.’ indicates the simulation index, and each folder contains the details for each simulation run.
+
When all the fields are filled in, click the Run button, and the analysis will be performed. Do not press the Run button twice - it will give you an error. You can check the progress status in your Local Working directory which can be found in the preference window. The number attached to ‘workdir.’ indicates the simulation index, and each folder contains the details for each simulation run.
The following are a few examples showing the usage of quoFEM. Video companions showing these examples are also provided for selected problems. The files for the examples are available on Github.
Consider the problem of uncertainty quantification in a nine story steel building. The building being modelled is the 9 story LA building presented in the FEMA-355C report. From the description in Appendix B of the FEMA document the building is a 150 ft square building with a height above ground of 120 ft with a weight of approx. 19,800 kips. Eigenvalues are shown in Table 5.1. of the FEMA document to be between 2.3 sec and 2.2 sec depending on connection detals. For this example (and for demonstrative purposes only), this building will be modelled as a shear building with 10 nodes and 9 elements, as shown in following figure. For loading, the Stochastic Wind Generation tool will be used with the gust wind speed being treated as a random variable with a normal distribtion described by a mean \(\mu_{gustWS}=20 \mathrm{mph}\) and standard deviation \(\sigma_{gustWS} =3 \mathrm{mph}\).
The structure has uncertain properties that all follow normal distribution:
+
+
Weight of Typical Floor(w): mean \(\mu_w=2200 \mathrm{kip}\) and standard deviation \(\sigma_w =200 \mathrm{kip}\) (COV = 10%)
+
Story Stiffness(k): mean \(\mu_k=1600 \mathrm{kip/in}\) and standard deviation \(\sigma_k =160 \mathrm{kip/in}\) (COV = 10%)
+
+
+
Note
+
+
For the mean values provided the natural period of the structure is 2.27 sec.
+
The choice of COV percentages is for demonstrative purposes only.
+
The exercise will use both the MDOF, lblMDOFSIM, and OpenSees, lblOpenSeesSIM, structural generators. For the OpenSees generator the following model script, Frame9Model.tcl.
+
+
#units kip, in
+
+# variable parameter
+psetw2200.0
+psetk1600.0
+
+
+# constants
+setg386.1;
+setb1800.
+setd1800.
+seth1440.
+setnumStory9
+setbW20000.0;# building Weight
+
+# derived parameters
+setsH[expr$h/(1.*$numStory)];# story Height
+setfM[expr$w/$g];# floor translational mass
+setsM1.0e-3;# floor rotational mass
+
+# build model
+modelBasic-ndm3-ndf6
+node10.0.0.
+fix1111111
+setE29000.
+setA1e4
+setI[expr$k*$sH*$sH*$sH/(12.*$E)]
+geomTransfLinear1010
+setG1e4
+setJ1e8
+
+for{seti1;setj2}{$i<=$numStory}{incri1;incrj1}{
+node$j0.0.[expr$i*$sH]-mass$fM$fM$fM$sM$sM$sM
+fix$j001110
+elementelasticBeamColumn$i$i$j$A$E$G$J$I$I1
+}
+
+
+
+
The first lines containing pset will be read by the application when the file is selected and the application will auto-populate the random variables w and k in the RV panel with this same variable name. It is of course possible to explicitly use random variables without the pset command by “RV.**variable name” in the input file. However, no random variables will be auto-populated if user chooses this route.
+
+
+
+
Warning
+
Do not place the file in your root, downloads, or desktop folder as when the application runs it will copy the contents on the directories and subdirectories containing this file multiple times (a copy will be made for each sample specified). If you are like us, your root, Downloads or Documents folders contains and awful lot of files and when the backend workflow runs you will slowly find you will run out of disk space!
To perform a Sampling or Forward propagation uncertainty analysis the user would perform the following steps:
+
+
Start the application and the UQ Selection will be highlighted. In the panel for the UQ selection, keep the UQ engine as that selected, i.e. Dakota, and the UQ Method Category as Forward Propagation, and the Forward Propagation method as LHS (Latin Hypercube). Change the #samples to 500 and the seed to 20 as shown in the figure.
+
+
+
+
+
+
Next select the GI panel. In this panel the building properties and units are set. For this example enter 9 for the number of stories, 1400 for building height, and 1600 for building breadth and depth
+
+
+
+
+
+
Next select the SIM panel from the input panel. This will default in the MDOF model generator. We will use this generator (the NOTE below contains instruction on how to use the OpenSees scipt instead). In the building information panel, the number of stories should show 9 and the story heights 160. In the building Information box specify w for the floor weights and k for story stiffness (in both x and y directions).
+
+
+
+
+
+
Note
+
To specify instead to use the OpenSees script instead, from thee Model Generator pull down menu select OpenSees. For the fields in the panel presented enter the path to the Frame9Model.tcl script. For both the Centroid Nodes (those nodes were the floor loads will be applied) the Response Nodes (those nodes from which the reponse quantities will be evaluated) as 1 2 3 4 5 6 7 8 9 10 in the panel. The Response nodes will tell model generator which nodes correspond to nodes at the 4 floor levels for which responses are to be obtained when using the standard earthquake EDP’s.
+
+
+
+
+
+
Next select the EVT panel. From the Load Generator pull down menu select the Stochastic Wind option. Leave the exposure condition as B. Set the drag coefficient as 1.3 and enter gustWS for the 3 sec gust wind speed at the 33 ft height.
+
+
+
+
+
+
Next choose the FEM panel. Here we will change the entries to use Rayleigh damping, with rayleigh factor chosen using 1 and 6 modes. For the MDOF model generator, because it generates a model with two translational and 1 rotational degree-of-freedom in each direction and because we have provided the same k values in each translational direction, i.e. we will have duplicate eigenvalues, we specify as shown in the figure modes 1 and 6.
+
+
+
+
+
+
We will skip the EDP panel leaving it in it’s default condition, that being to use the Standard Wind EDP generator.
+
For the RV panel, we will enter the distributions and values for our random variables. Because of the steps we have followed and entries we have made, the panel when we open it should contain the 3 random variables and they should all be set constant. For the w, k and wS random variables we change the distributions to normal and enter the values given for the problem, as shown in figure below.
+
+
+
+
+
+
Warning
+
The user cannot leave any of the distributions for these values as constant for the Dakota UQ engine.
+
+
+
Next click on the Run button. This will cause the backend application to launch dakota. When done the RES panel will be selected and the results will be displayed. The results show the values the mean and standard deviation. The peak displacement of the roof, is the quantity 1-PFD-9-1 (first event (tool to be extended to multiple events), 9th floor (in US ground floor considered 0), and 1 dof direction). the PFA quantity defines peak floor acceleration, the RMSA quantity the root mean square of floor accelerations, and the PID quantity corresponds to peak interstory drift.
+
+
+
+
+
If the user selects the “Data” tab in the results panel, they will be presented with both a graphical plot and a tabular listing of the data. By left- and right-clicking with the mouse in the individual columns the axis change (left mouse click controls vertical axis, right mouse click the horizontal axis).
+
+
+
+
Various views of the graphical display can be obtained by left and right clicking in the columns of the tabular data. If a singular column of the tabular data is pressed with both right and left buttons a frequency and CDF will be displayed, as shown in figure below.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/common/user_manual/examples/desktop/qfem-0001/README.html b/docs/common/user_manual/examples/desktop/qfem-0001/README.html
index 0f8e18e1..feaf8a92 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0001/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0001/README.html
@@ -7,7 +7,7 @@
- 5.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity — Quantified Uncertainty with Optimization for the FEM documentation
@@ -50,8 +50,8 @@
-
-
+
+
@@ -124,30 +124,30 @@
5.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity
+
4.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity
@@ -233,7 +233,7 @@
-
5.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity¶
+
4.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity¶
Consider the problem of uncertainty quantification in a two-dimensional truss structure shown in the following figure.
@@ -442,7 +442,7 @@
Do not place the files in your root, downloads, or desktop folder as when the application runs it will copy the contents on the directories and subdirectories containing these files multiple times. If you are like us, your root, Downloads or Documents folders contains and awful lot of files and when the backend workflow runs you will slowly find you will run out of disk space!
For this forward propagation problem, we need to define a Python script
that will import a set of random variable values, apply them to the
Rosenbrock function, then write the results to a file named
@@ -371,11 +371,11 @@
In this example, a parameter estimation routine is used to estimate
column stiffnesses of a simple steel frame, given synthetic data about its mode
shapes and frequencies, by minimizing the sum of the squared errors between the data and the model predictions.
Consider the two-story building structure shown in Fig. 5.4.2.1.1. Each floor slab is made of a composite metal deck and is supported on the steel columns. These four columns are fixed at the base. The story height is \(h = 10'\), length of each slab is \(33'4''\) and \(30'\) along the X and Y direction, respectively. \(m_1 = 0.52 kips-s^2/in\) and \(m_2 = 0.26 kips-s^2/in\) are the total mass of floor 1 and floor 2, respectively. For the steel columns, Young’s modulus is \(E_s^{col} = 29000 ksi\) and the moment of inertia \(I_{yy}^{col} = 1190 in^4\).
Consider the two-story building structure shown in Fig. 4.4.2.1.1. Each floor slab is made of a composite metal deck and is supported on the steel columns. These four columns are fixed at the base. The story height is \(h = 10'\), length of each slab is \(33'4''\) and \(30'\) along the X and Y direction, respectively. \(m_1 = 0.52 kips-s^2/in\) and \(m_2 = 0.26 kips-s^2/in\) are the total mass of floor 1 and floor 2, respectively. For the steel columns, Young’s modulus is \(E_s^{col} = 29000 ksi\) and the moment of inertia \(I_{yy}^{col} = 1190 in^4\).
-
Fig. 5.4.2.1.1 Steel structural system being studied in this example.¶
+
Fig. 4.4.2.1.1 Steel structural system being studied in this example.¶
In this example, only the response of the system along the X direction is considered. For modeling purposes, the floor diaphragms are assumed rigid both in plane and in flexure, and the columns are assumed axially rigid. The structure is modeled as a two-story 2D shear building model as shown in Fig. 5.4.2.2.1. The finite element (FE) software framework OpenSees is utilized for modeling and analysis of the considered structural system. The developed FE model consists of 6 nodes and 6 elastic beam-column elements. To simulate the flexural rigidity of the floors, the moment of inertia \(I_{yy}\) of the horizontal elements is set to a very large number. The horizontal degrees of freedom of node 3 and node 4 are constrained to be equal throughout the analysis to mimic the axial rigidity of floor 1. Similar modeling is performed for floor 2. The vertical displacements of nodes 3, 4, 5, and 6 are constrained to be zero to model the axial rigidity of the columns (see roller supports in Fig. 5.4.2.2.1). After making these modeling assumptions, the only active degrees of freedom of the FE model are the horizontal displacements (translations) of floors 1 and 2, \(u_1\) and \(u_2\), respectively, as shown in Fig. 5.4.2.2.1.
In this example, only the response of the system along the X direction is considered. For modeling purposes, the floor diaphragms are assumed rigid both in plane and in flexure, and the columns are assumed axially rigid. The structure is modeled as a two-story 2D shear building model as shown in Fig. 4.4.2.2.1. The finite element (FE) software framework OpenSees is utilized for modeling and analysis of the considered structural system. The developed FE model consists of 6 nodes and 6 elastic beam-column elements. To simulate the flexural rigidity of the floors, the moment of inertia \(I_{yy}\) of the horizontal elements is set to a very large number. The horizontal degrees of freedom of node 3 and node 4 are constrained to be equal throughout the analysis to mimic the axial rigidity of floor 1. Similar modeling is performed for floor 2. The vertical displacements of nodes 3, 4, 5, and 6 are constrained to be zero to model the axial rigidity of the columns (see roller supports in Fig. 4.4.2.2.1). After making these modeling assumptions, the only active degrees of freedom of the FE model are the horizontal displacements (translations) of floors 1 and 2, \(u_1\) and \(u_2\), respectively, as shown in Fig. 4.4.2.2.1.
A translational mass \(m_1/2\) and \(m_2/2\) is lumped at the nodes of floor 1 and 2, respectively, along the X direction. The lateral story stiffnesses \(k_1\) and \(k_2\) of story 1 and 2, respectively, are equal to \(48 E_s^{col} I_{yy}^{col}/{h^3}\).
-
Fig. 5.4.2.2.1 Model of the structural system used in finite element analysis.¶
+
Fig. 4.4.2.2.1 Model of the structural system used in finite element analysis.¶
-
5.4.2.3. Natural vibration frequencies and mode shapes¶
-
Since the shear building model shown in Fig. 5.4.2.2.1 has only two degrees of freedom, it has two natural modes of vibration. Let \(\lambda_i\) and \(\phi_i\) be the \(i^{th}\) eigenvalue and its corresponding eigenvector, respectively. The two eigenvalues and eigenvectors are obtained by solving the generalized eigenvalue problem of the considered system in OpenSees. The following two eigenvalues are obtained:
+
4.4.2.3. Natural vibration frequencies and mode shapes¶
+
Since the shear building model shown in Fig. 4.4.2.2.1 has only two degrees of freedom, it has two natural modes of vibration. Let \(\lambda_i\) and \(\phi_i\) be the \(i^{th}\) eigenvalue and its corresponding eigenvector, respectively. The two eigenvalues and eigenvectors are obtained by solving the generalized eigenvalue problem of the considered system in OpenSees. The following two eigenvalues are obtained:
The FE model of a real structural system often consists of parameters that are unknown to some degree. For example, the parameters related to the mass or stiffness or damping of the system might be unknown. The goal of parameter estimation is to estimate such unknown parameters using some measurement data. The measurement data is obtained by using sensors deployed on the real system. To demonstrate the parameter estimation concept/framework on the considered two-story building system, the first and second story column moment of inertias, \(I_{c1}\) and \(I_{c2}\), are assumed to be unknown while the mass parameters are assumed to be known. In this illustration example, the unknown parameter vector \(\mathbf{\theta}=(I_{c1}, I_{c2})^T\) is estimated using the first eigenvalue and the first eigenvector data.
In a real-world application, data on the first eigenvalue and the first eigenvector would consist of system identification results obtained from sensor measurement data. Note that the considered two-story building structure (see Fig. 5.4.2.1.1) is used here as a conceptual/pedagogical example and does not exist in the real world. Therefore, sensor measurement data cannot be collected from the system. As a substitute, measurement data (in the form of estimated first eigenvalue and first eigenvector) are artificially simulated for the purpose of this example, i.e., system identification results for \(\lambda_i\) and \(\phi_i\) from multiple ambient vibration datasets are simulated. To simulate these system identification results (i.e., measurement data), an eigenvalue analysis of the system is performed assuming the following true principal moment of inertia of the columns:
In a real-world application, data on the first eigenvalue and the first eigenvector would consist of system identification results obtained from sensor measurement data. Note that the considered two-story building structure (see Fig. 4.4.2.1.1) is used here as a conceptual/pedagogical example and does not exist in the real world. Therefore, sensor measurement data cannot be collected from the system. As a substitute, measurement data (in the form of estimated first eigenvalue and first eigenvector) are artificially simulated for the purpose of this example, i.e., system identification results for \(\lambda_i\) and \(\phi_i\) from multiple ambient vibration datasets are simulated. To simulate these system identification results (i.e., measurement data), an eigenvalue analysis of the system is performed assuming the following true principal moment of inertia of the columns:
To simulate system identification results (measurement data), random estimation errors are added to \(\lambda_1^{true}\) and \(\phi_{12}^{true}\). The random estimation errors for \(\lambda_1^{true}\) and \(\phi_{12}^{true}\) are assumed to be statistically independent, zero-mean Gaussian with 5% coefficient of variation (relative to \(\lambda_1^{true}\) and \(\phi_{12}^{true}\)). Thus, the standard deviation of the system identification errors for \(\lambda_1^{true}\) and \(\phi_{12}^{true}\) are
Our goal will be to estimate the column moments of inertia from
-the data in (5.4.2.5.4) using a conventional calibration procedure (i.e., a method based on non-linear least squares minimization of the sum of the squared errors between the data and the model predictions).
+the data in (4.4.2.5.4) using a conventional calibration procedure (i.e., a method based on non-linear least squares minimization of the sum of the squared errors between the data and the model predictions).
The unknown quantities of interest are the moments of inertia for the
first and second story columns (Ic1 and Ic2 respectively), on
which we impose the the following bounds and initial estimates:
This is the SteelFrame:DeterministicCalibration example in the quoFEM Examples menu. Selecting this example from the menu will autopopulate all the input fields required to run this example.
diff --git a/docs/common/user_manual/examples/desktop/qfem-0009/README.html b/docs/common/user_manual/examples/desktop/qfem-0009/README.html
index bea46a34..95d10935 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0009/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0009/README.html
@@ -7,7 +7,7 @@
-
5.5. Two-Dimensional Truss: Global Sensitivity Analysis using SimCenterUQ Engine — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.5. Two-Dimensional Truss: Global Sensitivity Analysis using SimCenterUQ Engine — Quantified Uncertainty with Optimization for the FEM documentation
@@ -50,8 +50,8 @@
-
-
+
+
@@ -124,32 +124,32 @@
To define the uncertainty workflow in quoFEM, select the SimCenterUQ engine
and specify Sensitivity Analysis and Monte Carlo for the
UQ Method Category and Method combination boxes, respectively.
@@ -304,7 +304,7 @@
QuoFEM also supports MCS-based sensitivity analysis method offered in Dakota engine. In this section, the sensitivity analysis is conducted using different number of samples, and the results were compared with those from Dakota engine.
-
Table 5.5.4.1 SimCenterUQ: Sensitivity indices from different number of samples¶
+
Table 4.5.4.1 SimCenterUQ: Sensitivity indices from different number of samples¶
@@ -383,7 +383,7 @@
5.5.4. Comparison with Dakota engine
-
Table 5.5.4.2 Dakota: Sensitivity indices from different number of samples (the first raw is the user-specified number of samples and the second raw is the actual number of simulation calls)¶
+
Table 4.5.4.2 Dakota: Sensitivity indices from different number of samples (the first raw is the user-specified number of samples and the second raw is the actual number of simulation calls)¶
Consider the case with correlated random variables. For example, below shows correlation matrix where the correlation between the variables Au and Ao are \(\rho=0.5\).
In this example, Bayesian estimation is used to estimate the lateral story
stiffnesses of the two stories of a simple steel frame, given data about
its mode shapes and frequencies. The transitional Markov chain Monte Carlo
@@ -263,66 +263,66 @@
Consider the two-story building structure shown in Fig. 5.6.2.1.1. Each floor slab is made of a composite metal deck and is supported on the steel columns. These four columns are fixed at the base. The story height is \(h = 10'\), length of each slab is \(33'4''\) and \(30'\) along the X and Y direction, respectively. \(m_1 = 0.52 \ \ kips-s^2/in\) and \(m_2 = 0.26 \ \ kips-s^2/in\) are the total mass of floor 1 and floor 2, respectively. For the steel columns, Young’s modulus is \(E_s^{col} = 29000 \ \ ksi\) and the moment of inertia \(I_{yy}^{col} = 1190 \ \ in^4\).
Consider the two-story building structure shown in Fig. 4.6.2.1.1. Each floor slab is made of a composite metal deck and is supported on the steel columns. These four columns are fixed at the base. The story height is \(h = 10'\), length of each slab is \(33'4''\) and \(30'\) along the X and Y direction, respectively. \(m_1 = 0.52 \ \ kips-s^2/in\) and \(m_2 = 0.26 \ \ kips-s^2/in\) are the total mass of floor 1 and floor 2, respectively. For the steel columns, Young’s modulus is \(E_s^{col} = 29000 \ \ ksi\) and the moment of inertia \(I_{yy}^{col} = 1190 \ \ in^4\).
-
Fig. 5.6.2.1.1 Steel structural system being studied in this example.¶
+
Fig. 4.6.2.1.1 Steel structural system being studied in this example.¶
In this example, only the response of the system along the X direction is considered. For modeling purposes, the floor diaphragms are assumed rigid both in plane and in flexure, and the columns are assumed axially rigid. The structure is modeled as a two-story 2D shear building model as shown in Fig. 5.6.2.2.1. The finite element (FE) software framework OpenSees is utilized for modeling and analysis of the considered structural system. The developed FE model consists of 6 nodes and 6 elastic beam-column elements. To simulate the flexural rigidity of the floors, the moment of inertia \(I_{yy}\) of the horizontal elements is set to a very large number. The horizontal degrees of freedom of node 3 and node 4 are constrained to be equal throughout the analysis to mimic the axial rigidity of floor 1. Similar modeling is performed for floor 2. The vertical displacements of nodes 3, 4, 5, and 6 are constrained to be zero to model the axial rigidity of the columns (see roller supports in Fig. 5.6.2.2.1). After making these modeling assumptions, the only active degrees of freedom of the FE model are the horizontal displacements (translations) of floors 1 and 2, \(u_1\) and \(u_2\), respectively, as shown in Fig. 5.6.2.2.1.
In this example, only the response of the system along the X direction is considered. For modeling purposes, the floor diaphragms are assumed rigid both in plane and in flexure, and the columns are assumed axially rigid. The structure is modeled as a two-story 2D shear building model as shown in Fig. 4.6.2.2.1. The finite element (FE) software framework OpenSees is utilized for modeling and analysis of the considered structural system. The developed FE model consists of 6 nodes and 6 elastic beam-column elements. To simulate the flexural rigidity of the floors, the moment of inertia \(I_{yy}\) of the horizontal elements is set to a very large number. The horizontal degrees of freedom of node 3 and node 4 are constrained to be equal throughout the analysis to mimic the axial rigidity of floor 1. Similar modeling is performed for floor 2. The vertical displacements of nodes 3, 4, 5, and 6 are constrained to be zero to model the axial rigidity of the columns (see roller supports in Fig. 4.6.2.2.1). After making these modeling assumptions, the only active degrees of freedom of the FE model are the horizontal displacements (translations) of floors 1 and 2, \(u_1\) and \(u_2\), respectively, as shown in Fig. 4.6.2.2.1.
A translational mass \(m_1/2\) and \(m_2/2\) is lumped at the nodes of floor 1 and 2, respectively, along the X direction. The lateral story stiffnesses \(k_1\) and \(k_2\) of story 1 and 2, respectively, are equal to \(48 E_s^{col} I_{yy}^{col}/{h^3}\). Hence, the story stiffnesses\(k_1\) and \(k_2\)are both equal to 958.61 kips/in.
-
Fig. 5.6.2.2.1 Model of the structural system used in finite element analysis.¶
+
Fig. 4.6.2.2.1 Model of the structural system used in finite element analysis.¶
-
5.6.2.3. Natural vibration frequencies and mode shapes¶
-
Since the shear building model shown in Fig. 5.6.2.2.1 has only two degrees of freedom, it has two natural modes of vibration. Let \(\lambda_i\) and \(\phi_i\) be the \(i^{th}\) eigenvalue and its corresponding eigenvector, respectively. The two eigenvalues and eigenvectors are obtained by solving the generalized eigenvalue problem of the considered system in OpenSees. The following two eigenvalues are obtained:
+
4.6.2.3. Natural vibration frequencies and mode shapes¶
+
Since the shear building model shown in Fig. 4.6.2.2.1 has only two degrees of freedom, it has two natural modes of vibration. Let \(\lambda_i\) and \(\phi_i\) be the \(i^{th}\) eigenvalue and its corresponding eigenvector, respectively. The two eigenvalues and eigenvectors are obtained by solving the generalized eigenvalue problem of the considered system in OpenSees. The following two eigenvalues are obtained:
The FE model of a real structural system often consists of parameters that are unknown to some degree. For example, the parameters related to the mass or stiffness or damping of the system might be unknown. The goal of parameter estimation is to estimate such unknown parameters using some measurement data. The measurement data is obtained by using sensors deployed on the real system. To demonstrate the parameter estimation concept/framework on the considered two-story building system, the first and second story story stiffnesses, \(k_{1}\) and \(k_{2}\), are assumed to be unknown while the mass parameters are assumed to be known. In this illustration example, the unknown parameter vector \(\mathbf{\theta}=(k_{1}, k_{2})^T\) is estimated using the first eigenvalue and the first eigenvector data.
In a real-world application, data on the first eigenvalue and the first eigenvector would consist of system identification results obtained from sensor measurement data. Note that the considered two-story building structure (see Fig. 5.6.2.1.1) is used here as a conceptual/pedagogical example and does not exist in the real world. Therefore, sensor measurement data cannot be collected from the system. As a substitute, measurement data (in the form of estimated first eigenvalue and first eigenvector) are artificially simulated for the purpose of this example, i.e., system identification results for \(\lambda_i\) and \(\phi_i\) from multiple ambient vibration datasets are simulated. To simulate these system identification results (i.e., measurement data), an eigenvalue analysis of the system is performed assuming the following true principal moment of inertia of the columns:
In a real-world application, data on the first eigenvalue and the first eigenvector would consist of system identification results obtained from sensor measurement data. Note that the considered two-story building structure (see Fig. 4.6.2.1.1) is used here as a conceptual/pedagogical example and does not exist in the real world. Therefore, sensor measurement data cannot be collected from the system. As a substitute, measurement data (in the form of estimated first eigenvalue and first eigenvector) are artificially simulated for the purpose of this example, i.e., system identification results for \(\lambda_i\) and \(\phi_i\) from multiple ambient vibration datasets are simulated. To simulate these system identification results (i.e., measurement data), an eigenvalue analysis of the system is performed assuming the following true principal moment of inertia of the columns:
To simulate system identification results (measurement data), random estimation errors are added to \(\lambda_1^{true}\) and \(\phi_{12}^{true}\). The random estimation errors for \(\lambda_1^{true}\) and \(\phi_{12}^{true}\) are assumed to be statistically independent, zero-mean Gaussian with 5% coefficient of variation (relative to \(\lambda_1^{true}\) and \(\phi_{12}^{true}\)). Thus, the standard deviation of the system identification errors for \(\lambda_1^{true}\) and \(\phi_{12}^{true}\) are
In this example, it is assumed that the story stiffnesses for the first and second story (\(k_{1}\) and \(k_{2}\) respectively) are unknown. The goal is to use the simulated data of eigenvalue and eigenvector measurements to obtain the posterior probability distribution of the story stiffnesses by Bayesian calibration. We will employ the Transitional Markov Chain Monte Carlo (TMCMC) algorithm, to sample from the posterior joint probability distribution of \(k_{1}\) and \(k_{2}\).
We define the following prior probability distributions for the unknown quantities of interest:
Selecting the SteelFrame:BayesianCalibrationusingTMCMC example in the quoFEM Examples menu will autopopulate all the input fields required to run this example.
diff --git a/docs/common/user_manual/examples/desktop/qfem-0015/README.html b/docs/common/user_manual/examples/desktop/qfem-0015/README.html
index 0aa15def..60511556 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0015/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0015/README.html
@@ -7,7 +7,7 @@
-
5.7. Surrogate Modeling for One Story Building Earthquake Response — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.7. Surrogate Modeling for One Story Building Earthquake Response — Quantified Uncertainty with Optimization for the FEM documentation
@@ -49,8 +49,8 @@
-
-
+
+
@@ -123,32 +123,32 @@
5.7. Surrogate Modeling for One Story Building Earthquake Response
+
4.7. Surrogate Modeling for One Story Building Earthquake Response
@@ -234,7 +234,7 @@
-
5.7. Surrogate Modeling for One Story Building Earthquake Response¶
+
4.7. Surrogate Modeling for One Story Building Earthquake Response¶
@@ -251,11 +251,11 @@
This example may run up to 20 minutes depending on the computer performance. For a quick test run, the user may want to reduce the Max Computation Time or Max Number of model Runs.
This example constructs a Gaussian process-based surrogate model for the response of a building structure given a ground motion time history. We are interested in the maximum inter-story drift/acceleration response determined in 14 structural parameters.
-
Fig. 5.7.1.1 Conceptual illustration of surrogate modeling¶
+
Fig. 4.7.1.1 Conceptual illustration of surrogate modeling¶
The building model based on the work described in [Zou2020].
Once the user selects OpenSeesPy as FEM applications, below three fields are requested.
Input Script - CWH.py: This file is the main Python script that builds the model and runs the analysis. It is supplied to the Input Script field of the FEM tab. Because this file writes directly to results.out, it obviates the need for supplying a post-process script.
Start the application, and the UQ Selection will be highlighted. Change the UQ Engine to SimCenterUQ and the Method Category to Training GP Surrogate Model. Since the model is provided, the Training Dataset will be obtained by Sampling and Simulation. Default settings are used for the advanced options.
Once surrogate model is constructed, it can be used for various UQ/optimization applications. Here we perform a simple forward analysis to verify the constructed surrogate model.
The constructed surrogate model can be saved by Save GP Model button. Two files and a folder will be saved which are SurroateGP Info File (default name: SimGpModel.json), SurroateGP model file (default name: SimGpModel.pkl) and Simulation template directory which contains the simulation model information (templatedir_SIM).
diff --git a/docs/common/user_manual/examples/desktop/qfem-0016/README.html b/docs/common/user_manual/examples/desktop/qfem-0016/README.html
index 7796019d..968f46fb 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0016/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0016/README.html
@@ -7,7 +7,7 @@
- 5.8. Surrogate Modeling to Predict Mean and Variance of Earthquake Response — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.8. Surrogate Modeling to Predict Mean and Variance of Earthquake Response — Quantified Uncertainty with Optimization for the FEM documentation
@@ -49,8 +49,8 @@
-
-
+
+
@@ -123,32 +123,32 @@
Once the user selects OpenSeesPy as FEM applications, the below two fields are requested.
Input Script - ShearBuilding_NL.tcl: This file is the main OpenSees input script that implements builds the model, reads ground motion time histories, and runs the analysis repeatedly. It is supplied to the Input Script field of the FEM tab.
Since the model is provided, Training Dataset can be obtained by Sampling and Simulation. Since it is known that the mean and variance of peak drift are always positive, log-transform is introduced. Since a trend is expected, a linear trend function is introduced.
@@ -350,7 +350,7 @@
5.8.4. UQ Workflow
-
5.8.5. Sensitivity analysis using the Surrogate model¶
+
4.8.5. Sensitivity analysis using the Surrogate model¶
Once the surrogate model is trained, it can be used for various UQ/optimization applications. Here we perform a sensitivity analysis and compare it with the results from simulation model.
The constructed surrogate model can be saved by Save GP Model button. Two files and a folder will be saved which are SurroateGP Info File (default name: SimGpModel.json), SurroateGP model file (default name: SimGpModel.pkl) and Simulation template directory which contains the simulation model information (templatedir_SIM).
diff --git a/docs/common/user_manual/examples/desktop/qfem-0017/README.html b/docs/common/user_manual/examples/desktop/qfem-0017/README.html
index 35e3310e..58992f64 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0017/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0017/README.html
@@ -7,7 +7,7 @@
- 5.9. Custom UQ for UQpy — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.9. Custom UQ for UQpy — Quantified Uncertainty with Optimization for the FEM documentation
@@ -49,8 +49,8 @@
-
-
+
+
@@ -123,28 +123,28 @@
{"Parameters":[{
diff --git a/docs/common/user_manual/examples/desktop/qfem-0019/README.html b/docs/common/user_manual/examples/desktop/qfem-0019/README.html
index e9d136a0..bd283566 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0019/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0019/README.html
@@ -7,7 +7,7 @@
- 5.10. Bayesian Calibration of Material Model Parameters — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.10. Bayesian Calibration of Material Model Parameters — Quantified Uncertainty with Optimization for the FEM documentation
@@ -50,8 +50,8 @@
-
-
+
+
@@ -124,41 +124,41 @@
In this example, the parameters of the STEEL02 material model in OpenSees
are calibrated using Bayesian inference. Experimental data is
passed in to quoFEM from an external file, and the output is the time-history of
stress.
The stress-strain data obtained experimentally from a cyclic test on a coupon prepared from a bar of reinforcing steel is shown in Fig. 4.10.2.1.1.
-
Fig. 5.10.2.1.1 Stress-strain curve from cyclic test on test coupon from reinforcing steel bar.¶
+
Fig. 4.10.2.1.1 Stress-strain curve from cyclic test on test coupon from reinforcing steel bar.¶
-
This stress-strain data was obtained corresponding to a randomized strain history similar to those observed experimentally in reinforcing steel during seismic tests, as shown in Fig. 5.12.3.1.
+
This stress-strain data was obtained corresponding to a randomized strain history similar to those observed experimentally in reinforcing steel during seismic tests, as shown in Fig. 4.12.3.1.
-
Fig. 5.10.2.1.2 The test coupon was subjected to this strain history.¶
+
Fig. 4.10.2.1.2 The test coupon was subjected to this strain history.¶
-
The corresponding stress history is shown in Fig. 5.10.2.1.3.
+
The corresponding stress history is shown in Fig. 4.10.2.1.3.
-
Fig. 5.10.2.1.3 The stress history obtained from the experiment.¶
+
Fig. 4.10.2.1.3 The stress history obtained from the experiment.¶
For this example, the STEEL02 material model in OpenSees was selected to represent the cyclic stress-strain response of the steel reinforcing bar in finite element simulations. The STEEL02 material model in OpenSees can take a total of 11 parameter values as input, as described in the documentation. Of these 11 parameters, the value of 7 parameters shown in Table 1 will be calibrated in this example.
Table 1: Parameters of the STEEL02 material model whose values are being calibrated.
In this example, the values of the parameters shown in Table 1 are being estimated. The table also shows the lower and upper bounds of the uniform distribution that is assumed to the prior probability distribution for these parameters. The unkown parameters in this problem, \(\mathbf{\theta}=(f_y, E, b, cR_1, cR_2, a_1, a_3)^T\) are estimated using the data of the stress response corresponding to the strain history shown in Fig. 5.12.3.1.
In this example, the values of the parameters shown in Table 1 are being estimated. The table also shows the lower and upper bounds of the uniform distribution that is assumed to the prior probability distribution for these parameters. The unkown parameters in this problem, \(\mathbf{\theta}=(f_y, E, b, cR_1, cR_2, a_1, a_3)^T\) are estimated using the data of the stress response corresponding to the strain history shown in Fig. 4.12.3.1.
The Gaussian likelihood that is used by default in quoFEM is employed for this problem. This assumes that the errors (i.e. the differences between the finite element prediction of the stress history and the experimentally obtained stress history) follow a zero-mean Gaussian distribution. The components of the error vector are assumed to be statistically independent and identically distributed. Under this assumption, the standard deviation of the error is also an unknown parameter of the likelihood model and is also estimated during the calibration process. quoFEM automatically sets up the prior probability distribution for this additional parameter.
Selecting the MaterialModel:BayesianCalibrationwithTMCMC example in the quoFEM Examples menu will autopopulate all the input fields required to run this example.
@@ -425,7 +425,7 @@
5.10.4. UQ workflow
-
5.10.5. Comaparison with deterministic calibration results¶
+
4.10.5. Comaparison with deterministic calibration results¶
For the same data and choice of material model to represent the data, deterministic estimation of the parameters of the material model shown in Table 1 was also conducted in quoFEM using the non-linear least squares minimization algorithm available through the Dakota UQ engine.
The bounds and the starting point of the search for the optimum parameter values are shown in Table 2.
Table 2: Parameters of the STEEL02 material model whose optimum values are being estimated.
Selecting the MaterialModel:DeterministicCalibration example in the quoFEM Examples menu will autopopulate all the input fields required to run this example.
PLoM is an open source python package that implements the algorithm of Probabilistic
Learning on Manifolds with and without constraints ([SoizeGhanem2016], [SoizeGhanem2020])
for generating realizations of a random vector in a finite Euclidean space that are
@@ -247,7 +247,7 @@
Consider the problem simulating response of a two-dimensional truss structure with uncertain material properties shown in the following figure.
The goal of the exercise is to demonstrate the use of PLoMmodel method under SimCenterUQ.
Start the application and the UQ Selection will be highlighted. In the panel for the UQ selection, select SimCenterUQ as the UQ engine.
Select PLoMModel for the UQ method, and use SamplingandSimulation as the Training Dataset.
@@ -409,11 +409,11 @@
Fig. 4.11.3.1 PCA representation error versus the PCA eigenvalues overlapped by the truncating PCA eigenvalue used in training¶
-
Fig. 5.11.3.2 Diffusion map eigenvalue by components overlapped by the truncating eigenvalue used in training¶
+
Fig. 4.11.3.2 Diffusion map eigenvalue by components overlapped by the truncating eigenvalue used in training¶
If the user selects the Data tab in the results panel, they will be presented with both a graphical plot and a tabular listing of the data.
Various views of the graphical display can be obtained by left and right clicking in the columns of the tabular data. If a singular column of
diff --git a/docs/common/user_manual/examples/desktop/qfem-0023/README.html b/docs/common/user_manual/examples/desktop/qfem-0023/README.html
index c016ef11..4b857e40 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0023/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0023/README.html
@@ -7,7 +7,7 @@
-
5.12. Global Sensitivity Analysis for Field QoI — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.12. Global Sensitivity Analysis for Field QoI — Quantified Uncertainty with Optimization for the FEM documentation
@@ -50,8 +50,8 @@
-
-
+
+
@@ -124,32 +124,32 @@
In this example, we investigate how much each parameter affects multiple outputs of a model. In particular, influence of different martial model parameters to the resulting stress time history under cyclic load setting will be compared via global sensitivity analysis. To gain efficiency dealing with such high-dimensional outputs, ‘principal component analysis and probability model-based global sensitivity analysis (PCA-PSA)’ method is used in the analysis.
Fig. 5.12.2.1 Steel02 Material – Hysteretic Behavior of Model with Isotropic Hardening in Compression¶
+
Fig. 4.12.2.1 Steel02 Material – Hysteretic Behavior of Model with Isotropic Hardening in Compression¶
Consider STEEL02 material model in OpenSees that describes cyclic stress-strain response of the steel reinforcing bar in finite element simulations. The STEEL02 material model in OpenSees can take up to 11 parameters as input, as described in the documentation. Of these 11 parameters, 7 parameters shown in Table 1 will be considered.
Selecting the GlobalSensitivityAnalysisforFieldQoI example in the quoFEM Examples menu will autopopulate all the input fields required to run this example.
@@ -406,7 +406,7 @@
Using the same configuration but without PCA (with No option selected for ‘Perform PCA with QoI’ in the UQ panel), the analysis took 1198 seconds on the same computer used to run the case above with PCA. The below figure shows the aggregated sensitivity indices which appears to be similar to the previous results.
diff --git a/docs/common/user_manual/examples/desktop/qfem-0025/README.html b/docs/common/user_manual/examples/desktop/qfem-0025/README.html
index 6ba57089..eb142110 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0025/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0025/README.html
@@ -7,7 +7,7 @@
- 5.13. Heteroscedastic Gaussian Process modeling — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.13. Heteroscedastic Gaussian Process modeling — Quantified Uncertainty with Optimization for the FEM documentation
@@ -50,8 +50,8 @@
-
-
+
+
@@ -124,31 +124,31 @@
where \(\varepsilon\) is an additive Gaussian noise that represent the variability in the output response surface. Let us assume \(\varepsilon\) has zero mean and non-homogeneous variance of \(\sigma(x)^2 = (x+2.0)^2\).
The exercise requires one main script file and one supplementary file. The user should download these files and place them in a NEW folder.
Warning
@@ -272,7 +272,7 @@
5.13.3. Files required
rosenbrock.py - This is a python script that computes the model. The script is based on this example, but with \(y=0\). Further, \(\varepsilon(x)\) is generated using numpy random sampler.
Start the application and the UQ panel will be highlighted. In the UQ Engine drop down menu, select the SimCenterUQ engine. In the Method select Train GP Surrogate option. Enter the values in this panel as shown in the figure below.
diff --git a/docs/common/user_manual/examples/desktop/qfem-0027/README.html b/docs/common/user_manual/examples/desktop/qfem-0027/README.html
index e8a571c9..d9a3c03d 100644
--- a/docs/common/user_manual/examples/desktop/qfem-0027/README.html
+++ b/docs/common/user_manual/examples/desktop/qfem-0027/README.html
@@ -7,7 +7,7 @@
- 5.14. Forward propagation of uncertainty with multiple simulation models — Quantified Uncertainty with Optimization for the FEM documentation
+ 4.14. Forward propagation of uncertainty with multiple simulation models — Quantified Uncertainty with Optimization for the FEM documentation
@@ -49,8 +49,8 @@
-
-
+
+
@@ -123,30 +123,30 @@
In this example, two models of a 6-story structure are used to predict the maximum base shear by conducting a nonlinear time history analysis of the structure subjected to seismic excitation. The beliefs represent the uncertainty about which of these two models are the best model to be used in the analysis, and in this example, equal belief is placed in the two models.
The structure is modeled as having flexible columns and stiff elastic beams. The structure is subjected to an earthquake excitation at the base which is strong enough to result in nonlinear response.
Model 1 uses Steel01 material to represent the behavior of the columns while model 2 uses Steel02. There are three random variables in each model which correspond to three parameters in the uniaxial material models Steel01 and Steel02: the initial elastic stiffness of the columns (k), the yield strength of the columns (Fy), and the strain hardening ratio of the columns (alp), i.e., the ratio between the post-yield stiffness and the initial elastic stiffness. For Steel02, R0 is set to 15, and cR1 and cR2 are set to their recommended values of 0.925 and 0.15, respectively.
The exercise uses two finite element models of a structure. The required files to run each model are collected into separate directories per model. In each directory, the following files are required: one main tcl script file, two supplementary tcl scripts used to build the model and run the analysis, one supplementary file that contains the ground motion, and a tcl script to postprocess the output created during the OpenSees analysis and create the quantity of interest which is the maximum absolute value of the base shear. The user should download the required directories and files and place them in a NEW folder.
Start the application and the UQ panel will be highlighted. In the UQ Method drop down menu, select the Forward Propagation option. In the UQ Engine dropdown menu select Dakota option. Enter the values in this panel as shown in the figure below.
To download the quoFEM app, navigate to the quoFEM Download page which should resemble Fig. 1.2.3.5. The download page contains a list of downloadable files and directories.
Click on the file with a name ending with Windows_Download.zip to download the quoFEM app. In the pop-up window, click on the Download button in the bottom right corner.
-
After the download completed, extract the zip archive to a location in your filesystem. We suggest extracting to the **C:\SimCenter** folder. You can create a shortcut that points to the quoFEM.exe executable of the application and move this shortcut to your Desktop for easy access.
+
After the download completed, extract the zip archive to a location in your filesystem. We suggest extracting to the C:/SimCenter/ folder. You can create a shortcut that points to the quoFEM.exe executable of the application and move this shortcut to your Desktop for easy access.
+
+
Tip
+
Using an external compressor program, such as 7-Zip, can significantly reduce the zip archive extraction time compared to the Windows default extraction function.
The latest MacBooks use ARM-based processors in their M1 and M2 chips. Older MacBooks utilize Intel x86 processors. The new ARM-based processors present a problem for Python users of scientific applications beacuse Python programs typically import many different modules and not all modules have been ported to the new ARM environments. The python3 kernels provided with macOS 12 (Monterey) and later are ARM based. You will need to download and install an x86 version of Python to use the SimCenter applications on these systems. Such Python versions will run fine on the ARM-based machines, thanks to Rosetta.
1. To obtain an x86 version of Python, we recommend installing Python 3.9, we tested the 3.9.13 version, from Python.org. It is important to select the macOS 64-bit Intel-only installer version of the installer. The intel-only is key to obtaining the 64-bit x86 version.