This repo initially meant for analysis internal of DDC. I turned this into ddc-adaptive-interpolation.
It is for creating an interpolation. Let me provide an example :
strcut X_dim {
static constexpr bool is_uniform = true;
static constexpr int s_degree = 3;
};
struct f0{
using X = X_dim;
KOKKOS_INLINE_FUNCTION Chunk operator()(CoordX coordx) const{
//your initial function value
}
};
Interpolation_func<IndxRangeDim, X, f0> builder(field);
...
Here you can provide initial function value by your struct. The builder(internally) will try to solve spline coefficient(Solved using Schur complement). Then you can try on arbitrary mesh point using evaluator. You can do it simultaneously using while or time loops in your simulation.
If you want to install ddc with version @0.15.0 then follow this command:
bash ./prepare.shThis library(though not ready yet) entirely based on ddc(discrete domain computation library). By making this repo, I simultaneously tried to improve on their site, here are this List of contributions that have been made to the UPSTREAM repo ddc: This is here, for me, to track what has been changed through my end.
ddc:
- add static_assert for MemorySpace
- Fix: Safely return max() for missing tags in TypeSeq
- Feature: Add profiling label support to SplineBuilder(closed)
- clamp periodic coordinate to prevent evaluation at rmax(closed)
- improvemnt in splinebuilder::check_valid_grid in point>current_cell_end_idx(closed)
- Improvement in GrevilleInterpolationPoints
(Note: This is in initial phase i will add thorough file in ddc in future.)
Thanks for your patience.
Reference : ddc(discrete domain library)
I will eventually make this repo into AMR(Adaptive Mesh Refinement), any contribution welcomed here. And no AI is used creating this repo.
Thank you.