forms.cpp type_traits serif/discretization/forms/runtime.hpp serif/discretization/forms/concept.hpp serif/discretization/forms/forms.hpp #include<type_traits> #include"serif/discretization/forms/runtime.hpp" #include"serif/discretization/forms/concept.hpp" #include"serif/discretization/forms/forms.hpp" //Theseareleftinananonymousnamespacetoavoidpollutingtheglobalnamespacewiththesesymbolsatlinktime. namespace{ usingnamespaceserif::discretization::forms; usingnamespaceserif::discretization::blocks; //Notewedefinecustomversionsofformsthatlikelyexistinthecodebase.Wearenotheretestingthatthe //formshaveaparticularstructure;rather,wearetestingthatgivensomeknownstructure //theformsystembehavesasweexpectitto. usingHypotheticalTestingDisplacementMass=mass<displacement::vector, displacement::vector>; usingHypotheticalTestingDisplacementDivergence=divergence<displacement::vector, gravity::potential>; static_assert(Form<HypotheticalTestingDisplacementMass>,"DisplacementMassshouldsatisfytheFormconcept.Afailurehereindicatesthatthemassformisnotproperlydefinedforavectorfield.Pleasecheckouttheformssubmodule"); static_assert(Form<HypotheticalTestingDisplacementDivergence>,"DisplacementDivergenceshouldsatisfytheFormconcept.Afailurehereindicatesthatthedivergenceformisnotproperlydefinedforavectorfield.Pleasecheckouttheformssubmodule"); static_assert(std::same_as<HypotheticalTestingDisplacementMass::test_type,displacement::vector>,"DisplacementMass::test_typeshouldbedisplacement::vector.Afailurehereindicatesthatthemassformisnotproperlydefinedforavectorfield.Pleasecheckouttheformssubmodule"); static_assert(std::same_as<HypotheticalTestingDisplacementMass::trial_type,displacement::vector>,"DisplacementMass::trial_typeshouldbedisplacement::vector.Afailurehereindicatesthatthemassformisnotproperlydefinedforavectorfield.Pleasecheckouttheformssubmodule"); static_assert(std::same_as<HypotheticalTestingDisplacementDivergence::trial_type,displacement::vector>,"DisplacementDivergence::trial_typeshouldbedisplacement::vector.Afailurehereindicatesthatthedivergenceformisnotproperlydefinedforavectorfield.Pleasecheckouttheformssubmodule"); static_assert(std::same_as<HypotheticalTestingDisplacementDivergence::test_type,gravity::potential>,"DisplacementDivergence::test_typeshouldbegravity::potential.Afailurehereindicatesthatthedivergenceformisnotproperlydefinedforavectorfield.Pleasecheckouttheformssubmodule"); }