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 ?
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.
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 modulus-team@exchange.nvidia.com.
Hi @ramc, super nice!! Your technical support is awesome! However, the email cannot be sent to the following address with the following error message Recipient address rejected: Access denied.
Sorry about that - yes there seems to be an issue with the email alias and we are trying to address it. In the mean time, you can reach out to ramc@nvidia.com or anshumanb@nvidia.com.