Skip to content
Snippets Groups Projects

Version 1.1

Merged Adrien Crovato requested to merge adri into master

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

Pipeline #49695 failed

Pipeline failed for a43061e9 on adri

Approval is optional

Merged by Adrien CrovatoAdrien Crovato 3 months ago (Dec 12, 2024 9:13am UTC)

Merge details

  • Changes merged into master with 4793436e.
  • Did not delete the source branch.

Pipeline #50504 failed

Pipeline failed for 4793436e on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added Feature label

  • Adrien Crovato requested review from @rboman

    requested review from @rboman

  • Adrien Crovato marked this merge request as ready

    marked this merge request as ready

  • 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?

  • Author Maintainer

    For the first test case sdpm_nipk_agard.py:
    Can you check that the database file cases.sql is at the root of the directory where the test is run (should be omflut/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 Crovato
  • OK 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.

  • Adrien Crovato mentioned in commit 4793436e

    mentioned in commit 4793436e

Please register or sign in to reply
Loading