Loading [MathJax]/extensions/tex2jax.js
Plugins
Toggle main menu visibility
ug4
Modules
ugBase
libAlgebra
libDiscretization
libGrid
Plugins
Registry
Scripts
Apps
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Variables
Typedefs
Enumerations
Enumerator
c
k
m
r
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
~
Variables
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
v
w
x
y
Typedefs
a
b
c
d
e
f
g
i
l
m
n
p
r
s
t
u
v
w
Enumerations
Enumerator
Files
File List
File Members
All
_
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Functions
a
b
c
d
e
f
h
i
l
m
n
p
r
s
t
v
w
Variables
b
c
e
f
n
p
q
r
s
u
Macros
_
b
h
l
n
o
p
s
t
u
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
parameter_set.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011-2015: G-CSC, Goethe University Frankfurt
3
* Author: Tim Schön
4
*
5
* This file is part of UG4.
6
*
7
* UG4 is free software: you can redistribute it and/or modify it under the
8
* terms of the GNU Lesser General Public License version 3 (as published by the
9
* Free Software Foundation) with the following additional attribution
10
* requirements (according to LGPL/GPL v3 §7):
11
*
12
* (1) The following notice must be displayed in the Appropriate Legal Notices
13
* of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14
*
15
* (2) The following notice must be displayed at a prominent place in the
16
* terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17
*
18
* (3) The following bibliography is recommended for citation and must be
19
* preserved in all covered files:
20
* "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21
* parallel geometric multigrid solver on hierarchically distributed grids.
22
* Computing and visualization in science 16, 4 (2013), 151-164"
23
* "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24
* flexible software system for simulating pde based models on high performance
25
* computers. Computing and visualization in science 16, 4 (2013), 165-179"
26
*
27
* This program is distributed in the hope that it will be useful,
28
* but WITHOUT ANY WARRANTY; without even the implied warranty of
29
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30
* GNU Lesser General Public License for more details.
31
*/
32
33
#ifndef __H__UG__parameter_set__
34
#define __H__UG__parameter_set__
35
36
37
38
#include <nlohmann/json.hpp>
39
using namespace
nlohmann;
40
41
42
#include <fstream>
43
#include <map>
44
#include <string>
45
#include <stdexcept>
46
47
#include <boost/optional.hpp>
48
#include <boost/exception/diagnostic_information.hpp>
49
50
#include "
common/ug_config.h
"
51
#include "
common/util/smart_pointer.h
"
52
53
#include <
registry/registry.h
>
54
#include <
registry/class.h
>
55
#include <
registry/function_traits.h
>
56
#include <
bridge/bridge.h
>
57
#include <
bindings/lua/lua_util.h
>
58
#include <
bindings/lua/bindings_lua.h
>
59
#include <
bindings/lua/lua_parsing.h
>
60
61
namespace
ug
62
{
63
namespace
JSONToolkit
64
{
65
struct
ParameterValue
66
{
67
68
ParameterValue
() {}
69
70
ParameterValue
(std::string
name
,
SmartPtr<void>
objValue
)
71
{
72
this->name =
name
;
73
this->objValue =
objValue
;
74
}
70
ParameterValue
(std::string
name
,
SmartPtr<void>
objValue
) {
…
}
75
76
std::string
name
;
77
SmartPtr<void>
objValue
=
SPNULL
;
78
};
65
struct
ParameterValue
{
…
};
79
80
81
class
ParameterSet
82
{
83
public
:
84
ParameterSet
();
85
ParameterSet
(
const
char
* json);
86
void
loadJSON
(
const
char
* json);
87
void
loadJSONFile
(
const
char
* file);
88
void
loadFromJSONObject
(
const
json jsonobject);
89
bridge::CustomReturn
get
(
const
char
* name);
90
91
private
:
92
std::map<std::string, ParameterValue>
parameters
;
93
94
};
81
class
ParameterSet
{
…
};
95
96
98
boost::optional<ParameterValue>
CreateParameterValue
(
const
json& jsonobject);
99
100
101
}
// end of namespace JSONToolkit
102
103
}
// end of namespace ug
104
105
#endif
bindings_lua.h
bridge.h
class.h
SmartPtr
ug::JSONToolkit::ParameterSet
Definition
parameter_set.h:82
ug::JSONToolkit::ParameterSet::loadJSONFile
void loadJSONFile(const char *file)
Definition
parameter_set.cpp:59
ug::JSONToolkit::ParameterSet::loadFromJSONObject
void loadFromJSONObject(const json jsonobject)
Definition
parameter_set.cpp:68
ug::JSONToolkit::ParameterSet::loadJSON
void loadJSON(const char *json)
Definition
parameter_set.cpp:53
ug::JSONToolkit::ParameterSet::parameters
std::map< std::string, ParameterValue > parameters
Definition
parameter_set.h:92
ug::JSONToolkit::ParameterSet::ParameterSet
ParameterSet()
Definition
parameter_set.cpp:44
ug::JSONToolkit::ParameterSet::get
bridge::CustomReturn get(const char *name)
Definition
parameter_set.cpp:83
ug::bridge::CustomReturn
function_traits.h
SPNULL
const NullSmartPtr SPNULL
lua_parsing.h
lua_util.h
ug::JSONToolkit::CreateParameterValue
boost::optional< ParameterValue > CreateParameterValue(const json &j)
This function creates a 'ParameterValue' from JSON.
Definition
parameter_set.cpp:112
ug
registry.h
smart_pointer.h
ug::JSONToolkit::ParameterValue
Definition
parameter_set.h:66
ug::JSONToolkit::ParameterValue::name
std::string name
Definition
parameter_set.h:76
ug::JSONToolkit::ParameterValue::ParameterValue
ParameterValue()
Definition
parameter_set.h:68
ug::JSONToolkit::ParameterValue::ParameterValue
ParameterValue(std::string name, SmartPtr< void > objValue)
Definition
parameter_set.h:70
ug::JSONToolkit::ParameterValue::objValue
SmartPtr< void > objValue
Definition
parameter_set.h:77
ug_config.h
plugins
JSONToolkit
src
parameter_set.h
Generated on Mon Feb 24 2025 01:12:46 for Plugins by
1.9.8