Skip to content

Commit 59f1c04

Browse files
committed
further work on docs
1 parent 107226d commit 59f1c04

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed

README.rst

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,119 @@
1+
###################
2+
The PyAnsys Project
3+
###################
14

5+
The PyAnsys project is an effort by Ansys to provide Python libraries
6+
that exploit the features of the Python language to produce APIs
7+
and interfaces that are clear, concise and maintainable.
28

9+
PyAnsys libraries are more than just reusable "scripts"; they are a set
10+
of useful functions, classes, and plugins that eliminate the need to
11+
write scripts and code from scratch. These libraries are intended to
12+
play a vital role in:
13+
14+
- Application automation
15+
- Machine learning
16+
- Post processing
17+
- Data visualization
18+
- Orchestrating workflows
19+
- Data manipulation and export
20+
21+
22+
Python - Strategy
23+
=================
24+
25+
PyAnsys libraries are intended to extend and interface with existing
26+
products of Ansys services **outside** of the application itself, and
27+
in some cases permitting remote execution. As such, this requires
28+
that you have a working installation of Python, and ideally a Python
29+
distribution like the `Anaconda Distribution
30+
<https://www.anaconda.com/products/individual>`_. For existing users
31+
of Ansys who are not used to working with Python outside of the
32+
product, this may seem to be an unnecessary step, but what this
33+
approach provides is:
34+
35+
* The ability to connect with the vast ecosystem of `CPython
36+
<http://www.python.org/>`_ Packages including:
37+
38+
* `NumPy <https://numpy.org/>`_
39+
* `SciPy <https://www.scipy.org/>`_
40+
* `Matplotlib <https://matplotlib.org/>`_
41+
* `VTK <https://vtk.org/>`_
42+
* `PyTorch <https://pytorch.org/>`_
43+
* `Qt for Python <https://wiki.qt.io/Qt_for_Python>`_
44+
* `Flask <https://flask.palletsprojects.com/>`_
45+
* 10,000s of others
46+
47+
Depending on your python environment, you can use a package manager
48+
like `pip <https://pip.pypa.io/en/stable/>`_ or `conda
49+
<https://conda.io/>`_ to easily install the most up-to-date version
50+
of the library you need.
51+
52+
* Customization of your entire Python environment on the OS of your
53+
choosing. For the applications that support it, you can even
54+
remotely connect with and manage the application via `gRPC
55+
<https://grpc.io/>`_. For those that don't, you can still customize
56+
the version of Python and its packages.
57+
58+
* Create applications or pipelines that utilize Ansys products and
59+
expose features as a web-page, standalone application, or script to
60+
allow anyone to instantly Ansys's products on the desktop or web
61+
using a customized workflow.
62+
63+
64+
PyAnsys Project Structure
65+
=========================
66+
The PyAnsys project hosted on GitHub at `PyAnsys
67+
<https://github.com/pyansys>`_ contains several repositories that provide:
68+
69+
* Interfaces to Ansys products or services:
70+
71+
* `PyMAPDL <https://github.com/pyansys/pymapdl>`_
72+
* `PyAEDT <https://github.com/pyansys/PyAEDT>`_
73+
* `DPF-Core <https://github.com/pyansys/DPF-Core>`_
74+
* `DPF-Post <https://github.com/pyansys/DPF-Post>`_
75+
* `Legacy PyMAPDL Reader <https://github.com/pyansys/pymapdl-reader>`_
76+
77+
* Documentation and Examples
78+
79+
* `about <https://github.com/pyansys/about>`_
80+
* `pyansys-sphinx-theme <https://github.com/pyansys/pyansys-sphinx-theme>`_
81+
* `pyansys_landing <https://github.com/pyansys/pyansys_landing>`_
82+
* `pyansys-helloworld <https://github.com/pyansys/pyansys-helloworld>`_
83+
* `example-data <https://github.com/pyansys/example-data>`_
84+
85+
* Tools
86+
87+
* `pyansys-protos-generator <https://github.com/pyansys/pyansys-protos-generator>`_
88+
* `example-coverage <https://github.com/pyansys/example-coverage>`_
89+
* `system-reporting-tool <https://github.com/pyansys/system-reporting-tool>`_
90+
91+
92+
PyAnsys Library Overview
93+
========================
94+
A PyAnsys library eliminates the need to share snippets of code that
95+
perform actions, but rather allows the user to create workflows
96+
consisting of their own Python modules and third-party libraries.
97+
This is done to extend Ansys's products in a way that matches how
98+
libraries are created in the Python community while still maintaining
99+
the separation between Products, APIs, and PyAnsys client libraries.
100+
101+
The general pattern for a PyAnsys project avoids the anti-pattern of
102+
providing single-use scripts by ensuring:
103+
104+
* Clear, open-source APIs consistent with community standards hosted
105+
on GitHub.
106+
* Reusable packages that can be updated and patched outside of the
107+
Ansys release schedule, while still being directly dependent on
108+
Ansys's products.
109+
* Unit testing, release packaging, and documentation.
110+
111+
To do this, each PyAnsys library that extends a product follows the
112+
general pattern in the following figure:
113+
114+
.. image:: https://github.com/pyansys/about/raw/main/doc/source/images/diagram.png
115+
:width: 400
116+
:alt: Overview Diagram
3117

4118

5119
PyAnsys Package Basic Structure

diagram.png

88.2 KB
Loading

0 commit comments

Comments
 (0)