Skip to content
Snippets Groups Projects
Commit 206a9ed5 authored by Anna Mareike Kostelecky's avatar Anna Mareike Kostelecky Committed by Mathis Kelm
Browse files

[md][traits] add ResidualVector to MD Traits

parent caba4533
No related branches found
No related tags found
1 merge request!3398[fix][md] Add Residual vector to Multidomain traits and fix multidomain convergence writer
...@@ -41,6 +41,8 @@ ...@@ -41,6 +41,8 @@
#include <dumux/common/typetraits/matrix.hh> #include <dumux/common/typetraits/matrix.hh>
#include <dumux/common/typetraits/utility.hh> #include <dumux/common/typetraits/utility.hh>
#include <dumux/linear/dunevectors.hh>
namespace Dumux { namespace Dumux {
namespace Detail { namespace Detail {
...@@ -132,6 +134,9 @@ struct MultiDomainMatrixType ...@@ -132,6 +134,9 @@ struct MultiDomainMatrixType
* //! the solution vector type * //! the solution vector type
* using SolutionVector = ... * using SolutionVector = ...
* *
* //! the residual vector type
* using ResidualVector = ...
*
* //! the jacobian type * //! the jacobian type
* using JacobianMatrix = ... * using JacobianMatrix = ...
* \endcode * \endcode
...@@ -163,6 +168,10 @@ private: ...@@ -163,6 +168,10 @@ private:
template<std::size_t id> template<std::size_t id>
using SubDomainSolutionVector = GetPropType<SubDomainTypeTag<id>, Properties::SolutionVector>; using SubDomainSolutionVector = GetPropType<SubDomainTypeTag<id>, Properties::SolutionVector>;
//! the residual type of each sub domain
template<std::size_t id>
using SubDomainResidualVector = typename Detail::NativeDuneVectorType<SubDomainSolutionVector<id>>::type;
public: public:
/* /*
...@@ -181,6 +190,7 @@ public: ...@@ -181,6 +190,7 @@ public:
using GridVariables =GetPropType<SubDomainTypeTag<id>, Properties::GridVariables>; using GridVariables =GetPropType<SubDomainTypeTag<id>, Properties::GridVariables>;
using IOFields = GetPropType<SubDomainTypeTag<id>, Properties::IOFields>; using IOFields = GetPropType<SubDomainTypeTag<id>, Properties::IOFields>;
using SolutionVector = GetPropType<SubDomainTypeTag<id>, Properties::SolutionVector>; using SolutionVector = GetPropType<SubDomainTypeTag<id>, Properties::SolutionVector>;
using ResidualVector = typename Detail::NativeDuneVectorType<SolutionVector>::type;
}; };
//\} //\}
...@@ -196,6 +206,9 @@ public: ...@@ -196,6 +206,9 @@ public:
//! the solution vector type //! the solution vector type
using SolutionVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainSolutionVector, Indices>::type; using SolutionVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainSolutionVector, Indices>::type;
//! the residual vector type
using ResidualVector = typename makeFromIndexedType<Dune::MultiTypeBlockVector, SubDomainResidualVector, Indices>::type;
//! the jacobian type //! the jacobian type
using JacobianMatrix = typename Detail::MultiDomainMatrixType<SubDomainJacobianMatrix, Indices, Scalar>::type; using JacobianMatrix = typename Detail::MultiDomainMatrixType<SubDomainJacobianMatrix, Indices, Scalar>::type;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment