24 for (
int c=0; c<V.
Width(); c++)
44 for (
int r=0; r<V.
Height(); r++)
54 for (
int c=0; c<V.
Width(); c++)
69 if (ran_dof_trans && dom_dof_trans)
74 else if (ran_dof_trans)
78 else if (dom_dof_trans)
97 if (ran_dof_trans && dom_dof_trans)
102 else if (ran_dof_trans)
106 else if (dom_dof_trans)
118 int size = doftrans_->
Size();
122 for (
int i=0; i<vdim_; i++)
130 for (
int i=0; i<vdim_; i++)
132 for (
int j=0; j<size; j++)
134 vec(j) = v[j*vdim_+i];
137 for (
int j=0; j<size; j++)
139 v[j*vdim_+i] = vec(j);
147 int size = doftrans_->
Height();
151 for (
int i=0; i<vdim_; i++)
159 for (
int i=0; i<vdim_; i++)
161 for (
int j=0; j<size; j++)
163 vec(j) = v[j*vdim_+i];
166 for (
int j=0; j<size; j++)
168 v[j*vdim_+i] = vec(j);
176 int size = doftrans_->
Size();
180 for (
int i=0; i<vdim_; i++)
188 for (
int i=0; i<vdim_; i++)
190 for (
int j=0; j<size; j++)
192 vec(j) = v[j*vdim_+i];
195 for (
int j=0; j<size; j++)
197 v[j*vdim_+i] = vec(j);
205 int size = doftrans_->
Size();
209 for (
int i=0; i<vdim_; i++)
217 for (
int i=0; i<vdim_; i++)
219 for (
int j=0; j<size; j++)
221 vec(j) = v[j*vdim_+i];
224 for (
int j=0; j<size; j++)
226 v[j*vdim_+i] = vec(j);
235 -1.0, -1.0, 0.0, 1.0,
236 0.0, 1.0, -1.0, -1.0,
237 1.0, 0.0, -1.0, -1.0,
238 -1.0, -1.0, 1.0, 0.0,
248 -1.0, -1.0, 0.0, 1.0,
249 -1.0, -1.0, 1.0, 0.0,
250 1.0, 0.0, -1.0, -1.0,
251 0.0, 1.0, -1.0, -1.0,
256 ::TInv(const_cast<double*>(TInv_data), 2, 2, 6);
274 if (
nfdofs < 2) {
return; }
276 MFEM_VERIFY(
Fo.
Size() >= 1,
277 "Face orientations are unset in ND_TriDofTransformation");
283 for (
int f=0;
f<1;
f++)
285 for (
int i=0; i<
nfdofs/2; i++)
297 if (
nfdofs < 2) {
return; }
299 MFEM_VERIFY(
Fo.
Size() >= 1,
300 "Face orientations are unset in ND_TriDofTransformation");
306 for (
int f=0;
f<1;
f++)
308 for (
int i=0; i<
nfdofs/2; i++)
320 if (
nfdofs < 2) {
return; }
322 MFEM_VERIFY(
Fo.
Size() >= 1,
323 "Face orientations are unset in ND_TriDofTransformation");
329 for (
int f=0;
f<1;
f++)
331 for (
int i=0; i<
nfdofs/2; i++)
349 for (
int f=0;
f<1;
f++)
351 for (
int i=0; i<nfdofs/2; i++)
353 v2 = &v[3*nedofs +
f*nfdofs + 2*i];
354 T(
Fo[
f]).MultTranspose(v2, &v[3*nedofs + f*nfdofs + 2*i]);
367 if (
nfdofs < 2) {
return; }
369 MFEM_VERIFY(
Fo.
Size() >= 4,
370 "Face orientations are unset in ND_TetDofTransformation");
376 for (
int f=0;
f<4;
f++)
378 for (
int i=0; i<
nfdofs/2; i++)
390 if (
nfdofs < 2) {
return; }
392 MFEM_VERIFY(
Fo.
Size() >= 4,
393 "Face orientations are unset in ND_TetDofTransformation");
399 for (
int f=0;
f<4;
f++)
401 for (
int i=0; i<
nfdofs/2; i++)
413 if (
nfdofs < 2) {
return; }
415 MFEM_VERIFY(
Fo.
Size() >= 4,
416 "Face orientations are unset in ND_TetDofTransformation");
422 for (
int f=0;
f<4;
f++)
424 for (
int i=0; i<
nfdofs/2; i++)
442 for (
int f=0;
f<4;
f++)
444 for (
int i=0; i<nfdofs/2; i++)
446 v2 = &v[6*nedofs +
f*nfdofs + 2*i];
447 T(
Fo[
f]).MultTranspose(v2, &v[6*nedofs + f*nfdofs + 2*i]);
460 if (
nfdofs < 2) {
return; }
462 MFEM_VERIFY(
Fo.
Size() >= 2,
463 "Face orientations are unset in ND_WedgeDofTransformation");
469 for (
int f=0;
f<2;
f++)
471 for (
int i=0; i<
nfdofs/2; i++)
483 if (
nfdofs < 2) {
return; }
485 MFEM_VERIFY(
Fo.
Size() >= 2,
486 "Face orientations are unset in ND_WedgeDofTransformation");
492 for (
int f=0;
f<2;
f++)
494 for (
int i=0; i<
nfdofs/2; i++)
506 if (
nfdofs < 2) {
return; }
508 MFEM_VERIFY(
Fo.
Size() >= 2,
509 "Face orientations are unset in ND_WedgeDofTransformation");
515 for (
int f=0;
f<2;
f++)
517 for (
int i=0; i<
nfdofs/2; i++)
529 if (
nfdofs < 2) {
return; }
531 MFEM_VERIFY(
Fo.
Size() >= 2,
532 "Face orientations are unset in ND_WedgeDofTransformation");
538 for (
int f=0;
f<2;
f++)
540 for (
int i=0; i<
nfdofs/2; i++)
int Size() const
Return the logical size of the array.
void SetRow(int r, const double *row)
int Width() const
Get the width (size of input) of the Operator. Synonym with NumCols().
Data type dense matrix using column-major storage.
double * GetData() const
Return a pointer to the beginning of the Vector data.
double f(const Vector &xvec)
int Height() const
Get the height (size of output) of the Operator. Synonym with NumRows().
void TransformPrimal(const DofTransformation *ran_dof_trans, const DofTransformation *dom_dof_trans, DenseMatrix &elmat)
void GetRow(int r, Vector &row) const
void GetColumn(int c, Vector &col) const
double p(const Vector &x, double t)
void TransformDual(const DofTransformation *ran_dof_trans, const DofTransformation *dom_dof_trans, DenseMatrix &elmat)