Best approach to solving this coupled nonlinear PDE system (incompressible convection)?

Hello everyone!
I’m new to solving PDEs with Julia, only done ODEs so far. My problem looks like this:

-\nabla P+\nabla \cdot \sigma+\rho \vec{g}=0
\nabla \cdot \vec{u}=0
\dot{\varepsilon}=\frac{1}{2}\left(\nabla \vec{u}+(\nabla \vec{u})^T\right)
\dot{\varepsilon}+\ddot{\varepsilon} \frac{\eta_K}{E_K} = \left(\frac{\sigma}{F}\right)^n d^{-p} e^{Q_M\left(\beta-\frac{1}{R T}\right)} + \ddot{\sigma} \frac{\eta_K}{E_K E_M}

Where u(x,z,t), \varepsilon(x,z,t), \sigma(x,z,t) and P(x,z,t) are the unkowns and the rest are constants. I want to solve this on a 2D cartesian grid.

I wonder what packages / methods I should look for in trying to solve this nonlinear problem. Are there any examples of similar things I can follow? Should I try PINNS or it would need much more than a single laptop?

Thank you !!

This should just work in MethodOfLines.jl if I’m reading it correctly. Give it a try.

1 Like

Hi, this is a nonlinear Stokes PDE problem that is well-suited to be solved with Gridap.jl.

Perhaps you can take a look at the incompressible Navier-Stokes tutorial -also the p-Laplacian and elasticity/damage tutorials- to work out how to implement it. If you struggle to implement the nonlinear constitutive sigma-eps relation (I believe this could be the hardest part), you can try getting help in the gitter channel.

I would also take a look at Ferrite.jl. I am not familiar with the package, but maybe it can also solve this type of problem.

1 Like

Hi, you could give Finite-Difference stencils a try on xPUs using ParallelStencil.jl, and potentially the accelerated pseudo-transient method (this paper and related 2D Stokes code) if you seek for fast steady state solutions.

1 Like