Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
301 commits
Select commit Hold shift + click to select a range
a776569
bug fixing, typo in binom
Jul 15, 2025
66c8936
renamed static vars
Jul 15, 2025
b0bf049
add number of dof to mask_coeffs
Jul 15, 2025
737f587
add resize to vec of mask_coeffs
Jul 15, 2025
94ef58c
add mask coeffs to mst class
Jul 15, 2025
961a965
add mask headers
Jul 15, 2025
68202a6
testing of mra cstr
Jul 15, 2025
5a069ed
add first version of multiscale transformation
Jul 15, 2025
763325d
add example for testing new multiscale version
Jul 15, 2025
5ca5573
add static for shape
Jul 17, 2025
29392fe
add function to get point order for a certain level
Jul 17, 2025
9831617
add dummy for quadrature
Jul 17, 2025
e5a4fb8
add function to project initial data
Jul 17, 2025
08f9157
extended example for new initialization
Jul 17, 2025
d264071
created a new example file for new mra
Jul 17, 2025
5114dc7
debugging comments
Jul 17, 2025
f6d1c5c
rewrote size function of lmi_map
Jul 18, 2025
fe062c9
fixed bug in triangle order
Jul 18, 2025
14563c3
add new test function for debugging
Jul 18, 2025
02d0830
fixed some headers
Jul 18, 2025
a44af58
moved quadrature pre alloc to cstr
Jul 18, 2025
4d4a5ac
cleaning of project function
Jul 18, 2025
04f4f53
moved position of init funciton
Jul 18, 2025
7e9c947
some debugging tests
Jul 18, 2025
d3de92b
add forest + element types
Jul 18, 2025
78a1842
commenting some stuff
Jul 18, 2025
2f47af6
lmi_map + lmi_list is now part of forest
Jul 18, 2025
4ad96b4
modified example for new forest-structure
Jul 18, 2025
f2cecbc
add simple plotting example
Jul 18, 2025
42bc219
add forest + lmi_map to mra class
Jul 21, 2025
3d2c403
wrote getter to access forest/element_data/lmi_map
Jul 21, 2025
50c8fda
new interfaces without using forest
Jul 21, 2025
c78bfa5
add cleanup method
Jul 21, 2025
ec6acc3
using new interface to mra
Jul 21, 2025
a314b95
fixed plotter example
Jul 22, 2025
5cfefdd
overload get by using lmi
Jul 22, 2025
eed2eb5
fixed bug in get level
Jul 22, 2025
d1e6b97
add lmi concept
Jul 22, 2025
91efb17
add lmi concept to get()
Jul 22, 2025
2b711a2
overload insert/erase with lmi_type
Jul 22, 2025
db2ce31
add some docu for erase/insert
Jul 22, 2025
c5217bf
replaced insert method using only lmi
Jul 22, 2025
f2e8b80
removed plot_level debugging stuff
Jul 22, 2025
d1ebff0
add contains/find with lmi
Jul 22, 2025
98765fb
add function to read lmis from forest_data
Jul 22, 2025
85e90c3
replaced lambda function to read lmis from a forest
Jul 22, 2025
735ca0b
add some functions to get coefficients in the system case
Jul 23, 2025
12e0591
more general initial projection (system case)
Jul 23, 2025
5135347
get_forest_data is now a free function
Jul 23, 2025
f347ffc
add mean_val function
Jul 23, 2025
6efbce9
rewrote plotting example with new mean_val + general version
Jul 23, 2025
661f4d5
fixed indexing bug
Jul 23, 2025
d005171
extended example for multiple variables
Jul 23, 2025
eed5c98
moved dg_idx/detail_idx to data_per_element
Jul 23, 2025
5f0bcc7
comments
Jul 23, 2025
3dbe469
renamed plotting variable
Jul 23, 2025
a5f6588
some cleaning
Jul 23, 2025
4489902
extended plot routine to plot each variable
Jul 23, 2025
f598d65
plotting routine only needs forest
Jul 23, 2025
ea1fbaa
add lu_solve for vecs
Jul 31, 2025
7c4024b
add new class for dg_basis
Jul 31, 2025
9d241e5
refactored projection with new DG_basis
Jul 31, 2025
85a1159
add basis evaluation
Jul 31, 2025
a875efe
replaced basis evaluation with method from DG_basis
Jul 31, 2025
ccad7c8
some cleaning + add todos
Jul 31, 2025
13632eb
add missing headers
Aug 1, 2025
e35acbf
removed old quadrature
Aug 1, 2025
d0080d0
commented eval interface
Aug 1, 2025
813a710
commented default cstr
Aug 1, 2025
d9be1fc
add two_scale_transformation
Aug 1, 2025
5107ef9
add simple example for testing two scale transformation
Aug 1, 2025
d803a85
changed element_data to wavelet_free method
Aug 1, 2025
52a4787
two_scale_trafo returns an element_t with its details
Aug 1, 2025
4e45d61
add convergence order gamma
Aug 1, 2025
67df2be
add hard thresholding
Aug 1, 2025
5691352
extended example with hard thresholding
Aug 1, 2025
12ad687
renaming max_level to maximum_level
Aug 4, 2025
40d178e
got rid of lmi_map inside mra class
Aug 4, 2025
827efc6
two_scale and hard_thresholding expect an lmi instead of t8_code loca…
Aug 4, 2025
525e970
changed return value of two-scale trafo
Aug 4, 2025
2d0e3bd
variable renaming in hard thresholding
Aug 4, 2025
24e376d
fixed new destructor
Aug 4, 2025
1964e4b
add first attempt for coarsening
Aug 4, 2025
318700a
add current refinement level
Aug 4, 2025
45d769e
add function to set lmi in user_data
Aug 4, 2025
68887cb
add comment
Aug 4, 2025
e2b17e1
cleaning
Aug 4, 2025
3da3edd
replaced callbacks by lambda magic with static functions
Aug 4, 2025
b7ea668
testing coarsening
Aug 4, 2025
6e4a3d0
fixed bug
Aug 4, 2025
dae688a
renaming/cleaning
Aug 4, 2025
82c4ac8
example returns an array
Aug 4, 2025
7ef2134
coarsening on all levels
Aug 4, 2025
1f537e8
cleaning
Aug 4, 2025
9a73738
get rid of significant member in element data
Aug 4, 2025
5d0c63b
renaming
Aug 4, 2025
41c2f29
refactoring hard_thresholding
Aug 4, 2025
adf8a21
add triangle order to element data in initializization
Aug 5, 2025
1d89cdd
removed old multiscale
Aug 5, 2025
181c647
fixed thresholding bug
Aug 5, 2025
06ee98b
fixed thresholding value
Aug 5, 2025
def2855
changed example
Aug 5, 2025
9b6c73f
renaming of cmesh
Aug 5, 2025
b27feb8
add l_shape_mesh
Aug 5, 2025
a7a791c
add new test funciton
Aug 5, 2025
70e1060
add more test functions
Aug 5, 2025
659744b
add prototypes for mean_val
Aug 5, 2025
c1dde8e
add scaling factor for thresholding
Aug 5, 2025
3b4f874
calling scaling factor for thresholding
Aug 5, 2025
f1500a2
refactored hard thresholding
Aug 5, 2025
960f849
removed old two_scale examle
Aug 5, 2025
a5d3182
some comments
Aug 5, 2025
ce1b884
local norm detail norm has its own function
Aug 5, 2025
32a00bf
started hartens prediction
Aug 5, 2025
afa3968
refactored two_scale + hard_thresholding
Aug 7, 2025
f686429
add balanced variable
Aug 7, 2025
53843e2
add refinement in iterate_replace
Aug 7, 2025
0ab23bf
add balancing in coarsening
Aug 7, 2025
5c76029
testing balancing
Aug 7, 2025
566690c
refactored local_threshold_value
Aug 7, 2025
eea1115
wrote function to get neigbors (+ small sanity check)
Aug 7, 2025
6777fd8
got rid of old local_threshold_value
Aug 7, 2025
ed0c45d
add levelindex_set
Oct 16, 2025
6e97f5e
add hash function for lmi
Oct 16, 2025
6c7eddb
lmi_map now uses levelmultiindex-template as Key-Type
Oct 16, 2025
93d8aa4
add constexpr functions for shape -> DIM/NUM_CHILDREN
Oct 16, 2025
efad568
lmi_map now takes two template parameter
Oct 16, 2025
cbfeacc
adding volumen and refactored lmi_type
Nov 13, 2025
12b8640
formatter
Nov 13, 2025
890e776
adding level access to map
Nov 13, 2025
011226c
fixed jth child
Nov 13, 2025
4aa127d
formatter
Nov 13, 2025
c064ceb
testing of mask_coeffs transposing
Nov 13, 2025
b039e6c
formatter
Nov 13, 2025
fac3de3
old warning comment
Nov 13, 2025
bdc7001
old mra for debugging purpose
Nov 13, 2025
94d0f08
add vtk plotter for polynomial data
Nov 13, 2025
898ca00
old subdividing vtk plotter
Nov 13, 2025
f922931
add levelindex_set
Nov 13, 2025
f85d6be
formatting
Nov 13, 2025
a93be42
adding additional data structure
Nov 13, 2025
f88ca42
debugging output
Nov 13, 2025
3a9878b
add new multiscale transformation
Nov 13, 2025
5862739
add new coarsening_callback
Nov 13, 2025
7ce3779
new iterate_replace_callback
Nov 13, 2025
6e325b7
new coarsening approach
Nov 13, 2025
201b963
new refinement approach
Nov 13, 2025
5e67e81
new way to calculate local norm
Nov 13, 2025
eb0f07d
misc stuff (has to be refactored anyways)
Nov 13, 2025
128f990
vtk testing example
Nov 13, 2025
4627c00
add new methods for debugging and new vtk plotter
Nov 13, 2025
46dad5a
testing for base eval functions
Nov 13, 2025
a09ec03
add new examples
Nov 13, 2025
4f835f6
add new class for cartesian elements
Nov 14, 2025
74d59ea
add 1d legendre basis for cartesian elements
Nov 14, 2025
469ff67
added cartesian trafo for ref/deref
Nov 14, 2025
b7cbf88
add functions for tensor evaluation on multiindices
Nov 14, 2025
22ec63a
add quadrature rules for intervals
Nov 14, 2025
52d8235
add compute_dof functions for different shapes
Nov 14, 2025
8b4a1f3
add dg_basis for cartesian grids
Nov 14, 2025
f804170
add vtk-plotter for quads
Nov 14, 2025
b10e7a5
add dummy mra for cartesian
Nov 14, 2025
9641097
add lmis for quads
Nov 14, 2025
fa479b7
add new classes and files
Nov 14, 2025
d619412
testing with plotter/imst
Nov 14, 2025
3209154
verify cartesian projection
Nov 14, 2025
9754ef0
add new examples
Nov 14, 2025
7deb9bd
just added some comments
Nov 27, 2025
5d29e99
fixed min/max for cartesian
Nov 27, 2025
2e6affc
adding some hard coded mask coeffs for quads
Nov 27, 2025
757fceb
added mask coeffs for cartesian elements
Nov 27, 2025
16e4492
some other hard coded mask coeffs
Nov 27, 2025
34e5e44
reordering of pset in cartesian 2d
Nov 27, 2025
2148402
some debugging commands
Nov 27, 2025
aa9bef8
adding some working coarsening for quads
Nov 27, 2025
9a0be3a
adding vtk plotter for quads
Nov 27, 2025
e936b9d
adding coarsening example for quads
Nov 27, 2025
0cd8d15
adding new example function
Nov 27, 2025
d145d3b
adding coarsening example
Nov 27, 2025
75d309c
adding void pointer for mra
Nov 28, 2025
3fc24ae
adding mra base class for crtp (-> static polymorphism)
Nov 28, 2025
c6d0238
policy-based multiscaletransformation
Nov 28, 2025
62719dc
adding specialization for triangles
Nov 28, 2025
0a623c6
adding specification for quads
Nov 28, 2025
7049229
add adaptation class for t8code + mst
Nov 28, 2025
bce7eca
refactor plotter for triangles/quads
Nov 28, 2025
b199c95
example for new structure
Nov 28, 2025
1571201
add new example
Nov 28, 2025
2b5428e
using is_cartesian for LINE/QUAD/HEX
Nov 28, 2025
d03426b
removed adapt function
Nov 28, 2025
fe0253f
fixed ordering in min/max vertices
Nov 28, 2025
bc76fd3
try to fix 3D simulations...still not working properly (with order > 1)
Nov 28, 2025
8bbef7b
adding some examples for 2D/3D
Nov 28, 2025
5ca9abc
add missing files
Feb 10, 2026
dd5d136
removed some old files
Feb 10, 2026
a0cf9f1
fixed typos for debug mode
Feb 10, 2026
8012d8c
fixed bug in coarening step
Feb 10, 2026
6cb7944
initial data can additionally be called via c-arrays
Feb 10, 2026
6738ff6
add new example using c-arrays
Feb 10, 2026
0738be1
default init of vol
Jun 11, 2026
9840d66
throws is lmi is missing in mpa
Jun 11, 2026
6dc939c
set mra_instance and current ref. level to user_data
Jun 11, 2026
b96d66a
unref only if forest is not nullptr
Jun 11, 2026
6bd3456
compute details of leaf without modifying grid data
Jun 11, 2026
b3adfad
adding hartens prediction
Jun 11, 2026
0742fed
perform two-scale trafo on complete family
Jun 11, 2026
c680621
refactored adapation routines
Jun 11, 2026
0a07b5e
changed example
Jun 11, 2026
255c7b1
some unittests of mra
Jun 11, 2026
27a35d4
fixed bug with staling entries
Jun 11, 2026
042c1e8
made gtest static dep
Jun 11, 2026
70848ef
removed old files
Jun 11, 2026
b192454
add .cache dir
Jun 11, 2026
f48bdc7
removed old files
Jun 11, 2026
36d1f5a
changed some comments
Jun 11, 2026
c727c35
removed old examples
Jun 11, 2026
0f26a70
renaming of old function names
Jun 11, 2026
b372383
removed .cache
Jun 11, 2026
cd9cd76
removed debug outputs
Jun 11, 2026
552646d
removed current refinement level
Jun 11, 2026
d063288
removed current refinement level
Jun 11, 2026
c0e4615
small refactoring -> cleaning up
Jun 11, 2026
1380d4b
moved scaled detail norm
Jun 11, 2026
34bf1ce
adding coarsening/refinement criteria for more abstract interface
Jun 11, 2026
16c9f5b
replace coarse/refine by abstract interface
Jun 11, 2026
bf741cc
add test for new criteria interface
Jun 11, 2026
fa9278c
new criteria files
Jun 11, 2026
2ca43fa
new structure of the mra module
Jun 11, 2026
0025a55
better docu
Jun 11, 2026
2987d13
dunavant/quadrature are now static
Jun 11, 2026
f6aac48
thresholding/convergence are now in criterias
Jun 11, 2026
fee5acf
simplified cstr
Jun 11, 2026
a1e923c
updated docu
Jun 11, 2026
9b10b83
updated test
Jun 11, 2026
bea551c
updated example
Jun 11, 2026
869e05c
adding bottom-top strat for init
Jun 11, 2026
f0680ce
refactor projection on leaf
Jun 11, 2026
9c0e215
more docu
Jun 11, 2026
eb334f7
testing bottom-top strat
Jun 11, 2026
1d89314
changed example
Jun 11, 2026
1d25f80
simplified output
Jun 11, 2026
33361aa
fixed 3d
Jun 11, 2026
2ab7b8d
proper 3d plots
Jun 11, 2026
43f6e45
add new example with 2 states
Jun 12, 2026
3638659
added balance method
Jun 12, 2026
316ce25
declared balancing from base class
Jun 12, 2026
8d5cb52
add balance to first example
Jun 12, 2026
d50e9dd
changed floor example
Jun 12, 2026
296d145
removed refine in triangle vs. quad
Jun 12, 2026
b77dd9a
add jump heuristic in initial data
Jun 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ build/

