Skip to content
Snippets Groups Projects
Commit eded540f authored by Markus Blatt's avatar Markus Blatt
Browse files

Honor additional template parameter of SeqOverlappingSchwarz

[[Imported from SVN: r1256]]
parent 8619f3a0
Branches
Tags
No related merge requests found
......@@ -404,17 +404,18 @@ namespace Dune
} // end namespace Amg
// forward declarations
template<class M, class X, class MO, class A>
template<class M, class X, class MO, class MS, class A>
class SeqOverlappingSchwarz;
class MultiplicativeSchwarzMode;
namespace Amg
{
template<class M, class X, class TA>
struct SmootherApplier<SeqOverlappingSchwarz<M,X,MultiplicativeSchwarzMode,TA> >
template<class M, class X, class MS, class TA>
struct SmootherApplier<SeqOverlappingSchwarz<M,X,MultiplicativeSchwarzMode,
MS,TA> >
{
typedef SeqOverlappingSchwarz<M,X,MultiplicativeSchwarzMode,TA> Smoother;
typedef SeqOverlappingSchwarz<M,X,MultiplicativeSchwarzMode,MS,TA> Smoother;
typedef typename Smoother::range_type Range;
typedef typename Smoother::domain_type Domain;
......@@ -449,23 +450,23 @@ namespace Dune
{}
};
template<class M, class X, class TM, class TA>
struct SmootherTraits<SeqOverlappingSchwarz<M,X,TM,TA> >
template<class M, class X, class TM, class TS, class TA>
struct SmootherTraits<SeqOverlappingSchwarz<M,X,TM,TS,TA> >
{
typedef SeqOverlappingSchwarzSmootherArgs<typename M::field_type> Arguments;
};
template<class M, class X, class TM, class TA>
class ConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TA> >
: public DefaultConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TA> >
template<class M, class X, class TM, class TS, class TA>
class ConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TS,TA> >
: public DefaultConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TS,TA> >
{
typedef DefaultConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TA> > Father;
typedef DefaultConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TS,TA> > Father;
public:
typedef typename MatrixGraph<M>::VertexDescriptor VertexDescriptor;
typedef Dune::Amg::AggregatesMap<VertexDescriptor> AggregatesMap;
typedef typename AggregatesMap::AggregateDescriptor AggregateDescriptor;
typedef typename SeqOverlappingSchwarz<M,X,TM,TA>::subdomain_vector Vector;
typedef typename SeqOverlappingSchwarz<M,X,TM,TS,TA>::subdomain_vector Vector;
typedef typename Vector::value_type Subdomain;
virtual void setMatrix(const M& matrix, const AggregatesMap& amap)
......@@ -752,20 +753,20 @@ namespace Dune
};
template<class M, class X, class TM, class TA>
struct ConstructionTraits<SeqOverlappingSchwarz<M,X,TM,TA> >
template<class M, class X, class TM, class TS, class TA>
struct ConstructionTraits<SeqOverlappingSchwarz<M,X,TM,TS,TA> >
{
typedef ConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TA> > Arguments;
typedef ConstructionArgs<SeqOverlappingSchwarz<M,X,TM,TS,TA> > Arguments;
static inline SeqOverlappingSchwarz<M,X,TM,TA>* construct(Arguments& args)
static inline SeqOverlappingSchwarz<M,X,TM,TS,TA>* construct(Arguments& args)
{
return new SeqOverlappingSchwarz<M,X,TM,TA>(args.getMatrix(),
args.getSubDomains(),
args.getArgs().relaxationFactor,
args.getArgs().onthefly);
return new SeqOverlappingSchwarz<M,X,TM,TS,TA>(args.getMatrix(),
args.getSubDomains(),
args.getArgs().relaxationFactor,
args.getArgs().onthefly);
}
static void deconstruct(SeqOverlappingSchwarz<M,X,TM,TA>* schwarz)
static void deconstruct(SeqOverlappingSchwarz<M,X,TM,TS,TA>* schwarz)
{
delete schwarz;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment