Version 1.1
Version 1.1 - TACS and geometry parametrization
This version add an interface for TACS and an optional geometry parametrization for coupling.
Main changes
- TACS interface has been added in his repository. Ultimately, the interface should be moved in the official TACS repo. An example using this interface has been added.
- A feature has been implemented to add a geometry parametrization to take shape changes into account for flutter constraint.
- Required OpenMDAO version has been updated.
Note that the pipeline will fail because TACS is not built on the Docker image (see #1).
Merge request reports
Activity
added Feature label
requested review from @rboman
assigned to @acrovato
I have installed sdpm and pypk which seem to be required for this code to work.
Then, after building and installing omflut in the same environment, I tried:
python run.py examples\sdpm_nipk_agard.py
which gives me the following error at the end of the calculation
Running SDPM solver... done. NIPK: flutter found at Mach 0.96 for mode #0 at 14 Hz near u_inf = 319. Wall-clock time: 00-00:00:07 Traceback (most recent call last): File "C:\Users\r_bom\dev\pyadri\omflut\run.py", line 80, in <module> main() File "C:\Users\r_bom\dev\pyadri\omflut\run.py", line 77, in main exec(compile(script, testname, 'exec'), {'__file__': testname, '__name__':'__main__'}) File "C:\Users\r_bom\dev\pyadri\omflut\examples\sdpm_nipk_agard.py", line 145, in <module> cases = om.CaseReader('cases.sql').get_cases() File "C:\Users\r_bom\dev\pyadri\lib\site-packages\openmdao\recorders\case_reader.py", line 26, in CaseReader return SqliteCaseReader(filename, pre_load, metadata_filename) File "C:\Users\r_bom\dev\pyadri\lib\site-packages\openmdao\recorders\sqlite_reader.py", line 178, in __init__ check_valid_sqlite3_db(filename) File "C:\Users\r_bom\dev\pyadri\lib\site-packages\openmdao\utils\record_util.py", line 124, in check_valid_sqlite3_db raise IOError('File does not exist({0})'.format(filename)) OSError: File does not exist(cases.sql)
I also tried
python run.py examples\tacs_sdpm_nipk_agard.py
It complained because TACS was not installed. Thus I did
pip install tacs
Then I reran the test. I got:
(pyadri) C:\Users\r_bom\dev\pyadri\omflut>python run.py examples\tacs_sdpm_nipk_agard.py Setting workspace for "C:\Users\r_bom\dev\pyadri\omflut\examples\tacs_sdpm_nipk_agard.py" - changing to workspace\omflut_examples_tacs_sdpm_nipk_agard Starting test C:\Users\r_bom\dev\pyadri\omflut\examples\tacs_sdpm_nipk_agard.py Time: Mon Dec 9 16:30:56 2024 Hostname: fsa-arcelor Traceback (most recent call last): File "C:\Users\r_bom\dev\pyadri\omflut\run.py", line 80, in <module> main() File "C:\Users\r_bom\dev\pyadri\omflut\run.py", line 77, in main exec(compile(script, testname, 'exec'), {'__file__': testname, '__name__':'__main__'}) File "C:\Users\r_bom\dev\pyadri\omflut\examples\tacs_sdpm_nipk_agard.py", line 233, in <module> prob.setup() File "C:\Users\r_bom\dev\pyadri\lib\site-packages\openmdao\core\problem.py", line 1055, in setup model._setup(model_comm, self._metadata) File "C:\Users\r_bom\dev\pyadri\lib\site-packages\openmdao\core\group.py", line 748, in _setup self._setup_procs(self.pathname, comm, self._problem_meta) File "C:\Users\r_bom\dev\pyadri\lib\site-packages\openmdao\core\group.py", line 597, in _setup_procs self.setup() File "C:\Users\r_bom\dev\pyadri\omflut\examples\tacs_sdpm_nipk_agard.py", line 193, in setup s_cfg, a_cfg, x_cfg, f_cfg = get_cfg(i) File "C:\Users\r_bom\dev\pyadri\omflut\examples\tacs_sdpm_nipk_agard.py", line 48, in get_cfg s_cfg = tacs_cfg(n_mod) File "C:\Users\r_bom\dev\pyadri\omflut\examples\tacs_sdpm_nipk_agard.py", line 59, in tacs_cfg from tacs import constitutive, elements ImportError: cannot import name 'constitutive' from 'tacs' (C:\Users\r_bom\dev\pyadri\lib\site-packages\tacs\__init__.py)
I guess I installed a wrong version of TACS?
For the first test case
sdpm_nipk_agard.py
:
Can you check that the database filecases.sql
is at the root of the directory where the test is run (should beomflut/workspace/omflut_examples_sdpm_nipk_agard
)? If it is in a subdirectory, this is probably due to the OpenMDAO version: they reorganized outputs as of 3.35. I tried to enforce version consistency in commit 4a1b6a80, but I removed it because it was not working on my side, and I just left it in the pipeline config file.
Do you want me to try again?For the second test case
tacs_sdpm_nipk_agard.py
:
Yes, it is not the right package, this is the correct one: https://github.com/smdogroup/tacs (v3.7.1). Unfortunately, either you use conda or you have to compile it yourself. Also, it is not available on Windows.
If you want to test on your Ubuntu/WSL computer, I can send you the config file that I used. If you want to include it in the pipeline, the best option is to add TACS in the Docker, but I find it inconvenient, since this is the only example that is based on TACS (and it is not really a test, more a demonstration case).Edited by Adrien CrovatoOK for me. The first test case works. I had to move the
case.sql
file:❯ cp ./workspace/omflut_examples_sdpm_nipk_agard/run_out/cases.sql \ ./workspace/omflut_examples_sdpm_nipk_agard/
For the second test, since you don't plan to make it run in the gitlab-CI system, I think that I will not spend my time building TACS / metis / etc for it.
mentioned in commit 4793436e