Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
f6f2f3f
Add inner/outer boundary restrictions for SL solution to prevent unde…
Jul 18, 2025
8e59140
Update test codes to handle high-order Ylm evaluation using prenormal…
Jul 21, 2025
d9dde44
Add surface output to checkcoefs2; fix constexpr problem
Jul 21, 2025
062fa33
Remove debug lines; only print mismatch info to root process
Jul 22, 2025
3ed1ce6
Remove unused variables; tweak DiskEval parameters
Jul 22, 2025
9a58fa6
Update utils/ICs/DiskEval.H
michael-petersen Jul 23, 2025
35e3f1d
Update utils/ICs/DiskEval.H
michael-petersen Jul 23, 2025
915759d
Update exputil/SLGridMP2.cc
michael-petersen Jul 23, 2025
6ccf74d
Update utils/ICs/check_coefs2.cc
The9Cat Jul 23, 2025
16b4440
tid not needed for verbose progress report header
Jul 23, 2025
6c8f9db
For testing Doxygen integration into EXP-docs
Jul 23, 2025
149e4a8
Test YAMl documentation in class header
Jul 25, 2025
7c3f27a
Check \param rather than @param
Jul 25, 2025
bbb4b69
Return to @ rather than \ notation since it doesn't seem to matter
Jul 25, 2025
9b78e24
Updated YAML parameter documentaion for AxisymmetricBasis, Cube, Cyli…
Jul 25, 2025
5d97232
Merge branch 'devel' into SLboundaries
The9Cat Jul 28, 2025
ad96308
Comment change only
Jul 29, 2025
ef47f84
Merge branch 'SLboundaries' of github.com:EXP-code/EXP into SLboundaries
Jul 29, 2025
cb6c7c1
Merge branch 'devel' of github.com:EXP-code/EXP into devel
Jul 29, 2025
c57f653
Preliminary implementation of rotation matrix enhancement
Jul 29, 2025
684f686
Update utils/PhaseSpace/KDE2d.cc
The9Cat Jul 29, 2025
d7f5adf
Updated from std::vector<double> to Eigen::Vector3d for center parameter
Jul 29, 2025
c2c21ed
Merge branch 'RotationMatrix' of github.com:EXP-code/EXP into Rotatio…
Jul 29, 2025
3f6e5aa
Exploit scalar*vector algebra in Eigen
Jul 29, 2025
a2547bc
Work around for HighFive std::vector and Eigen::Vector dimensionality…
Jul 30, 2025
15ecc68
Added a comment on the Center autodeduction workaround for HighFive
Jul 30, 2025
6d876e7
Ignore dimensionality when reading center vector
Jul 31, 2025
0fa582d
Use different variable names for total variance/power and normalizati…
Jul 31, 2025
6ece414
Update exputil/SLGridMP2.cc
The9Cat Jul 31, 2025
cd36378
Update expui/expMSSA.cc
The9Cat Jul 31, 2025
b89ea42
Update expui/expMSSA.cc
The9Cat Jul 31, 2025
e824588
Remove debug output to stdout
Aug 1, 2025
6913257
Wrong type in HighFive attribute creation
Aug 6, 2025
e5d8cc9
initialize() must come before non-root nodes return for correct param…
Aug 6, 2025
596b20d
Update exputil/SLGridMP2.cc
The9Cat Aug 6, 2025
daa4d5b
Update exputil/SLGridMP2.cc
The9Cat Aug 6, 2025
86fde7a
Enable parallel reading from a Tipsy file
Aug 7, 2025
38bae87
Update exputil/SLGridMP2.cc
The9Cat Aug 7, 2025
b4379ba
Update exputil/SLGridMP2.cc
The9Cat Aug 7, 2025
56c71ca
Need to reposition file pointer after reading each particle type
Aug 7, 2025
91afa01
Merge branch 'parallelTipsy' of github.com:EXP-code/EXP into parallel…
Aug 7, 2025
1291db3
Promote stream arithmetic to unsigned long
Aug 7, 2025
40ee042
Add losts more comments [no CI]
Aug 7, 2025
0bd7607
Added more explanation for setMPI()
Aug 8, 2025
5e2d557
Save native Tipsy particle offsets per node for creating unique seque…
Aug 10, 2025
85945c8
Assign EXP index from native Tipsy beginning with 1
Aug 10, 2025
4eaa424
Typo in Centering routine; missing count variable update
Aug 10, 2025
9db73e1
Updated Bonsai reader variant to v2
Aug 13, 2025
83ef0bd
Change Tipsy tag from ChaNGa to Bonsai1; since I can't figure out wha…
Aug 13, 2025
f24d04c
Add factory member to BiorthBasis
Aug 14, 2025
b6c091a
Update expui/BiorthBasis.cc
The9Cat Aug 14, 2025
e4bc79a
Update exputil/SLGridMP2.cc
The9Cat Aug 14, 2025
c62c577
Add expui and exputils to Doxygen build
Aug 14, 2025
6948a48
Merge pull request #155 from EXP-code/OutDiagBugFix
michael-petersen Aug 16, 2025
b691df8
Merge pull request #154 from EXP-code/mssaFlags
michael-petersen Aug 16, 2025
23a9c5c
Merge branch 'devel' into SLboundaries
michael-petersen Aug 16, 2025
cdb5d78
Update pyEXP/BasisWrappers.cc
michael-petersen Aug 16, 2025
34a5692
Update expui/BiorthBasis.cc
michael-petersen Aug 16, 2025
a1ce38b
Update expui/BiorthBasis.cc
The9Cat Aug 16, 2025
2dadc17
Another fix to the posvel input logic
Aug 16, 2025
b609af3
Update include/tipsy.H
The9Cat Aug 17, 2025
b583156
Update expui/Centering.cc
The9Cat Aug 17, 2025
c9a8370
Remove debug cruft
Aug 17, 2025
011b0bb
Fix a missing registration of the rotation matrix; interface with num…
Aug 17, 2025
bc0fe93
Remove some debug output
Aug 17, 2025
188517e
Make rotation matrices row-major everywhere
Aug 18, 2025
0d03191
Add a OpenMP aware acceleration vector computation
Aug 19, 2025
4b0a991
Use local storage for acceleration rather than dynamic temporaries
Aug 20, 2025
5af5071
Merge branch 'getAccelArray' into biorthFactory
Aug 20, 2025
29b6a6f
Move from std::vector to Eigen::Vector returns for getAccel
Aug 20, 2025
9cb741d
Two minor fixes necessary for successful compilation with g++15
Aug 25, 2025
3989537
Set explicit C-language standard for Clang
Aug 25, 2025
4007e24
Merge pull request #152 from EXP-code/SLboundaries
michael-petersen Sep 29, 2025
57cc9f2
Merge branch 'devel' into parallelTipsy
michael-petersen Sep 29, 2025
dfbfa1f
Merge pull request #157 from EXP-code/biorthFactory
michael-petersen Sep 29, 2025
9a7d56d
Update pyEXP/BasisWrappers.cc
michael-petersen Sep 29, 2025
f011102
Merge pull request #158 from EXP-code/g++15
michael-petersen Sep 29, 2025
c9aff75
Merge pull request #156 from EXP-code/parallelTipsy
michael-petersen Sep 29, 2025
8c48318
Update pyEXP/BasisWrappers.cc
The9Cat Sep 29, 2025
2b31925
Merge pull request #153 from EXP-code/RotationMatrix
michael-petersen Sep 30, 2025
07f3960
Merge branch 'main' into devel
michael-petersen Sep 30, 2025
ca71cc3
Fix broken merge
michael-petersen Sep 30, 2025
df1e660
Remove default DEBUG flag
michael-petersen Sep 30, 2025
f4285d4
Bring DEBUG preprocessor blocks up to date
Sep 30, 2025
9e8faf2
Merge pull request #163 from EXP-code/DebugFlagFix
michael-petersen Oct 1, 2025
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 CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ project(
LANGUAGES C CXX Fortran)

