28 template <
class T,
unsigned Dim>
36 template <
unsigned Dim>
47 template <
class FT,
class M,
class C,
class PT>
58 ngp =
FindNGP(mesh, ppos, ctag);
66 for (d=0; d<
Dim; ++d) {
67 if (gpos(d) > ppos(d)) {
69 gpos(d) = gpos(d) - delta(d);
82 ERRORMSG(
"IntCIC::scatter: not implemented for Dim>3!!"<<
endl);
88 template <
class FT,
class M,
class C,
class PT>
98 ngp =
FindNGP(mesh, ppos, ctag);
100 FindPos(gpos, mesh, ngp, ctag);
106 for (d=0; d<
Dim; ++d) {
107 if (gpos(d) > ppos(d)) {
109 gpos(d) = gpos(d) - delta(d);
122 ERRORMSG(
"IntCIC::scatter: not implemented for Dim>3!!"<<
endl);
127 template <
class FT,
class M,
class C,
class PT>
138 ERRORMSG(
"IntCIC::scatter: not implemented for Dim>3!!"<<
endl);
143 template <
class FT,
class M,
class C,
class PT>
154 ngp =
FindNGP(mesh, ppos, ctag);
156 FindPos(gpos, mesh, ngp, ctag);
162 for (d=0; d<
Dim; ++d) {
163 if (gpos(d) > ppos(d)) {
165 gpos(d) = gpos(d) - delta(d);
178 ERRORMSG(
"IntCIC::gather: not implemented for Dim>3!!"<<
endl);
184 template <
class FT,
class M,
class C,
class PT>
194 ngp =
FindNGP(mesh, ppos, ctag);
196 FindPos(gpos, mesh, ngp, ctag);
202 for (d=0; d<
Dim; ++d) {
203 if (gpos(d) > ppos(d)) {
205 gpos(d) = gpos(d) - delta(d);
218 ERRORMSG(
"IntCIC::gather: not implemented for Dim>3!!"<<
endl);
223 template <
class FT,
class M,
class C,
class PT>
234 ERRORMSG(
"IntCIC::gather: not implemented for Dim>3!!"<<
endl);
252 template <
class FT,
class M,
class C,
class PT>
263 ngp =
FindNGP(mesh, ppos, ctag);
265 FindPos(gpos, mesh, ngp, ctag);
271 for (d=0; d<1U; ++d) {
272 if (gpos(d) > ppos(d)) {
274 gpos(d) = gpos(d) - delta(d);
287 *fiter += (1 - dpos(0)) * pdata;
288 fiter.
offset(1) += dpos(0) * pdata;
294 template <
class FT,
class M,
class C,
class PT>
304 ngp =
FindNGP(mesh, ppos, ctag);
306 FindPos(gpos, mesh, ngp, ctag);
312 for (d=0; d<1U; ++d) {
313 if (gpos(d) > ppos(d)) {
315 gpos(d) = gpos(d) - delta(d);
328 *fiter += (1 - dpos(0)) * pdata;
329 fiter.
offset(1) += dpos(0) * pdata;
334 template <
class FT,
class M,
class C,
class PT>
345 *fiter += (1 - dpos(0)) * pdata;
346 fiter.
offset(1) += dpos(0) * pdata;
351 template <
class FT,
class M,
class C,
class PT>
362 ngp =
FindNGP(mesh, ppos, ctag);
364 FindPos(gpos, mesh, ngp, ctag);
370 for (d=0; d<1U; ++d) {
371 if (gpos(d) > ppos(d)) {
373 gpos(d) = gpos(d) - delta(d);
386 pdata = (1 - dpos(0)) * (*fiter) +
387 dpos(0) * fiter.
offset(1);
393 template <
class FT,
class M,
class C,
class PT>
403 ngp =
FindNGP(mesh, ppos, ctag);
405 FindPos(gpos, mesh, ngp, ctag);
411 for (d=0; d<1U; ++d) {
412 if (gpos(d) > ppos(d)) {
414 gpos(d) = gpos(d) - delta(d);
427 pdata = (1 - dpos(0)) * (*fiter) +
428 dpos(0) * fiter.
offset(1);
433 template <
class FT,
class M,
class C,
class PT>
444 pdata = (1 - dpos(0)) * (*fiter) +
445 dpos(0) * fiter.
offset(1);
463 template <
class FT,
class M,
class C,
class PT>
474 ngp =
FindNGP(mesh, ppos, ctag);
476 FindPos(gpos, mesh, ngp, ctag);
482 for (d=0; d<2U; ++d) {
483 if (gpos(d) > ppos(d)) {
485 gpos(d) = gpos(d) - delta(d);
498 *fiter += (1 - dpos(0)) * (1 - dpos(1)) * pdata;
499 fiter.
offset(1,0) += dpos(0) * (1 - dpos(1)) * pdata;
500 fiter.
offset(0,1) += (1 - dpos(0)) * dpos(1) * pdata;
501 fiter.
offset(1,1) += dpos(0) * dpos(1) * pdata;
507 template <
class FT,
class M,
class C,
class PT>
517 ngp =
FindNGP(mesh, ppos, ctag);
519 FindPos(gpos, mesh, ngp, ctag);
525 for (d=0; d<2U; ++d) {
526 if (gpos(d) > ppos(d)) {
528 gpos(d) = gpos(d) - delta(d);
541 *fiter += (1 - dpos(0)) * (1 - dpos(1)) * pdata;
542 fiter.
offset(1,0) += dpos(0) * (1 - dpos(1)) * pdata;
543 fiter.
offset(0,1) += (1 - dpos(0)) * dpos(1) * pdata;
544 fiter.
offset(1,1) += dpos(0) * dpos(1) * pdata;
549 template <
class FT,
class M,
class C,
class PT>
560 *fiter += (1 - dpos(0)) * (1 - dpos(1)) * pdata;
561 fiter.
offset(1,0) += dpos(0) * (1 - dpos(1)) * pdata;
562 fiter.
offset(0,1) += (1 - dpos(0)) * dpos(1) * pdata;
563 fiter.
offset(1,1) += dpos(0) * dpos(1) * pdata;
568 template <
class FT,
class M,
class C,
class PT>
579 ngp =
FindNGP(mesh, ppos, ctag);
581 FindPos(gpos, mesh, ngp, ctag);
587 for (d=0; d<2U; ++d) {
588 if (gpos(d) > ppos(d)) {
590 gpos(d) = gpos(d) - delta(d);
603 pdata = (1 - dpos(0)) * (1 - dpos(1)) * (*fiter) +
604 dpos(0) * (1 - dpos(1)) * fiter.
offset(1,0) +
605 (1 - dpos(0)) * dpos(1) * fiter.
offset(0,1) +
606 dpos(0) * dpos(1) * fiter.
offset(1,1);
612 template <
class FT,
class M,
class C,
class PT>
622 ngp =
FindNGP(mesh, ppos, ctag);
624 FindPos(gpos, mesh, ngp, ctag);
630 for (d=0; d<2U; ++d) {
631 if (gpos(d) > ppos(d)) {
633 gpos(d) = gpos(d) - delta(d);
646 pdata = (1 - dpos(0)) * (1 - dpos(1)) * (*fiter) +
647 dpos(0) * (1 - dpos(1)) * fiter.
offset(1,0) +
648 (1 - dpos(0)) * dpos(1) * fiter.
offset(0,1) +
649 dpos(0) * dpos(1) * fiter.
offset(1,1);
654 template <
class FT,
class M,
class C,
class PT>
665 pdata = (1 - dpos(0)) * (1 - dpos(1)) * (*fiter) +
666 dpos(0) * (1 - dpos(1)) * fiter.
offset(1,0) +
667 (1 - dpos(0)) * dpos(1) * fiter.
offset(0,1) +
668 dpos(0) * dpos(1) * fiter.
offset(1,1);
673 template <
class FT,
class M,
class PT>
684 ngp =
FindNGP(mesh, ppos, ctag);
687 for (
unsigned int comp = 0; comp < 2U; ++comp) {
689 cppos(comp) += 0.5 * delta(comp);
690 ngp =
FindNGP(mesh, cppos, ctag);
691 ngp[comp] = ngp[comp] - 1;
694 gpos(comp) += 0.5 * delta(comp);
702 (*fiter)(comp) += (1 - dpos(0)) * (1 - dpos(1)) * pdata(comp);
703 (fiter.
offset(1,0))(comp) += dpos(0) * (1 - dpos(1)) * pdata(comp);
704 (fiter.
offset(0,1))(comp) += (1 - dpos(0)) * dpos(1) * pdata(comp);
705 (fiter.
offset(1,1))(comp) += dpos(0) * dpos(1) * pdata(comp);
710 template <
class FT,
class M,
class PT>
714 ERRORMSG(
"IntCIC::scatter on Edge based field: not implemented for non-vectors!!"<<
endl);
719 template <
class FT,
class M,
class PT>
724 ERRORMSG(
"IntCIC::scatter on Edge based field with cache: not implemented!!"<<
endl);
728 template <
class FT,
class M,
class PT>
733 ERRORMSG(
"IntCIC::scatter on Edge based field with cache: not implemented!!"<<
endl);
738 template <
class FT,
class M,
class PT>
748 for (
unsigned int comp = 0; comp < 2U; ++ comp) {
750 cppos(comp) += 0.5 * delta(comp);
751 ngp = mesh.getCellContaining(cppos);
752 ngp[comp] = ngp[comp] - 1;
753 gpos = mesh.getVertexPosition(ngp);
754 gpos(comp) += 0.5 * delta(comp);
766 pdata(comp) = ((1 - dpos(0)) * (1 - dpos(1)) * (*fiter)(comp) +
767 dpos(0) * (1 - dpos(1)) * (fiter.
offset(1,0))(comp) +
768 (1 - dpos(0)) * dpos(1) * (fiter.
offset(0,1))(comp) +
769 dpos(0) * dpos(1) * (fiter.
offset(1,1))(comp));
774 template <
class FT,
class M,
class PT>
778 ERRORMSG(
"IntCIC::gather on Edge based field: not implemented for non-vectors!!"<<
endl);
784 template <
class FT,
class M,
class PT>
789 ERRORMSG(
"IntCIC::gather on Edge based field with cache: not implemented!!"<<
endl);
794 template <
class FT,
class M,
class PT>
799 ERRORMSG(
"IntCIC::gather on Edge based field with cache: not implemented!!"<<
endl);
816 template <
class FT,
class M,
class C,
class PT>
827 ngp =
FindNGP(mesh, ppos, ctag);
829 FindPos(gpos, mesh, ngp, ctag);
835 for (d=0; d<3U; ++d) {
836 if (gpos(d) > ppos(d)) {
838 gpos(d) = gpos(d) - delta(d);
851 *fiter += (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * pdata;
852 fiter.
offset(1,0,0) += dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * pdata;
853 fiter.
offset(0,1,0) += (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * pdata;
854 fiter.
offset(1,1,0) += dpos(0) * dpos(1) * (1 - dpos(2)) * pdata;
855 fiter.
offset(0,0,1) += (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * pdata;
856 fiter.
offset(1,0,1) += dpos(0) * (1 - dpos(1)) * dpos(2) * pdata;
857 fiter.
offset(0,1,1) += (1 - dpos(0)) * dpos(1) * dpos(2) * pdata;
858 fiter.
offset(1,1,1) += dpos(0) * dpos(1) * dpos(2) * pdata;
864 template <
class FT,
class M,
class C,
class PT>
874 ngp =
FindNGP(mesh, ppos, ctag);
876 FindPos(gpos, mesh, ngp, ctag);
882 for (d=0; d<3U; ++d) {
883 if (gpos(d) > ppos(d)) {
885 gpos(d) = gpos(d) - delta(d);
898 *fiter += (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * pdata;
899 fiter.
offset(1,0,0) += dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * pdata;
900 fiter.
offset(0,1,0) += (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * pdata;
901 fiter.
offset(1,1,0) += dpos(0) * dpos(1) * (1 - dpos(2)) * pdata;
902 fiter.
offset(0,0,1) += (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * pdata;
903 fiter.
offset(1,0,1) += dpos(0) * (1 - dpos(1)) * dpos(2) * pdata;
904 fiter.
offset(0,1,1) += (1 - dpos(0)) * dpos(1) * dpos(2) * pdata;
905 fiter.
offset(1,1,1) += dpos(0) * dpos(1) * dpos(2) * pdata;
910 template <
class FT,
class M,
class C,
class PT>
921 *fiter += (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * pdata;
922 fiter.
offset(1,0,0) += dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * pdata;
923 fiter.
offset(0,1,0) += (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * pdata;
924 fiter.
offset(1,1,0) += dpos(0) * dpos(1) * (1 - dpos(2)) * pdata;
925 fiter.
offset(0,0,1) += (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * pdata;
926 fiter.
offset(1,0,1) += dpos(0) * (1 - dpos(1)) * dpos(2) * pdata;
927 fiter.
offset(0,1,1) += (1 - dpos(0)) * dpos(1) * dpos(2) * pdata;
928 fiter.
offset(1,1,1) += dpos(0) * dpos(1) * dpos(2) * pdata;
933 template <
class FT,
class M,
class C,
class PT>
944 ngp =
FindNGP(mesh, ppos, ctag);
946 FindPos(gpos, mesh, ngp, ctag);
952 for (d=0; d<3U; ++d) {
953 if (gpos(d) > ppos(d)) {
955 gpos(d) = gpos(d) - delta(d);
968 pdata = (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * (*fiter)
969 + dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * fiter.
offset(1,0,0)
970 + (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * fiter.
offset(0,1,0)
971 + dpos(0) * dpos(1) * (1 - dpos(2)) * fiter.
offset(1,1,0)
972 + (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * fiter.
offset(0,0,1)
973 + dpos(0) * (1 - dpos(1)) * dpos(2) * fiter.
offset(1,0,1)
974 + (1 - dpos(0)) * dpos(1) * dpos(2) * fiter.
offset(0,1,1)
975 + dpos(0) * dpos(1) * dpos(2) * fiter.
offset(1,1,1);
981 template <
class FT,
class M,
class C,
class PT>
991 ngp =
FindNGP(mesh, ppos, ctag);
993 FindPos(gpos, mesh, ngp, ctag);
999 for (d=0; d<3U; ++d) {
1000 if (gpos(d) > ppos(d)) {
1002 gpos(d) = gpos(d) - delta(d);
1015 pdata = (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * (*fiter)
1016 + dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * fiter.
offset(1,0,0)
1017 + (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * fiter.
offset(0,1,0)
1018 + dpos(0) * dpos(1) * (1 - dpos(2)) * fiter.
offset(1,1,0)
1019 + (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * fiter.
offset(0,0,1)
1020 + dpos(0) * (1 - dpos(1)) * dpos(2) * fiter.
offset(1,0,1)
1021 + (1 - dpos(0)) * dpos(1) * dpos(2) * fiter.
offset(0,1,1)
1022 + dpos(0) * dpos(1) * dpos(2) * fiter.
offset(1,1,1);
1027 template <
class FT,
class M,
class C,
class PT>
1038 pdata = (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * (*fiter)
1039 + dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * fiter.
offset(1,0,0)
1040 + (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * fiter.
offset(0,1,0)
1041 + dpos(0) * dpos(1) * (1 - dpos(2)) * fiter.
offset(1,1,0)
1042 + (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * fiter.
offset(0,0,1)
1043 + dpos(0) * (1 - dpos(1)) * dpos(2) * fiter.
offset(1,0,1)
1044 + (1 - dpos(0)) * dpos(1) * dpos(2) * fiter.
offset(0,1,1)
1045 + dpos(0) * dpos(1) * dpos(2) * fiter.
offset(1,1,1);
1050 template <
class FT,
class M,
class PT>
1061 ngp =
FindNGP(mesh, ppos, ctag);
1064 for (
unsigned int comp = 0; comp < 3U; ++comp) {
1066 cppos(comp) += 0.5 * delta(comp);
1067 ngp =
FindNGP(mesh, cppos, ctag);
1068 ngp[comp] = ngp[comp] - 1;
1071 gpos(comp) += 0.5 * delta(comp);
1079 (*fiter)(comp) += (1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * pdata(comp);
1080 (fiter.
offset(1,0,0))(comp) += dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * pdata(comp);
1081 (fiter.
offset(0,1,0))(comp) += (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * pdata(comp);
1082 (fiter.
offset(1,1,0))(comp) += dpos(0) * dpos(1) * (1 - dpos(2)) * pdata(comp);
1083 (fiter.
offset(0,0,1))(comp) += (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * pdata(comp);
1084 (fiter.
offset(1,0,1))(comp) += dpos(0) * (1 - dpos(1)) * dpos(2) * pdata(comp);
1085 (fiter.
offset(0,1,1))(comp) += (1 - dpos(0)) * dpos(1) * dpos(2) * pdata(comp);
1086 (fiter.
offset(1,1,1))(comp) += dpos(0) * dpos(1) * dpos(2) * pdata(comp);
1091 template <
class FT,
class M,
class PT>
1095 ERRORMSG(
"IntCIC::scatter on Edge based field: not implemented for non-vectors!!"<<
endl);
1100 template <
class FT,
class M,
class PT>
1105 ERRORMSG(
"IntCIC::scatter on Edge based field with cache: not implemented!!"<<
endl);
1109 template <
class FT,
class M,
class PT>
1114 ERRORMSG(
"IntCIC::scatter on Edge based field with cache: not implemented!!"<<
endl);
1119 template <
class FT,
class M,
class PT>
1129 for (
unsigned int comp = 0; comp < 3U; ++ comp) {
1131 cppos(comp) += 0.5 * delta(comp);
1132 ngp = mesh.getCellContaining(cppos);
1133 ngp[comp] = ngp[comp] - 1;
1134 gpos = mesh.getVertexPosition(ngp);
1135 gpos(comp) += 0.5 * delta(comp);
1147 pdata(comp) = ((1 - dpos(0)) * (1 - dpos(1)) * (1 - dpos(2)) * (*fiter)(comp) +
1148 dpos(0) * (1 - dpos(1)) * (1 - dpos(2)) * (fiter.
offset(1,0,0))(comp) +
1149 (1 - dpos(0)) * dpos(1) * (1 - dpos(2)) * (fiter.
offset(0,1,0))(comp) +
1150 dpos(0) * dpos(1) * (1 - dpos(2)) * (fiter.
offset(1,1,0))(comp) +
1151 (1 - dpos(0)) * (1 - dpos(1)) * dpos(2) * (fiter.
offset(0,0,1))(comp) +
1152 dpos(0) * (1 - dpos(1)) * dpos(2) * (fiter.
offset(1,0,1))(comp) +
1153 (1 - dpos(0)) * dpos(1) * dpos(2) * (fiter.
offset(0,1,1))(comp) +
1154 dpos(0) * dpos(1) * dpos(2) * (fiter.
offset(1,1,1))(comp));
1159 template <
class FT,
class M,
class PT>
1163 ERRORMSG(
"IntCIC::gather on Edge based field: not implemented for non-vectors!!"<<
endl);
1169 template <
class FT,
class M,
class PT>
1174 ERRORMSG(
"IntCIC::gather on Edge based field with cache: not implemented!!"<<
endl);
1179 template <
class FT,
class M,
class PT>
1184 ERRORMSG(
"IntCIC::gather on Edge based field with cache: not implemented!!"<<
endl);
1201 template <
class FT,
unsigned Dim,
class M,
class C,
class PT>
1210 template <
class FT,
unsigned Dim,
class M,
class C,
class PT>
1220 template <
class FT,
unsigned Dim,
class M,
class C,
class PT>
1229 template <
class FT,
unsigned Dim,
class M,
class C,
class PT>
1238 template <
class FT,
unsigned Dim,
class M,
class C,
class PT>
1248 template <
class FT,
unsigned Dim,
class M,
class C,
class PT>
NDIndex< Dim > FindNGP(const M &mesh, const Vektor< PT, Dim > &ppos, CenteringTag< Cell >)
void FindDelta(Vektor< PT, Dim > &delta, const M &mesh, const NDIndex< Dim > &gp, CenteringTag< Cell >)
void FindPos(Vektor< PT, Dim > &pos, const M &mesh, const NDIndex< Dim > &indices, CenteringTag< Cell >)
Inform & endl(Inform &inf)
CacheDataCIC< T, Dim > Cache_t
static void gather(FT &, const Field< FT, Dim, M, C > &f, const NDIndex< Dim > &ngp, const int lgpoff[Dim], const Vektor< PT, Dim > &)
static void gather(FT &, const Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh)
static void gather(FT &, const Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh, NDIndex< Dim > &ngp, int lgpoff[Dim], Vektor< PT, Dim > &dpos)
static void scatter(const FT &, Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh, NDIndex< Dim > &ngp, int lgpoff[Dim], Vektor< PT, Dim > &dpos)
static void scatter(const FT &, Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh)
static void scatter(const FT &, Field< FT, Dim, M, C > &f, const NDIndex< Dim > &ngp, const int lgpoff[Dim], const Vektor< PT, Dim > &)
static void scatter(const FT &pdata, Field< FT, 1U, M, C > &f, const NDIndex< 1U > &ngp, const int lgpoff[1U], const Vektor< PT, 1U > &dpos)
static void gather(FT &pdata, const Field< FT, 1U, M, C > &f, const Vektor< PT, 1U > &ppos, const M &mesh)
static void scatter(const FT &pdata, Field< FT, 1U, M, C > &f, const Vektor< PT, 1U > &ppos, const M &mesh)
static void gather(FT &pdata, const Field< FT, 1U, M, C > &f, const Vektor< PT, 1U > &ppos, const M &mesh, NDIndex< 1U > &ngp, int lgpoff[1U], Vektor< PT, 1U > &dpos)
static void gather(FT &pdata, const Field< FT, 1U, M, C > &f, const NDIndex< 1U > &ngp, const int lgpoff[1U], const Vektor< PT, 1U > &dpos)
static void scatter(const FT &pdata, Field< FT, 1U, M, C > &f, const Vektor< PT, 1U > &ppos, const M &mesh, NDIndex< 1U > &ngp, int lgpoff[1U], Vektor< PT, 1U > &dpos)
static void gather(FT &pdata, const Field< FT, 2U, M, C > &f, const Vektor< PT, 2U > &ppos, const M &mesh, NDIndex< 2U > &ngp, int lgpoff[2U], Vektor< PT, 2U > &dpos)
static void gather(FT &, const Field< FT, 2U, M, Edge > &, const Vektor< PT, 2U > &, const M &, NDIndex< 2U > &, int[2U], Vektor< PT, 2U > &)
static void scatter(const FT &, Field< FT, 2U, M, Edge > &, const Vektor< PT, 2U > &, const M &)
static void gather(FT &pdata, const Field< FT, 2U, M, C > &f, const NDIndex< 2U > &ngp, const int lgpoff[2U], const Vektor< PT, 2U > &dpos)
static void scatter(const Vektor< FT, 2U > &pdata, Field< Vektor< FT, 2U >, 2U, M, Edge > &f, const Vektor< PT, 2U > &ppos, const M &mesh)
static void scatter(const FT &pdata, Field< FT, 2U, M, C > &f, const NDIndex< 2U > &ngp, const int lgpoff[2U], const Vektor< PT, 2U > &dpos)
static void gather(FT &, const Field< FT, 2U, M, Edge > &, const NDIndex< 2U > &, const int[2U], const Vektor< PT, 2U > &)
static void gather(FT &, const Field< FT, 2U, M, Edge > &, const Vektor< PT, 2U > &, const M &)
static void gather(Vektor< FT, 2U > &pdata, const Field< Vektor< FT, 2U >, 2U, M, Edge > &f, const Vektor< PT, 2U > &ppos, const M &mesh)
static void scatter(const FT &pdata, Field< FT, 2U, M, C > &f, const Vektor< PT, 2U > &ppos, const M &mesh)
static void scatter(const FT &pdata, Field< FT, 2U, M, C > &f, const Vektor< PT, 2U > &ppos, const M &mesh, NDIndex< 2U > &ngp, int lgpoff[2U], Vektor< PT, 2U > &dpos)
static void scatter(const FT &, Field< FT, 2U, M, Edge > &, const Vektor< PT, 2U > &, const M &, NDIndex< 2U > &, int[2U], Vektor< PT, 2U > &)
static void gather(FT &pdata, const Field< FT, 2U, M, C > &f, const Vektor< PT, 2U > &ppos, const M &mesh)
static void scatter(const FT &, Field< FT, 2U, M, Edge > &, const NDIndex< 2U > &, const int[2U], const Vektor< PT, 2U > &)
static void scatter(const FT &, Field< FT, 3U, M, Edge > &, const Vektor< PT, 3U > &, const M &)
static void gather(FT &pdata, const Field< FT, 3U, M, C > &f, const Vektor< PT, 3U > &ppos, const M &mesh)
static void gather(FT &pdata, const Field< FT, 3U, M, C > &f, const Vektor< PT, 3U > &ppos, const M &mesh, NDIndex< 3U > &ngp, int lgpoff[3U], Vektor< PT, 3U > &dpos)
static void gather(FT &pdata, const Field< FT, 3U, M, C > &f, const NDIndex< 3U > &ngp, const int lgpoff[3U], const Vektor< PT, 3U > &dpos)
static void gather(FT &, const Field< FT, 3U, M, Edge > &, const NDIndex< 3U > &, const int[3U], const Vektor< PT, 3U > &)
static void scatter(const FT &pdata, Field< FT, 3U, M, C > &f, const Vektor< PT, 3U > &ppos, const M &mesh)
static void gather(Vektor< FT, 3U > &pdata, const Field< Vektor< FT, 3U >, 3U, M, Edge > &f, const Vektor< PT, 3U > &ppos, const M &mesh)
static void scatter(const Vektor< FT, 3U > &pdata, Field< Vektor< FT, 3U >, 3U, M, Edge > &f, const Vektor< PT, 3U > &ppos, const M &mesh)
static void scatter(const FT &, Field< FT, 3U, M, Edge > &, const Vektor< PT, 3U > &, const M &, NDIndex< 3U > &, int[3U], Vektor< PT, 3U > &)
static void gather(FT &, const Field< FT, 3U, M, Edge > &, const Vektor< PT, 3U > &, const M &)
static void gather(FT &, const Field< FT, 3U, M, Edge > &, const Vektor< PT, 3U > &, const M &, NDIndex< 3U > &, int[3U], Vektor< PT, 3U > &)
static void scatter(const FT &pdata, Field< FT, 3U, M, C > &f, const NDIndex< 3U > &ngp, const int lgpoff[3U], const Vektor< PT, 3U > &dpos)
static void scatter(const FT &, Field< FT, 3U, M, Edge > &, const NDIndex< 3U > &, const int[3U], const Vektor< PT, 3U > &)
static void scatter(const FT &pdata, Field< FT, 3U, M, C > &f, const Vektor< PT, 3U > &ppos, const M &mesh, NDIndex< 3U > &ngp, int lgpoff[3U], Vektor< PT, 3U > &dpos)
static void scatter(const FT &pdata, Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh)
static void gather(FT &pdata, const Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh)
static void scatter(const FT &pdata, Field< FT, Dim, M, C > &f, const CacheDataCIC< PT, Dim > &cache)
static void gather(FT &pdata, const Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh, CacheDataCIC< PT, Dim > &cache)
static void gather(FT &pdata, const Field< FT, Dim, M, C > &f, const CacheDataCIC< PT, Dim > &cache)
static void scatter(const FT &pdata, Field< FT, Dim, M, C > &f, const Vektor< PT, Dim > &ppos, const M &mesh, CacheDataCIC< PT, Dim > &cache)
static CompressedBrickIterator< T, Dim > getFieldIter(const BareField< T, Dim > &f, const NDIndex< Dim > &pt)