codes.hpp cstdint serif/meta/enums.hpp src/include/serif/backend/mfem/mapping/status.hpp src/include/serif/solver/preconditioner/failure.hpp src/include/serif/utils/error/errors.hpp src/lib/serif/eos/models/polytropic.cpp serif serif::utils serif::utils::errors #pragmaonce #include<cstdint> #include"serif/meta/enums.hpp" namespaceserif::utils::errors{ //Eachsectionshouldstartatanotherhundredtoallowforsimplereadingoferrorcodesbyusers //C++enumsautomaticallycountupfromthepreviousvaluesoyouonlyneedtospecifythefirst //memberofthatcategory.Byconventionpleasemakethefirstmemberthemostgeneral //classoferrorinthatcategory,subsequenterrorscanspecifyfurther. //subcategoriesshouldfollowthesamepatterbutin10s //Further,byconventionpleasekeepallnamesuppercase.Themetafunctions //willconvertalllowercasenamestouppercasebutitsgoodconventionto //stayconsistenthere. //Atsomepointsomeoneshouldgothroughandcomeupwithsomewelldefinedschemaforallthis enumclassSERiFErrorCode:uint16_t{//16bitbackingtype,so65535possibleerrorcodes,whichshouldbefarfarfarmorethanenoughfornow UNKNOWN_ERROR=0, //RUNTIMEFAILURES(>100) //Invalidargumenterrors INVALID_ARGUMENT=100, INVALID_QUADRATURE_ORDER, INVALID_DOMAIN_ERROR=110, NEGATIVE_VALUE_ERROR, NON_FINITE_VALUE_ERROR, //JacobianErrors JACOBIAN_ERROR=200, INVERTED_JACOBIAN, NON_FINITE_DETERMINATE, //EOSErrors EOS_ERROR=300, EOS_UNSUPPORTED_RELATION, EOS_UNSUPPORTED_DERIVATIVE, EOS_WRONG_INPUT_COUNT, EOS_WRONG_INPUT_QUANTITY, EOS_NONFINITE_INPUT, EOS_OUTSIDE_DOMAIN, EOS_NONFINITE_RESULT, EOS_INVALID_THERMODYNAMIC_INPUT, //MappingErrors INVALID_DIMENSION=400, NON_FINITE_MAPPING_INPUT, INVALID_REFERENCE_RADIUS, AT_COMPACTIFIED_INFINITY, OUTSIDE_REFERENCE_DOMAIN, NON_FINITE_MAPPING_RESULT, NON_POSITIVE_DETERMINATE, INVALID_MAPPING, MISC_MAPPING_ERROR=410, INVALID_DOF_COUNT, INVALID_ELEMENT_GEOMETRY, INVALID_DOF_ORDERING, INVALID_COMPACTIFICATION_RANK, INVALID_COMPACTIFICATION_TYPE, INVALID_COMPACTIFICATION_DERIVATIVE_TYPE, INVALID_VACUUM_ELEMENT_ATTRIBUTE_ID, MISSING_EXTERIOR_MAP, COMPACTIFICATION_MISMATCH, MISSING_FACE_ELEMENT, JACOBIAN_SHAPE_ERROR, MISSING_DISPLACEMENT_FINITE_ELEMENT_SPACE, MISMATCHED_MESHING_MAPS, IMPROPERLY_ORDERED_REFERENCE_RADII=450, INVALID_COORDINATE_TOLERANCE, EVALUATOR_ERROR=460, CACHE_FE_BINDING_ERROR, INVALID_ELEMENT_ID_ERROR, ELEMENT_NULLPTR_ERROR, //DiscretizationErrors DISCRETIZATION_ERROR=500, //SchemaError SCHEMA_ERROR=510, INVALID_SCHEMA_ARGUMENTS=512, //Asyetuncategorizederrors MATRIX_SHAPE_ERROR=600, OUT_OF_RANGE_ERROR, //SolverErrors SOLVER_ERROR=700, //NormalizationErrors NORMALIZATION_ERROR=730, NORMALIZATION_VECTOR_SIZE_MISMATCH, NORMALIZATION_BUFFER_OVERLAP, //PreconditionerErrors PRECONDITIONER_ERROR=750, PRECONDITIONER_INVALID_OPTIONS, PRECONDITIONER_INVALID_OPERATOR, PRECONDITIONER_SIZE_MISMATCH, PRECONDITIONER_NONFINITE_VALUE, PRECONDITIONER_SINGULAR_OPERATOR, PRECONDITIONER_ILL_CONDITIONED_OPERATOR, PRECONDITIONER_STALE_LINEARIZATION, PRECONDITIONER_INCOMPATIBLE_STRATEGY, PRECONDITIONER_UNPREPARED, PRECONDITIONER_INVALID_CALIBRATION, //EquationErrors EQUATION_ERROR=800, //COMPILETIMEFAILURES(>1000) //TypeInvariantFailures FAILED_TYPE_INVARIANT=1000 }; inlineautoSERiFErrorCodeNameToTypeMap=meta::enum_to_string_enum_map<SERiFErrorCode>(); inlineautoSERiFErrorCodeTypeToNameMap=meta::enum_to_enum_string_map<SERiFErrorCode>(); }