21 if (ran_dof_trans && dom_dof_trans)
26 else if (ran_dof_trans)
30 else if (dom_dof_trans)
44 if (ran_dof_trans && dom_dof_trans)
49 else if (ran_dof_trans)
53 else if (dom_dof_trans)
70 for (
int i=0; i<
vdim_; i++)
78 for (
int i=0; i<
vdim_; i++)
80 for (
int j=0; j<size; j++)
82 vec(j) = v[j*
vdim_+i];
85 for (
int j=0; j<size; j++)
87 v[j*
vdim_+i] = vec(j);
101 for (
int i=0; i<
vdim_; i++)
109 for (
int i=0; i<
vdim_; i++)
111 for (
int j=0; j<size; j++)
113 vec(j) = v[j*
vdim_+i];
116 for (
int j=0; j<size; j++)
118 v[j*
vdim_+i] = vec(j);
131 for (
int i=0; i<
vdim_; i++)
139 for (
int i=0; i<
vdim_; i++)
141 for (
int j=0; j<size; j++)
143 vec(j) = v[j*
vdim_+i];
146 for (
int j=0; j<size; j++)
148 v[j*
vdim_+i] = vec(j);
161 for (
int i=0; i<
vdim_; i++)
169 for (
int i=0; i<
vdim_; i++)
171 for (
int j=0; j<size; j++)
173 vec(j) = v[j*
vdim_+i];
176 for (
int j=0; j<size; j++)
178 v[j*
vdim_+i] = vec(j);
185 const double ND_StatelessDofTransformation::T_data[24] =
188 -1.0, -1.0, 0.0, 1.0,
189 0.0, 1.0, -1.0, -1.0,
190 1.0, 0.0, -1.0, -1.0,
191 -1.0, -1.0, 1.0, 0.0,
195 const DenseTensor ND_StatelessDofTransformation
196 ::T(const_cast<double*>(ND_StatelessDofTransformation::T_data), 2, 2, 6);
199 const double ND_StatelessDofTransformation::TInv_data[24] =
202 -1.0, -1.0, 0.0, 1.0,
203 -1.0, -1.0, 1.0, 0.0,
204 1.0, 0.0, -1.0, -1.0,
205 0.0, 1.0, -1.0, -1.0,
209 const DenseTensor ND_StatelessDofTransformation
210 ::TInv(const_cast<double*>(TInv_data), 2, 2, 6);
220 , nfaces(num_tri_faces)
228 if (
nfdofs < 2) {
return; }
231 "Face orientation array is shorter than the number of faces in " 232 "ND_StatelessDofTransformation");
240 for (
int i=0; i<
nfdofs/2; i++)
252 if (
nfdofs < 2) {
return; }
255 "Face orientation array is shorter than the number of faces in " 256 "ND_StatelessDofTransformation");
264 for (
int i=0; i<
nfdofs/2; i++)
276 if (
nfdofs < 2) {
return; }
279 "Face orientation array is shorter than the number of faces in " 280 "ND_StatelessDofTransformation");
288 for (
int i=0; i<
nfdofs/2; i++)
300 if (
nfdofs < 2) {
return; }
303 "Face orientation array is shorter than the number of faces in " 304 "ND_StatelessDofTransformation");
312 for (
int i=0; i<
nfdofs/2; i++)
Data type dense matrix using column-major storage.
std::function< double(const Vector &)> f(double mass_coeff)
void TransformPrimal(const DofTransformation *ran_dof_trans, const DofTransformation *dom_dof_trans, DenseMatrix &elmat)
double p(const Vector &x, double t)
int Size() const
Return the logical size of the array.
void TransformDual(const DofTransformation *ran_dof_trans, const DofTransformation *dom_dof_trans, DenseMatrix &elmat)