33 #ifndef __H__UG__NAVIER_STOKES__INCOMPRESSIBLE__FILTER__
34 #define __H__UG__NAVIER_STOKES__INCOMPRESSIBLE__FILTER__
50 template <
typename TGr
idFunction>
70 template <
int dim,
typename elem_type,
typename TGr
idFunction>
73 typedef typename TGridFunction::template traits<elem_type>::const_iterator ElemIterator;
75 typedef typename TGridFunction::domain_type domain_type;
77 domain_type& domain = *u->domain().
get();
79 std::vector<DoFIndex> multInd;
80 for(
int si = 0; si < domain.subset_handler()->
num_subsets(); ++si){
81 ElemIterator iter = u->template begin<elem_type>(si);
82 ElemIterator iterEnd = u->template end<elem_type>(si);
83 for( ;iter !=iterEnd; ++iter)
85 elem_type* elem = *iter;
86 for (
int d=0;d<
dim;d++){
87 u->dof_indices(elem, d, multInd);
88 DoFRef(*u,multInd[0])=aaU[elem][d];
94 template <
int dim,
typename elem_type,
typename TGr
idFunction>
97 typedef typename TGridFunction::template traits<elem_type>::const_iterator ElemIterator;
99 typedef typename TGridFunction::domain_type domain_type;
101 domain_type& domain = *u->domain().
get();
103 std::vector<DoFIndex> multInd;
104 for(
int si = 0; si < domain.subset_handler()->
num_subsets(); ++si){
105 ElemIterator iter = u->template begin<elem_type>(si);
106 ElemIterator iterEnd = u->template end<elem_type>(si);
107 for( ;iter !=iterEnd; ++iter)
109 elem_type* elem = *iter;
110 for (
int d=0;d<
dim;d++){
111 u->dof_indices(elem, d, multInd);
112 aaU[elem][d]=
DoFRef(*u,multInd[0]);
118 template <
typename elem_type,
typename attachment_type,
typename gr
id_type>
120 attachment_type& attachment,
123 grid.template attach_to<elem_type>(attachment);
127 template <
typename TGr
idFunction>
134 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
195 template <
typename TImpl,
typename TGr
idFunction>
204 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
243 getImpl().apply_filter(aaUHat,u,aaUHat);
266 getImpl().apply_filter(aaUHat,u);
268 getImpl().apply_filter(aaUHat,u,aaUHat);
272 template <
typename TElem>
282 grid.template attach_to<TElem>(aUHat);
284 getImpl().apply_filter(acUHat,u,acUHat);
285 copyAttachmentToGridFunction<dim,TElem,TGridFunction>(u,acUHat);
286 grid.template detach_from<TElem>(aUHat);
292 apply_<side_type>(u);
294 apply_<vertex_type>(u);
298 template<
typename VType,
typename TElem>
300 typedef typename TGridFunction::domain_type TDomain;
302 TDomain domain = *u->domain().
get();
305 std::vector<DoFIndex> dofInd;
306 for (
int j=0;j<(int)walls.size();j++){
307 int si = walls[j].si();
308 ElemIterator elemIter = u->template begin<TElem>(si);
309 ElemIterator elemIterEnd = u->template end<TElem>(si);
310 for( ;elemIter !=elemIterEnd; elemIter++)
312 TElem* elem = *elemIter;
313 if (pbm && pbm->
is_slave(elem))
continue;
316 u->dof_indices(elem, d, dofInd);
319 acUHat[elem]=localValue;
324 template<
typename VType,
typename TElem>
327 typedef typename TGridFunction::domain_type TDomain;
329 TDomain domain = *u->domain().
get();
332 std::vector<DoFIndex> dofInd;
333 for (
int j=0;j<(int)walls.size();j++){
334 int si = walls[j].si();
335 ElemIterator elemIter = u->template begin<TElem>(si);
336 ElemIterator elemIterEnd = u->template end<TElem>(si);
337 for( ;elemIter !=elemIterEnd; elemIter++)
339 TElem* elem = *elemIter;
340 if (pbm && pbm->
is_slave(elem))
continue;
341 acUHat[elem]=acU[elem];
368 TImpl&
getImpl() {
return static_cast<TImpl&
>(*this);}
371 const TImpl&
getImpl()
const {
return static_cast<const TImpl&
>(*this);}
381 template <
typename TGr
idFunction>
393 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
411 typedef typename TGridFunction::template dim_traits<dim>::const_iterator
ElemIterator;
414 typedef typename TGridFunction::template traits<side_type>::const_iterator
SideIterator;
417 typedef typename TGridFunction::template traits<vertex_type>::const_iterator
VertexIterator;
424 template <
typename VType>
429 template <
typename VType>
436 template <
typename VType>
482 domain.grid()->template detach_from<side_type>(
m_aSideVolume);
487 template <
typename VType>
493 std::vector<side_type*>& sides
509 std::vector<WallObject<TGridFunction> >
m_walls;
516 template <
typename TGr
idFunction>
528 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
546 typedef typename TGridFunction::template dim_traits<dim>::const_iterator
ElemIterator;
549 typedef typename TGridFunction::template traits<side_type>::const_iterator
SideIterator;
552 typedef typename TGridFunction::template traits<vertex_type>::const_iterator
VertexIterator;
559 template <
typename VType>
564 template <
typename VType>
571 template <
typename VType>
581 std::vector<DoFIndex> multInd;
582 m_width->inner_dof_indices(vrt,0, multInd);
587 std::vector<DoFIndex> multInd;
588 m_width->inner_dof_indices(side,0, multInd);
592 template <
typename TElem>
595 std::vector<DoFIndex> multInd;
596 for(
int si = 0; si < domain.subset_handler()->
num_subsets(); ++si)
603 for( ;iter !=iterEnd; ++iter)
607 m_width->inner_dof_indices(elem,0, multInd);
613 template <
typename TElem>
616 std::vector<DoFIndex> multInd;
618 for(
int si = 0; si < domain.subset_handler()->
num_subsets(); ++si)
625 for( ;iter !=iterEnd; ++iter)
629 m_width->inner_dof_indices(elem,0, multInd);
641 template <
typename VType,
typename TElem>
662 init_width<side_type>(
width);
665 init_width<vertex_type>(
width);
672 domain.grid()->template detach_from<side_type>(
m_aSideVolume);
677 template <
typename VType>
683 std::vector<side_type*>& sides
702 std::vector<WallObject<TGridFunction> >
m_walls;
711 template <
typename TGr
idFunction>
723 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
741 typedef typename TGridFunction::template dim_traits<dim>::const_iterator
ElemIterator;
744 typedef typename TGridFunction::template traits<side_type>::const_iterator
SideIterator;
747 typedef typename TGridFunction::template traits<vertex_type>::const_iterator
VertexIterator;
753 template <
typename VType>
758 template <
typename VType>
763 template <
typename VType>
807 domain.grid()->template detach_from<side_type>(
m_aSideVolume);
821 std::vector<WallObject<TGridFunction> >
m_walls;
829 template <
typename TGr
idFunction>
841 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
859 typedef typename TGridFunction::template dim_traits<dim>::const_iterator
ElemIterator;
862 typedef typename TGridFunction::template traits<side_type>::const_iterator
SideIterator;
865 typedef typename TGridFunction::template traits<vertex_type>::const_iterator
VertexIterator;
871 template <
typename VType>
876 template <
typename VType>
884 template <
typename VType>
909 UG_LOG(
"not implemented\n");
919 UG_THROW(
"Only implemented for Crouzeix-Raviart type functions.");
926 domain.grid()->template detach_from<side_type>(
m_aSideVolume);
939 std::vector<WallObject<TGridFunction> >
m_walls;
946 template <
typename TGr
idFunction>
958 typedef typename TGridFunction::template dim_traits<dim>::grid_base_object
elem_type;
976 typedef typename TGridFunction::template dim_traits<dim>::const_iterator
ElemIterator;
979 typedef typename TGridFunction::template traits<side_type>::const_iterator
SideIterator;
982 typedef typename TGridFunction::template traits<vertex_type>::const_iterator
VertexIterator;
988 template <
typename VType>
993 template <
typename VType>
998 template <
typename VType>
1031 domain.grid()->template attach_to<side_type>(
m_aSideVolume);
1041 domain.grid()->template detach_from<side_type>(
m_aSideVolume);
function NavierStokes(fcts, subsets, discType)
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
Definition: filter.h:393
domain_type::position_accessor_type position_accessor_type
Definition: filter.h:408
ConstantBoxFilter(SmartPtr< TGridFunction > u)
Definition: filter.h:467
number m_width
Definition: filter.h:502
number width(vertex_type *vrt)
Definition: filter.h:445
number compute_average_element_size(SmartPtr< TGridFunction > u)
Definition: filter_impl.h:78
TGridFunction::template traits< vertex_type >::const_iterator VertexIterator
vertex iterator
Definition: filter.h:417
std::vector< WallObject< TGridFunction > > m_walls
Definition: filter.h:509
PeriodicAttachmentAccessor< side_type, ANumber > aSideNumber
Definition: filter.h:420
ANumber m_aVertexVolume
Definition: filter.h:499
void apply_filter(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaU)
Definition: filter_impl.h:183
SmartPtr< TGridFunction > m_uInfo
Definition: filter.h:507
ConstantBoxFilter(SmartPtr< TGridFunction > u, number width)
Definition: filter.h:454
TGridFunction::template dim_traits< dim >::const_iterator ElemIterator
element iterator
Definition: filter.h:411
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaU)
Definition: filter.h:430
aSideNumber m_acSideVolume
Definition: filter.h:498
void collectSides(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &acUHat, PeriodicAttachmentAccessor< side_type, Attachment< number > > &acVolume, std::vector< MathVector< dim > > &coord, VType values[DimFV1Geometry< dim >::maxNumSCV], number volumes[DimFV1Geometry< dim >::maxNumSCV], std::vector< side_type * > &sides)
Definition: filter_impl.h:101
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:437
aVertexNumber m_acVertexVolume
Definition: filter.h:500
~ConstantBoxFilter()
Definition: filter.h:480
static const size_t dim
Definition: filter.h:390
position_accessor_type m_posAcc
Definition: filter.h:504
TGridFunction::template traits< side_type >::const_iterator SideIterator
side iterator
Definition: filter.h:414
FilterImplBaseClass< ConstantBoxFilter< TGridFunction >, TGridFunction > base_type
Definition: filter.h:387
number width(side_type *side)
Definition: filter.h:447
Vertex vertex_type
Definition: filter.h:402
domain_type::grid_type grid_type
Definition: filter.h:405
void add_wall(WallObject< TGridFunction > w)
Definition: filter.h:449
elem_type::side side_type
Definition: filter.h:399
ANumber m_aSideVolume
Definition: filter.h:497
TGridFunction::domain_type domain_type
Definition: filter.h:396
PeriodicAttachmentAccessor< vertex_type, ANumber > aVertexNumber
Definition: filter.h:421
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
Definition: filter.h:958
static const size_t dim
Definition: filter.h:955
ElementBoxFilter(SmartPtr< TGridFunction > u)
Definition: filter.h:1027
number width(vertex_type *vrt)
Definition: filter.h:1006
aSideNumber m_acSideVolume
Definition: filter.h:1048
void compute_filterwidth_fvcr()
Definition: filter_impl.h:1206
number width(side_type *side)
Definition: filter.h:1008
void apply_filter(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaU)
Definition: filter_impl.h:1258
void compute_filterwidth()
Definition: filter.h:1010
FilterImplBaseClass< ElementBoxFilter< TGridFunction >, TGridFunction > base_type
Definition: filter.h:952
TGridFunction::template traits< side_type >::const_iterator SideIterator
Definition: filter.h:979
domain_type::grid_type grid_type
Definition: filter.h:970
~ElementBoxFilter()
Definition: filter.h:1039
elem_type::side side_type
Definition: filter.h:964
void add_wall(WallObject< TGridFunction > w)
Definition: filter.h:1022
void compute_filterwidth_fv1()
Definition: filter_impl.h:1076
PeriodicAttachmentAccessor< side_type, ANumber > aSideNumber
Definition: filter.h:984
TGridFunction::domain_type domain_type
Definition: filter.h:961
aVertexNumber m_acVertexVolume
Definition: filter.h:1050
Vertex vertex_type
Definition: filter.h:967
TGridFunction::template dim_traits< dim >::const_iterator ElemIterator
Definition: filter.h:976
SmartPtr< TGridFunction > m_uInfo
Definition: filter.h:1053
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:999
PeriodicAttachmentAccessor< vertex_type, ANumber > aVertexNumber
Definition: filter.h:985
ANumber m_aSideVolume
Definition: filter.h:1047
ANumber m_aVertexVolume
Definition: filter.h:1049
domain_type::position_accessor_type position_accessor_type
Definition: filter.h:973
TGridFunction::template traits< vertex_type >::const_iterator VertexIterator
Definition: filter.h:982
std::vector< WallObject< TGridFunction > > m_walls
Definition: filter.h:1055
void compute_filterwidth()
Definition: filter.h:775
void add_wall(WallObject< TGridFunction > w)
Definition: filter.h:787
static const size_t dim
Definition: filter.h:720
elem_type::side side_type
Definition: filter.h:729
TGridFunction::template traits< side_type >::const_iterator SideIterator
Definition: filter.h:744
void compute_filterwidth_fvcr()
Definition: filter_impl.h:764
std::vector< WallObject< TGridFunction > > m_walls
Definition: filter.h:821
number width(side_type *side)
Definition: filter.h:773
domain_type::position_accessor_type position_accessor_type
Definition: filter.h:738
void apply_filter(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaU)
Definition: filter_impl.h:822
Vertex vertex_type
Definition: filter.h:732
TGridFunction::template traits< vertex_type >::const_iterator VertexIterator
Definition: filter.h:747
PeriodicAttachmentAccessor< vertex_type, ANumber > aVertexNumber
Definition: filter.h:750
domain_type::grid_type grid_type
Definition: filter.h:735
FV1BoxFilter(SmartPtr< TGridFunction > u)
Definition: filter.h:792
TGridFunction::domain_type domain_type
Definition: filter.h:726
number width(vertex_type *vrt)
Definition: filter.h:771
ANumber m_aSideVolume
Definition: filter.h:813
FilterImplBaseClass< FV1BoxFilter< TGridFunction >, TGridFunction > base_type
Definition: filter.h:717
PeriodicAttachmentAccessor< side_type, ANumber > aSideNumber
Definition: filter.h:749
aSideNumber m_acSideVolume
Definition: filter.h:814
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
Definition: filter.h:723
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:764
ANumber m_aVertexVolume
Definition: filter.h:815
SmartPtr< TGridFunction > m_uInfo
Definition: filter.h:819
TGridFunction::template dim_traits< dim >::const_iterator ElemIterator
Definition: filter.h:741
void compute_filterwidth_fv1()
Definition: filter_impl.h:721
aVertexNumber m_acVertexVolume
Definition: filter.h:816
~FV1BoxFilter()
Definition: filter.h:805
Vertex vertex_type
Definition: filter.h:850
PeriodicAttachmentAccessor< vertex_type, ANumber > aVertexNumber
Definition: filter.h:868
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
Definition: filter.h:841
domain_type::position_accessor_type position_accessor_type
Definition: filter.h:856
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaU)
Definition: filter.h:877
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:885
domain_type::grid_type grid_type
Definition: filter.h:853
PeriodicAttachmentAccessor< side_type, ANumber > aSideNumber
Definition: filter.h:867
void apply_filter(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaU)
Definition: filter_impl.h:930
~FVCRBoxFilter()
Definition: filter.h:924
TGridFunction::template traits< vertex_type >::const_iterator VertexIterator
Definition: filter.h:865
FilterImplBaseClass< FVCRBoxFilter< TGridFunction >, TGridFunction > base_type
Definition: filter.h:835
number width(vertex_type *vrt)
Definition: filter.h:896
elem_type::side side_type
Definition: filter.h:847
TGridFunction::template dim_traits< dim >::const_iterator ElemIterator
Definition: filter.h:859
FVCRBoxFilter(SmartPtr< TGridFunction > u)
Definition: filter.h:915
void compute_filterwidth()
Definition: filter.h:900
std::vector< WallObject< TGridFunction > > m_walls
Definition: filter.h:939
TGridFunction::domain_type domain_type
Definition: filter.h:844
number width(side_type *side)
Definition: filter.h:898
SmartPtr< TGridFunction > m_uInfo
Definition: filter.h:937
ANumber m_aSideVolume
Definition: filter.h:931
static const size_t dim
Definition: filter.h:838
void compute_filterwidth_fv1()
Definition: filter.h:908
void add_wall(WallObject< TGridFunction > w)
Definition: filter.h:891
aSideNumber m_acSideVolume
Definition: filter.h:932
TGridFunction::template traits< side_type >::const_iterator SideIterator
Definition: filter.h:862
void compute_filterwidth_fvcr()
Definition: filter_impl.h:1027
MathVector< dim > type0
Definition: filter.h:149
virtual number width(vertex_type *vrt)
Definition: filter.h:184
static const size_t dim
dimension
Definition: filter.h:131
virtual void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type0 > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:178
number type1
Definition: filter.h:150
virtual void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type1 > > &aaUHat, PeriodicAttachmentAccessor< vertex_type, Attachment< type1 > > &aaU)
Definition: filter.h:171
virtual number width(side_type *side)
Definition: filter.h:186
TGridFunction::domain_type domain_type
domain type
Definition: filter.h:137
virtual void apply(SmartPtr< TGridFunction > u)
Definition: filter.h:182
domain_type::grid_type grid_type
grid type
Definition: filter.h:140
virtual void apply(PeriodicAttachmentAccessor< side_type, Attachment< type1 > > &aaUHat, PeriodicAttachmentAccessor< side_type, Attachment< type1 > > &aaU)
Definition: filter.h:157
virtual void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type0 > > &aaUHat, PeriodicAttachmentAccessor< vertex_type, Attachment< type0 > > &aaU)
Definition: filter.h:168
virtual ~FilterBaseClass()
Definition: filter.h:191
virtual void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type2 > > &aaUHat, PeriodicAttachmentAccessor< vertex_type, Attachment< type2 > > &aaU)
Definition: filter.h:174
MathSymmetricMatrix< dim > type2
Definition: filter.h:151
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
element type
Definition: filter.h:134
virtual void apply(PeriodicAttachmentAccessor< side_type, Attachment< type0 > > &aaUHat, PeriodicAttachmentAccessor< side_type, Attachment< type0 > > &aaU)
Definition: filter.h:154
Vertex vertex_type
Definition: filter.h:146
virtual void compute_filterwidth()
Definition: filter.h:188
virtual void apply(PeriodicAttachmentAccessor< side_type, Attachment< type2 > > &aaUHat, PeriodicAttachmentAccessor< side_type, Attachment< type2 > > &aaU)
Definition: filter.h:160
elem_type::side side_type
side type
Definition: filter.h:143
virtual void apply(PeriodicAttachmentAccessor< side_type, Attachment< type0 > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:164
FilterBaseClass()
Definition: filter.h:190
domain_type::grid_type grid_type
grid type
Definition: filter.h:210
FilterBaseClass< TGridFunction >::type2 type2
Definition: filter.h:221
const TImpl & getImpl() const
const access to implementation
Definition: filter.h:371
void apply(PeriodicAttachmentAccessor< side_type, Attachment< type1 > > &aaUHat, PeriodicAttachmentAccessor< side_type, Attachment< type1 > > &aaU)
Definition: filter.h:229
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
element type
Definition: filter.h:204
void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type2 > > &aaUHat, PeriodicAttachmentAccessor< vertex_type, Attachment< type2 > > &aaU)
Definition: filter.h:257
FilterBaseClass< TGridFunction >::type1 type1
Definition: filter.h:220
void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type0 > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:263
TGridFunction::domain_type domain_type
domain type
Definition: filter.h:207
elem_type::side side_type
side type
Definition: filter.h:213
void assignVal(MathVector< 2 > &v, size_t ind, number value)
Definition: filter.h:350
void assignVal(MathVector< 3 > &v, size_t ind, number value)
Definition: filter.h:354
TImpl & getImpl()
access to implementation
Definition: filter.h:368
static const size_t dim
dimension
Definition: filter.h:201
void copyWallData(PeriodicAttachmentAccessor< TElem, Attachment< VType > > &acUHat, SmartPtr< TGridFunction > u, std::vector< WallObject< TGridFunction > > walls)
Definition: filter.h:299
void apply(PeriodicAttachmentAccessor< side_type, Attachment< type2 > > &aaUHat, PeriodicAttachmentAccessor< side_type, Attachment< type2 > > &aaU)
Definition: filter.h:234
Vertex vertex_type
Definition: filter.h:216
void copyWallData(PeriodicAttachmentAccessor< TElem, Attachment< VType > > &acUHat, PeriodicAttachmentAccessor< TElem, Attachment< VType > > &acU, SmartPtr< TGridFunction > u, std::vector< WallObject< TGridFunction > > walls)
Definition: filter.h:325
void apply(SmartPtr< TGridFunction > u)
Definition: filter.h:290
void apply(PeriodicAttachmentAccessor< side_type, Attachment< type0 > > &aaUHat, PeriodicAttachmentAccessor< side_type, Attachment< type0 > > &aaU)
Definition: filter.h:224
void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type1 > > &aaUHat, PeriodicAttachmentAccessor< vertex_type, Attachment< type1 > > &aaU)
Definition: filter.h:252
void assignVal(number &v, size_t ind, number value)
Definition: filter.h:346
void apply_(SmartPtr< TGridFunction > u)
Definition: filter.h:273
void assignVal(MathSymmetricMatrix< 3 > &v, size_t ind, number value)
Definition: filter.h:362
void assignVal(MathSymmetricMatrix< 2 > &v, size_t ind, number value)
Definition: filter.h:358
FilterBaseClass< TGridFunction >::type0 type0
Definition: filter.h:219
void apply(PeriodicAttachmentAccessor< vertex_type, Attachment< type0 > > &aaUHat, PeriodicAttachmentAccessor< vertex_type, Attachment< type0 > > &aaU)
Definition: filter.h:247
void apply(PeriodicAttachmentAccessor< side_type, Attachment< type0 > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:240
position_accessor_type m_posAcc
Definition: filter.h:692
number compute_average_element_size(SmartPtr< TGridFunction > u)
Definition: filter_impl.h:355
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:572
TGridFunction::domain_type domain_type
Definition: filter.h:531
PeriodicAttachmentAccessor< vertex_type, ANumber > aVertexNumber
Definition: filter.h:556
TGridFunction::template dim_traits< dim >::const_iterator ElemIterator
element iterator
Definition: filter.h:546
void collectSides(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &acUHat, PeriodicAttachmentAccessor< side_type, Attachment< number > > &acVolume, std::vector< MathVector< dim > > &coord, VType values[DimFV1Geometry< dim >::maxNumSCV], number volumes[DimFV1Geometry< dim >::maxNumSCV], std::vector< side_type * > &sides)
Definition: filter_impl.h:378
void add_wall(WallObject< TGridFunction > w)
Definition: filter.h:637
elem_type::side side_type
Definition: filter.h:534
number m_maxwidth
Definition: filter.h:700
ANumber m_aVertexVolume
Definition: filter.h:689
std::vector< WallObject< TGridFunction > > m_walls
Definition: filter.h:702
ANumber m_aSideVolume
Definition: filter.h:687
TGridFunction::template traits< side_type >::const_iterator SideIterator
side iterator
Definition: filter.h:549
FilterImplBaseClass< VariableBoxFilter< TGridFunction >, TGridFunction > base_type
Definition: filter.h:522
aVertexNumber m_acVertexVolume
Definition: filter.h:690
~VariableBoxFilter()
Definition: filter.h:670
VariableBoxFilter(SmartPtr< TGridFunction > u, SmartPtr< TGridFunction > fwidth, bool initWidth=false)
Definition: filter.h:648
Vertex vertex_type
Definition: filter.h:537
void apply_filter(PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< vertex_type, Attachment< VType > > &aaU)
Definition: filter.h:565
TGridFunction::template dim_traits< dim >::grid_base_object elem_type
Definition: filter.h:528
aSideNumber m_acSideVolume
Definition: filter.h:688
number width(side_type *side)
Definition: filter.h:586
number width(vertex_type *vrt)
Definition: filter.h:580
void check_volume_sizes(PeriodicAttachmentAccessor< TElem, Attachment< VType > > &acUHat, SmartPtr< TGridFunction > u)
Definition: filter.h:642
domain_type::grid_type grid_type
Definition: filter.h:540
SmartPtr< TGridFunction > m_width
Definition: filter.h:698
domain_type::position_accessor_type position_accessor_type
Definition: filter.h:543
TGridFunction::template traits< vertex_type >::const_iterator VertexIterator
vertex iterator
Definition: filter.h:552
number max_width(number width)
Definition: filter.h:614
void init_width(number width)
Definition: filter.h:593
SmartPtr< TGridFunction > m_uInfo
Definition: filter.h:695
static const size_t dim
Definition: filter.h:525
void apply_filter(PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaUHat, SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< side_type, Attachment< VType > > &aaU)
Definition: filter_impl.h:463
PeriodicAttachmentAccessor< side_type, ANumber > aSideNumber
Definition: filter.h:555
int m_subset_index
Definition: filter.h:65
WallObject(SmartPtr< TGridFunction > u, size_t direction, number coord, const char *subset)
Definition: filter.h:59
number dist(MathVector< TGridFunction::dim > co)
Definition: filter.h:56
size_t m_direction
Definition: filter.h:66
number m_coord
Definition: filter.h:67
number coord()
Definition: filter.h:54
int si()
Definition: filter.h:53
size_t direction()
Definition: filter.h:55
bool access(Grid &g, TAttachment &a)
bool is_slave(TElem *) const
Grid::VertexAttachmentAccessor< position_attachment_type > position_accessor_type
size_t num_subsets() const
const NullSmartPtr SPNULL
void initAttachment(PeriodicAttachmentAccessor< elem_type, attachment_type > &accessor, attachment_type &attachment, grid_type &grid)
Definition: filter.h:119
void copyAttachmentToGridFunction(SmartPtr< TGridFunction > u, PeriodicAttachmentAccessor< elem_type, Attachment< MathVector< dim > > > &aaU)
Definition: filter.h:71
void copyGridFunctionToAttachment(PeriodicAttachmentAccessor< elem_type, Attachment< MathVector< dim > > > &aaU, SmartPtr< TGridFunction > u)
Definition: filter.h:95
const number & DoFRef(const TMatrix &mat, const DoFIndex &iInd, const DoFIndex &jInd)
geometry_traits< TElem >::const_iterator const_iterator
size_t firstIndex
Definition: filter.h:376
MathVector< dim > periodicOffset
Definition: filter.h:377