Skip to content

Commit

Permalink
fmk - updating to latest
Browse files Browse the repository at this point in the history
  • Loading branch information
fmckenna committed Jun 1, 2024
1 parent 90a46b8 commit 12613ab
Show file tree
Hide file tree
Showing 73 changed files with 2,903 additions and 833 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified docs/.doctrees/common/developer_manual/how_to_extend.doctree
Binary file not shown.
Binary file modified docs/.doctrees/common/reqments/All-Requirements_allCols.doctree
Binary file not shown.
Binary file modified docs/.doctrees/common/reqments/WE-UQ-Requirements.doctree
Binary file not shown.
Binary file modified docs/.doctrees/common/reqments/WEUQ.doctree
Binary file not shown.
Binary file modified docs/.doctrees/common/reqments/reqQUOFE.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified docs/.doctrees/common/user_manual/usage/desktop/RV.doctree
Binary file not shown.
Binary file modified docs/.doctrees/common/user_manual/usage/desktop/UQ.doctree
Binary file not shown.
Binary file modified docs/.doctrees/environment.pickle
Binary file not shown.
Binary file added docs/_images/umlHydroEvents.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_images/umlHydroUQ.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,19 @@ The following options for EDP applications vary in the type of EDPs identified f
:include-exclusive: %./categories:createEDP


.. only:: HydroUQ_app

.. raw:: html
:file: _static/html/HydroUQ/createEDP.html

.. only:: EEUQ_app

.. raw:: html
:file: _static/html/EE-UQ/createEDP.html

.. only:: WEUQ_app

.. raw:: html
:file: _static/html/WE-UQ/createEDP.html


Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,17 @@ The following options for UQ applications vary in the software package used to p
:include-exclusive: %./categories:performUQ


.. only:: HydroUQ_app

.. raw:: html
:file: _static/html/HydroUQ/preprocUQ.html

.. only:: EEUQ_app

.. raw:: html
:file: _static/html/EE-UQ/preprocUQ.html

.. only:: WEUQ_app

.. raw:: html
:file: _static/html/WE-UQ/preprocUQ.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,19 @@ The following options for building applications vary in the file type of the inp
:load-defaults: $SIMCENTER_DEV/SimCenterBackendApplications/meta/index.yaml#/$SIMDOC_APP

:include-exclusive: %./categories:createBIM


.. only:: HydroUQ_app

.. raw:: html
:file: _static/html/HydroUQ/createBIM.html

.. only:: EEUQ_app

.. raw:: html
:file: _static/html/EE-UQ/createBIM.html

.. only:: WEUQ_app

.. raw:: html
:file: _static/html/WE-UQ/createBIM.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,18 @@ The following options for event applications vary in the type of event, event pr

:include-exclusive: %./categories:createEVENT


.. only:: HydroUQ_app

.. raw:: html
:file: _static/html/HydroUQ/createEVENT.html

.. only:: EEUQ_app

.. raw:: html
:file: _static/html/EE-UQ/createEVENT.html

.. only:: WEUQ_app

.. raw:: html
:file: _static/html/WE-UQ/createEVENT.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,18 @@ The following options for modeling applications vary in the type of model and fi
:include-exclusive: %./categories:createSAM


.. only:: HydroUQ_app

.. raw:: html
:file: _static/html/HydroUQ/createSAM.html

.. only:: EEUQ_app

.. raw:: html
:file: _static/html/EE-UQ/createSAM.html

.. only:: WEUQ_app

.. raw:: html
:file: _static/html/WE-UQ/createSAM.html

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

FEM Pre-processors
==================
------------------


.. raw:: html
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

UQ Pre-processors
=================
-----------------


.. raw:: html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,17 @@ The following options for simulation applications vary in the type of finite ele

:include-exclusive: %./categories:performSIMULATION

.. only:: HydroUQ_app

.. raw:: html
:file: _static/html/HydroUQ/performSIMULATION.html

.. only:: EEUQ_app

.. raw:: html
:file: _static/html/EE-UQ/performSIMULATION.html

.. only:: WEUQ_app

.. raw:: html
:file: _static/html/WE-UQ/performSIMULATION.html
Original file line number Diff line number Diff line change
@@ -1,52 +1,20 @@
.. _lblArchitecture:

*********************
Software Architecture
*********************

The |app| is one of the SimCenter's computational applications, which are `scientific workflow systems <https://en.wikipedia.org/wiki/Scientific_workflow_system>`_ that executes a sequence of computational tasks specialized for natural hazard engineering (NHE) problems. In contrast to more general-purpose scientific workflow systems (such as `Taverna <https://taverna.incubator.apache.org/>`_, `Kepler <https://kepler-project.org/>`_, and `Pegasus <https://pegasus.isi.edu/>`_), SimCenter workflow systems include the following features:

