| #
fbdc3dfe
|
| 01-Apr-2020 |
Toby Isaac <tisaac@cc.gatech.edu> |
Add PetscDTPDKEvalJet(), PetscDTJacobiEvalJet(), PetscDTIndexToGradedOrder(), and PetscDTGradedOrderToIndex()
The Proriol-Koordwinder-Dubiner basis (PKD) is orthonormal on the reference simplex, so
Add PetscDTPDKEvalJet(), PetscDTJacobiEvalJet(), PetscDTIndexToGradedOrder(), and PetscDTGradedOrderToIndex()
The Proriol-Koordwinder-Dubiner basis (PKD) is orthonormal on the reference simplex, so we should make it available as a stable basis of evaluation.
The recursive definition allows for a straightforward and stable calculation of all derivatives, not just first and second.
`src/dm/dt/tests/ex9.c` tests that the basis is orthonormal and compares the derivatives against the derivatives computed by tensor-product Legendre polynomials.
I thought about how to make an interface that would handle that, and I decided returning the jet in the same kind of graded representation that makes sense for multivariate polynomial spaces was a good choice.
To facilitate this, I also added indexing functions for figuring out where a tuple (either of exponents in a monomial or orders in a partial derivatives) is in this ordering.
Along the way I made PetscDTStroudConicalQuadrature() handle arbitrary dimensions instead of just 1--3.
We have a variety of dimensional orderings in PetscDT, related to how we order points of evaluation, components of the jet, and basis functions.
I thought that: - downstream users concerned with performance might prefer points of evaluation as the fastest varying index to facilitate vectorization of numerical integration, and - having basis functions as one of the outer dimensions (first or last) would simplify computing the matrix-matrix product of a [basis function x evaluation point] matrix with a Vandermonde inverse matrix
So I ordered the output dimensions of PetscDTPKDEvalJet() as [basis function, jet component (derivative), evaluation point]. I am seeking comment as to whether this is good, and whether it might be a good convention to adopt elsewhere in PetscDT.
undo extern
Fix complex type issue in dm/dt/tests/ex9.c
squashme: fix scaling in PetscDTStroudConicalQuadrature()
squashme: loosen tolerance for single precision
squashme: cast to double before printing
squashme: remove unused static functions
show more ...
|
| #
c20d7725
|
| 22-Mar-2020 |
Jed Brown <jed@jedbrown.org> |
Merge branch 'jed/promote-examples-tests-tutorials' [petsc/petsc!2610]
* jed/promote-examples-tests-tutorials: Promote examples/{tests,tutorials}/ to {tests,tutorials}/
|
| #
c4762a1b
|
| 18-Mar-2020 |
Jed Brown <jed@jedbrown.org> |
Promote examples/{tests,tutorials}/ to {tests,tutorials}/
This shortens paths and improves consistency between test target names and paths to the source and output files. Most of the work was compl
Promote examples/{tests,tutorials}/ to {tests,tutorials}/
This shortens paths and improves consistency between test target names and paths to the source and output files. Most of the work was completed by this script, followed by mild cleanup of nonconforming cases.
for makefile in `git ls-files 'src/*makefile'`; do if rg -q 'DIRS.*\bexamples\b' $makefile; then base=$(dirname $makefile) dirs=$(cd $base/examples && ls -d tests tutorials 2>/dev/null | xargs echo) perl -pi -e "s#^(DIRS.*)\bexamples\b#\1${dirs}#" $makefile git rm $base/examples/makefile for t in $dirs; do git mv $base/examples/$t $base/ perl -pi -e "s#^(LOCDIR[[:space:]]*=).*#\1 $base/$t/#" $base/$t done fi done
git grep -l -E -z 'examples/(tutorials|tests)' | xargs -0 perl -pi -e 's#examples/(tutorials|tests)#\1#g' git checkout @ \ src/docs/website/documentation/changes/ \ src/benchmarks/results/
show more ...
|