Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/ci_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
if: ${{matrix.os == 'macos-latest'}}
shell: bash
working-directory: ${{runner.workspace}}/Stellarator-Tools/build
run: cmake -DCMAKE_BUILD_TYPE=${{matrix.mode}} -DCMAKE_Fortran_COMPILER=gfortran-14 -DBUILD_BOOZ_XFORM=ON -DBUILD_V3FIT=ON -DBUILD_V3RFUN=ON -DBUILD_SIESTA=ON -DBUILD_LGRID=ON -DBUILD_SURFACE=ON -DBUILD_BMW=ON -DBUILD_PARVMEC=ON -DBUILD_DESCUR=ON -DBUILD_TAG_BOOZ_XFORM=master_dev -DBUILD_TAG_V3FIT=${{github.ref_name}} -DBUILD_TAG_V3RFUN=master_dev -DBUILD_TAG_SIESTA=master_dev -DBUILD_TAG_LGRID=master_dev -DBUILD_TAG_SURFACE=master_dev -DBUILD_TAG_BMW=master_dev -DBUILD_TAG_LIBSTELL=master_dev -DBUILD_TAG_MAKEGRID=master_dev -DBUILD_TAG_PARVMEC=master_dev -DBUILD_TAG_DESCUR=master_dev -DUSE_FAST_COPY=ON -DUSE_PROFILER=ON ${{runner.workspace}}/Stellarator-Tools/
run: cmake -DCMAKE_BUILD_TYPE=${{matrix.mode}} -DCMAKE_Fortran_COMPILER=gfortran-15 -DBUILD_BOOZ_XFORM=ON -DBUILD_V3FIT=ON -DBUILD_V3RFUN=ON -DBUILD_SIESTA=ON -DBUILD_LGRID=ON -DBUILD_SURFACE=ON -DBUILD_BMW=ON -DBUILD_PARVMEC=ON -DBUILD_DESCUR=ON -DBUILD_TAG_BOOZ_XFORM=master_dev -DBUILD_TAG_V3FIT=${{github.ref_name}} -DBUILD_TAG_V3RFUN=master_dev -DBUILD_TAG_SIESTA=master_dev -DBUILD_TAG_LGRID=master_dev -DBUILD_TAG_SURFACE=master_dev -DBUILD_TAG_BMW=master_dev -DBUILD_TAG_LIBSTELL=master_dev -DBUILD_TAG_MAKEGRID=master_dev -DBUILD_TAG_PARVMEC=master_dev -DBUILD_TAG_DESCUR=master_dev -DUSE_FAST_COPY=ON -DUSE_PROFILER=ON ${{runner.workspace}}/Stellarator-Tools/
- name: Configure CMake Linux
if: ${{matrix.os == 'ubuntu-latest'}}
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_test_master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
if: ${{matrix.os == 'macos-latest'}}
shell: bash
working-directory: ${{runner.workspace}}/Stellarator-Tools/build
run: cmake -DCMAKE_BUILD_TYPE=${{matrix.mode}} -DCMAKE_Fortran_COMPILER=gfortran-14 -DBUILD_BOOZ_XFORM=ON -DBUILD_V3FIT=ON -DBUILD_V3RFUN=ON -DBUILD_SIESTA=ON -DBUILD_LGRID=ON -DBUILD_SURFACE=ON -DBUILD_BMW=ON -DBUILD_PARVMEC=ON -DBUILD_DESCUR=ON -DBUILD_TAG_V3FIT=${{github.ref_name}} -DUSE_FAST_COPY=ON -DUSE_PROFILER=ON ${{runner.workspace}}/Stellarator-Tools/
run: cmake -DCMAKE_BUILD_TYPE=${{matrix.mode}} -DCMAKE_Fortran_COMPILER=gfortran-15 -DBUILD_BOOZ_XFORM=ON -DBUILD_V3FIT=ON -DBUILD_V3RFUN=ON -DBUILD_SIESTA=ON -DBUILD_LGRID=ON -DBUILD_SURFACE=ON -DBUILD_BMW=ON -DBUILD_PARVMEC=ON -DBUILD_DESCUR=ON -DBUILD_TAG_V3FIT=${{github.ref_name}} -DUSE_FAST_COPY=ON -DUSE_PROFILER=ON ${{runner.workspace}}/Stellarator-Tools/
- name: Configure CMake Linux
if: ${{matrix.os == 'ubuntu-latest'}}
shell: bash
Expand Down
5 changes: 5 additions & 0 deletions Sources/siesta_equilibrium.f
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,11 @@ FUNCTION siesta_construct(file_name, restart_file_name, &
state_flags = IBSET(state_flags, model_state_siesta_flag)
END IF

IF (recon_rank .gt. 0) THEN
CALL siesta_construct%run_context%clear_state( &
& siesta_run_write_profiles)
END IF

CALL profiler_set_stop_time('siesta_construct', start_time)

1000 FORMAT('siesta_',a,'.nc')
Expand Down
1 change: 1 addition & 0 deletions Testing/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ add_subdirectory (lasym_boundary)
add_subdirectory (preconditioner_test)
add_subdirectory (limiter_test)
add_subdirectory (siesta_recon_test)
add_subdirectory (siesta_recon_asym_test)
54 changes: 54 additions & 0 deletions Testing/tests/siesta_recon_asym_test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Run the reconstruction task. This just tests if the reconstruction executes correctly.
# Subsequent tests will examine the results of the reconstruction for correct
# results.

# Copy input file from source to the build directory.
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/thomson.dot
${CMAKE_CURRENT_BINARY_DIR}/thomson.dot
COPYONLY)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/input.test.vmec
${CMAKE_CURRENT_BINARY_DIR}/input.test.vmec
COPYONLY)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/siesta.jcf
${CMAKE_CURRENT_BINARY_DIR}/siesta.jcf
COPYONLY)
SET (VMEC_FILE_NAME input.test.vmec)
SET (SIESTA_FILE_NAME siesta.jcf)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/input.test.v3fit
${CMAKE_CURRENT_BINARY_DIR}/input.test.v3fit)

