5#ifndef DUNE_AMGCONSTRUCTION_HH
6#define DUNE_AMGCONSTRUCTION_HH
38 struct ConstructionTraits
54 return std::make_shared<T>();
58 template<
class T,
class A>
64 return std::make_shared<BlockVector<T,A>>(n);
68 template<
class M,
class C>
103 template<
class M,
class X,
class Y,
class C>
106 template<
class M,
class X,
class Y,
class C>
111 template<
class M,
class X,
class Y,
class C>
118 return std::make_shared<OverlappingSchwarzOperator<M,X,Y,C>>
123 template<
class M,
class X,
class Y,
class C>
128 static inline std::shared_ptr<NonoverlappingSchwarzOperator<M,X,Y,C>>
construct(
const Arguments& args)
130 return std::make_shared<NonoverlappingSchwarzOperator<M,X,Y,C>>
135 template<
class M,
class X,
class Y>
145 template<
class M,
class X,
class Y>
152 return std::make_shared<MatrixAdapter<M,X,Y>>(args.
matrix_);
162 return std::make_shared<SequentialInformation>(args.
comm_);
169 template<
class T1,
class T2>
176 return std::make_shared<OwnerOverlapCopyCommunication<T1,T2>>(args.
comm_, args.
cat_);
This file implements a vector space as a tensor product of a given vector space. The number of compon...
Define general, extensible interface for operators. The available implementation wraps a matrix.
Classes providing communication interfaces for overlapping Schwarz methods.
const int Arguments
Definition construction.hh:61
SequentialCommunicationArgs(Communication< void * > comm, int cat)
Definition construction.hh:93
OwnerOverlapCopyCommunicationArgs(MPI_Comm comm, SolverCategory::Category cat)
Definition construction.hh:82
MPI_Comm comm_
Definition construction.hh:86
SolverCategory::Category cat_
Definition construction.hh:87
const C & comm_
Definition construction.hh:76
ParallelOperatorArgs(std::shared_ptr< M > matrix, const C &comm)
Definition construction.hh:71
std::shared_ptr< M > matrix_
Definition construction.hh:75
const void * Arguments
A type holding all the arguments needed to call the constructor.
Definition construction.hh:44
static std::shared_ptr< T > construct(Arguments &args)
Construct an object with the specified arguments.
Definition construction.hh:52
Communication< void * > comm_
Definition construction.hh:97
static std::shared_ptr< BlockVector< T, A > > construct(Arguments &n)
Definition construction.hh:62
Definition allocator.hh:11
A vector of blocks with memory management.
Definition bvector.hh:395
A nonoverlapping operator with communication object.
Definition novlpschwarz.hh:61
Adapter to turn a matrix into a linear operator.
Definition operators.hh:137
A class setting up standard communication for a two-valued attribute set with owner/overlap/copy sema...
Definition owneroverlapcopy.hh:174
Definition construction.hh:70
Definition construction.hh:81
Definition construction.hh:92
An overlapping Schwarz operator.
Definition schwarz.hh:75
ParallelOperatorArgs< M, C > Arguments
Definition construction.hh:114
static std::shared_ptr< OverlappingSchwarzOperator< M, X, Y, C > > construct(const Arguments &args)
Definition construction.hh:116
ParallelOperatorArgs< M, C > Arguments
Definition construction.hh:126
static std::shared_ptr< NonoverlappingSchwarzOperator< M, X, Y, C > > construct(const Arguments &args)
Definition construction.hh:128
Definition construction.hh:137
MatrixAdapterArgs(std::shared_ptr< M > matrix, const SequentialInformation)
Definition construction.hh:138
std::shared_ptr< M > matrix_
Definition construction.hh:142
static std::shared_ptr< MatrixAdapter< M, X, Y > > construct(Arguments &args)
Definition construction.hh:150
const MatrixAdapterArgs< M, X, Y > Arguments
Definition construction.hh:148
const SequentialCommunicationArgs Arguments
Definition construction.hh:159
static std::shared_ptr< SequentialInformation > construct(Arguments &args)
Definition construction.hh:160
static std::shared_ptr< OwnerOverlapCopyCommunication< T1, T2 > > construct(Arguments &args)
Definition construction.hh:174
const OwnerOverlapCopyCommunicationArgs Arguments
Definition construction.hh:172
Category
Definition solvercategory.hh:23