@@ -17,29 +17,30 @@ PyCCX - Python Library for Calculix
17
17
18
18
PyCCX - a library for creating and running 3D FEA simulations using the opensource Calculix FEA Package.
19
19
20
- The aims of this project was to provide a simple framework for implemented 3D FEA Analysis using the opensource
20
+ The aim of this project was to provide a framework for implemented 3D FEA Analysis using the opensource
21
21
`Calculix <http://www.calculix.de >`_ solver. The analysis is complimented by use of the recent introduction of the
22
22
`GMSH-SDK <http://https://gitlab.onelab.info/gmsh/gmsh/api >`_ , an extension to `GMSH <http://gmsh.info/ >`_ to provide
23
23
API bindings for different programming languages by the project authors to provide sophisticated 3D FEA mesh
24
24
generation outside of the GUI implementation.
25
25
26
26
This project aims to provide an integrated approach for generating full
27
- 2D and 3D structural and thermal FEA analysis for use in research, development and prototyping in a Python environment.
28
- The aim is to support automated scripted approaches for performing FEA simulations, in particular for use in
29
- optimisation of engineering designs and assessing the sensitivity of design and material inputs on the structural
30
- response of a system. This intends to remove requirement to setup each analysis manually using a GUI such as prepromax
31
- or GMSH.
27
+ 2D and 3D structural and thermal FEA analysis for use in research, development and prototyping all inside a
28
+ Python environment. The functionality targets the delivery of automated scripted approaches for performing FEA simulations,
29
+ in particular for use assessing the sensitivity of design and material inputs on the response of a system structure, that
30
+ can be used as part of parametric optimisation studies.
32
31
33
- Along with setting up and processing the analysis, convenience functions are included to consistently interface between both
34
- the Calculix and GMSH functionality within a single python environment.
32
+ This intends to remove requirement to setup each analysis manually using a GUI such as prepromax or GMSH.
33
+
34
+ Along with setting up and processing the analysis, numerous convenience functions are included to consistently interface
35
+ between both the Calculix and GMSH functionality within a single python environment.
35
36
36
37
Structure
37
38
##############
38
39
39
40
PyCCX framework consists of classes for specifying common components on the pre-processing phase, including the following
40
41
common simulation features:
41
42
42
- * Generation of both 2D and 3D compatible analysis meeshes for use with Calculix using GMSH
43
+ * Generation of both 2D and 3D compatible analysis meshes for use with Calculix via GMSH
43
44
* Creation and assignment of thermal and mechanical boundary conditions for use in analyses
44
45
* Creation of multiple time (in)-dependent load cases
45
46
* Creation and assignment of multiple material models and element types through a single analysis
@@ -49,9 +50,9 @@ common simulation features:
49
50
A meshing class provides an interface with GMSH for performing the meshing routines and for associating
50
51
boundary conditions with the elements/faces generated from geometrical CAD entities.
51
52
52
- The provided simulation class assembles, the mesh and corresponding mesh identifier sets (Element, Nodal and Surfaces)
53
+ The simulation class assembles the mesh and corresponding mesh identifier sets (Element, Nodal and Surfaces)
53
54
in conjunction with the applied boundary conditions for each specified load-case within an analysis. The analysis
54
- is then exported into the Calculix input deck, and then performs the execution to the Calculix solver. The simulation
55
+ is then exported as a Calculix input deck, and then performs the execution to the Calculix solver. The simulation
55
56
can be additionally monitored within the Python environment.
56
57
57
58
The results obtained upon completion of the analysis can be processes, to extract individual nodal and elemental quantities
@@ -68,10 +69,11 @@ Meshing:
68
69
---------
69
70
Meshing is performed using the GMSH-SDK, which provides a Python interface to the GMSH meshing library. The features
70
71
within pyccx provided higher-level functionality building across existing GMSH functionality. The library mainly
71
- facilitates setting up the analysis consistently within a single environment.
72
+ facilitates setting up the analysis consistently within a single environment, such as mapping geometrical FE elements
73
+ into compatible Calculix types with consistent nodal ordering. Additional features available for meshing include:
72
74
73
75
* Integration with GMSH for generation 3D FEA Meshes
74
- * Cleanign and merging of CAD assemblies using internal functionality provided by GMSH
76
+ * Cleaning and merging of CAD assemblies using internal functionality provided by GMSH
75
77
* Creation and assignment of NodeSet, ElementSet, SurfaceSet from mesh features applied for boundary conditions
76
78
* Attachment of boundary conditions to geometrical CAD entities via GMSH (native .step import supported via OCC)
77
79
@@ -94,8 +96,8 @@ Results Processing:
94
96
95
97
Installation
96
98
*************
97
- Installation is currently supported on Windows, all this further support will be added for Linux environments. PyCCX
98
- can be installed along with dependencies for GMSH automatically using
99
+ PyCCX is multi-platform as a source based package. This can be installed along with dependencies for GMSH automatically
100
+ using the following commands:
99
101
100
102
.. code :: bash
101
103
@@ -110,20 +112,20 @@ alternatively, the package can be installed using the uv library:
110
112
uv pip install pyccx
111
113
112
114
Calculix Solver
113
- *************
115
+ *****************
114
116
115
117
Depending on your environment, you will need to install the latest version of Calculix. This can be done through
116
- the conda-forge `calculix package <https://anaconda.org/conda-forge/calculix >`_ in the Anaconda distribution,
118
+ conda-forge `calculix package <https://anaconda.org/conda-forge/calculix >`_ in the Anaconda distribution,
117
119
118
120
.. code :: bash
119
121
120
122
conda install -c conda-forge calculix
121
123
122
- However, the most reliable mode is downloading the package directly.
124
+ However, it is suggested that the most reliable mode is downloading the latest distribution of Calculix directly.
123
125
124
126
**Windows: **
125
127
126
- The solver be seperately obtained from within the distribution of `prepromax <https://prepomax.fs.um.si >`_
128
+ The solver be separately obtained from within the distribution of `prepromax <https://prepomax.fs.um.si >`_
127
129
128
130
**Linux: **
129
131
@@ -138,10 +140,15 @@ compiler environment to be installed. Once this is done, Calculix can be install
138
140
brew tap costerwi/homebrew-calculix
139
141
brew install calculix-ccx
140
142
141
- The Calculix solver executable needs to be available in the system path, or the path to the executable needs to be manually
142
- specified.
143
+ The path of the installed Calculix solver executable should be obtained, which is dependent on the configuration of the
144
+ brew installation.
145
+
146
+ Usage
147
+ *************
143
148
144
- Across all platforms the direct path of the calculix solver executable needs to be initialised before any further use.
149
+ The Calculix solver executable needs to be available in the system path, or the path to the executable needs to be manually
150
+ specified. Across all platforms the direct path of the calculix solver executable needs to be initialised before any
151
+ further use.
145
152
146
153
.. code :: python
147
154
@@ -151,11 +158,8 @@ Across all platforms the direct path of the calculix solver executable needs to
151
158
Simulation.setCalculixPath(' Path' )
152
159
153
160
154
- Usage
155
- *************
156
-
157
- The following code excerpt shows an example for creating and running a steady state thermal analysis of model using PyCCX
158
- of an existing mesh generated using the pyccx.mesh.mesher class.
161
+ The following code excerpt shows part of an example for creating and running a steady state thermal analysis of model
162
+ using PyCCX of an existing mesh generated using the `pyccx.mesh.mesher ` class.
159
163
160
164
.. code :: python
161
165
0 commit comments