mpentek / ParOptBeam

BSD 3-Clause "New" or "Revised" License
2 stars 2 forks source link

Parametric optimizable beam

A project focusing on a finite-element method formulation-based straight 3D parametric optimizable Timoshenko beam

Motivated but not limited to usage in education as well as for research purposes

With effort made to be compatible/usable with the interface of Kratos Multiphisics

The project is free under the BSD 3-Clause License

Features available

Beam types:

Boundary conditions

Analysis

Output

Tests

Test scripts are in source/test_scripts and can be executed from run_all_tests.py which discovers and runs all of them. If you wish to run individual tests, you'll have to navigate a terminal to the project's source directory, and run them as modules like so:

python -m source.test_scripts.test_beam_eigenvalue_analytic

Each test script uses python's unittest framework, so you can pass any argument that unittest recognises.

Some tests store their references in text files (stored in source/test_scripts/reference_output) and compare their results against them. These text files can be regenerated by passing --generate-references to the test script you wish to update references for.

If you wish to run a specific test case using a debugger, you'll have to write a script that imports and executes the desired case, and run that in the debugger. An example of such a script:

import source.test_scripts.test_beam_eigenvalue_analytic
from source.test_utils.test_case import TestMain
case = source.test_scripts.test_beam_eigenvalue_analytic.BeamEigenvalueAnalyticalTest
TestMain()

Run all working relevant tests by:

python -m source.test_utils.run_all_tests