We propose a method for finding optimal quadrature/cubature rules with positive weights for parameterized functions in 1D, 2D or 3D spatial domains. The method takes as starting point the values of the functions at the Gauss points of a finite element (FE) mesh of the spatial domain for a representative sample of input parameters, and then construct an elementwise continuous orthogonal basis for such functions using the truncated Singular Value Decomposition (SVD) along with element polynomial fitting. To avoid possible memory bottlenecks in computing the SVD, we propose a Sequential Randomized SVD (SRSVD) in which the matrix is provided in a column-partitioned format, and which uses randomization to accelerate the processing of each individual block. After computing the basis functions, the method determines an exact integration rule for such functions, featuring as many points as functions, and in which the points are selected among the Gauss points of the FE mesh. Finally, the desired optimal rule is obtained by an sparsification process in which the algorithm zeroes one weight at a time while readjusting the positions and weights of the remaining points so that the constraints of the problem are satisfied. We apply this methodology to multivariate polynomials in cartesian domains to demonstrate that the method is indeed able to produce optimal rules – i.e., Gauss product rules –, and to a 2-parameters, 3D sinusoidal–exponential function to illustrate the use of the SRSVD in scenarios in which the standard SVD cannot handle the operation because of memory limitations. Lastly, the fact that the method does not require the analytical expression of the integrand functions – just their values at the FE Gauss points – makes it suitable for dealing with the so-called hyperreduction of parameterized finite element models. We exemplify this by showing its performance in the derivation of low-dimensional surrogate models in the context of the multiscale FE method. The Matlab source codes of both the CECM and the SRSVD, along with the scripts for launching the numerical tests, are openly accessible in the public repository https://github.com/Rbravo555/CECM-continuous-empirical-cubature-method.
Read full abstract