- access to high-performance computing resources, available on the cloud through |DesignSafe|, to enable parallel workflows for non-trivial large-scale NHE problems;
- uncertainty quantification capabilities using `Dakota <https://dakota.sandia.gov/>`_, which allows users to introduce input uncertainties that are propagated through the workflow with random variables;
- streamlined interfaces between existing software applications and datasets that are widely used by the NHE community, such as `OpenFOAM <https://openfoam.org/>`_, |OpenSeesLink|, `ADCIRC <http://adcirc.org/>`_, and `PEER Strong Ground Motion Databases <https://peer.berkeley.edu/peer-strong-ground-motion-databases>`_. To do this, the SimCenter develops pre- and post-processors for these existing applications and utilizes web technologies for accessing online services;
- additional custom software applications produced by the SimCenter. Among these are applications that automate the acquisition of building inventory data (`BRAILS <https://nheri-simcenter.github.io/BRAILS-Documentation/>`_), applications that simulate hazard events and generate corresponding input files for passing through the workflow system (RegionalEvent Applications), applications for damage and loss assessment (`pelicun <https://nheri-simcenter.github.io/pelicun/>`_), and more.
- a modular framework that allows developers to incorporate their own software applications as components to the workflow system, so long as it meets the input-output structure at component interfaces.


.. _figFramework:

.. figure:: figures/SimCenterFramework.png
:align: center
:width: 1000
:figclass: align-center

SimCenter Software Framework

The SimCenter scientific workflow systems aim to facilitate the use, reuse, and extension of common workflows encountered in NHE by a broad range of natural hazards engineering researchers with varying software skills. This chapter presents the software architecture for the SimCenter framework and |app| using the `C4 model <https://c4model.com>`_ to encourage this use and adoption. The **C4** model is a graphical approach for documenting software architecture through diagrams describing and communicating the software architecture at various levels of abstraction. It is a top-down approach that starts at a high level (level 1), showing how a user would interact with the software, and drills down through three more levels, with level 4 containing the typical UML diagrams. The **C4** model was chosen to provide NHE researchers with a diverse range of software architecture knowledge to understand the software architecture behind SimCenter applications that fit their skill level. The four levels:

- Level 1: The level one diagram is a system diagram that shows how the software system fits in the real world in terms of people who use it and other software systems it interacts with.
- Level 2: Level 2 is a container diagram showing the containers (applications, databases, etc.) that make up the software system.
- Level 3: Level three diagrams are component diagrams, showing how the components of the individual containers.
- Level 4: The level four diagrams show how the individual components are implemented. They are typically UML class diagrams.

The following sections present the architecture of SimCenter the SimCenter to level 3:


Documentation of the SimCenter software architecture is detailed in the following pages:


.. toctree-filt::
:maxdepth: 2

overview.rst
file-types.rst
backendApplications.rst
:maxdepth: 4

overview
:Hydro:c4model
:WEUQ:c4model
:EEUQ:c4model
:PBE:c4model
:R2D:c4model
backendApplications
:R2D:workflows
:R2D:run-manually
:notQuoFEM:c4model
file-types



Within the natural hazards engineering community, there exist several widely used open-source applications, e.g., OpenFOAM, and online datasets, e.g., PEER NGA, that researchers are currently using. Consequently, and to avoid duplication, SimCenter applications incorporate many widely used applications, e.g., OpenFOAM. To do this, SimCenter develops pre- and post-processors for these existing applications and utilizes web technologies for accessing online services.
.. Within the natural hazards engineering community, there exist several widely used open-source applications, e.g., OpenFOAM, and online datasets, e.g., PEER NGA, that researchers are currently using. Consequently, and to avoid duplication, SimCenter applications incorporate many widely used applications, e.g., OpenFOAM. To do this, SimCenter develops pre- and post-processors for these existing applications and utilizes web technologies for accessing online services.
..
#. DL: application to determine the damage and loss to the building/infrastructure given the event.
Expand All @@ -55,16 +23,16 @@ Within the natural hazards engineering community, there exist several widely use
#. Databases containing information on building inventories for regional simulations, consequence functions for the DL applications, and experimental and corresponding simulation models for future machine learning-based AI algorithms.

.. note:: **Definitions**
.. .. note:: **Definitions**
#. **Workflow**: “The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules.” [Workflow Management Coalition].
.. #. **Workflow**: “The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules.” [Workflow Management Coalition].
#. **Application**: A software application performs operations on data residing in a computer for a user or another program; it can be self-contained, typically termed a program or part of a group of programs.
.. #. **Application**: A software application performs operations on data residing in a computer for a user or another program; it can be self-contained, typically termed a program or part of a group of programs.
#. **Scientific Workflow**: A sequence of steps propagating input data through various applications to produce output. It is a loosely coupled application performing workflows in which each coordinated task is performed using an individual application. Each of the individual applications takes some data inputs and produces data outputs, which are then consumed by subsequent tasks according to the workflow definition. They are termed scientific because they are typically used by scientists to process, manage, and visualize ever-increasing amounts of data using "scientific" applications.
.. #. **Scientific Workflow**: A sequence of steps propagating input data through various applications to produce output. It is a loosely coupled application performing workflows in which each coordinated task is performed using an individual application. Each of the individual applications takes some data inputs and produces data outputs, which are then consumed by subsequent tasks according to the workflow definition. They are termed scientific because they are typically used by scientists to process, manage, and visualize ever-increasing amounts of data using "scientific" applications.
#. **Scientific Workflow System**: One or more applications that aid a user in setting up, scheduling, running, and monitoring a user-defined scientific workflow.
.. #. **Scientific Workflow System**: One or more applications that aid a user in setting up, scheduling, running, and monitoring a user-defined scientific workflow.
#. **Software Framework**: A collection of software for building applications in a specific domain. The framework defines the interfaces between the software components, provides example applications that can be developed using the provided software, and represents a clear set of interfaces. The software can be extended to build other applications.
.. #. **Software Framework**: A collection of software for building applications in a specific domain. The framework defines the interfaces between the software components, provides example applications that can be developed using the provided software, and represents a clear set of interfaces. The software can be extended to build other applications.
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@

.. _lblArchitecture4:

*********************
Software Architecture
*********************
***************************
Four Level Architecture
***************************

The SimCenter is developing a software framework for building scientific workflow applications to perform computational; simulations in the field of NHE at both building level scale and regionsl scale. It is releasing a number of applications built using this framework. The |app| is one of those applications which have been released (EE-UQ, WE-UQ, PBE). Other applications are under development (R2D). The applications that the SimCenter is developing are limited scientific workflow systems. This chapter presents the software architecture for the framework and the |app| built using it using the C4 model.

.. note::

1. **Workflow**: A sequence of steps involved in moving from a beginning state to an ending state.

2. **Scientific Workflow Application**: An application that automates a workflow process through software, with each step in the workflow being performed by a separate “scientific” software application.

3. **Scientific Workflow System**: software providing an infrastructure for the set-up, scheduling, running, and monitoring of a user-defined scientific workflow application.

Level 1: A Context for SimCenter Applications
=============================================
Expand Down Expand Up @@ -72,7 +65,7 @@ Level 4 UML Diagrams

A number of diagrams are presented for the level 4 diagrams. These are mostly UML diagrams showing how the applications are built. The SimCenter releases a number of front-end applications: EE-UQ shown in :numref:`figUmlEE`, WE-UQ shown in :numref:`figUmlWE`, and PBE shown in :numref:`figUmlPBE`. These applications share code with each other and other SimCenter applications. As a consequence, the common code is bundled into a number of shared packages: EarthquakeEvents shown in :numref:`figUmlEarthquakeEvents`, WindEvents shown in :numref:`figUmlWindEvents`, and SimCenterCommon shown in :numref:`figUmlCommon`. A number of packages were chosen over placing all common code inside a single package to simplify development efforts for outside programmers (whom it is envisioned will mostly be adding new event components) and to reduce the overhead of package management and compile time for SimCenter programmers. UML diagrams are presented for these front-end applications and shared packages. THE UML diagrams that are presented are not exhaustive, in that they do not show all classes used, for it was decided not to for example show the myriad of Line edits, labels, spin boxes, etc. that make up the widgets. What is shown is sufficient to present the SimCenter architecture.

While there are a number of different types of UML diagrams, those shown in this document will be limited to class diagrams and sequence diagrams. SimCenter applications are object-oriented in nature. An object-oriented program consists of objects interacting with one another, with each object being of a certain type or class. A class diagram shows the classes, their attributes and methods, and the relationships between the classes. A sequence diagram or event diagram shows the order in which objects interact. To understand the SimCenter framework it is useful to first present the main() function for a SImCenter application, in this case, EE-UQ, shown in :numref:`codeMainCode`. The code presented is a stripped-down version of the actual code, code for dealing with style sheets, analytics, etc. is not shown as it is not pertinent to understanding the software architecture.
While there are a number of different types of UML diagrams, those shown in this document will be limited to class diagrams and sequence diagrams. SimCenter applications are object-oriented in nature. An object-oriented program consists of objects interacting with one another, with each object being of a certain type or class. A class diagram shows the classes, their attributes and methods, and the relationships between the classes. A sequence diagram or event diagram shows the order in which objects interact. To understand the SimCenter framework it is useful to first present the main() function for a SImCenter application, in this case, EE-UQ, shown in :numref:`codeMainCode`. The code presented is a stripped-down version of the actual code, code for dealing with style sheets, analytics, etc. is not shown as it is not pertinent to understanding the software architecture.


.. _codeMainCode:
Expand Down
Loading

0 comments on commit 12613ab

Please sign in to comment.