Harmony
HARMONic stabilitY assessment of PE-penetrated power systems
Loading...
Searching...
No Matches
json_parameters.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <string>
5#include <vector>
6
7#include <nlohmann/json.hpp>
8#include <symengine/basic.h>
9
10using JSON = nlohmann::json;
11
19public:
20 void clear();
21
23 void mergeFromObject(const JSON& obj, const char* context);
24
25 bool contains(const std::string& name) const;
26
28 double resolveScalar(const JSON& value, const char* context) const;
29
31 std::vector<double> resolveArray(const JSON& array, const char* context) const;
32
34 static bool isReference(const JSON& value);
35
37 static void validateObject(const JSON& obj, const char* context);
38
41 const JSON& array,
42 const char* context,
43 int expectedSize = -1) const;
44
46 SymEngine::map_basic_basic toSubstitutionMap() const;
47
49 std::vector<std::string> names() const;
50
51private:
52 std::map<std::string, double> values_;
53};
Lookup table for "parameters": { "name": number } at simulation or component scope.
Definition json_parameters.h:18
double resolveScalar(const JSON &value, const char *context) const
Resolve a JSON number or parameter-name string to double.
Definition json_parameters.cpp:56
std::vector< double > resolveArray(const JSON &array, const char *context) const
Resolve each element of a JSON array (numbers or parameter names).
Definition json_parameters.cpp:74
void validateNumericOrReferenceArray(const JSON &array, const char *context, int expectedSize=-1) const
Validate array: each entry is a number or known parameter name.
Definition json_parameters.cpp:88
bool contains(const std::string &name) const
Definition json_parameters.cpp:28
void clear()
Definition json_parameters.cpp:15
static void validateObject(const JSON &obj, const char *context)
Validate object shape: all values must be numbers.
Definition json_parameters.cpp:38
static bool isReference(const JSON &value)
True when value is a non-empty string (parameter reference).
Definition json_parameters.cpp:33
SymEngine::map_basic_basic toSubstitutionMap() const
SymEngine substitution map for numeric parameter names.
Definition json_parameters.cpp:123
void mergeFromObject(const JSON &obj, const char *context)
Add or override entries from a JSON object of numeric values.
Definition json_parameters.cpp:20
std::vector< std::string > names() const
All defined parameter names.
Definition json_parameters.cpp:132
nlohmann::json JSON
Definition component_builder.h:6
nlohmann::json JSON
Definition json_parameters.h:10