diff --git a/core/zero/util.c b/core/zero/util.c index 2bcc40cf02..07806aed6a 100644 --- a/core/zero/util.c +++ b/core/zero/util.c @@ -514,46 +514,61 @@ gkyl_msgpack_create_union(int numlist_union, int *nvals_union, const struct gkyl mpack_writer_t writer; mpack_writer_init_growable(&writer, &mdata->meta, &mdata->meta_sz); - mpack_build_map(&writer); + int nvals_tot = 0; + for (int j=0; jkey, flat[m]->key) == 0) { + overridden = true; + break; } } + if (overridden) + continue; + + const struct gkyl_msgpack_map_elem *elem = flat[k]; + mpack_write_cstr(&writer, elem->key); + + switch (elem->elem_type) { + case GKYL_MP_BOOL: + mpack_write_bool(&writer, elem->bval); + break; + + case GKYL_MP_UNSIGNED_INT: + mpack_write_u64(&writer, elem->uval); + break; + + case GKYL_MP_INT: + mpack_write_i64(&writer, elem->ival); + break; + + case GKYL_MP_FLOAT: + mpack_write_float(&writer, elem->fval); + break; + + case GKYL_MP_DOUBLE: + mpack_write_double(&writer, elem->dval); + break; + + case GKYL_MP_STRING: + mpack_write_cstr(&writer, elem->cval); + break; + + default: + assert(false); // NYI. + break; + } } mpack_complete_map(&writer); diff --git a/gyrokinetic/creg/rt_gk_wham_1xIC_2x2v_p1.c b/gyrokinetic/creg/rt_gk_wham_1xIC_2x2v_p1.c index 253cc7887f..43ca8cf397 100644 --- a/gyrokinetic/creg/rt_gk_wham_1xIC_2x2v_p1.c +++ b/gyrokinetic/creg/rt_gk_wham_1xIC_2x2v_p1.c @@ -819,7 +819,7 @@ int main(int argc, char **argv) .init_from_file = { .type = GKYL_IC_IMPORT_F, .file_name = "gk_wham_1x2v_p1-elc_0.gkyl", - // .jacobtot_inv_file_name = "gk_wham_1x2v_p1-jacobtot_inv.gkyl", + .jacobtot_inv_file_name = "gk_wham_1x2v_p1-geo_int_jacobtot_inv.gkyl", }, .mapc2p = { @@ -887,7 +887,7 @@ int main(int argc, char **argv) .init_from_file = { .type = GKYL_IC_IMPORT_F, .file_name = "gk_wham_1x2v_p1-ion_0.gkyl", - .jacobtot_inv_file_name = "gk_wham_1x2v_p1-jacobtot_inv.gkyl", + .jacobtot_inv_file_name = "gk_wham_1x2v_p1-geo_int_jacobtot_inv.gkyl", }, .scale_with_polarization = true,