@@ -1251,7 +1251,8 @@ vmecpp::OutputQuantities vmecpp::ComputeOutputQuantities(
12511251 models_from_threads, radial_profiles);
12521252
12531253 if (vmec_status == VmecStatus::NORMAL_TERMINATION ||
1254- vmec_status == VmecStatus::SUCCESSFUL_TERMINATION) {
1254+ vmec_status == VmecStatus::SUCCESSFUL_TERMINATION ||
1255+ indata.return_outputs_even_if_not_converged ) {
12551256 MeshBledingBSubZeta (
12561257 s, fc,
12571258 /* m_vmec_internal_results=*/ output_quantities.vmec_internal_results );
@@ -1314,6 +1315,7 @@ vmecpp::OutputQuantities vmecpp::ComputeOutputQuantities(
13141315 output_quantities.jxbout = ComputeJxBOutputFileContents (
13151316 s, fc, output_quantities.vmec_internal_results ,
13161317 output_quantities.bsubs_full , output_quantities.covariant_b_derivatives ,
1318+ indata.return_outputs_even_if_not_converged ,
13171319 vmec_status);
13181320
13191321 if (checkpoint == VmecCheckpoint::JXBOUT) {
@@ -2360,6 +2362,7 @@ vmecpp::JxBOutFileContents vmecpp::ComputeJxBOutputFileContents(
23602362 const VmecInternalResults& vmec_internal_results,
23612363 const BSubSFull& bsubs_full,
23622364 const CovariantBDerivatives& covariant_b_derivatives,
2365+ const bool return_outputs_even_if_not_converged,
23632366 VmecStatus vmec_status) {
23642367 JxBOutFileContents jxbout;
23652368
@@ -2598,7 +2601,7 @@ vmecpp::JxBOutFileContents vmecpp::ComputeJxBOutputFileContents(
25982601 jxbout.jperp2 [jF] = dnorm1 * tjnorm * average_jperp2;
25992602
26002603 // Some quantities are only computed if VMEC++ actually converged.
2601- if (vmec_status == VmecStatus::SUCCESSFUL_TERMINATION) {
2604+ if (vmec_status == VmecStatus::SUCCESSFUL_TERMINATION || return_outputs_even_if_not_converged ) {
26022605 // normalized toroidal magnetic flux
26032606 jxbout.phin [jF] = vmec_internal_results.phiF [jF] /
26042607 vmec_internal_results.phiF [fc.ns - 1 ];
@@ -2635,7 +2638,7 @@ vmecpp::JxBOutFileContents vmecpp::ComputeJxBOutputFileContents(
26352638 } // jF
26362639
26372640 // Some quantities are only computed if VMEC++ actually converged.
2638- if (vmec_status == VmecStatus::SUCCESSFUL_TERMINATION) {
2641+ if (vmec_status == VmecStatus::SUCCESSFUL_TERMINATION || return_outputs_even_if_not_converged ) {
26392642 // The loop in jxbforce.f90:594 goes over js=2,ns1,
26402643 // which means that the last half-grid point is not touched.
26412644 for (int jH = 0 ; jH < vmec_internal_results.num_half - 1 ; ++jH) {
0 commit comments