Refer to: http://www.sam.math.ethz.ch/alsvid-uq Version history: ALSVID-UQ-2.0: - With ML=-1 the program reads the ML.txt file where the M[l] for every level is given. Allows to make several runs with different number of samples without recompiling. - Increase of the number of primes used for the initialization of the random number generator. - new equation:wave, with all corresponding fluxes, materials, models and solvers - material:const, logn-kl, logu-kl, logn-fft (highly optimized logn-field generation using FFT) - random fluxes were introduced for all equations; some equations have only default deterministic flux, called by: 'flux:det' - filtering out default alternatives ("none"-type) when generating infolines in plots - stats:mean-var, threshold-sw - for evaluation of various statistical events, rather than just estimates of mean and variance - \sigma_K estimation is provided in plots to make sure paramater K is large enough - implementation of Buckley-Leverett (oil recovery) equations, i.e. equation:bl, and random perturbed flux for them - bugfix for serial job submission on clusters (with job schedulers) - "gap problem" in the plots fixed - space:o2central - provided 2nd order accurate reconstruction without flux limiters (used for smooth problems) - calc_time_step() moved to equation.cpp; calc_max_speed() is now sufficient for equation_*.cpp and flux_*.cpp files - HISTOGRAMS added, parallel routines also written - most of routines from mlmc_main.cpp were transfered to mlmc.cpp and the appropriate header file mlmc.h with comments - saver.h split properly into saver.h and saver.cpp, comments added - alternative load balancing algorithm LOAD_BALANCING_TYPE=2. If not specified otherwise, then, automatically: - LOAD_BALANCING_TYPE=2 is chosen for DOWNSAMPLE=0 - LOAD_BALANCING_TYPE=1 is chosen for DOWNSAMPLE=1 - DOWNSAMPLE=1 and LOAD_BALANCING_TYPE=2 are incompatible! (SAVED samples need to be TRANSFERED between cores, which is INEFFICIENT and NOT IMPLEMENTED) - DOWNSAMPLE=0 and LOAD_BALANCING_TYPE=1 is fine, but results in LOSS OF EFFICIENCY when finest levels require most of the CPU time - SKIP_IO_WTIME renamed to RAW_SIMULATION_WTIME - NXl_FULL, NYl_FULL, NZl_FULL introduced - FFT_MATERIAL=1 generalized to BUFFERED_MATERIAL=1 - '%' operator on typedef 'int' was found to return negative values; this operator was replaces with 'mod', which is defined in 'numtypes.h' - generation of the boundary conditions file 'bc.cpp' moved from 'make.py' to 'make_bc.py' - generation of the boundary conditions for shallow water equations implemented through addition function 'bc_fix()' in 'equation.h' - routine names 'get_b()' and 'get_c()' replaced by more consistent names 'b' and 'c' - runtimes are printed in HH:MM:SS format to std::cout - eno.* moved to space_o2eno-util.* - ec_util.* moved to solver_ec-util.* - hll_util.h moved to solver_hll-util.h; hll_util-*.cpp moved to solver_hll-util-*.cpp - solver-wave:fdm-central, space:o1fdm, space:o3norec, time:o3 - new alternatives for verifying dispersive effects in wave equations with highly oscillatory coefficients - '-a' directive for the make.py script fixed - exeption with short explanation is displayed when incompatible options are requested - flux, solver and model are now equation-dependent - equation:burgers extended to multi-d - model:burgers_square-circle added - numtypes.h split into numtypes.h and volumes.h - structures_*.h simplified: now they inherit operator overloading from Base structures, defined in structures-base.h - default values for '-walltime', '-memory' and '-ptile' can be specified in 'local.py' - script option '-v' added: displays full compiler output, parameters and job submission - EXP_LOG renamed to NUMERICAL_STABILIZATION - additional solver:fdm-central and space:o1fdm, space:o2central, space:o3norec for wave equation - new variables INITIAL_DATA_OFFSET, INITIAL_DATA_SCALING - topography:wl,wl2d removed - "none" alternatives removed - default 'material' changed to 'const' - detault 'topography' changed to 'flat' - higher order quadrature added - model_init() modified to use quadrature of the required order - init_cell() replaced by initial_data() - additional parameter SMOOTH_SOLUTION - additional material:riemann - additional flux:viscosity and flux:permeability - model-wave:shock renamed to model-wave:riemann - equation:oil renamed to bl - equation:wave-fe removed - material:kl(2d) renamed to logn-kl(2d) - additional material:logu-kl - 2s > d+1 allowed only in multi:single mode - primitive black and white plotting implemented - insanely large number of other small bugfixes - CPU clock timers removed for multi:mpi mode - MPI efficiency is now also measured separately for DDM, MC, MLMC and load balancing - RAW_SIMULATION_WTIME parameter removed - 'mpi_scaling' renamed to 'mpi_efficiency' - 'nodes' renamed to 'cores' - bugfix in number of open files for 'combine.py' (now warning is displayed with the maximal allowed number of MULTI[XYZ], depending on the file system) ALSVID-UQ-1.6: - entropy stable 2nd order reconstruction 'minmod' was renamed to 'ecminmod' - entropy stable 2nd order reconstruction 'tecno' added - entropy stable solvers 'es-rusanov' and 'es-roe' were optimized - local configuration file for profiling with CrayPat on Cray XE/XT architectures: palu-craypat-local.py - isotropically tensorized bottom topography 'hr2d' added - hierarchical hat basis representations in 1D (hr) and 2D (hr2d) have exponentially decaying coefficients ALSVID-UQ-1.5: - bugfixes in shallow water routines - executables for cluster job submission follow are stored under DATA_PATH ALSVID-UQ-1.4: - additional bottom topographies: hierarchical hat basis representations in 1D (hr) and 2D (hr2d) - implementation of anti-aliasing for 'hr' and 'hr2d' bottom topographies via default option ANTI_ALIASING=1 - WRITE_DATAFILES option - custom DATA_PATH option - more efficient parallel random number generation (avoids scattering, broadcasting, etc.) - default load balancing type is set to LOAD_BALANCING_TYPE=1 - alternative random number generators: well512a, well19937a, mt19937, lcg - SKIP_IO_WTIME option - optimization for computation of bottom topography in wavelet series representation (for shallow water equations) - optimization for simulations with time-independent bottom topography - bugfix for the default choice of the bottom topography - lots of other small bugfixes ALSVID-UQ-1.3: - cosmetic fixes in error and scaling plotting scripts - alternative load balancing algorithm LOAD_BALANCING_TYPE=2. If not specified otherwise, then, automatically: - LOAD_BALANCING_TYPE=2 is chosen for DOWNSAMPLE=0 - LOAD_BALANCING_TYPE=1 is chosen for DOWNSAMPLE=1 - additional bottom topographies: Haar wavelet representations in 1D (wl) and 2D (wl2d) - infolines in plots includes cluster information on which the simulation was run - strong linear scaling verified up to 1023 cores with 97% efficiency ALSVID-UQ-1.2: - extensions and optimization of conservation laws: Wave Equation - ESF: height positivity preserving Roe-type energy stable (ES) solver for Shallow Water equations - 3D visualization tools via MayaVi - additional bottom topographies: Karhunen-Loeve expansions in 1D (kl) and 2D (kl2d) - modularization of topographies - portation to Cray XE6 (Palu) on CSCS - Shallow Water models: steadystate, dambreak, lake-at-rest (+ 2D versions steadystate2d, dambreak2d) ALSVID-UQ-1.1: - extensions and optimization of conservation laws: Shallow Water, Burgers, Euler and Linear Advection - normal distribution - slicing of 2D plots to investigate smoothness of 2D solutions - Shallow Water Equations; models: dambreak, tsunami; topographies: flat, bump, bump2d, shore (+ their random versions); solvers: HLL, EC, ES. - sample offsetting (SAMPLES_OFFSET) for fault tolerance analysis ALSVID-UQ-1.0: - random initial data with any number of uniform stochastic drivers - parallelisation over MLMC levels, MC samples and domain decomposition - posibility to observe time evolution in rendered movies - lots of stochastic 1D and 2D models - WELL512a random number generator - "downsampling" version of MLMC also available