23 #if !defined(KRATOS_JSON_IO_H_INCLUDED )
24 #define KRATOS_JSON_IO_H_INCLUDED
46 #include "rapidjson/filereadstream.h"
47 #include "rapidjson/document.h"
109 std::string
const& Filename,
110 const Flags Options = IO::READ | IO::IGNORE_VARIABLES_ERROR.AsFalse())
120 FILE* fp = fopen(
mFilename.c_str(),
"rb");
121 char readBuffer[65536];
122 rapidjson::FileReadStream is(fp, readBuffer,
sizeof(readBuffer));
123 rapidjson::Document
d;
124 d.ParseStream<0, rapidjson::UTF8<>, rapidjson::FileReadStream>(is);
127 bool consecutive_reordering =
true;
128 if(consecutive_reordering)
173 virtual std::string
Info()
const
175 return "KratosJsonIO";
181 rOStream <<
"KratosJsonIO";
260 rapidjson::Value& json_model_part =
d[
"model_part"];
263 if(json_model_part.HasMember(
"Nodes") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection Nodes of the model_part",
"")
265 rapidjson::Value& json_nodes = json_model_part[
"Nodes"];
266 if(json_nodes.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Nodes section is not an array as expected!!",
"")
268 std::map<std::size_t, std::size_t> nodes_id_map;
271 std::size_t
node_id = json_nodes[
i][0].GetInt() ;
275 for(std::map<std::size_t, std::size_t>::iterator it = nodes_id_map.begin(); it!= nodes_id_map.end(); it++)
277 std::size_t pos = it->second;
280 const rapidjson::Value& node_input = json_nodes[pos];
281 rThisModelPart.
CreateNewNode( node_input[0].GetInt(), node_input[1].GetDouble(), node_input[2].GetDouble(), node_input[3].GetDouble());
284 d.RemoveMember(json_nodes);
288 if(json_model_part.HasMember(
"Properties") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection Properties of the model_part",
"")
290 const rapidjson::Value& json_properties = json_model_part[
"Properties"];
291 if(json_properties.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Properties section is not a json object as expected!!",
"")
292 for (rapidjson::Value::ConstMemberIterator itr = json_properties.MemberBegin(); itr != json_properties.MemberEnd(); ++itr)
294 unsigned int prop_id = atoi( itr->name.GetString() );
295 if(itr->value.HasMember(
"Variables") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection Variables of the Properties subsection of model_part",
"");
297 const rapidjson::Value& prop_variables = itr->value[
"Variables"];
298 for (rapidjson::Value::ConstMemberIterator iii = prop_variables.MemberBegin(); iii != prop_variables.MemberEnd(); ++iii)
306 typedef VariableComponent< VectorComponentAdaptor<array_1d<double, 3> > > component_type;
307 if( CheckAndAssignPropertyValue< component_type >( rThisModelPart.
pGetProperties(prop_id), iii->name.GetString(), iii->value) ) {}
310 KRATOS_THROW_ERROR(std::invalid_argument,
"can not read a variable type from the property block -- variable is ",iii->name.GetString());
318 if(json_model_part.HasMember(
"Elements"))
320 const rapidjson::Value& json_elements = json_model_part[
"Elements"];
321 if(json_elements.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Elements section is not a json object as expected!!",
"")
322 for (rapidjson::Value::ConstMemberIterator itr = json_elements.MemberBegin(); itr != json_elements.MemberEnd(); ++itr)
324 std::string element_name = itr->name.GetString();
326 if(itr->value[
"connectivity"].IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the connectivity section of the Elements is not an array as expected!!",
"")
328 const rapidjson::Value& connectivity = itr->value[
"connectivity"];
331 const rapidjson::Value& local_data = connectivity[
i];
332 unsigned int elem_id = local_data[0].GetInt();
333 unsigned int prop_id = local_data[1].GetInt();
335 unsigned int nnodes = local_data.Size()-2;
336 std::vector< ModelPart::IndexType > node_ids(
nnodes);
337 for(
unsigned int j=0;
j<
nnodes;
j++) node_ids[
j]= local_data[
j+2].GetInt() ;
347 if(json_model_part.HasMember(
"Conditions"))
349 const rapidjson::Value& json_conditions = json_model_part[
"Conditions"];
350 if(json_conditions.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Conditions section is not a json object as expected!!",
"")
351 for (rapidjson::Value::ConstMemberIterator itr = json_conditions.MemberBegin(); itr != json_conditions.MemberEnd(); ++itr)
353 std::string condition_name = itr->name.GetString();
354 if(itr->value[
"connectivity"].IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the connectivity section of the Conditions is not an array as expected!!",
"")
356 const rapidjson::Value& connectivity = itr->value[
"connectivity"];
359 const rapidjson::Value& local_data = connectivity[
i];
360 unsigned int elem_id = local_data[0].GetInt();
361 unsigned int prop_id = local_data[1].GetInt();
363 unsigned int nnodes = local_data.Size()-2;
364 std::vector< ModelPart::IndexType > node_ids(
nnodes);
365 for(
unsigned int j=0;
j<
nnodes;
j++) node_ids[
j]= local_data[
j+2].GetInt() ;
373 if(json_model_part.HasMember(
"Meshes"))
375 const rapidjson::Value& json_meshes = json_model_part[
"Meshes"];
376 if(json_meshes.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Meshes section is not a json object as expected!!",
"")
377 for (rapidjson::Value::ConstMemberIterator itr = json_meshes.MemberBegin(); itr != json_meshes.MemberEnd(); ++itr)
380 unsigned int mesh_id = atoi( itr->name.GetString() );
383 unsigned int number_of_meshes = rThisModelPart.
GetMeshes().
size();
390 if((itr->value).HasMember(
"NodePointers"))
392 const rapidjson::Value& json_nodepointers = (itr->value)[
"NodePointers"];
393 if(json_nodepointers.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the NodePointers section is not a json array as expected!!",
"")
394 mesh.Nodes().reserve( json_nodepointers.Size() );
399 if((itr->value).HasMember(
"ElementPointers"))
401 const rapidjson::Value& json_elementpointers = (itr->value)[
"ElementPointers"];
402 if(json_elementpointers.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the ElementPointers section is not a json array as expected!!",
"")
403 mesh.Elements().reserve( json_elementpointers.Size() );
407 if((itr->value).HasMember(
"ConditionPointers"))
409 const rapidjson::Value& json_conditionpointers = (itr->value)[
"ConditionPointers"];
410 if(json_conditionpointers.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the ConditionPointers section is not a json array as expected!!",
"")
411 mesh.Conditions().reserve( json_conditionpointers.Size() );
415 mesh.Nodes().Unique();
416 mesh.Elements().Unique();
417 mesh.Conditions().Unique();
425 if(json_model_part.HasMember(
"NodalData"))
428 const rapidjson::Value& json_nodaldata = json_model_part[
"NodalData"];
429 if(json_nodaldata.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the NodalData section is not a json object as expected!!",
"")
430 for (rapidjson::Value::ConstMemberIterator itr = json_nodaldata.MemberBegin(); itr != json_nodaldata.MemberEnd(); ++itr)
432 std::string variable_name = itr->name.GetString();
434 if(itr->value.HasMember(
"stepindex") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection stepindex of the NodalData subsection of model_part",
"");
435 unsigned int stepindex = itr->value[
"stepindex"].GetInt();
437 if(itr->value.HasMember(
"data") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection data of the NodalData subsection of model_part",
"");
438 const rapidjson::Value& json_nodaldata = itr->value[
"data"];
450 typedef VariableComponent< VectorComponentAdaptor<array_1d<double, 3> > > component_type;
451 if( CheckAndAssignNodalComponentValue< component_type >( rThisModelPart, variable_name, json_nodaldata,stepindex) ) {}
454 KRATOS_THROW_ERROR(std::invalid_argument,
"can not read a variable type from the property block -- variable is ",variable_name);
477 if(
d[
"model_part"].HasMember(
"Nodes") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection Nodes of the model_part",
"");
479 rapidjson::Value& json_nodes =
d[
"model_part"][
"Nodes"];
480 if(json_nodes.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Nodes section is not an array as expected!!",
"")
486 std::set<std::size_t> original_ids_set;
489 std::size_t
node_id = json_nodes[
i][0].GetInt();
490 original_ids_set.insert(
node_id );
494 std::map < std::size_t, std::size_t > consecutive_nodeids_map;
495 std::size_t consecutive_id = 1;
496 for(std::set<std::size_t>::iterator it = original_ids_set.begin(); it!= original_ids_set.end(); it++)
498 consecutive_nodeids_map[ *it ] = consecutive_id;
505 original_ids_set.clear();
506 if(
d[
"model_part"].HasMember(
"Elements"))
508 rapidjson::Value& json_elements =
d[
"model_part"][
"Elements"];
509 if(json_elements.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Elements section is not a json object as expected!!",
"");
510 for (rapidjson::Value::MemberIterator itr = json_elements.MemberBegin(); itr != json_elements.MemberEnd(); ++itr)
513 rapidjson::Value& connectivity = itr->value[
"connectivity"];
517 rapidjson::Value& local_data = connectivity[
i];
518 std::size_t original_id = local_data[0].GetInt();
519 original_ids_set.insert(original_id);
523 std::map < std::size_t, std::size_t > consecutive_elementids_map;
525 for(std::set<std::size_t>::iterator it = original_ids_set.begin(); it!= original_ids_set.end(); it++)
527 consecutive_elementids_map[ *it ] = consecutive_id;
534 original_ids_set.clear();
535 if(
d[
"model_part"].HasMember(
"Conditions"))
537 rapidjson::Value& json_conditions =
d[
"model_part"][
"Conditions"];
538 if(json_conditions.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Conditions section is not a json object as expected!!",
"");
539 for (rapidjson::Value::MemberIterator itr = json_conditions.MemberBegin(); itr != json_conditions.MemberEnd(); ++itr)
542 rapidjson::Value& connectivity = itr->value[
"connectivity"];
546 rapidjson::Value& local_data = connectivity[
i];
547 std::size_t original_id = local_data[0].GetInt();
548 original_ids_set.insert(original_id);
552 std::map < std::size_t, std::size_t > consecutive_conditionids_map;
554 for(std::set<std::size_t>::iterator it = original_ids_set.begin(); it!= original_ids_set.end(); it++)
556 consecutive_conditionids_map[ *it ] = consecutive_id;
564 json_nodes[
i][0].SetInt( consecutive_nodeids_map[ json_nodes[
i][0].GetInt() ] );
567 if(
d[
"model_part"].HasMember(
"NodalData"))
570 rapidjson::Value& json_nodaldata =
d[
"model_part"][
"NodalData"];
571 if(json_nodaldata.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the NodalData section is not a json object as expected!!",
"")
572 for (rapidjson::Value::MemberIterator itr = json_nodaldata.MemberBegin(); itr != json_nodaldata.MemberEnd(); ++itr)
574 if(itr->value.HasMember(
"data") ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"missing the subsection data of the NodalData subsection of model_part",
"");
575 rapidjson::Value& json_nodaldata = itr->value[
"data"];
579 rapidjson::Value& value = json_nodaldata[
i];
581 value[0].SetInt( consecutive_nodeids_map[ value[0].GetInt() ] );
589 if(
d[
"model_part"].HasMember(
"Meshes"))
591 rapidjson::Value& json_meshes =
d[
"model_part"][
"Meshes"];
592 if(json_meshes.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Meshes section is not a json object as expected!!",
"")
593 for (rapidjson::Value::MemberIterator itr = json_meshes.MemberBegin(); itr != json_meshes.MemberEnd(); ++itr)
596 if((itr->value).HasMember(
"NodePointers"))
598 rapidjson::Value& json_nodepointers = (itr->value)[
"NodePointers"];
599 if(json_nodepointers.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the NodePointers section is not a json array as expected!!",
"")
600 for(
rapidjson::SizeType i=0;
i<json_nodepointers.Size();
i++) json_nodepointers[
i].SetInt( consecutive_nodeids_map[ json_nodepointers[
i].GetInt()] );
603 if((itr->value).HasMember(
"ElementPointers"))
605 rapidjson::Value& json_elementpointers = (itr->value)[
"ElementPointers"];
606 if(json_elementpointers.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the ElementPointers section is not a json array as expected!!",
"")
607 for(
rapidjson::SizeType i=0;
i<json_elementpointers.Size();
i++) json_elementpointers[
i].SetInt( consecutive_elementids_map[ json_elementpointers[
i].GetInt()] );
610 if((itr->value).HasMember(
"ConditionPointers"))
612 rapidjson::Value& json_conditionpointers = (itr->value)[
"ConditionPointers"];
613 if(json_conditionpointers.IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the ConditionPointers section is not a json array as expected!!",
"")
614 for(
rapidjson::SizeType i=0;
i<json_conditionpointers.Size();
i++) json_conditionpointers[
i].SetInt( consecutive_elementids_map[ json_conditionpointers[
i].GetInt()] );
623 if(
d[
"model_part"].HasMember(
"Elements"))
625 rapidjson::Value& json_elements =
d[
"model_part"][
"Elements"];
626 if(json_elements.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Elements section is not a json object as expected!!",
"")
627 for (rapidjson::Value::MemberIterator itr = json_elements.MemberBegin(); itr != json_elements.MemberEnd(); ++itr)
630 rapidjson::Value& connectivity = itr->value[
"connectivity"];
634 rapidjson::Value& local_data = connectivity[
i];
635 local_data[0].SetInt( consecutive_elementids_map[ local_data[0].GetInt() ]) ;
636 unsigned int nnodes = local_data.Size()-2;
637 for(
unsigned int j=0;
j<
nnodes;
j++) local_data[
j+2].SetInt( consecutive_nodeids_map[ local_data[
j+2].GetInt() ]) ;
644 if(
d[
"model_part"].HasMember(
"Conditions"))
646 rapidjson::Value& json_elements =
d[
"model_part"][
"Conditions"];
647 if(json_elements.IsObject() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the Conditions section is not a json object as expected!!",
"")
648 for (rapidjson::Value::MemberIterator itr = json_elements.MemberBegin(); itr != json_elements.MemberEnd(); ++itr)
650 std::string element_name = itr->name.GetString();
651 if(itr->value[
"connectivity"].IsArray() ==
false)
KRATOS_THROW_ERROR(std::invalid_argument,
"the connectivity section of the Conditions is not an array as expected!!",
"");
653 rapidjson::Value& connectivity = itr->value[
"connectivity"];
656 rapidjson::Value& local_data = connectivity[
i];
657 local_data[0].SetInt( consecutive_conditionids_map[ local_data[0].GetInt() ]) ;
658 unsigned int nnodes = local_data.Size()-2;
659 for(
unsigned int j=0;
j<
nnodes;
j++) local_data[
j+2].SetInt( consecutive_nodeids_map[ local_data[
j+2].GetInt() ]) ;
669 template<
class TVarType >
676 KRATOS_THROW_ERROR(std::runtime_error,
"trying to assign a variable that is not in the model_part - variable name is ",variable_name);
680 const rapidjson::Value& value = json_value[
i];
682 unsigned int node_id = value[0].GetInt();
683 bool is_fixed =
static_cast<bool>(value[1].GetInt());
684 double double_value = value[2].GetDouble();
686 ModelPart::NodesContainerType::iterator itnode = r_model_part.
Nodes().
find(
node_id );
689 itnode->GetSolutionStepValue(rVar, stepindex) = double_value;
690 if(is_fixed) itnode->Fix(rVar);
698 template<
class TVarType >
705 const std::string base_variable_name = rVar.GetSourceVariable().Name();
709 KRATOS_THROW_ERROR(std::runtime_error,
"trying to assign a variable that is not in the model_part - variable name is ",variable_name);
713 const rapidjson::Value& value = json_value[
i];
715 unsigned int node_id = value[0].GetInt();
716 bool is_fixed =
static_cast<bool>(value[1].GetInt());
717 double double_value = value[2].GetDouble();
719 ModelPart::NodesContainerType::iterator itnode = r_model_part.
Nodes().
find(
node_id );
722 itnode->GetSolutionStepValue(rVar, stepindex) = double_value;
723 if(is_fixed) itnode->Fix(rVar);
731 template<
class TVarType >
738 KRATOS_THROW_ERROR(std::runtime_error,
"trying to assign a variable that is not in the model_part - variable name is ",variable_name);
742 const rapidjson::Value& value = json_value[
i];
744 unsigned int node_id = value[0].GetInt();
745 bool is_fixed =
static_cast<bool>(value[1].GetInt());
746 double double_value = value[2].GetDouble();
748 ModelPart::NodesContainerType::iterator itnode = r_model_part.
Nodes().
find(
node_id );
751 itnode->GetSolutionStepValue(rVar, stepindex) = double_value;
754 std::string
err_msg = std::string(
"variable name is ")+variable_name;
755 KRATOS_THROW_ERROR(std::runtime_error,
"sorry this variable is not of double or component type and can not be fixed -- ",
err_msg);
765 template<
class TVarType >
771 pProperty->GetValue( rVar ) = json_value.GetDouble();
IO provides different implementation of input output procedures which can be used to read and write w...
Definition: io.h:58
std::vector< std::vector< std::size_t > > ConnectivitiesContainerType
Definition: io.h:91
std::size_t SizeType
Definition: io.h:97
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
static const TComponentType & Get(const std::string &rName)
Retrieves a component with the specified name.
Definition: kratos_components.h:114
An IO class for reading and writing a modelpart.
Definition: json_io.h:75
bool CheckAndAssignPropertyValue(Properties::Pointer pProperty, std::string variable_name, const rapidjson::Value &json_value)
Definition: json_io.h:766
BaseType::MeshType MeshType
Definition: json_io.h:87
BaseType::ConnectivitiesContainerType ConnectivitiesContainerType
Definition: json_io.h:97
bool CheckAndAssignNodalComponentValue(ModelPart &r_model_part, std::string variable_name, const rapidjson::Value &json_value, unsigned int stepindex)
Definition: json_io.h:699
bool CheckAndAssignNodalValue_ErrorIfFixed(ModelPart &r_model_part, std::string variable_name, const rapidjson::Value &json_value, unsigned int stepindex)
Definition: json_io.h:732
IO BaseType
Definition: json_io.h:83
KratosJsonIO(std::string const &Filename, const Flags Options=IO::READ|IO::IGNORE_VARIABLES_ERROR.AsFalse())
Constructor with filenames.
Definition: json_io.h:108
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: json_io.h:179
KRATOS_CLASS_POINTER_DEFINITION(KratosJsonIO)
Pointer definition of KratosJsonIO.
BaseType::NodeType NodeType
Definition: json_io.h:85
virtual void ReadModelPart(ModelPart &rThisModelPart)
This method reads the model part.
Definition: json_io.h:117
void FillModelPart(rapidjson::Document &d, ModelPart &rThisModelPart)
Definition: json_io.h:255
virtual ~KratosJsonIO()
Constructor with filenames.
Definition: json_io.h:144
std::string mFilename
Definition: json_io.h:243
bool CheckAndAssignNodalValue(ModelPart &r_model_part, std::string variable_name, const rapidjson::Value &json_value, unsigned int stepindex)
Definition: json_io.h:670
Flags mOptions
Definition: json_io.h:244
BaseType::PropertiesContainerType PropertiesContainerType
Definition: json_io.h:91
std::size_t SizeType
Definition: json_io.h:101
BaseType::NodesContainerType NodesContainerType
Definition: json_io.h:89
KratosJsonIO(KratosJsonIO const &rOther)
Copy constructor.
KratosJsonIO & operator=(KratosJsonIO const &rOther)
Assignment operator.
BaseType::ElementsContainerType ElementsContainerType
Definition: json_io.h:93
virtual std::string Info() const
Turn back information as a string.
Definition: json_io.h:173
void EnforceConsecutiveOrdering(rapidjson::Document &d)
Definition: json_io.h:474
BaseType::ConditionsContainerType ConditionsContainerType
Definition: json_io.h:95
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: json_io.h:186
Mesh is the second level of abstraction in the data structure which hold Nodes, Elements and Conditio...
Definition: mesh.h:69
Mesh Clone()
Definition: mesh.h:207
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
PropertiesType::Pointer pGetProperties(IndexType PropertiesId, IndexType MeshIndex=0)
Returns the Properties::Pointer corresponding to it's identifier.
Definition: model_part.cpp:664
NodeType::Pointer CreateNewNode(int Id, double x, double y, double z, VariablesList::Pointer pNewVariablesList, IndexType ThisIndex=0)
Definition: model_part.cpp:270
ElementType::Pointer CreateNewElement(std::string ElementName, IndexType Id, std::vector< IndexType > ElementNodeIds, PropertiesType::Pointer pProperties, IndexType ThisIndex=0)
Creates new element with a node ids list.
std::size_t IndexType
Pointer definition of ModelPart.
Definition: model_part.h:105
ElementType::Pointer pGetElement(IndexType ElementId, IndexType ThisIndex=0)
Definition: model_part.h:1109
ConditionType::Pointer pGetCondition(IndexType ConditionId, IndexType ThisIndex=0)
Definition: model_part.h:1301
ConditionType::Pointer CreateNewCondition(std::string ConditionName, IndexType Id, std::vector< IndexType > ConditionNodeIds, PropertiesType::Pointer pProperties, IndexType ThisIndex=0)
Creates new condition with a node ids list.
MeshesContainerType & GetMeshes()
Definition: model_part.h:1801
NodeType::Pointer pGetNode(IndexType NodeId, IndexType ThisIndex=0)
Definition: model_part.h:421
NodeIterator NodesEnd(IndexType ThisIndex=0)
Definition: model_part.h:497
MeshType & GetMesh(IndexType ThisIndex=0)
Definition: model_part.h:1791
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
VariablesList & GetNodalSolutionStepVariablesList()
Definition: model_part.h:549
This class defines the node.
Definition: node.h:65
size_type size() const
Definition: pointer_vector.h:255
void push_back(const TPointerType &x)
Definition: pointer_vector.h:270
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.h:72
iterator find(const key_type &Key)
Find an element with the specified key.
Definition: pointer_vector_set.h:678
bool Has(const VariableData &rThisVariable) const
Definition: variables_list.h:372
#define KRATOS_THROW_ERROR(ExceptionType, ErrorMessage, MoreInfo)
Definition: define.h:77
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_WATCH(variable)
Definition: define.h:806
#define KRATOS_TRY
Definition: define.h:109
std::size_t SizeType
Definition: nurbs_utilities.h:41
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
string err_msg
Definition: fluid_chimera_analysis.py:21
int d
Definition: ode_solve.py:397
int j
Definition: quadrature.py:648
int elem_id
Definition: read_stl.py:13
int node_id
Definition: read_stl.py:12
mesh
Definition: read_stl.py:7
int nnodes
Definition: sensitivityMatrix.py:24
integer i
Definition: TensorModule.f:17