I am trying to run a similar case as the inverse problem to find PDE coefficients in the User Guide (here).
In the example, subnets are used to assimilate OpenFoam data and another network is used to estimate the unknown parameters. My question is: Why sub-networks are needed to assimilate the data? Can’t we just simply provide the Openfoam data to the estimating network ?
Are the two sub-networks mandatory? If yes, why?
Thanks in advance!
HI @lctlr ,
Thanks for your interest. Naturally inverse modeling with DNN surrogates is an open research subject with a lot interesting directions. I can provide you some ideas here, but there are many DL and classical approaches that can be considered.
This user guide problem has a couple of models: two for the inversion of the fluid flow and two for the inversion of the temperature field. Each has field has a model that learns the state field and another that learns the PDE coefficient.
(In the case of the flow, same applies to thermal part)
Having a separate sub-network that learns the flow has a number of advantages.
- The first is that the flow model (one that assimilates the data) can provide gradients for computing the PDE residual analytically and pointwise (friendly with sparse data).
- The second is that this allows us to use sparse observations and fill in the blanks using PINNs. With out making sure the flow field is fully satisfied the problem would be far too ill-posed for a small number observations.
- Solving for the full flow field bring important boundary condition information into the optimization.
- Separate models (one that learns the flow and another for the PDE coefficient) prevents the need to have to scale the coefficient to be comparable with the fluid quantities and improves convergence/accuracy.
- With a flow model, getting the full spatial field of the PDE coefficient is possible if needed.
With enough observations over the domain, yes you can likely just have only one model that predicts the PDE coefficient solving the PDE residual using numerically approximated gradients. But this typically isn’t the case with inverse problems of interest. Hope this provides some insights.
Thanks a lot for your clear explanation @ngeneva, now I see the point!
Hope the response was able to help you move forth with your use case. Would you be interested in speaking to the modulus team to share more details on the use case and we can try to share more insights on how to apply Modulus for you problem. You can reach out to us directly at firstname.lastname@example.org.