Skip to content

Incorporating Data

Tim Wildey edited this page Jan 11, 2025 · 8 revisions

MrHyDE is designed to enable data-informed physics-based predictions by combining inference with modeling and simulation. There are several ways to incorporate experimental (or synthetic) data into a simulation, but these can be broken down into two classes:

  1. Input data: information that can be defined as parameters, coefficients, forcing functions, etc. This is often used along with the forward analysis mode.
  2. Output data: information that the simulation will try to predict and then try to find the parameters that best match the data. This is usually used in PDE-constrained optimization, stochastic inversion, data-assimilation, etc.

Incorporating output data in a simulation is described in the Optimization and Data-Consistent Inversion pages. We focus the rest of this page on incorporating input data.

Obviously if the data is simply a scalar, then one can simply define a scalar parameter as described in Optimization. If one has a set of samples for a particular parameter, e.g., the parameter is stochastic and set of samples have been generated elsewhere, one can perform a UQ study using a user-defined set of parameters as described in Optimization.

It is a bit more complicated to incorporate data from a spatially varying field. MrHyDE assumes that this data is given at seed locations in physical space and the values for each element are computed using a nearest neighbor algorithm in Compadre. The seeds are not assumed to be associated with the mesh and can be completely unstructured. This information needs to be stored in two different files: one for the seeds (physical xyz-locations) and another for the seed data. For example:

Mesh: 
    data file: mesh_data_rotations
    data points file: mesh_data_pts

These files are actually mesh_data_rotations.dat and mesh_data_pts.dat. MrHyDE automatically adds the .dat extension to the prefix given in the input file. This data is then automatically available in the workset, so the physics module just needs to know what to do with it. For example, the crystal elasticity capability will use these seeds and data to generate a microstructure:

Ibeam_r4_grains

or can be used to import a heterogeneous permeability field:

Screenshot 2025-01-05 at 4 49 34 PM