# Simulation: How can I efficiently save multidimensional data that can be retrieved by key?

I am doing some simulations in Mathematica where I calculate a spectrum intensity (frequency) for a variation of parameters in my samples. So, in the following image, for example, I vary the concentration of the charge carrier of a layer and obtain the following graph:

What I have to do now is to make a variation of 5-10 different parameters (charge carrier concentration, mobility, effective mass, thickness, …) and see the influence of each one, depending on each one. So I don't want to get 5 of these graphs, because on the graph all the other parameters are constant; instead I want to change all the parameters and then e.g. 3D plots to show the influence of two parameters at the same time.

Since this is a lot of simulations, I want to include a list of values ​​for each parameter, do all the individual simulations, eg. a week of calculation, fill in the results in a large n-dimensional hypercube of data and save it. Later, I would like to be able to extract data from this hypercube of saved data in a controlled way by asking p. for all data points with: mobility = 5, effective mass = 3, etc.

Since I would like to use this setting for different samples, or maybe it is used by other people, or the parameters themselves could also change, … so I would prefer to use keys instead of just listing indexes as data ((1,1 , 1, all)).

I was thinking of making a dataset with each data point added separately, like the documentation example:

``````    dataset = Dataset({
<|"a" -> 1, "b" -> "x", "c" -> {1}|>,
<|"a" -> 2, "b" -> "y", "c" -> {2, 3}|>,
<|"a" -> 3, "b" -> "z", "c" -> {3}|>,
<|"a" -> 4, "b" -> "x", "c" -> {4, 5}|>,
<|"a" -> 5, "b" -> "y", "c" -> {5, 6, 7}|>,
<|"a" -> 6, "b" -> "z", "c" -> {}|>})
``````

and then I would use all the parameters as key-value pairs to find a row, while the list shown in "c" in this example would be a list of lists {{x1, x2, …}, {y1, y2 , …}} with the intensity (frequency) data that I want to plot for this set of parameters.

Does that seem plausible? It will probably result in billions of data points and maybe I would like to interpolate some of the data later. Is there a better way to do this?

I would like to receive some input and I really couldn't find an answer to this question by searching for multidimensional data and similar requests. Thank you very much in advance!