add_test (NAME siesta_recon_asym_task_test
COMMAND $<TARGET_PROPERTY:stell,MPIEXEC_EXECUTABLE> $<TARGET_PROPERTY:stell,MPIEXEC_NUMPROC_FLAG> $<TARGET_PROPERTY:stell,MPIEXEC_MAX_NUMPROCS> $<TARGET_PROPERTY:xv3fit,BINARY_DIR>/xv3fit input.test.v3fit -para=-1)
set_tests_properties (siesta_recon_asym_task_test
PROPERTIES
PROCESSORS $<TARGET_PROPERTY:stell,MPIEXEC_MAX_NUMPROCS>)

# Since the reconstruction task test was run, Check the output files for correct values.

# Check that the reconstruction parameter reconstructed to the correct values.
add_test (NAME siesta_recon_asym_task_test_helpert
COMMAND ${Python3_EXECUTABLE} ${TEST_SCRIPT_DIR}/check_param_value.py --file=recout.input.test.v3fit --p_type=helpert --value=5.0E-4 --range=1.0E-4 --index1=1)
set_tests_properties (siesta_recon_asym_task_test_helpert
PROPERTIES
DEPENDS siesta_recon_asym_task_test)

# Check that the reconstruction parameter reconstructed to the correct values.
add_test (NAME siesta_recon_asym_task_test_helphase
COMMAND ${Python3_EXECUTABLE} ${TEST_SCRIPT_DIR}/check_param_value.py --file=recout.input.test.v3fit --p_type=helphase --value=25.0 --range=2.0 --index1=1)
set_tests_properties (siesta_recon_asym_task_test_helphase
PROPERTIES
DEPENDS siesta_recon_asym_task_test)

# Check that the signal effectiveness total.
add_test (NAME siesta_recon_asym_task_test_sem_totals
COMMAND ${Python3_EXECUTABLE} ${TEST_SCRIPT_DIR}/check_sem_total.py --file=recout.input.test.v3fit)
set_tests_properties (siesta_recon_asym_task_test_sem_totals
PROPERTIES
DEPENDS siesta_recon_asym_task_test)

