OpenPFC  0.1.4
Phase Field Crystal simulation framework
Loading...
Searching...
No Matches
parameter_metadata.hpp File Reference

Parameter metadata system for configuration validation. More...

#include <optional>
#include <sstream>
#include <string>
#include <type_traits>
#include <limits>
Include dependency graph for parameter_metadata.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pfc::ui::ParameterMetadata< T >
 Metadata for a single model parameter. More...
 
class  pfc::ui::ParameterMetadata< T >::Builder
 Builder pattern for fluent parameter construction. More...
 

Detailed Description

Parameter metadata system for configuration validation.

This file provides a metadata system for describing model parameters with validation rules and documentation. It enables:

  • Required parameter checking (fail if missing)
  • Bounds validation (min/max constraints)
  • Helpful error messages with descriptions and typical values
  • Parameter summary printing for reproducibility

The system prevents the OpenFOAM problem: missing parameters causing silent failures hours into a simulation. Instead, validation fails immediately at startup with clear, actionable error messages.

Usage:

// Define parameter metadata
auto params = ParameterMetadata<double>::builder()
.name("temperature")
.description("Effective temperature in Kelvin")
.required(true)
.min(0.0)
.max(10000.0)
.typical(3300.0)
.build();
// Validate a value
double T = 3300.0;
if (auto error = params.validate(T)) {
std::cerr << error.value() << std::endl;
throw std::invalid_argument("Invalid temperature");
}
See also
parameter_validator.hpp for validation orchestration
tungsten_input.hpp for usage example