.deps/
.libs/
.cache/

Makefile
Makefile.in
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@
path = sc
url = https://github.com/cburstedde/libsc.git
ignore = dirty
[submodule "thirdparty/unordered_dense"]
path = thirdparty/unordered_dense
url = https://github.com/martinus/unordered_dense.git
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ project(
LANGUAGES C CXX
VERSION "${T8CODE_VERSION_MAJOR}.${T8CODE_VERSION_MINOR}.${T8CODE_VERSION_PATCH}"
)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

include( GNUInstallDirs)
include( CTest )
Expand All @@ -52,6 +54,7 @@ option( T8CODE_BUILD_FORTRAN_INTERFACE "Build t8code's Fortran interface" OFF )

option( T8CODE_ENABLE_MPI "Enable t8code's features which rely on MPI" ON )
option( T8CODE_ENABLE_VTK "Enable t8code's features which rely on VTK" OFF )
option( T8CODE_ENABLE_MRA "Enable t8code's features which rely on MRA" OFF )
option( T8CODE_ENABLE_OCC "Enable t8code's features which rely on OpenCASCADE" OFF )
option( T8CODE_ENABLE_NETCDF "Enable t8code's features which rely on netCDF" OFF )

Expand Down Expand Up @@ -106,6 +109,13 @@ if( T8CODE_ENABLE_VTK )
endif (VTK_FOUND)
endif( T8CODE_ENABLE_VTK )

