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

Minimal FEA API #28

Open
mohamed82008 opened this issue Apr 14, 2021 · 3 comments
Open

Minimal FEA API #28

mohamed82008 opened this issue Apr 14, 2021 · 3 comments
Labels

Comments

@mohamed82008
Copy link
Member

mohamed82008 commented Apr 14, 2021

We need to define an FEA API for topology optimisation that upstream FEA packages can define to become compatible with TopOpt.jl. We can call it AbstractTopOpt.jl or something like this. This should be the minimal set of functions used in TopOpt.jl from the FEA package. We can then define the API for JuAFEM, Gridap, JuliaFEM (aka Ferrite), etc. The API definitions can live in individual packages or in TopOpt.jl using Requires.

@yijiangh
Copy link
Collaborator

I like this! I use FEASolver for some of my other work related to elastic body simulation, but do not necessarily need it nested in an optimization. In particular, I find the problem definition -> FEA solver pipeline convenient, and I can just manually set the corresponding indicator variable to 1 in the voxel grid.

@yijiangh
Copy link
Collaborator

And for a lot of people that I know, they look at TopOpt.jl especially to look for example code for the FEA implementation. It'd be great if we can have a unified, high-level API for defining these FEA problems that is compatible with all the downstream in the TopOpt stack, while allowing users to swiftly try out different FEA backends (similar to my fabulous experience in JuMP).

@mohamed82008
Copy link
Member Author

Ya technically the API of the solver is most of the FEA API but sometimes we need to iterate over the elements, e.g. when computing the gradient of the compliance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants