Skip to content

Commit c24a6c7

Browse files
committed
UI-ImGui: fix array issues in HamiltonianWidget.
1 parent b5df7a4 commit c24a6c7

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

ui-cpp/ui-imgui/include/hamiltonian_widget.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ struct HamiltonianWidget
4141
std::vector<float> exchange;
4242

4343
int exchange_n_pairs;
44-
std::vector<int[2]> exchange_indices;
45-
std::vector<int[3]> exchange_translations;
44+
std::vector<std::array<int, 2>> exchange_indices;
45+
std::vector<std::array<int, 3>> exchange_translations;
4646
std::vector<float> exchange_magnitudes;
4747

4848
bool dmi_active;
@@ -51,10 +51,10 @@ struct HamiltonianWidget
5151
std::vector<float> dmi;
5252

5353
int dmi_n_pairs;
54-
std::vector<int[2]> dmi_indices;
55-
std::vector<int[3]> dmi_translations;
54+
std::vector<std::array<int, 2>> dmi_indices;
55+
std::vector<std::array<int, 3>> dmi_translations;
5656
std::vector<float> dmi_magnitudes;
57-
std::vector<float[3]> dmi_normals;
57+
std::vector<std::array<float, 3>> dmi_normals;
5858

5959
bool ddi_active;
6060
int ddi_method;

ui-cpp/ui-imgui/src/hamiltonian_widget.cpp

+9-7
Original file line numberDiff line numberDiff line change
@@ -509,11 +509,12 @@ void HamiltonianWidget::update_data_heisenberg()
509509

510510
// Exchange interaction (pairs)
511511
exchange_n_pairs = Hamiltonian_Get_Exchange_N_Pairs( state.get() );
512-
exchange_indices = std::vector<int[2]>( exchange_n_pairs );
513-
exchange_translations = std::vector<int[3]>( exchange_n_pairs );
512+
exchange_indices = std::vector<std::array<int, 2>>( exchange_n_pairs );
513+
exchange_translations = std::vector<std::array<int, 3>>( exchange_n_pairs );
514514
exchange_magnitudes = std::vector<float>( exchange_n_pairs, 0 );
515515
Hamiltonian_Get_Exchange_Pairs(
516-
state.get(), exchange_indices.data(), exchange_translations.data(), exchange_magnitudes.data() );
516+
state.get(), (int( * )[2])exchange_indices[0].data(), (int( * )[3])exchange_translations.data(),
517+
exchange_magnitudes.data() );
517518

518519
// DMI (shells)
519520
dmi.resize( 100 );
@@ -523,12 +524,13 @@ void HamiltonianWidget::update_data_heisenberg()
523524

524525
// DMI (pairs)
525526
dmi_n_pairs = Hamiltonian_Get_DMI_N_Pairs( state.get() );
526-
dmi_indices = std::vector<int[2]>( dmi_n_pairs );
527-
dmi_translations = std::vector<int[3]>( dmi_n_pairs );
527+
dmi_indices = std::vector<std::array<int, 2>>( dmi_n_pairs );
528+
dmi_translations = std::vector<std::array<int, 3>>( dmi_n_pairs );
528529
dmi_magnitudes = std::vector<float>( dmi_n_pairs, 0 );
529-
dmi_normals = std::vector<float[3]>( dmi_n_pairs );
530+
dmi_normals = std::vector<std::array<float, 3>>( dmi_n_pairs );
530531
// Hamiltonian_Get_DMI_Pairs(
531-
// state.get(), dmi_indices.data(), dmi_translations.data(), dmi_magnitudes.data() );
532+
// state.get(), (int( * )[2])dmi_indices.data(), (int( * )[3])dmi_translations.data(), dmi_magnitudes.data(),
533+
// (float( * )[3])dmi_normals );
532534

533535
// DDI
534536
Hamiltonian_Get_DDI(

0 commit comments

Comments
 (0)