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

Struggling with SpeedOfSound management ... #120

Open
pbouda95 opened this issue Aug 10, 2023 · 6 comments
Open

Struggling with SpeedOfSound management ... #120

pbouda95 opened this issue Aug 10, 2023 · 6 comments
Assignees
Labels
fortran bindings question Further information is requested

Comments

@pbouda95
Copy link
Contributor

pbouda95 commented Aug 10, 2023

Hello,

As a user of the MaterialDataManager class through fortran bindings, I am trying to handle the @SpeedOfSound from the solver point of view.

First, I did not manage to find a crystal clear explanation about its features in the documentation so I looked at the Doxygen (in include/MGIS/Behaviour/Behaviour.hxx). It says that you need to activate a flag trough the first component of the tangent operator array (must be > 50). However, my implementations did not succeed so I am wondering if I am doing something wrong here.

Does anybody have a clue on it ?

Cheers,

@thelfer thelfer self-assigned this Aug 10, 2023
@thelfer thelfer added question Further information is requested fortran bindings labels Aug 10, 2023
@thelfer
Copy link
Owner

thelfer commented Aug 10, 2023

Hi @pbouda95,

It says that you need to activate a flag trough the first component of the tangent operator array (must be > 50).

This is true when using MGIS to integrate a mechanical behaviour on a single integration point.

For several integration points (managed by the MaterialDataManager class), the speed of sound can be computed in C++ and python using overloaded versions of the integrate function which takes a data structure named BehaviourIntegrationOptions as argument (in place of the IntegrationType enumeration type used so for).

Unfortunately, this data structure (BehaviourIntegrationOptions) and the associated overloaded versions of the integrate function are currently not wrapped in C nor in fortran.

@pbouda95
Copy link
Contributor Author

Hi @thelfer,

Thanks for the quick answer.
Aside from the fact that some C and Fortran wrappers are missing for a few objects/functions, do you see any additional loopholes ? If not, I am pretty much motivated to contribute and write them.

Thanks,

@thelfer
Copy link
Owner

thelfer commented Aug 10, 2023

do you see any additional loopholes

I don't see any :)

@pbouda95
Copy link
Contributor Author

pbouda95 commented Aug 11, 2023

Hello @thelfer,

I will provide the missing bindings ASAP. However there is still something which bothers me: What about the way to provide the mass density at the reference configuration ? I did not see any information about that.

One solution might be to push it through an ExternalStateVariable but I am not sure if it is what it was scheduled ...

Thanks,

@thelfer
Copy link
Owner

thelfer commented Aug 11, 2023

You're right. The mass density is not passed right now !

@thelfer
Copy link
Owner

thelfer commented Sep 6, 2023

@pbouda95 branch 121-pass-the-mass-density-from-the-materialdatamanager contains a first implementation that may provide the wanted feature. It seems that a memory fault may happen from time to time, although valgrind does not report anything useful.

So it's mostly a work in progress, but you can start playing with it and consider porting the tests ComputeSpeedOfSoundTest and ComputeSpeedOfSoundTest2 to fortran

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fortran bindings question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants