overview.rst 2.37 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
.. _smtk-overview:

An Overview of SMTK's Subsytems

SMTK's core library contains several subsystems,
each of which is covered in depth in sections that follow this one.
These subsystems are:

11 12
* The **resource** system holds a set of base classes used by the systems below to provide
  basic provenance information about versions of data on disk.
  Each file is a *resource*, which may hold a resource of *resource components*;
  the *resource manager* assembles resources together for processing into a simulation input.
* The **attribute** resource, which provides a way to specify how information should be
16 17
  organized for scientific and engineering workflows, accept that information from users,
  and ensure that it is consistent with the specification.
* The **model** resource, which provides geometric modeling and allows you to tie
19 20
  information from the attribute resource to geometric entities (e.g., assign boundary conditions
  in the attribute resource to particular boundaries on a CAD model).
* The **mesh** resource, which can manipulate meshes of geometric models; it provides a way
22 23
  to propagate simulation attribute information from model entities onto meshes.
  It also provides a way to run external mesh creation tools on the model.
24 25 26
* The **operation** system, which provides an interface to
  constructing and executing *operators*, which create, modify and delete
* The **simulation** (also known as the **export**) system, which is a set of utilities
  that lets you convert resources (e.g., attribute, model, and mesh resources) into
  an input deck for a simulation using Python scripts (or C++ if you wish).
30 31 32 33
* The **view** system provides user interface functionality that is independent of any
  particular operating system or platform. It serves as a layer between the resource
  system and the visual layout of resources so that multiple views of the same resources
  can exist in the same application.
34 35 36 37 38 39
* A **common** system holding utility classes.
* Python **bindings** that enable SMTK to
  be used *by* python scripts *and* SMTK to run python scripts as part of its normal operations.
* A set of **extension** libraries, which provide additional functionality but also introduce
  dependencies on software beyond what the core smtk library already requires.
  These are used to create applications built on SMTK.