- 05 Jul, 2018 1 commit
-
-
Benjamin Storer authored
=== Science === The directory Science/ now contains files corresponding to the various functions in the now-removed Science.cpp. Filenames correspond directly with the function name, and each file contains only one functions, with a few notable exceptions. - Science/get_quads.cpp contains get_quads_x, get_quads_y, and get_quads_z - Science/compute_background_PE contains the helper function compare_pairs The global variables _quadw_x, _quadw_y, and _quadw_z are declared as extern in Science.hpp and declared in Science/compute_quadweights.cpp === Makefile === The Makefile has been modified accordingly. It now automatically detects all Science/*.cpp files and includes them in the compile recipe. The Makefile has also been tidied up a little bit by defining a variable SPINS_BASE which points to the core files.
-
- 02 Nov, 2017 1 commit
-
-
Christopher Subich authored
In the previous merge, compilation of Sorter.o went missing from the Makefile, and a typo was introduced in the gravity_current case file; each would prevent a build from finishing. These are fixed.
-
- 01 Nov, 2017 1 commit
-
-
Christopher Subich authored
This changeset adds a compile-time option on whether to include the timing code. If SPINS is compiled without TIMINGS=true, the timing code is #defined to a no-op and should not otherwise affect the performance of the software; timing_stack_report will instead print a short error message. Because this affects #defines in header files, changing from TIMINGS=true to false (or vice versa) should only be done with a 'make clean'. Not doing so could leave the timing code in an inconsistent state and result in either link-time errors (if older code calls timing code that is #defined away) or a corrupted/growing timing stack (if for example a timing_push() is compiled in but the corresponding timing_pop() is removed.)
-
- 26 Jun, 2017 1 commit
-
-
Christopher Subich authored
This commit adds stack-structured timing code, such that bits of SPINS can be instrumented with > timing_push("short name") > [... work goes here] > timing_pop() This is recursive, such that already-timed portions of the code can call the timing code to further instrument subroutines or discrete code segments, and the resulting structure follows the -dynamic- call stack. This does have the odd result that portions of the code that are re-used (namely spectral derivatives) can show up as several 'leaf' nodes in the graph. To print out the report to standard error, call > timing_stack_report() The exact format of the report should be considered tentative.
-
- 19 Apr, 2016 1 commit
-
-
Christopher Subich authored
-
- 10 Jun, 2015 1 commit
-
-
Christopher Subich authored
-
- 29 Sep, 2014 1 commit
-
-
Christopher Subich authored
The pair of Transformer.[ch]pp files contained old code built for SPINS before parallel transformation (over MPI) was fully implemented. These classes were replaced wholesale with Parformer.[ch]pp (Parallel Transformer), but the older code remained in the repository. Removing these files should not affect any active code. It will affect certain disued test cases (subject to changing #includes), but these cases themselves need more serious maintenance to update for the "gradient object" interface.
-
- 10 Sep, 2014 1 commit
-
-
Michael Dunphy authored
The case file source code is embedded into the binary at compile time. At runtime, the source code is printed to spinscase.cpp. This eliminates the need to maintain a copy of the case file alongside the binary.
-
- 02 Oct, 2013 1 commit
-
-
Christopher Subich authored
-
- 28 Dec, 2012 1 commit
-
-
Christopher Subich authored
This adds -lblas to the lapack library flag, because with the last update the toolchain on Belize is more strict about implicit library inclusions. Also, the library flags have been re-ordered in the general makefile, going (roughly) from most specific to least.
-
- 20 Aug, 2012 1 commit
-
-
Christopher Subich authored
Also included an add_option speicalization for the string parameter type. It's convenient to allow for const char * as a default value for these parameters, but that poses a problem for the templated add_option function because of the lack of automatic conversion to const string. By including a specialized overload of the template (with implementation in Options.cpp), this problem is fixed.
-
- 16 Aug, 2012 1 commit
-
-
Christopher Subich authored
This library uses boost::program_options, which provides a command-line parser that also reads key=value - style configuration files. Options.c/hpp provides a simplified interface for cases-code, which should make option-definition more natural.
-
- 14 Aug, 2012 1 commit
-
-
Christopher Subich authored
On systems using the MKL library, including the MKL (via $(LAPACK_LIB)) brings in the MKL fftw-wrapper bindings, rather than fftw itself. This is problematic on account of the fact that the MKL fftw wrapper doesn't implement the parts of the library that SPINS actually uses; this leads to an assertion failure on startup.
-
- 09 Aug, 2012 1 commit
-
-
Christopher Subich authored
Also tweaked make_deps to properly install AMD and to pick up on SYSTEM_CFLAGS (necessary for 32/64-bit switch on plata). Consequently, added SYSTEM_CXXFLAGS since -Wno-deprecated is inappropriate for pure-C
-
- 08 Aug, 2012 3 commits
-
-
Christopher Subich authored
The MPICXX flag is necessary because the blitz configure script does not properly deal with the sharcnet 'compile' scripting command; since it does not actually contain 'icc' in the *NAME* of the command, the configure seems to default to a blitz/gnu/bzconfig.h scheme -- which is then not found during bona fide compilation. This is probably an underlying bug in the blitz build system.
-
Christopher Subich authored
bugs preventing make_deps from working properly with library paths
-
Christopher Subich authored
in systems/ directory
-
- 30 Jul, 2012 1 commit
-
-
Christopher Subich authored
This is the initial commit of SPINS to a git repository, coming from an essentially unmanaged environment. While this is a *complete* archive, this is probably not the most useful form for development going forward. Notably, the future management should be: 1) Pare down the case files 2) Establish branches for individual users. Not as a long-term goal, but instead to keep user-specific case files from lingering in the main repository long after their use is obsolete. 2b) Establish semipermanent branches for typical users. A release branch should include the basic documentation cases, a benchmark case should include benchmarking cases, and there are probably others that aren't coming to mind now. 3) Add helpful MATLAB processing scripts to the repository. Too much of that is ad-hoc now, completely unmanaged. 4) For papers/etc, establish tagged versions.
-