if( T8CODE_ENABLE_MRA )
find_package(GSL REQUIRED)
if(GSL_FOUND)
message("Found GSL")
endif(GSL_FOUND)
endif( T8CODE_ENABLE_MRA )

if( T8CODE_ENABLE_OCC )
find_package( OpenCASCADE REQUIRED COMPONENTS
TKBO TKPrim TKTopAlgo
Expand Down
68 changes: 68 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,74 @@ if( T8CODE_ENABLE_OCC )
)
endif()

if( T8CODE_ENABLE_MRA )
target_compile_definitions( T8 PUBLIC T8_ENABLE_MRA )

# Add GSL library
target_link_libraries( T8 PUBLIC GSL::gsl GSL::gslcblas )

# Add unordered_dense library https://github.com/martinus/unordered_dense
set( UNORDERED_DENSE_DIR "${CMAKE_SOURCE_DIR}/thirdparty/unordered_dense/include" )

target_include_directories(T8 PUBLIC
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
$<BUILD_INTERFACE:${UNORDERED_DENSE_DIR}>
$<INSTALL_INTERFACE:include>
)

target_sources( T8 PRIVATE
t8_mra/num/basis_functions.cxx
t8_mra/num/dunavant.cxx
)

install( FILES
t8_mra/t8_mra.hxx
DESTINATION include/t8_mra )

