Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
182bcef
Fixed some bugs & added some comments.
mkameda Feb 6, 2020
1dfb8e9
Added another comments.
mkameda Feb 6, 2020
5514e94
Fixed Segmentation fault & now we can specity whether we use the form…
mkameda Feb 7, 2020
36f7a21
Some more comments are added.
mkameda Feb 12, 2020
ba156e2
Fixed exchange interaction matrix to be diagonal.
mkameda Feb 28, 2020
2852051
Added step function into exchange_functional for test run.
mkameda Mar 4, 2020
dfec800
Fixed the size of kspace_path_ array.
mkameda Mar 6, 2020
eebde26
Fixed possible maximum value of distance in r_space and added new fun…
mkameda Mar 7, 2020
51c4911
Added multiple (up to three) Gaussian exchange functional.
mkameda Mar 11, 2020
201e912
Added real-space spin-spin correlation function into the NoLattice Mo…
mkameda Mar 12, 2020
9fec5cb
Generalized calculating rspace_displacement vectors so that we can im…
mkameda Apr 23, 2020
bcec3c1
Explicitly output if we do the rspace_windowing and calculating the r…
mkameda Apr 23, 2020
0b2131b
Explicitly output if we do the rspace_windowing and calculating the r…
mkameda Apr 23, 2020
7bd6979
Explicitly output if we do the rspace_windowing and calculating the r…
mkameda Apr 23, 2020
1268328
Explicitly output if we do the rspace_windowing and calculating the r…
mkameda Apr 23, 2020
04838d6
rspace_window=true & rspace_displacement_(i) is measured compared to …
mkameda Apr 23, 2020
34fc396
rspace_window=false & rspace_displacement_(i) is measured compared to…
mkameda Apr 24, 2020
e5ffe92
Fixed "do_rspace_windowing_" and "output_real_space_ss_corr_" input.
mkameda Apr 24, 2020
f282474
Deleted unused time correlation of spins.
mkameda Jun 7, 2020
645ea0a
Added function calculating crystal limit spectrum.
mkameda Jun 7, 2020
6f71f3d
[Fixed] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
3479d2f
[Fixed-2] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
c04d093
[Fixed-3] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
25d4639
[Fixed-4] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
829a05b
[Fixed-5] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
5b0769d
[Fixed-6] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
455514e
[Fixed-6] Added function calculating crystal limit spectrum.
mkameda Jun 8, 2020
127cb8d
Fixed radial dist functions.
mkameda Jun 8, 2020
b1a9623
Fixed radial dist functions 2
mkameda Jun 8, 2020
5b83f9c
Fixed radial dist functions 3
mkameda Jun 8, 2020
02c51b8
Fixed radial dist functions 4
mkameda Jun 8, 2020
982c423
Fixed radial dist functions 5
mkameda Jun 8, 2020
d41f99a
Added function calculating crystal limit spectrum ver2.
mkameda Jun 8, 2020
a2a10cc
[Fixed] Added function calculating crystal limit spectrum ver2.
mkameda Jun 9, 2020
a407e66
Added 3rd version of crystal limit.
mkameda Jun 11, 2020
3360f85
We can change r_ij range in the crystal limit.
mkameda Jun 11, 2020
2a30a44
[Fixed] We can change r_ij range in the crystal limit.
mkameda Jun 11, 2020
1a28fa5
[Fixed-2] We can change r_ij range in the crystal limit.
mkameda Jun 11, 2020
472125a
Central site can be specified via cfg file.
mkameda Jun 11, 2020
6eb3185
Added crystal limit calculation where central site = center of the sy…
mkameda Jun 15, 2020
d5bb71f
[Fixed] Added crystal limit calculation where central site = center o…
mkameda Jun 15, 2020
7fa6b7a
[Fixed-2] Added crystal limit calculation where central site = center…
mkameda Jun 15, 2020
98b3b68
[Fixed-3] Added crystal limit calculation where central site = center…
mkameda Jun 15, 2020
7b313ca
[Fixed-4] Added crystal limit calculation where central site = center…
mkameda Jun 15, 2020
c2e057c
[Fixed-5] Added crystal limit calculation where central site = center…
mkameda Jun 15, 2020
75ea9ce
[Fixed-6] Added crystal limit calculation where central site = center…
mkameda Jun 16, 2020
647037e
[Fixed-7] Added crystal limit calculation where central site = center…
mkameda Jun 16, 2020
23547bc
[Fixed-8] Added crystal limit calculation where central site = center…
mkameda Jun 16, 2020
14f7b17
[Fixed-9] Added crystal limit calculation where central site = center…
mkameda Jun 16, 2020
b3a3394
[Fixed-10] Added crystal limit calculation where central site = cente…
mkameda Jun 16, 2020
88add68
[Fixed-11] Added crystal limit calculation where central site = cente…
mkameda Jun 16, 2020
efd249e
[Fixed-12] Added crystal limit calculation where central site = cente…
mkameda Jun 16, 2020
695befb
[Fixed-13] Added crystal limit calculation where central site = cente…
mkameda Jun 16, 2020
4c67a2f
[Fixed-14] Added crystal limit calculation where central site = cente…
mkameda Jun 16, 2020
e6aa1d8
Added random potential
mkameda Nov 23, 2021
a7d60fc
Merge remote-tracking branch 'origin/hotfix/exchange-functional-fixes…
mkameda Nov 24, 2021
dad0660
[Fixed] Added random potential
mkameda Nov 24, 2021
47f58a5
[Fixed-2] Added random potential
mkameda Nov 24, 2021
9c61443
[Fixed-3] Added random potential
mkameda Nov 24, 2021
c946314
[Fixed-4] Added random potential
mkameda Nov 24, 2021
d2e2796
[Fixed-5] Added random potential
mkameda Nov 24, 2021
294017d
[Fixed-6] Added random potential
mkameda Nov 24, 2021
fe86fef
[Fixed-7] Added random potential
mkameda Nov 24, 2021
1f8fc71
[Fixed-8] Added random potential
mkameda Nov 24, 2021
bed0621
[Fixed-9] Added random potential
mkameda Nov 24, 2021
5ff4f37
[Fixed-10] Added random potential
mkameda Nov 24, 2021
a16f372
[Fixed-11] Added random potential
mkameda Nov 24, 2021
eff777f
[Fixed-12] Added random potential
mkameda Nov 24, 2021
d3ab6e2
[Fixed-14] Added random potential
mkameda Nov 24, 2021
4ef2947
[Fixed-15] Added random potential
mkameda Nov 24, 2021
c0a8426
[Fixed-16] Added random potential
mkameda Nov 24, 2021
bc4f4bb
[Fixed-17] Added random potential
mkameda Nov 24, 2021
af5f5ab
[Fixed-18] Added random potential
mkameda Nov 24, 2021
5e85d49
[Fixed-19] Added random potential
mkameda Nov 24, 2021
a6feb09
[Fixed-20] Added random potential
mkameda Nov 24, 2021
3e9018c
[Fixed-21] Added random potential
mkameda Nov 24, 2021
7bba8af
[Fixed-22] Added random potential
mkameda Nov 24, 2021
1855976
[Fixed-23] Added random potential
mkameda Nov 24, 2021
649b47f
[Fixed-24] Added random potential
mkameda Nov 24, 2021
4243b8c
[Fixed-25] Added random potential
mkameda Nov 24, 2021
0e6ac07
[Fixed-26] Added random potential
mkameda Nov 24, 2021
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
3 changes: 3 additions & 0 deletions src/jams/core/lattice.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1120,3 +1120,6 @@ bool Lattice::has_impurities() const {
return !impurity_map_.empty();
}

