Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed crash when using face meshes and element IDs don't start to 0 #95

Merged
merged 8 commits into from
Jun 23, 2022

Conversation

boris-martin
Copy link
Collaborator

Context

Since the merge of #91, simulations using face meshes can use either tetrahedra elements or hexaedral elements, instead of just tetrahedra. (It is however still limited to cases with only one type)
Current implementation finds whether tetra or hex are used by looking at the type of the first element (since we assume they're all the same). However, CalculiX can use meshes where there is no first element, in the sense that indices can start after 0. (See mesh of the heat exchanger tutorial for instance)
When this occurs, we find a "null" element and return an error because of the use of an unsupported element.

Proposed fix

Iterate over all elements until a non-null element is found, and use this one to decide between tetra and hexas.

Reproduce the bug

Try to run heat exchanger tutorial with current develop branch: it outputs an error because of unsupported element.

@boris-martin boris-martin changed the base branch from master to develop May 16, 2022 10:26
adapter/CCXHelpers.h Outdated Show resolved Hide resolved
adapter/CCXHelpers.h Outdated Show resolved Hide resolved
Copy link
Member

@IshaanDesai IshaanDesai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a brief look, did not try to run the heat-exchanger tutorial. Running that tutorial would be a good check for this right?

boris-martin and others added 3 commits May 16, 2022 17:57
Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>
Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>
Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>
@boris-martin
Copy link
Collaborator Author

@IshaanDesai thanks for the review!
Yes, running the heat exchanger is a good test and it worked for me. (it still suffers from the "crash at t=5" issue we recently reopened, but without this PR it crashes earlier at initalization time)

@boris-martin boris-martin merged commit 9cfc0cf into develop Jun 23, 2022
boris-martin added a commit that referenced this pull request Jun 23, 2022
boris-martin added a commit that referenced this pull request Jun 23, 2022
boris-martin added a commit that referenced this pull request Nov 17, 2022
* Improved error message (for missing mesh) (#88)

* Added error message for missing faces mesh
* Improved error message for missing nodes mesh

* 2D simulations major overhaul (#92)

Fixed 2D simulations being unusable with Temperature BC. Arbitrary number of elements on the Z-axis is now allowed and handled assuming data independant of the Z-axis.

* Added Pressure ExchangeData, hexaedral elements and Modal Dynamic Modus (#91)

* Added Pressure ExchangeData, hexaedral elements and Modal Dynamic Modus

* Update dyna_precice.c

Co-authored-by: Matthias Freimuth <matzefreim@gmail.com>
Co-authored-by: Boris Martin <84379125+boris-martin@users.noreply.github.com>

* format

* Added warning of broken implicit coupling when using modal dynamic simulations

* Fixed mesh configuration 2D coupling with Face meshes (#94)

* Fixed mesh config for face mesh

* Removed dead code

* Fixed missing include

* Fixed crash when using face meshes and element IDs don't start to 0 (#95)

* Fixed crashing simulation when using face meshes and element IDs don't start to 0

* Typo

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Typo

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Typo

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Update adapter/CCXHelpers.h

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* format

* reverted fallow-argument-mismatch

* format

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Revert "Fixed crash when using face meshes and element IDs don't start to 0 (#95)" (#96)

This reverts commit 9cfc0cf.

* Update packaging script to Ubuntu 22.04 LTS (#98)

* added ubuntu 22.04 to the list of OSes in Github action

* updated to 2 Ubuntu LTS only, added fflags

* fixed wrong distribution name

* added preivous Ubuntu non-LTS

* fixd missing os

* typo

* removed non LTS

* Fixed face mesh config(correct PR) (#97)

* Fixed crashing simulation when using face meshes and element IDs don't start to 0

* Typo

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Typo

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Typo

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* Update adapter/CCXHelpers.h

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>

* format

* format

* restored script

* Fixed implicit coupling in modal dynamic simulation. (#99)

* Fixed missing checkpointing

* fixed extra output in implicit coupling

* removed deprecated warnings

* Fixed crash when freeing unused pointers (#102)

* init NULL pointers

* Enable Static Step for FSI (#101)

* Update ccx_2.19.c

Enable basic Static Step

* Update ccx_2.19.c

* Update ccx_2.19.c

* Add error messages when reading invalid data in modal dynamic simulations (#103)

* registering modal dynamic

* added forbidden reading types to modal dynamic sims

* added actual error

* Update adapter/PreciceInterface.c

Co-authored-by: Gerasimos Chourdakis <makishourdakis@gmail.com>

* Update adapter/PreciceInterface.h

Co-authored-by: Gerasimos Chourdakis <makishourdakis@gmail.com>

Co-authored-by: Gerasimos Chourdakis <makishourdakis@gmail.com>

* basic infrastructure for proper checkpointingin dyna_precice

* seemingly working implict + subcycling modal dynamic simulations

* Prototype output buffer

* added C API

* added missing function

* improved Buffer

* Actual usage of the buffer, seemingly working

* added short description of the buffer mechanism

* cleanup

* refactoring

* format

* removed dead code

* renamed for consistency

* no longer asking for length when loading data

* cleanup

* documentation

* removed apparently useless memcpy (#104)

* Make read/write data name parsing consistent (#108)

* Update for CalculiX v2.20 (#109)

Co-authored-by: Boris Martin <84379125+boris-martin@users.noreply.github.com>
Co-authored-by: MatthiasFreimuth <34025080+MatthiasFreimuth@users.noreply.github.com>
Co-authored-by: Matthias Freimuth <matzefreim@gmail.com>
Co-authored-by: Boris Martin <boris.martin.be@gmail.com>
Co-authored-by: Ishaan Desai <ishaandesai@gmail.com>
Co-authored-by: Kyle Davis <kyle.davis@ipvs.uni-stuttgart.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants