status.hpp unordered_map cstdint utility serif/utils/error/codes.hpp serif/meta/enums.hpp src/include/serif/backend/mfem/mapping/compactification/compactification.hpp src/include/serif/backend/mfem/mapping/compactification/kelvin.hpp src/include/serif/backend/mfem/mapping/evaluator.hpp src/include/serif/backend/mfem/operators/rejection.hpp serif serif::mapping #pragmaonce #include<unordered_map> #include<cstdint> #include<utility> #include"serif/utils/error/codes.hpp" #include"serif/meta/enums.hpp" namespaceserif::mapping { enumclassMappingStatus:uint16_t{ VALID, //Startthisat400sothisisparalleltothemappingerrorcodes.Theremustbeabetterwayto //dothisbutitisnotworththetimetosortoutnow INVALID_DIMENSION=400, NON_FINITE_MAPPING_INPUT, INVALID_REFERENCE_RADIUS, AT_COMPACTIFIED_INFINITY, OUTSIDE_REFERENCE_DOMAIN, NON_FINITE_MAPPING_RESULT, NON_POSITIVE_DETERMINATE }; staticautoMappingStatus_enum_string_map=meta::enum_to_enum_string_map<MappingStatus>(); staticautoMappingStatus_string_enum_map=meta::enum_to_string_enum_map<MappingStatus>(); inlinestd::unordered_map<MappingStatus,utils::errors::SERiFErrorCode>make_MappingStatus_SERiFErrorCode_map(){ std::unordered_map<MappingStatus,utils::errors::SERiFErrorCode>ret; for(constauto&[MS,MS_name]:MappingStatus_enum_string_map){ if(std::to_underlying(MS)<400){ continue;//SkipVALIDsinceitisnotintheerrorcodeset } ret.insert({MS,utils::errors::SERiFErrorCodeNameToTypeMap.at(MS_name)}); } returnret; } inlinestd::unordered_map<utils::errors::SERiFErrorCode,MappingStatus>make_SERIFErrorCode_MappingStatus_map(){ std::unordered_map<utils::errors::SERiFErrorCode,MappingStatus>ret; for(constauto&[MS,MS_name]:MappingStatus_enum_string_map){ if(std::to_underlying(MS)<400){ continue;//SkipVALIDsinceitisnotintheerrorcodeset } ret.insert({utils::errors::SERiFErrorCodeNameToTypeMap.at(MS_name),MS}); } returnret; } //WemaketheseparallellistssotoensurethatwecanlookupbetweenSERiFerrorcodes //andequivalentMappingStatus.NoteagainthisisuglyandbadandIamashamedofthiscode.... //anyhoodlesthereislikelyabetterwaybutpickyourbattlesamiright? staticautoMappingStatus_SERiFErrorCode_map=make_MappingStatus_SERiFErrorCode_map(); staticautoSERiFErrorCode_MappingStatus_map=make_SERIFErrorCode_MappingStatus_map(); }