install( FILES
t8_mra/core/base.hxx
t8_mra/core/adaptation.hxx
t8_mra/core/mst.hxx
DESTINATION include/t8_mra/core )

install( FILES
t8_mra/io/vtk.hxx
DESTINATION include/t8_mra/io )

install( FILES
t8_mra/shapes/triangle.hxx
t8_mra/shapes/cartesian.hxx
DESTINATION include/t8_mra/shapes )

install( FILES
t8_mra/criteria/coarsening_criterion.hxx
t8_mra/criteria/refinement_criterion.hxx
DESTINATION include/t8_mra/criteria )

install( FILES
t8_mra/data/element_data.hxx
t8_mra/data/levelindex_map.hxx
t8_mra/data/levelindex_set.hxx
t8_mra/data/levelmultiindex.hxx
t8_mra/data/triangle_order.hxx
DESTINATION include/t8_mra/data )

install( FILES
t8_mra/num/basis_functions.hxx
t8_mra/num/dg_basis.hxx
t8_mra/num/dunavant.hxx
t8_mra/num/geometry.hxx
t8_mra/num/legendre_basis.hxx
t8_mra/num/mask_coefficients.hxx
t8_mra/num/mask_coefficients_compute.hxx
t8_mra/num/mask_coefficients_triangle.hxx
t8_mra/num/mat.hxx
t8_mra/num/multiindex.hxx
t8_mra/num/quadrature.hxx
t8_mra/num/vec.hxx
DESTINATION include/t8_mra/num )
endif()

if( T8CODE_BUILD_PEDANTIC )
target_compile_options( T8 PUBLIC -pedantic )
set (T8_CXXFLAGS "${T8_CXXFLAGS} -Wpedantic")
Expand Down
Loading