Vec3i Lattice::get_lattice_dimensions() {
return lattice_dimensions;
}
2 changes: 2 additions & 0 deletions src/jams/core/lattice.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,8 @@ class Lattice : public Base {

const Vec3i &kspace_size() const;

Vec3i get_lattice_dimensions();

private:
void read_materials_from_config(const libconfig::Setting &settings);
ImpurityMap read_impurities_from_config(const libconfig::Setting &settings);
Expand Down
139 changes: 133 additions & 6 deletions src/jams/hamiltonian/exchange_functional.cc
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
#include <functional>
#include <fstream>
#include <random>
#include "jams/helpers/output.h"
#include "jams/hamiltonian/exchange_functional.h"
#include "jams/core/lattice.h"
#include "jams/core/globals.h"
#include "exchange_functional.h"

using namespace std;

Expand All @@ -13,6 +15,7 @@ ExchangeFunctionalHamiltonian::ExchangeFunctionalHamiltonian(const libconfig::Se
radius_cutoff_ = jams::config_required<double>(settings, "r_cutoff");

cout << " cutoff radius: " << jams::fmt::decimal << radius_cutoff_ << "\n";
cout << " max cutoff radius: " << lattice->max_interaction_radius() << "\n";

if (radius_cutoff_ > lattice->max_interaction_radius()) {
throw std::runtime_error("cutoff radius is larger than the maximum radius which avoids self interaction");
Expand All @@ -21,25 +24,134 @@ ExchangeFunctionalHamiltonian::ExchangeFunctionalHamiltonian(const libconfig::Se
ofstream of(seedname + "_exchange_functional.tsv");
output_exchange_functional(of, exchange_functional, radius_cutoff_);

string name3 = seedname + "_spectrum_crystal_limit.tsv";
ofstream outfile3(name3.c_str());
outfile3.setf(std::ios::right);

// header for crystal-limit spectrum file
outfile3 << std::setw(20) << "kx" << "\t";//(\t=tab)
outfile3 << std::setw(20) << "ky" << "\t";//(\t=tab)
outfile3 << std::setw(20) << "kz" << "\t";//(\t=tab)
outfile3 << std::setw(20) << "Re:E(k)" << "\t";
outfile3 << std::setw(20) << "Im:E(k)" << "\t";
outfile3 << std::setw(20) << "Re:E(k)-2" << "\t";
outfile3 << std::setw(20) << "Im:E(k)-2" << "\t";
outfile3 << std::setw(20) << "Re:E(k)-3" << "\t";
outfile3 << std::setw(20) << "Im:E(k)-3" << "\t";
outfile3 << std::setw(20) << "Re:E(k)-4" << "\t";
outfile3 << std::setw(20) << "Im:E(k)-4" << "\n";

auto counter = 0;
auto counter2 = 0;
vector<Atom> nbrs;
// --- for crystal limit spectrum ---
int num_k = jams::config_required<int>(settings, "num_k");
std::vector<complex<double>> spectrum_crystal_limit(num_k+1,{0.0,0.0});
std::vector<complex<double>> spectrum_crystal_limit2(num_k+1,{0.0,0.0});
std::vector<complex<double>> spectrum_crystal_limit_noave(num_k+1,{0.0,0.0});
std::vector<complex<double>> spectrum_crystal_limit_noave_central_cite(num_k+1,{0.0,0.0});
double kmax = jams::config_required<double>(settings, "kmax");
Vec3 kvector = jams::config_required<Vec3>(settings, "kvector");
double rij_min = jams::config_optional(settings, "rij_min", 0.0);
double rij_max = jams::config_optional(settings, "rij_max", radius_cutoff_);
int central_site = jams::config_optional(settings, "central_site", 0);
cout << "crystal limit: rij_min = " << rij_min << endl;
cout << "crystal limit: rij_max = " << rij_max << endl;
cout << "central_site: i = " << central_site << endl;
int central_site_indx = 0;
jams::MultiArray<Vec3, 1> rspace_displacement_;
rspace_displacement_.resize(globals::s.size(0));
jams::MultiArray<Vec3, 1> rspace_displacement2_;
rspace_displacement2_.resize(globals::s.size(0));

jams::MultiArray<Vec3, 1> k;
k.resize(num_k+1);
for (auto n = 0; n < k.size(); ++n) {
k(n) = kvector * n * (kmax / num_k);
// cout << "n = " << n << ", kspace_path_(n) = " << k(n) << endl;
}

std::mt19937 rand_src(12345); //seed=12345

for (auto i = 0; i < globals::num_spins; ++i) {
nbrs.clear();
::lattice->atom_neighbours(i, radius_cutoff_, nbrs);

for (const auto& nbr : nbrs) {
Vec3i lattice_dimensions = ::lattice->get_lattice_dimensions();
rspace_displacement_(i) = ::lattice->displacement({lattice_dimensions[0]*0.5,lattice_dimensions[1]*0.5,lattice_dimensions[2]*0.5}, lattice->atom_position(i));
rspace_displacement2_(i) = ::lattice->atom_position(i);
if( norm(rspace_displacement_(i)) < lattice_dimensions[0]*0.02 ){ //0.002047
central_site_indx = i;
cout << "central_site index: i = " << central_site_indx << endl;
cout << "central coordinate = ( " << rspace_displacement_(central_site_indx) << " )" << endl;
cout << "central coordinate 2 = ( " << rspace_displacement2_(central_site_indx) << " )" << endl;
}

if(settings.exists("random")){
std::uniform_real_distribution<> rand_potential(-width, width);
double rand = rand_potential(rand_src);
}

for (const auto& nbr : nbrs) {
const auto j = nbr.id;
if (i == j) {
continue;
}
const auto rij = norm(lattice->displacement(i, j));
this->insert_interaction_scalar(i, j, input_unit_conversion_ * exchange_functional(rij));

const auto rij = norm(::lattice->displacement(i, j));
if(settings.exists("random")){
this->insert_interaction_scalar(i, j, input_unit_conversion_ * (exchange_functional(rij) * (1 + rand)));
} else{
this->insert_interaction_scalar(i, j, input_unit_conversion_ * exchange_functional(rij));
}
counter++;
// --- for crystal limit spectrum ---
if(rij < rij_max && rij > rij_min){
const auto rij_vec = ::lattice->displacement(i, j);
for (auto kk = 0; kk < spectrum_crystal_limit.size(); kk++){
double kr = std::inner_product(k(kk).begin(), k(kk).end(), rij_vec.begin(), 0.0);
if(kr != 0.0){
std::complex<double> tmp = { exchange_functional(rij)* (1.0-cos(kTwoPi*kr)), exchange_functional(rij) * sin(kTwoPi*kr)};
std::complex<double> tmp2 = { exchange_functional(rij)* (1.0-cos(kTwoPi*kr)) /(4*kPi*rij*rij), exchange_functional(rij) * sin(kTwoPi*kr)/(4*kPi*rij*rij)};
spectrum_crystal_limit[kk] += tmp;
spectrum_crystal_limit2[kk] += tmp2;
if(i == central_site){
spectrum_crystal_limit_noave[kk] += tmp;
}
else if(i == central_site_indx){
spectrum_crystal_limit_noave_central_cite[kk] += tmp;
cout << "NOW!" << endl;
}
counter2++;
}
}
}
// --- for crystal limit spectrum ---
}
}
for (auto kk = 0; kk < spectrum_crystal_limit.size(); kk++) {
spectrum_crystal_limit[kk] /= globals::num_spins;
spectrum_crystal_limit2[kk] /= globals::num_spins;
}

cout << " total interactions " << jams::fmt::integer << counter << "\n";
cout << " average interactions per spin " << jams::fmt::decimal << counter / double(globals::num_spins) << "\n";
cout << " average interactions per spin (kr != 0) " << jams::fmt::decimal << counter2 / double(globals::num_spins)/num_k << "\n";
// --- for crystal limit spectrum ---
for (auto m = 0; m < spectrum_crystal_limit.size(); m++) {
outfile3 << std::setw(20) << k(m)[0] << "\t";
outfile3 << std::setw(20) << k(m)[1] << "\t";
outfile3 << std::setw(20) << k(m)[2] << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit[m].real() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit[m].imag() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit2[m].real() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit2[m].imag() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit_noave[m].real() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit_noave[m].imag() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit_noave_central_cite[m].real() << "\t";
outfile3 << std::setw(20) << spectrum_crystal_limit_noave_central_cite[m].imag() << "\n";
}
// --- for crystal limit spectrum ---

finalize();
}
Expand All @@ -61,6 +173,18 @@ double ExchangeFunctionalHamiltonian::functional_kaneyoshi(const double rij, con
return J0 * pow2(rij - r0) * exp(-pow2(rij - r0) / (2 * pow2(sigma)));
}

double ExchangeFunctionalHamiltonian::functional_step(const double rij, const double J0, const double r_out){
if (rij < r_out){
return J0;
}
else
return 0.0;
}

double ExchangeFunctionalHamiltonian::functional_gaussian_multi(const double rij, const double J0, const double r0, const double sigma, const double J0_2, const double r0_2, const double sigma_2, const double J0_3, const double r0_3, const double sigma_3){
return J0 * exp(-pow2(rij - r0)/(2 * pow2(sigma))) + J0_2 * exp(-pow2(rij - r0_2)/(2 * pow2(sigma_2))) + J0_3 * exp(-pow2(rij - r0_3)/(2 * pow2(sigma_3)));
}

ExchangeFunctionalHamiltonian::ExchangeFunctional
ExchangeFunctionalHamiltonian::functional_from_settings(const libconfig::Setting &settings) {
using namespace std::placeholders;
Expand All @@ -74,15 +198,18 @@ ExchangeFunctionalHamiltonian::functional_from_settings(const libconfig::Setting
return bind(functional_exp, _1, double(settings["J0"]), double(settings["r0"]), double(settings["sigma"]));
} else if (functional_name == "gaussian") {
return bind(functional_gaussian, _1, double(settings["J0"]), double(settings["r0"]), double(settings["sigma"]));
} else if (functional_name == "gaussian_multi") {
return bind(functional_gaussian_multi, _1, double(settings["J0"]), double(settings["r0"]), double(settings["sigma"]), double(settings["J0_2"]), double(settings["r0_2"]), double(settings["sigma_2"]), double(settings["J0_3"]), double(settings["r0_3"]), double(settings["sigma_3"]));
} else if (functional_name == "kaneyoshi") {
return bind(functional_kaneyoshi, _1, double(settings["J0"]), double(settings["r0"]), double(settings["sigma"]));
return bind(functional_kaneyoshi, _1, double(settings["J0"]), double(settings["r0"]), double(settings["sigma"]));
} else if (functional_name == "step") {
return bind(functional_step, _1, double(settings["J0"]), double(settings["r_out"]));
} else {
throw runtime_error("unknown exchange functional: " + functional_name);
}
}

void
ExchangeFunctionalHamiltonian::output_exchange_functional(std::ostream &os,
void ExchangeFunctionalHamiltonian::output_exchange_functional(std::ostream &os,
const ExchangeFunctionalHamiltonian::ExchangeFunctional& functional, double r_cutoff, double delta_r) {
os << "radius exchange" << "\n";
double r = 0.0;
Expand Down
5 changes: 5 additions & 0 deletions src/jams/hamiltonian/exchange_functional.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
#include <functional>

#include <libconfig.h++>
#include <pcg_random.hpp>
#include <random>

#include "jams/helpers/random.h"
#include "jams/core/hamiltonian.h"
#include "jams/core/interactions.h"
#include "jams/containers/sparse_matrix.h"
Expand All @@ -22,7 +25,9 @@ class ExchangeFunctionalHamiltonian : public SparseInteractionHamiltonian {
static double functional_rkky(double rij, double J0, double r0, double k_F);
static double functional_exp(double rij, double J0, double r0, double lengthscale);
static double functional_gaussian(double rij, double J0, double r0, double lengthscale);
static double functional_gaussian_multi(double rij, double J0, double r0, double lengthscale, double J0_2, double r0_2, double lengthscale_2, double J0_3, double r0_3, double lengthscale_3);
static double functional_kaneyoshi(double rij, double J0, double r0, double lengthscale);
static double functional_step(double rij, double J0, double r_out);

double radius_cutoff_;
};
Expand Down
5 changes: 2 additions & 3 deletions src/jams/hamiltonian/sparse_interaction.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ void SparseInteractionHamiltonian::insert_interaction_scalar(const int i, const
return;
}
for (auto m = 0; m < 3; ++m) {
for (auto n = 0; n < 3; ++n) {
sparse_matrix_builder_.insert(3 * i + m, 3 * j + n, value);
}
sparse_matrix_builder_.insert(3 * i + m, 3 * j + m, value);
// std::cout << "i= " << i << " j= " << j << " : row = " << 3 * i + m << ", colum = " << 3 * j + m << ", value [J] = " << value/input_unit_conversion_ << std::endl;
}
}

Expand Down
12 changes: 11 additions & 1 deletion src/jams/helpers/neutrons.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,22 @@ namespace jams {
// Calculates the approximate neutron form factor at |q|
// Approximation and constants from International Tables for Crystallography: Vol. C (pp. 454–461).
double form_factor(const Vec3 &q, const double &lattice_parameter, FormFactorG &g, FormFactorJ &j) {
//(*) How is "norm(q)/(4.0*kPi*lattice_parameter)" is related to s=sin(theta)/lambda in the ref.?
auto s_sq = pow2(norm(q) / (4.0 * kPi * lattice_parameter));
auto ffq = 0.0;
for (auto l : {0, 2, 4, 6}) {
double p = (l == 0) ? 1.0 : s_sq;
double p = (l == 0) ? 1.0 : s_sq; //if l=0 then insert 1.0 to p, otherwise s_sq
ffq += g[l] * p *
(j[l].A * exp(-j[l].a * s_sq) + j[l].B * exp(-j[l].b * s_sq) + j[l].C * exp(-j[l].c * s_sq) + j[l].D);

// cout << "j_params[" << l << "].A = " << j[l].A << endl;
// cout << "j_params[" << l << "].a = " << j[l].a << endl;
// cout << "j_params[" << l << "].B = " << j[l].B << endl;
// cout << "j_params[" << l << "].b = " << j[l].b << endl;
// cout << "j_params[" << l << "].C = " << j[l].C << endl;
// cout << "j_params[" << l << "].c = " << j[l].c << endl;
// cout << "j_params[" << l << "].D = " << j[l].D << endl;
// cout << "g_params[" << l << "] = " << g[l] << endl;
}
return 0.5 * ffq;
}
Expand Down
12 changes: 7 additions & 5 deletions src/jams/interface/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <jams/helpers/utils.h>
#include <jams/core/interactions.h>
#include "jams/core/types.h"
#include <iostream>

void config_patch(libconfig::Setting& orig, const libconfig::Setting& patch);

Expand All @@ -22,33 +23,34 @@ namespace jams {
if (setting.exists(name)) {
return config_required<T>(setting, name);
} else {
// std::cout << "config_optional is called but default value will be used. name = " << name << std::endl;
return def;
}
}

template<>
inline std::string config_required(const libconfig::Setting &setting, const std::string &name) {
return setting[name].c_str();
return setting[name].c_str();
}

template<>
inline bool config_required(const libconfig::Setting &setting, const std::string &name) {
return bool(setting[name]);
return bool(setting[name]);
}

template<>
inline int config_required(const libconfig::Setting &setting, const std::string &name) {
return int(setting[name]);
return int(setting[name]);
}

template<>
inline long config_required(const libconfig::Setting &setting, const std::string &name) {
return long(setting[name]);
return long(setting[name]);
}

template<>
inline unsigned config_required(const libconfig::Setting &setting, const std::string &name) {
return unsigned(setting[name]);
return unsigned(setting[name]);
}

template<>
Expand Down
1 change: 1 addition & 0 deletions src/jams/interface/fft.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

using Complex = std::complex<double>;

//(*) where are these values used?
namespace jams {
struct PeriodogramProps {
int length = 1000;
Expand Down
Loading