40 Eigen::MatrixXd& eigenvectors)
43 scalarField eigenValues(eigenvalues.size());
45 for (label
i = 0;
i < eigenvalues.size();
i++)
47 eigenValues[
i] = eigenvalues(
i);
50 sortedOrder(eigenValues, order);
51 scalarField eigenValues2(eigenValues);
53 for (label
i = 0;
i < order.size();
i++)
55 eigenvalues(
i) = eigenValues[order[order.size() -
i - 1]];
58 Eigen::MatrixXd eigenvectors2 = eigenvectors;
60 for (label
i = 0;
i < eigenvalues.size();
i++)
62 for (label k = 0; k < eigenvalues.size(); k++)
64 eigenvectors2(
i, k) = eigenvectors(k, order[order.size() -
i - 1]);
68 eigenvectors = eigenvectors2;
72Eigen::VectorXd
ExpSpaced(
double first,
double last,
int n)
74 Eigen::VectorXd vector(n);
75 double m = (double) 1 / (n * 1.0 - 1);
76 double quotient = std::pow(last / first, m);
79 for (
int i = 1;
i < n;
i++)
81 vector(
i) = vector(
i - 1) * quotient;
88Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>
91 const Eigen::Tensor<T, 3 >& c,
92 const Eigen::Matrix<T, Eigen::Dynamic, 1>& a)
94 int prodDim = c.dimension(0);
95 Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> prod;
96 prod.resize(prodDim, 1);
98 for (
int i = 0;
i < prodDim;
i++)
100 prod(
i, 0) =
g.transpose() *
101 SliceFromTensor(c, 0,
i) * a;
107template Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
109 const Eigen::Matrix<double, Eigen::Dynamic, 1>&
g,
110 const Eigen::Tensor<double, 3 >& c,
111 const Eigen::Matrix<double, Eigen::Dynamic, 1>& a);
113template Eigen::Matrix<int, Eigen::Dynamic, Eigen::Dynamic>
115 const Eigen::Matrix<int, Eigen::Dynamic, 1>&
g,
const Eigen::Tensor<int, 3 >& c,
116 const Eigen::Matrix<int, Eigen::Dynamic, 1>& a);
118template Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic>
120 const Eigen::Matrix<float, Eigen::Dynamic, 1>&
g,
121 const Eigen::Tensor<float, 3 >& c,
122 const Eigen::Matrix<float, Eigen::Dynamic, 1>& a);
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > vectorTensorProduct(const Eigen::Matrix< T, Eigen::Dynamic, 1 > &g, const Eigen::Tensor< T, 3 > &c, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &a)
A function that computes the product of g.T c a, where c is a third dim tensor.