Galerkin: Unsteady (explicit)#
Header: <pressio/rom_galerkin_unsteady.hpp>
API#
namespace pressio{ namespace rom{ namespace galerkin{
template<
class TrialSubspaceType, class FomSystemType,
std::enable_if_t<
PossiblyAffineRealValuedTrialColumnSubspace<TrialSubspaceType>::value
&& RealValuedSemiDiscreteFom<FomSystemType>::value
using ind_var_type = typename FomSystemType::time_type;
using reduced_state_type = typename TrialSubspaceType::reduced_state_type;
using reduced_rhs_type = impl::explicit_galerkin_default_reduced_rhs_t<TrialSubspaceType>;
// the "system" implements the math
, int > = 0
>
auto create_unsteady_explicit_problem(::pressio::ode::StepScheme schemeName, /*(2)*/
const TrialSubspaceType & trialSpace,
const FomSystemType & fomSystem)
{
using return_type = impl::GalerkinUnsteadyWithMassMatrixExplicitProblem<galerkin_system>;
return return_type(schemeName, trialSpace, fomSystem);
}
using reduced_state_type = typename TrialSubspaceType::reduced_state_type;
using reduced_rhs_type = impl::explicit_galerkin_default_reduced_rhs_t<TrialSubspaceType>;
// the "system" implements the math
using galerkin_system = impl::GalerkinHyperReducedOdeSystemOnlyRhs<
ind_var_type, reduced_state_type, reduced_rhs_type,
TrialSubspaceType, FomSystemType, HyperReducerType>;
using return_type = impl::GalerkinUnsteadyExplicitProblem<galerkin_system>;
return return_type(schemeName, trialSpace, fomSystem, hyperReducer);
}
// -------------------------------------------------------------
// masked
ind_var_type, reduced_state_type, reduced_rhs_type,
TrialSubspaceType, FomSystemType, MaskerType, HyperReducerType>;
using return_type = impl::GalerkinUnsteadyExplicitProblem<galerkin_system>;
return return_type(schemeName, trialSpace, fomSystem, masker, hyperReducer);
}
}}} // end pressio::rom::galerkin
#endif // PRESSIO_ROM_GALERKIN_UNSTEADY_EXPLICIT_HPP_