37 #ifndef __H__UG__PLUGINS__ELECTROMAGNETISM__NEDELEC_TRANSFER__
38 #define __H__UG__PLUGINS__ELECTROMAGNETISM__NEDELEC_TRANSFER__
48 namespace Electromagnetism{
53 template <
typename TDomain,
typename TAlgebra,
typename TElem>
95 std::vector<bool> & vIsRestricted
102 template <
typename TDomain,
typename TAlgebra>
126 std::vector<bool> & vIsRestricted
166 template <
typename TDomain,
typename TAlgebra>
219 template <
typename TElem>
223 std::vector<bool> & vIsRestricted,
TAlgebra::matrix_type matrix_type
Type of Vector.
Definition: nedelec_transfer.h:112
TDomain domain_type
Type of Domain.
Definition: nedelec_transfer.h:106
TAlgebra algebra_type
Type of algebra.
Definition: nedelec_transfer.h:109
Definition: nedelec_transfer.h:55
TDomain domain_type
Type of Domain.
Definition: nedelec_transfer.h:57
static void GetRegularLocalCoordinate(const MultiGrid *mg, Vertex *vrt, TElem *base, MathVector< TElem::dim > &local)
computes the local coordinates of a vertex according to the assumption of the regular refinement
Definition: nedelec_transfer_impl.h:57
static const int dim
dimensionality of the reference element
Definition: nedelec_transfer.h:72
reference_element_traits< TElem >::reference_element_type ref_elem_type
reference element type
Definition: nedelec_transfer.h:69
TAlgebra algebra_type
Type of algebra.
Definition: nedelec_transfer.h:60
static void assemble_prolongation_matrix(const domain_type &domain, const DoFDistribution &coarseDD, const DoFDistribution &fineDD, matrix_type &mat, std::vector< bool > &vIsRestricted)
assembles the prolongation matrix for one type of the grid elements
Definition: nedelec_transfer_impl.h:209
TDomain::position_type position_type
position type in the domain
Definition: nedelec_transfer.h:75
TAlgebra::matrix_type matrix_type
Type of Vector.
Definition: nedelec_transfer.h:63
static const int WDim
world dimention
Definition: nedelec_transfer.h:66
Class of the prolongation and the restriction of the Nedelec DoFs.
Definition: nedelec_transfer.h:168
SmartPtr< ApproximationSpace< TDomain > > m_spApproxSpace
approximation space
Definition: nedelec_transfer.h:268
GridLevel m_fineLevel
fine grid level
Definition: nedelec_transfer.h:271
matrix_type m_prolongation_matrix
matrix to store prolongation
Definition: nedelec_transfer.h:259
void prolongate(vector_type &uFineOut, const vector_type &uCoarse)
applies the prolongation
Definition: nedelec_transfer_impl.h:340
TAlgebra::matrix_type matrix_type
Type of Vector.
Definition: nedelec_transfer.h:186
NedelecTransfer(SmartPtr< ApproximationSpace< TDomain > > approxSpace)
Constructor setting approximation space.
Definition: nedelec_transfer.h:194
TAlgebra algebra_type
Type of algebra.
Definition: nedelec_transfer.h:180
TAlgebra::vector_type vector_type
Type of Vector.
Definition: nedelec_transfer.h:183
static const int WDim
world dimention
Definition: nedelec_transfer.h:189
GridLevel m_coarseLevel
coarse grid level
Definition: nedelec_transfer.h:274
void do_restrict(vector_type &uCoarse, const vector_type &uFine)
apples the restriction = transposed prolongation
Definition: nedelec_transfer_impl.h:392
ITransferOperator< TDomain, TAlgebra > base_type
Type of base class.
Definition: nedelec_transfer.h:174
NedelecTransfer< TDomain, TAlgebra > this_type
This type.
Definition: nedelec_transfer.h:171
void init()
initializes the operator (computes the prolongation matrix etc)
Definition: nedelec_transfer_impl.h:301
void check_approximation_space()
checks the approximation space
Definition: nedelec_transfer_impl.h:445
std::vector< bool > m_vIsRestricted
restriction flag
Definition: nedelec_transfer.h:262
virtual void set_levels(GridLevel coarseLevel, GridLevel fineLevel)
Set levels.
Definition: nedelec_transfer_impl.h:462
bool m_bInit
initialization flag
Definition: nedelec_transfer.h:256
void assemble_prolongation_matrix(matrix_type &mat, std::vector< bool > &vIsRestricted, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
assembles the prolongation matrix for one type of the grid elements
SmartPtr< ITransferOperator< TDomain, TAlgebra > > clone()
returns new instance with same setting
Definition: nedelec_transfer_impl.h:483
TDomain domain_type
Type of Domain.
Definition: nedelec_transfer.h:177
std::vector< SmartPtr< IConstraint< TAlgebra > > > m_vConstraint
ParallelMatrix< SparseMatrix< double > > matrix_type
ParallelVector< Vector< double > > vector_type
MathVector< dim > position_type
SM_edge_weight_map< typename T::value_type, ug::BidirectionalMatrix< T > > get(edge_weight_t, ug::BidirectionalMatrix< T > const &g)
a helper class to call all the type-dependent assembling functions
Definition: nedelec_transfer.h:230
AssembleProlongationMatrix(this_type *pThis, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
Definition: nedelec_transfer.h:237
const DoFDistribution & m_coarseDD
Definition: nedelec_transfer.h:233
const domain_type & m_domain
Definition: nedelec_transfer.h:232
void operator()(TElem &)
Definition: nedelec_transfer.h:245
this_type * m_pThis
Definition: nedelec_transfer.h:231
const DoFDistribution & m_fineDD
Definition: nedelec_transfer.h:234