set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)

Expand Down
6 changes: 4 additions & 2 deletions doc/exp.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -964,6 +964,8 @@ INPUT = ./intro.doc \
../include \
../src \
../src/user \
../exputil \
../expui \
../utils/ICs \
../utils/Analysis \
../utils/PhaseSpace
Expand Down Expand Up @@ -1788,7 +1790,7 @@ FORMULA_MACROFILE =
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

USE_MATHJAX = NO
USE_MATHJAX = YES

# With MATHJAX_VERSION it is possible to specify the MathJax version to be used.
# Note that the different versions of MathJax have different requirements with
Expand Down Expand Up @@ -1948,7 +1950,7 @@ EXTRA_SEARCH_MAPPINGS =
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.

GENERATE_LATEX = NO
GENERATE_LATEX = YES

# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
Expand Down
2,825 changes: 2,825 additions & 0 deletions doc/exp.cfg.breathe

Large diffs are not rendered by default.

26 changes: 19 additions & 7 deletions expui/BasisFactory.H
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ namespace BasisClasses
{
using RowMatrixXd = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;

using RowMatrix3d = Eigen::Matrix<double, 3, 3, Eigen::RowMajor>;

//! Callback function signature for selection particles to
//! accumulate
using Callback =
Expand Down Expand Up @@ -66,7 +68,10 @@ namespace BasisClasses
unsigned long coefindx;

//! The expansion center
std::vector<double> coefctr;
Eigen::Vector3d coefctr = Eigen::Vector3d::Zero();

//! Rotation matrix
RowMatrix3d coefrot = Eigen::Matrix3d::Identity();

//! Contains contructor and BFE parameter database
YAML::Node node, conf;
Expand Down Expand Up @@ -151,8 +156,10 @@ namespace BasisClasses
virtual ~Basis(void) {}

//! Set the expansion center
void setCenter(std::vector<double> center)
{ coefctr = center; }
void setCenter(Eigen::Vector3d center) { coefctr = center; }

//! Set the rotation matrix
void setRotation(RowMatrix3d rot) { coefrot = rot; }

//! Evaluate basis in desired coordinates
virtual std::vector<double>
Expand Down Expand Up @@ -213,11 +220,12 @@ namespace BasisClasses

//! Generate coeffients from a particle reader
virtual CoefClasses::CoefStrPtr
createFromReader(PR::PRptr reader, std::vector<double> ctr) = 0;
createFromReader(PR::PRptr reader, Eigen::Vector3d ctr,
RowMatrix3d rot) = 0;

//! Generate coefficients from a phase-space table
virtual void
initFromArray(std::vector<double> ctr) = 0;
initFromArray(Eigen::Vector3d ctr, RowMatrix3d rot) = 0;

//! Accumulate coefficient contributions from arrays
virtual void
Expand All @@ -228,7 +236,8 @@ namespace BasisClasses
//! for the expansion
CoefClasses::CoefStrPtr createFromArray
(Eigen::VectorXd& m, RowMatrixXd& p, double time=0.0,
std::vector<double> center={0.0, 0.0, 0.0},
Eigen::Vector3d center=Eigen::Vector3d::Zero(),
RowMatrix3d rot=RowMatrix3d::Identity(),
bool roundrobin=true, bool posvelrows=false);

//! Create and the coefficients from the array accumulation with the
Expand Down Expand Up @@ -275,7 +284,10 @@ namespace BasisClasses
{ return getFieldLabels(coordinates); }

//! Get the basis expansion center
std::vector<double> getCenter() { return coefctr; }
Eigen::Vector3d getCenter() { return coefctr; }

//! Get the basis expansion center
RowMatrix3d getRotation() { return coefrot; }
};

