Comments (2)
This turned out to be a little more involved than I'd assumed, since it requires PETSc to be built with complex support and firedrake is very particular about how PETSc is built. One drawback is that it doesn't seem like automatic differentiation is currently supported in the complex version of firedrake.
I think my solution will be to install two versions of firedrake+PETSc in side-by-side virtual environments: one that's differentiable and one that's complex-enabled. The complex one will be good for stability analysis and related tasks, and the differentiable one will be the default. Scripts can just check this with a quick call to PETSc.ScalarType
.
I'll call this done soon - just want to finish up the new Docker image, test adjoint stability analysis, and validate that it gets the right critical value for the cylinder case
from hydrogym.
Confirmed that the split environments works for switching in and out of complex mode. Can activate with
source $VENV_COMPLEX/bin/activate
Also with a bisection search we get Re_c=46.52, and omega_c=0.744 for the "Sipp-Lebedev" mesh, which agrees pretty nicely with their quoted result (Re_c=46.6, omega_c=0.74). It's a bit different for the "Noack" mesh, but that's not surprising since the domain is so much smaller.
The adjoint stability looks pretty good as well, and actually we can use the ufl form manipulations to get the Jacobian and adjoint without having to construct them manually from Navier-Stokes, which is nice.
from hydrogym.
Related Issues (20)
- Weights and Biases Integration
- Update gym to the new gymnasium API
- PyTests
- [Bug] Pinball Cylinder Centers are Misaligned
- API Reference Documentation HOT 1
- Docs: Panels in Index
- HydroGym Logo HOT 1
- SUPG stabilization and equal-order elements
- Firedrake warnings HOT 3
- Consolidate actuator & BFS noise updates and move to flow
- Add different observation types such velocity/vorticity/pressure probes on surfaces or in the flow field HOT 2
- ZNMF jet actuation for cylinder HOT 1
- Moving out of files to HuggingFace HOT 1
- Remove coarse meshes
- Create checkpoints for all flows
- Support interpolation between different-order velocity spaces
- Deprecate IPCS solver
- Python Type Annotations
- Templating of environment configurations
- Use logger instead of PETSc.Sys.Print
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hydrogym.