# Check correlation matrix values.
add_test (NAME siesta_recon_asym_task_test_check_reconstruction_correlation_matrix
COMMAND ${Python3_EXECUTABLE} ${TEST_SCRIPT_DIR}/check_correlation_matrix.py --file=recout.input.test.v3fit --param=Reconstruction)
set_tests_properties (siesta_recon_asym_task_test_check_reconstruction_correlation_matrix
PROPERTIES
DEPENDS siesta_recon_asym_task_test)
125 changes: 125 additions & 0 deletions Testing/tests/siesta_recon_asym_test/input.test.v3fit
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
&v3fit_main_nli
my_task = 'reconstruct',
vmec_nli_filename = '${VMEC_FILE_NAME}'
siesta_nli_filename = '${SIESTA_FILE_NAME}'

model_eq_type = 'siesta'

thscte_dot_filename = 'thomson.dot',

model_te_type = 'pp_te'
pp_te_ptype = 'two_power_r'
pp_te_b = 0.0, 5.0, 1.0, 0.5,

nrstep = 20,
dg2_stop = 0.1,
cut_svd = 2.0E-5,
cut_eff = 1.0E-8,
cut_marg_eff = 0.0,
cut_delta_a = 0.0,
cut_dg2 = 0.0,
astep_max = 100.0,
step_type = 'lm',

n_rp = 2,

rp_type(1) = 'helpert',
rp_vrnc(1) = 1.0E-5,
rp_index(1) = 1,
rp_range_type(1,1) = 'value',
rp_range_value(1,1) = 0,

rp_type(2) = 'helphase',
rp_vrnc(2) = 1.0,
rp_index(2) = 1,
rp_range_type(2,1) = 'value',
rp_range_value(2,1) = 0,
rp_range_type(2,2) = 'value',
rp_range_value(2,2) = 360.0,

sdo_data_a(1) = 0.00000E+00
sdo_data_a(2) = 1.18088E+00
sdo_data_a(3) = 2.55109E+00
sdo_data_a(4) = 3.55848E+00
sdo_data_a(5) = 4.00024E+00
sdo_data_a(6) = 4.25356E+00
sdo_data_a(7) = 4.45003E+00
sdo_data_a(8) = 4.60264E+00
sdo_data_a(9) = 4.71822E+00
sdo_data_a(10) = 4.80434E+00
sdo_data_a(11) = 4.86823E+00
sdo_data_a(12) = 0.00000E+00
sdo_data_a(13) = 1.17942E+00
sdo_data_a(14) = 2.56126E+00
sdo_data_a(15) = 3.62447E+00
sdo_data_a(16) = 4.06574E+00
sdo_data_a(17) = 4.30416E+00
sdo_data_a(18) = 4.48670E+00
sdo_data_a(19) = 4.62837E+00
sdo_data_a(20) = 4.73565E+00
sdo_data_a(21) = 4.81571E+00
sdo_data_a(22) = 4.87539E+00
sdo_data_a(23) = 0.00000E+00
sdo_data_a(24) = 1.18253E+00
sdo_data_a(25) = 2.53952E+00
sdo_data_a(26) = 3.48220E+00
sdo_data_a(27) = 3.92470E+00
sdo_data_a(28) = 4.19548E+00
sdo_data_a(29) = 4.40811E+00
sdo_data_a(30) = 4.57332E+00
sdo_data_a(31) = 4.69840E+00
sdo_data_a(32) = 4.79142E+00
sdo_data_a(33) = 4.86010E+00
sdo_data_a(34) = 0.00000E+00
sdo_data_a(35) = 1.18935E+00
sdo_data_a(36) = 2.49102E+00
sdo_data_a(37) = 3.14651E+00
sdo_data_a(38) = 3.59486E+00
sdo_data_a(39) = 3.94576E+00
sdo_data_a(40) = 4.23001E+00
sdo_data_a(41) = 4.44977E+00
sdo_data_a(42) = 4.61535E+00
sdo_data_a(43) = 4.73752E+00
sdo_data_a(44) = 4.82630E+00
sdo_data_a(45) = 0.00000E+00
sdo_data_a(46) = 1.19800E+00
sdo_data_a(47) = 2.42763E+00
sdo_data_a(48) = 2.65658E+00
sdo_data_a(49) = 3.12315E+00
sdo_data_a(50) = 3.60158E+00
sdo_data_a(51) = 3.99090E+00
sdo_data_a(52) = 4.28673E+00
sdo_data_a(53) = 4.50702E+00
sdo_data_a(54) = 4.66775E+00
sdo_data_a(55) = 4.78276E+00
sdo_data_a(56) = 0.00000E+00
sdo_data_a(57) = 1.20615E+00
sdo_data_a(58) = 2.36588E+00
sdo_data_a(59) = 2.08763E+00
sdo_data_a(60) = 2.59720E+00
sdo_data_a(61) = 3.24119E+00
sdo_data_a(62) = 3.74981E+00
sdo_data_a(63) = 4.12599E+00
sdo_data_a(64) = 4.40170E+00
sdo_data_a(65) = 4.60053E+00
sdo_data_a(66) = 4.74105E+00
sdo_data_a(67) = 0.00000E+00
sdo_data_a(68) = 1.21165E+00
sdo_data_a(69) = 2.32303E+00
sdo_data_a(70) = 1.58940E+00
sdo_data_a(71) = 2.16874E+00
sdo_data_a(72) = 2.97178E+00
sdo_data_a(73) = 3.57694E+00
sdo_data_a(74) = 4.01323E+00
sdo_data_a(75) = 4.32876E+00
sdo_data_a(76) = 4.55434E+00
sdo_data_a(77) = 4.71254E+00

sdo_s_spec_imin(1) = 1,
sdo_s_spec_imax(1) = 77,
sdo_s_spec_floor(1) = 0.001,
sdo_s_spec_fraction(1) = 0.01,

n_sdata_o = 77,

&END
44 changes: 44 additions & 0 deletions Testing/tests/siesta_recon_asym_test/input.test.vmec
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
&INDATA

! VMEC execution parameters.
LFORBAL = F,
LFREEB = F,
DELT = 1.0,
TCON0 = 2.0,
NFP = 2,
NS_ARRAY = 100,
FTOL_ARRAY = 1.0E-20,
NITER = 25000,
NSTEP = 200,
NTOR = 0,
MPOL = 2,
NVACSKIP = 9,
LASYM = F,
LNYQUIST = T,

! Fitting parameters.
GAMMA = 0.0,
PHIEDGE = -0.05,
BLOAT = 1.0,

! Initial Position.
RAXIS(0) = 0.75,
ZAXIS(0) = 0.0,
RBC(0,0) = 0.70,
RBC(0,1) = 0.2,
ZBS(0,0) = 0.0,
ZBS(0,1) = 0.2,

! Plasma current parameters.
NCURR = 1,
CURTOR = 40000.0,
AC = 1.0, 5.0, 10.0
PCURR_TYPE = 'two_power',

! Plasma pressure parameters.
SPRES_PED = 1.0,
PRES_SCALE = 400.0,
am = 1.0, 2.0, 2.0
pmass_type = 'two_power',
/
&END
24 changes: 24 additions & 0 deletions Testing/tests/siesta_recon_asym_test/siesta.jcf
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
&SIESTA_INFO
LADD_PERT=T,
LRESISTIVE=F,
LRESTART=F,
LCOLSCALE=T,
LASYM=T,
LRECON=T,
NITER=1000
FTOL= 1.0E-20
LEVMARQ_PARAM= 0.1
MRES = 2
HELPERT = 1.0E-4
HELPHASE = 0.0
NSIN = 100
NTOR_TYPE = "sparse"
MPOLIN = 2
NTORIN = 1
NFPIN = 1
NTOR_MODES(0) = 0,
NTOR_MODES(-1) = -1
NTOR_MODES(1) = 1
WOUT_FILE="wout_test.vmec.nc"
RESTART_EXT="restart_w7x"
/
Loading
Loading