using BasisPtr = std::shared_ptr<Basis>;
Expand Down
16 changes: 8 additions & 8 deletions expui/BasisFactory.cc
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ namespace BasisClasses
node = YAML::Load(conf);
}
catch (const std::runtime_error& error) {
std::cout << "Basis constructor: found a problem in the YAML config"
std::cout << "Basis::factory constructor: found a problem in the YAML config"
<< std::endl;
throw;
}
Expand All @@ -163,12 +163,12 @@ namespace BasisClasses
name = conf["id"].as<std::string>();
}
catch (YAML::Exception & error) {
if (myid==0) std::cout << "Error parsing force id in BasisFactory"
if (myid==0) std::cout << "Error parsing force id in Basis::factory"
<< std::string(60, '-') << std::endl
<< conf << std::endl
<< std::string(60, '-') << std::endl;

throw std::runtime_error("BasisFactory: error parsing YAML");
throw std::runtime_error("Basis::factory: error parsing YAML");
}

try {
Expand Down Expand Up @@ -202,12 +202,12 @@ namespace BasisClasses
else {
std::string msg("I don't know about the basis named: ");
msg += name;
msg += ". Known types are currently 'sphereSL', 'cylinder', 'flatdisk', 'slabSL', 'field', and 'velocity'";
msg += ". Known types are currently 'sphereSL', 'cylinder', 'flatdisk', 'CBDisk', 'slabSL', 'cube', 'field', and 'velocity'";
throw std::runtime_error(msg);
}
}
catch (std::exception& e) {
std::cout << "Error in BasisFactory constructor: " << e.what() << std::endl;
std::cout << "Error in Basis::factory constructor: " << e.what() << std::endl;
throw; // Rethrow the exception?
}

Expand Down Expand Up @@ -275,10 +275,10 @@ namespace BasisClasses
// Generate coefficients from a phase-space table
//
CoefClasses::CoefStrPtr Basis::createFromArray
(Eigen::VectorXd& m, RowMatrixXd& p, double time, std::vector<double> ctr,
bool roundrobin, bool posvelrows)
(Eigen::VectorXd& m, RowMatrixXd& p, double time, Eigen::Vector3d ctr,
RowMatrix3d rot, bool roundrobin, bool posvelrows)
{
initFromArray(ctr);
initFromArray(ctr, rot);
addFromArray(m, p, roundrobin, posvelrows);
return makeFromArray(time);
}
Expand Down
Loading