mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
clang-format PreconditionerWithUpdate.hpp
This commit is contained in:
parent
9ab15e3ff9
commit
9e7b7b3e40
@ -87,9 +87,10 @@ getDummyUpdateWrapper(Args&&... args)
|
|||||||
/// @brief Interface class ensuring make function is overriden
|
/// @brief Interface class ensuring make function is overriden
|
||||||
/// @tparam OriginalPreconditioner - An arbitrary Preconditioner type
|
/// @tparam OriginalPreconditioner - An arbitrary Preconditioner type
|
||||||
template <class OriginalPreconditioner>
|
template <class OriginalPreconditioner>
|
||||||
struct GeneralPreconditionerMaker
|
struct GeneralPreconditionerMaker {
|
||||||
{
|
virtual std::unique_ptr<
|
||||||
virtual std::unique_ptr<Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>> make() = 0;
|
Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>>
|
||||||
|
make() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// @brief Struct implementing a make function which creates a preconditioner
|
/// @brief Struct implementing a make function which creates a preconditioner
|
||||||
@ -97,15 +98,18 @@ struct GeneralPreconditionerMaker
|
|||||||
/// @tparam OriginalPreconditioner - An arbitrary preconditioner type
|
/// @tparam OriginalPreconditioner - An arbitrary preconditioner type
|
||||||
/// @tparam ...Args - All arguments needed to construct the preconditioner of choice
|
/// @tparam ...Args - All arguments needed to construct the preconditioner of choice
|
||||||
template <class OriginalPreconditioner, class... Args>
|
template <class OriginalPreconditioner, class... Args>
|
||||||
struct PreconditionerMaker : public GeneralPreconditionerMaker<OriginalPreconditioner>
|
struct PreconditionerMaker : public GeneralPreconditionerMaker<OriginalPreconditioner> {
|
||||||
{
|
|
||||||
PreconditionerMaker(Args&&... args)
|
PreconditionerMaker(Args&&... args)
|
||||||
: args_(args...)
|
: args_(args...)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
std::unique_ptr<Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>> make() override
|
std::unique_ptr<
|
||||||
|
Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>>
|
||||||
|
make() override
|
||||||
{
|
{
|
||||||
return std::unique_ptr<Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>>{new auto(std::make_from_tuple<OriginalPreconditioner>(args_))};
|
return std::unique_ptr<
|
||||||
|
Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>> {
|
||||||
|
new auto(std::make_from_tuple<OriginalPreconditioner>(args_))};
|
||||||
}
|
}
|
||||||
std::tuple<Args...> args_;
|
std::tuple<Args...> args_;
|
||||||
};
|
};
|
||||||
@ -119,8 +123,8 @@ class RebuildOnUpdatePreconditioner : public PreconditionerWithUpdate<typename O
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RebuildOnUpdatePreconditioner(Args... args)
|
RebuildOnUpdatePreconditioner(Args... args)
|
||||||
: preconditioner_params_(args...),
|
: preconditioner_params_(args...)
|
||||||
preconditioner_maker_(std::make_unique<ConcreteMakerType>(std::forward<Args>(args)...))
|
, preconditioner_maker_(std::make_unique<ConcreteMakerType>(std::forward<Args>(args)...))
|
||||||
{
|
{
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
@ -160,7 +164,9 @@ private:
|
|||||||
|
|
||||||
std::tuple<Args...> preconditioner_params_;
|
std::tuple<Args...> preconditioner_params_;
|
||||||
std::unique_ptr<AbstractMakerType> preconditioner_maker_;
|
std::unique_ptr<AbstractMakerType> preconditioner_maker_;
|
||||||
std::unique_ptr<Preconditioner<typename OriginalPreconditioner::domain_type,typename OriginalPreconditioner::range_type>> orig_precond_;
|
std::unique_ptr<
|
||||||
|
Preconditioner<typename OriginalPreconditioner::domain_type, typename OriginalPreconditioner::range_type>>
|
||||||
|
orig_precond_;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// @brief Wrapper function creating and return a shared pointer to a preconditioner which is reconstructed on update
|
/// @brief Wrapper function creating and return a shared pointer to a preconditioner which is reconstructed on update
|
||||||
@ -172,7 +178,8 @@ template <class OriginalPreconditioner, class... Args>
|
|||||||
std::shared_ptr<RebuildOnUpdatePreconditioner<OriginalPreconditioner, Args...>>
|
std::shared_ptr<RebuildOnUpdatePreconditioner<OriginalPreconditioner, Args...>>
|
||||||
getRebuildOnUpdateWrapper(Args... args)
|
getRebuildOnUpdateWrapper(Args... args)
|
||||||
{
|
{
|
||||||
return std::make_shared<RebuildOnUpdatePreconditioner<OriginalPreconditioner, Args...>>(std::forward<Args>(args)...);
|
return std::make_shared<RebuildOnUpdatePreconditioner<OriginalPreconditioner, Args...>>(
|
||||||
|
std::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Dune
|
} // namespace Dune
|
||||||
|
Loading…
Reference in New Issue
Block a user