18#include <webapps_config.hpp>
33 const char *
what()
const throw() {
return "Index is out of bounds"; }
38 const char *
what()
const throw() {
return "Invalid model name"; }
43 const char *
what()
const throw() {
return "Invalid model attribute"; }
54 return std::vector{std::string(
"addpatch")};
63 const nlohmann::json &
json) = 0;
67 return std::vector{std::string(
"removepatch")};
79 return std::vector{std::string(
"computeL1error"),
80 std::string(
"computeL2error"),
81 std::string(
"computeH1error")};
93 return std::vector{std::string(
"elevate")};
101 virtual nlohmann::json
eval(
const std::string &patch,
103 const nlohmann::json &
json)
const = 0;
107 return std::vector{std::string(
"eval")};
119 return std::vector{std::string(
"increase")};
131 return std::vector{std::string(
"refine")};
143 return std::vector{std::string(
"reparameterize")};
154 virtual nlohmann::json
save()
const = 0;
158 return std::vector{std::string(
"load"), std::string(
"save")};
168 const nlohmann::json &
json,
174 const pugi::xml_node &
xml,
178 virtual nlohmann::json
exportXML(
const std::string &patch,
183 virtual pugi::xml_node &
exportXML(
const std::string &patch,
185 pugi::xml_node &
root,
190 return std::vector{std::string(
"exportxml"), std::string(
"importxml")};
240 auto json = nlohmann::json::array();
242 json.push_back(
"create");
243 json.push_back(
"remove");
246 for (
auto const &
capability :
m->getCapabilities())
250 for (
auto const &
capability :
m->getCapabilities())
254 for (
auto const &
capability :
m->getCapabilities())
257 if (
auto m =
dynamic_cast<const ModelEval *
>(
this))
258 for (
auto const &
capability :
m->getCapabilities())
262 for (
auto const &
capability :
m->getCapabilities())
266 for (
auto const &
capability :
m->getCapabilities())
270 for (
auto const &
capability :
m->getCapabilities())
274 for (
auto const &
capability :
m->getCapabilities())
278 for (
auto const &
capability :
m->getCapabilities())
281 if (
auto m =
dynamic_cast<const ModelXML *
>(
this))
282 for (
auto const &
capability :
m->getCapabilities())
289 virtual nlohmann::json
to_json(
const std::string &patch,
293 return "{ INVALID REQUEST }";
300 const nlohmann::json &
json) {
302 return "{ INVALID REQUEST }";
Model add patch.
Definition model.hpp:47
std::vector< std::string > getCapabilities() const
Definition model.hpp:53
virtual void addPatch(const nlohmann::json &json)=0
Adds a patch to a model.
Model error computation.
Definition model.hpp:72
virtual nlohmann::json computeError(const nlohmann::json &json) const =0
Computes the model's error.
std::vector< std::string > getCapabilities() const
Definition model.hpp:78
Model degree elevation.
Definition model.hpp:86
virtual void elevate(const nlohmann::json &json)=0
Elevates the model's degrees, preserves smoothness.
std::vector< std::string > getCapabilities() const
Definition model.hpp:92
Model evaluator.
Definition model.hpp:98
virtual nlohmann::json eval(const std::string &patch, const std::string &component, const nlohmann::json &json) const =0
Evaluates model.
std::vector< std::string > getCapabilities() const
Definition model.hpp:106
Model interface.
Definition model.hpp:195
virtual nlohmann::json getOutputs() const =0
Returns the model's outputs.
virtual std::string getName() const =0
Returns the model's name.
virtual nlohmann::json getInputs() const =0
Returns the model's inputs.
Model()
Constructor.
Definition model.hpp:198
virtual std::string getDescription() const =0
Returns the model's description.
virtual ~Model()
Destructor.
Definition model.hpp:201
virtual nlohmann::json getModel() const
Returns the model's JSON serialization.
Definition model.hpp:222
virtual nlohmann::json getCapabilities() const
Returns the model's capabilities.
Definition model.hpp:238
virtual nlohmann::json getParameters() const =0
Return's the model's parameters.
virtual nlohmann::json getOptions() const =0
Returns the model's options.
virtual nlohmann::json to_json(const std::string &patch, const std::string &component, const std::string &attribute) const
Serializes the model to JSON.
Definition model.hpp:289
virtual nlohmann::json updateAttribute(const std::string &patch, const std::string &component, const std::string &attribute, const nlohmann::json &json)
Updates the attributes of the model.
Definition model.hpp:297
Model degree increase.
Definition model.hpp:112
virtual void increase(const nlohmann::json &json)=0
Increases the model's degrees, preserves multiplicity.
std::vector< std::string > getCapabilities() const
Definition model.hpp:118
Model refinement.
Definition model.hpp:124
std::vector< std::string > getCapabilities() const
Definition model.hpp:130
virtual void refine(const nlohmann::json &json)=0
Refines model.
Model remove patch.
Definition model.hpp:59
std::vector< std::string > getCapabilities() const
Definition model.hpp:66
virtual void removePatch(const std::string &patch, const nlohmann::json &json)=0
Adds a patch to a model.
Model reparameterization.
Definition model.hpp:136
virtual void reparameterize(const std::string &patch, const nlohmann::json &json)=0
Reparameterizes the model.
std::vector< std::string > getCapabilities() const
Definition model.hpp:142
Model serialization.
Definition model.hpp:148
std::vector< std::string > getCapabilities() const
Definition model.hpp:157
virtual void load(const nlohmann::json &json)=0
Loads model from LibTorch file.
virtual nlohmann::json save() const =0
Saves model to LibTorch file.
Model XML serialization.
Definition model.hpp:163
virtual void importXML(const std::string &patch, const std::string &component, const pugi::xml_node &xml, int id)=0
Imports model from XML (as XML object)
virtual nlohmann::json exportXML(const std::string &patch, const std::string &component, int id)=0
Exports model to XML (as JSON object)
virtual pugi::xml_node & exportXML(const std::string &patch, const std::string &component, pugi::xml_node &root, int id)=0
Exports model to XML (as XML object)
virtual void importXML(const std::string &patch, const std::string &component, const nlohmann::json &json, int id)=0
Imports model from XML (as JSON object)
std::vector< std::string > getCapabilities() const
Definition model.hpp:189
Isogeometric analysis network main header file.
Definition boundary.hpp:22
io
Enumerator for specifying the output type.
Definition model.hpp:23
constexpr bool is_SplineType_v
Alias to the value of is_SplineType.
Definition bspline.hpp:3243
IndexOutOfBounds exception.
Definition model.hpp:32
const char * what() const
Definition model.hpp:33
InvalidModelAttribute exception.
Definition model.hpp:42
const char * what() const
Definition model.hpp:43
InvalidModel exception.
Definition model.hpp:37
const char * what() const
Definition model.hpp:38