LLNL / ExaCMech

BSD 3-Clause "New" or "Revised" License
17 stars 0 forks source link

Improve documentation / add option to output parameter names #18

Open rcarson3 opened 3 years ago

rcarson3 commented 3 years ago

@nrbertin brought up a good point while he was using the python bindings that it would be nice to see what the property names are for each model. We are definitely lacking in this area, and the only place that I believe has all the parameters labelled is my script for ExaConstit: https://github.com/LLNL/ExaConstit/blob/exaconstit-dev/scripts/ecmech_prop_file.py

So, my suggestions would be to add a new function that outputs the model parameter names in a human readable format rather than the blob of numbers that getParams would return. This call should also be able return the names and values if they've already been provided.

I'll see if I can't get to this at the start of the new years as part of improving documentation through-out the code.

nrbarton commented 3 years ago

The logParameters function could be made to output that information, rather than just dumping a blob of numbers. For other material model libraries with a similar interface, logParameters is more human-readable. But that is still just a big string that is not useful for a host code doing things like trying to set parameters by name. So you could add getParamNames or the like that would return a std::vector. Building up the machinery to do that would probably take some work, with each sub-model in an overall model perhaps being required to offer up its parameter names.

rcarson3 commented 3 years ago

I think the getParamNames type function could work here. I do expect it to take a little bit of work to put it together, but we luckily only have a few models currently in ExaCMech, and I believe I have all the names already mapped out which helps.