diff --git a/Common/Context.h b/Common/Context.h index cc0c02bc66433026947004f6ce2fc3d9132ae912..86623f9303be9de48288698acf889e0eadeb3154 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -170,11 +170,14 @@ class CTX { double angle_smooth_normals; double allow_swap_edge_angle; int zone_definition; - meshPartitionOptions partition_options; - CGNSOptions cgns_options; int clip; // status of clip planes (bit array) } mesh; + // FIXME: putting these in the mesh struct (where they belong) causes + // an LNK1179 error ("duplicate COMDAT") with MSVC. I have no idea why. + meshPartitionOptions partition_options; + CGNSOptions cgns_options; + // post processing options struct{ int draw, link, horizontal_scales; diff --git a/Common/CreateFile.cpp b/Common/CreateFile.cpp index 74632f15ba9aa8b30d8f58d9d5b4f99dfc455d71..caac6877e1ceea0b634eabe131c9966ba37385fc 100644 --- a/Common/CreateFile.cpp +++ b/Common/CreateFile.cpp @@ -192,7 +192,7 @@ void CreateOutputFile(std::string fileName, int format) case FORMAT_CGNS: GModel::current()->writeCGNS - (fileName, CTX::instance()->mesh.zone_definition, CTX::instance()->mesh.cgns_options, + (fileName, CTX::instance()->mesh.zone_definition, CTX::instance()->cgns_options, CTX::instance()->mesh.scaling_factor); break; diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp index b2d4599e26b81896195496129ed998562deaf7ab..340393a3a875ef8eff94440cd39f9e1155cbd451 100644 --- a/Common/Gmsh.cpp +++ b/Common/Gmsh.cpp @@ -126,7 +126,7 @@ int GmshBatch() RefineMesh(GModel::current(), CTX::instance()->mesh.second_order_linear); #if defined(HAVE_CHACO) || defined(HAVE_METIS) if(CTX::instance()->batch_after_mesh == 1) - PartitionMesh(GModel::current(), CTX::instance()->mesh.partition_options); + PartitionMesh(GModel::current(), CTX::instance()->partition_options); #endif CreateOutputFile(CTX::instance()->output_filename, CTX::instance()->mesh.format); } diff --git a/Common/Options.cpp b/Common/Options.cpp index 1dd1799d341784502851c4b34fa98792c52b881d..73e8a2b42a441441da82f901509f2d8f5031c2f5 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -5693,186 +5693,186 @@ double opt_mesh_partition_partitioner(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = (int)val; - CTX::instance()->mesh.partition_options.partitioner = + CTX::instance()->partition_options.partitioner = (ival < 1 || ival > 2) ? 1 : ival; } - return CTX::instance()->mesh.partition_options.partitioner; + return CTX::instance()->partition_options.partitioner; } double opt_mesh_partition_num(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = std::max(1, (int)val); - CTX::instance()->mesh.partition_options.num_partitions = ival; + CTX::instance()->partition_options.num_partitions = ival; unsigned hcdim = 0; // log2 to get hypercube dimensions unsigned jval = ival; while(jval >>= 1) ++hcdim; - CTX::instance()->mesh.partition_options.ndims_tot = hcdim; - CTX::instance()->mesh.partition_options.mesh_dims[0] = ival; - CTX::instance()->mesh.partition_options.mesh_dims[1] = 1; - CTX::instance()->mesh.partition_options.mesh_dims[2] = 1; - if(CTX::instance()->mesh.partition_options.partitioner == 2) // METIS - CTX::instance()->mesh.partition_options.algorithm = (ival <= 8) ? 1 : 2; + CTX::instance()->partition_options.ndims_tot = hcdim; + CTX::instance()->partition_options.mesh_dims[0] = ival; + CTX::instance()->partition_options.mesh_dims[1] = 1; + CTX::instance()->partition_options.mesh_dims[2] = 1; + if(CTX::instance()->partition_options.partitioner == 2) // METIS + CTX::instance()->partition_options.algorithm = (ival <= 8) ? 1 : 2; } - return CTX::instance()->mesh.partition_options.num_partitions; + return CTX::instance()->partition_options.num_partitions; } double opt_mesh_partition_chaco_global_method(OPT_ARGS_NUM) { if(action & GMSH_SET) { int ival = (int)val; - CTX::instance()->mesh.partition_options.global_method = + CTX::instance()->partition_options.global_method = (ival < 1 || ival > 6 || ival == 3) ? 1 : ival; } - return CTX::instance()->mesh.partition_options.global_method; + return CTX::instance()->partition_options.global_method; } double opt_mesh_partition_chaco_architecture(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = (int)val; - CTX::instance()->mesh.partition_options.architecture = + CTX::instance()->partition_options.architecture = (ival < 0 || ival > 3) ? 1 : ival; } - return CTX::instance()->mesh.partition_options.architecture; + return CTX::instance()->partition_options.architecture; } double opt_mesh_partition_chaco_ndims_tot(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = std::max(1, (int)val); - CTX::instance()->mesh.partition_options.ndims_tot = ival; - CTX::instance()->mesh.partition_options.num_partitions = 1 << ival; + CTX::instance()->partition_options.ndims_tot = ival; + CTX::instance()->partition_options.num_partitions = 1 << ival; } - return CTX::instance()->mesh.partition_options.ndims_tot; + return CTX::instance()->partition_options.ndims_tot; } double opt_mesh_partition_chaco_mesh_dims1(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = std::max(1, (int)val); - CTX::instance()->mesh.partition_options.mesh_dims[0] = ival; - CTX::instance()->mesh.partition_options.num_partitions = ival; - if(CTX::instance()->mesh.partition_options.architecture >= 2) - CTX::instance()->mesh.partition_options.num_partitions *= - CTX::instance()->mesh.partition_options.mesh_dims[1]; - if(CTX::instance()->mesh.partition_options.architecture == 3) - CTX::instance()->mesh.partition_options.num_partitions *= - CTX::instance()->mesh.partition_options.mesh_dims[2]; + CTX::instance()->partition_options.mesh_dims[0] = ival; + CTX::instance()->partition_options.num_partitions = ival; + if(CTX::instance()->partition_options.architecture >= 2) + CTX::instance()->partition_options.num_partitions *= + CTX::instance()->partition_options.mesh_dims[1]; + if(CTX::instance()->partition_options.architecture == 3) + CTX::instance()->partition_options.num_partitions *= + CTX::instance()->partition_options.mesh_dims[2]; } - return CTX::instance()->mesh.partition_options.mesh_dims[0]; + return CTX::instance()->partition_options.mesh_dims[0]; } double opt_mesh_partition_chaco_mesh_dims2(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = std::max(1, (int)val); - CTX::instance()->mesh.partition_options.mesh_dims[1] = ival; - CTX::instance()->mesh.partition_options.num_partitions = - CTX::instance()->mesh.partition_options.mesh_dims[0]*ival; - if(CTX::instance()->mesh.partition_options.architecture == 3) - CTX::instance()->mesh.partition_options.num_partitions *= - CTX::instance()->mesh.partition_options.mesh_dims[2]; + CTX::instance()->partition_options.mesh_dims[1] = ival; + CTX::instance()->partition_options.num_partitions = + CTX::instance()->partition_options.mesh_dims[0]*ival; + if(CTX::instance()->partition_options.architecture == 3) + CTX::instance()->partition_options.num_partitions *= + CTX::instance()->partition_options.mesh_dims[2]; } - return CTX::instance()->mesh.partition_options.mesh_dims[1]; + return CTX::instance()->partition_options.mesh_dims[1]; } double opt_mesh_partition_chaco_mesh_dims3(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = std::max(1, (int)val); - CTX::instance()->mesh.partition_options.mesh_dims[2] = ival; - CTX::instance()->mesh.partition_options.num_partitions = - CTX::instance()->mesh.partition_options.mesh_dims[0]* - CTX::instance()->mesh.partition_options.mesh_dims[1]*ival; + CTX::instance()->partition_options.mesh_dims[2] = ival; + CTX::instance()->partition_options.num_partitions = + CTX::instance()->partition_options.mesh_dims[0]* + CTX::instance()->partition_options.mesh_dims[1]*ival; } - return CTX::instance()->mesh.partition_options.mesh_dims[2]; + return CTX::instance()->partition_options.mesh_dims[2]; } double opt_mesh_partition_chaco_local_method(OPT_ARGS_NUM) { if(action & GMSH_SET) { int ival = (int)val; - if(CTX::instance()->mesh.partition_options.algorithm == 1) ival = 1; - CTX::instance()->mesh.partition_options.local_method = (ival < 0 || ival > 1) ? 1 : ival; + if(CTX::instance()->partition_options.algorithm == 1) ival = 1; + CTX::instance()->partition_options.local_method = (ival < 0 || ival > 1) ? 1 : ival; } - return CTX::instance()->mesh.partition_options.local_method; + return CTX::instance()->partition_options.local_method; } double opt_mesh_partition_chaco_eigensolver(OPT_ARGS_NUM) { if(action & GMSH_SET) { int ival = val ? 1 : 0; - CTX::instance()->mesh.partition_options.rqi_flag = ival; + CTX::instance()->partition_options.rqi_flag = ival; } - return CTX::instance()->mesh.partition_options.rqi_flag; + return CTX::instance()->partition_options.rqi_flag; } double opt_mesh_partition_chaco_vmax(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = (int)val; - CTX::instance()->mesh.partition_options.vmax = (ival < 1) ? 1 : ival; + CTX::instance()->partition_options.vmax = (ival < 1) ? 1 : ival; } - return CTX::instance()->mesh.partition_options.vmax; + return CTX::instance()->partition_options.vmax; } double opt_mesh_partition_chaco_nsection(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = (int)val; - CTX::instance()->mesh.partition_options.ndims = (ival < 1 || ival > 3) ? 1 : ival; - if(CTX::instance()->mesh.partition_options.ndims > 1 && - CTX::instance()->mesh.partition_options.algorithm == 2) - CTX::instance()->mesh.partition_options.terminal_propogation = false; + CTX::instance()->partition_options.ndims = (ival < 1 || ival > 3) ? 1 : ival; + if(CTX::instance()->partition_options.ndims > 1 && + CTX::instance()->partition_options.algorithm == 2) + CTX::instance()->partition_options.terminal_propogation = false; } - return CTX::instance()->mesh.partition_options.ndims; + return CTX::instance()->partition_options.ndims; } double opt_mesh_partition_chaco_eigtol(OPT_ARGS_NUM) { if(action & GMSH_SET) - CTX::instance()->mesh.partition_options.eigtol = (val <= 0.) ? 1.E-3 : val; - return CTX::instance()->mesh.partition_options.eigtol; + CTX::instance()->partition_options.eigtol = (val <= 0.) ? 1.E-3 : val; + return CTX::instance()->partition_options.eigtol; } double opt_mesh_partition_chaco_seed(OPT_ARGS_NUM) { if(action & GMSH_SET) - CTX::instance()->mesh.partition_options.seed = (long)val; - return CTX::instance()->mesh.partition_options.seed; + CTX::instance()->partition_options.seed = (long)val; + return CTX::instance()->partition_options.seed; } double opt_mesh_partition_chaco_refine_partition(OPT_ARGS_NUM) { if(action & GMSH_SET) - CTX::instance()->mesh.partition_options.refine_partition = val ? 1 : 0; - return CTX::instance()->mesh.partition_options.refine_partition; + CTX::instance()->partition_options.refine_partition = val ? 1 : 0; + return CTX::instance()->partition_options.refine_partition; } double opt_mesh_partition_chaco_internal_vertices(OPT_ARGS_NUM) { if(action & GMSH_SET) - CTX::instance()->mesh.partition_options.internal_vertices = val ? 1 : 0; - return CTX::instance()->mesh.partition_options.internal_vertices; + CTX::instance()->partition_options.internal_vertices = val ? 1 : 0; + return CTX::instance()->partition_options.internal_vertices; } double opt_mesh_partition_chaco_refine_map(OPT_ARGS_NUM) { if(action & GMSH_SET) - CTX::instance()->mesh.partition_options.refine_map = val ? 1 : 0; - return CTX::instance()->mesh.partition_options.refine_map; + CTX::instance()->partition_options.refine_map = val ? 1 : 0; + return CTX::instance()->partition_options.refine_map; } double opt_mesh_partition_chaco_terminal_propogation(OPT_ARGS_NUM) { if(action & GMSH_SET) { - CTX::instance()->mesh.partition_options.terminal_propogation = val ? 1 : 0; - if(CTX::instance()->mesh.partition_options.terminal_propogation && - CTX::instance()->mesh.partition_options.algorithm == 2) - CTX::instance()->mesh.partition_options.ndims = 1; + CTX::instance()->partition_options.terminal_propogation = val ? 1 : 0; + if(CTX::instance()->partition_options.terminal_propogation && + CTX::instance()->partition_options.algorithm == 2) + CTX::instance()->partition_options.ndims = 1; } - return CTX::instance()->mesh.partition_options.terminal_propogation; + return CTX::instance()->partition_options.terminal_propogation; } double opt_mesh_partition_metis_algorithm(OPT_ARGS_NUM) @@ -5880,30 +5880,30 @@ double opt_mesh_partition_metis_algorithm(OPT_ARGS_NUM) if(action & GMSH_SET) { int ival = (int)val; if(ival < 1 || ival > 2) - ival = (CTX::instance()->mesh.partition_options.num_partitions <= 8) ? 1 : 2; - CTX::instance()->mesh.partition_options.algorithm = ival; + ival = (CTX::instance()->partition_options.num_partitions <= 8) ? 1 : 2; + CTX::instance()->partition_options.algorithm = ival; } - return CTX::instance()->mesh.partition_options.algorithm; + return CTX::instance()->partition_options.algorithm; } double opt_mesh_partition_metis_edge_matching(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = (int)val; - CTX::instance()->mesh.partition_options.edge_matching = + CTX::instance()->partition_options.edge_matching = (ival < 1 || ival > 3) ? 3 : ival; } - return CTX::instance()->mesh.partition_options.edge_matching; + return CTX::instance()->partition_options.edge_matching; } double opt_mesh_partition_metis_refine_algorithm(OPT_ARGS_NUM) { if(action & GMSH_SET) { const int ival = (int)val; - CTX::instance()->mesh.partition_options.refine_algorithm = + CTX::instance()->partition_options.refine_algorithm = (ival < 1 || ival > 3) ? 3 : ival; } - return CTX::instance()->mesh.partition_options.refine_algorithm; + return CTX::instance()->partition_options.refine_algorithm; } double opt_mesh_clip(OPT_ARGS_NUM) diff --git a/Fltk/fileDialogs.cpp b/Fltk/fileDialogs.cpp index c0ee1ea3d08a146de407ad37c492bd4fd2d210b3..f091d06f2b3b43240757b2b67526916808e93acb 100644 --- a/Fltk/fileDialogs.cpp +++ b/Fltk/fileDialogs.cpp @@ -960,42 +960,42 @@ struct CGNSWriteDialog void write_all_options() { opt_mesh_zone_definition(0, GMSH_SET | GMSH_GUI, choiceZoneDef->value()); - CTX::instance()->mesh.cgns_options.baseName = inputBaseName->value(); - CTX::instance()->mesh.cgns_options.zoneName = inputZoneName->value(); - CTX::instance()->mesh.cgns_options.interfaceName = inputInterfaceName->value(); - CTX::instance()->mesh.cgns_options.patchName = inputPatchName->value(); - CTX::instance()->mesh.cgns_options.gridConnectivityLocation = + CTX::instance()->cgns_options.baseName = inputBaseName->value(); + CTX::instance()->cgns_options.zoneName = inputZoneName->value(); + CTX::instance()->cgns_options.interfaceName = inputInterfaceName->value(); + CTX::instance()->cgns_options.patchName = inputPatchName->value(); + CTX::instance()->cgns_options.gridConnectivityLocation = roundButton1GCatFace->value(); - CTX::instance()->mesh.cgns_options.writeBC = checkButtonWriteBC->value(); - CTX::instance()->mesh.cgns_options.bocoLocation = roundButton1BCatFace->value(); - CTX::instance()->mesh.cgns_options.normalSource = (checkButtonWriteNormals->value()) ? + CTX::instance()->cgns_options.writeBC = checkButtonWriteBC->value(); + CTX::instance()->cgns_options.bocoLocation = roundButton1BCatFace->value(); + CTX::instance()->cgns_options.normalSource = (checkButtonWriteNormals->value()) ? roundButton1NormalElem->value() + 1 : 0; - CTX::instance()->mesh.cgns_options.vectorDim = choiceVecDim->value() + 2; - CTX::instance()->mesh.cgns_options.writeUserDef = checkButtonUnknownUserDef->value(); + CTX::instance()->cgns_options.vectorDim = choiceVecDim->value() + 2; + CTX::instance()->cgns_options.writeUserDef = checkButtonUnknownUserDef->value(); } void read_all_options() { choiceZoneDef->value(CTX::instance()->mesh.zone_definition); - inputBaseName->value(CTX::instance()->mesh.cgns_options.baseName.c_str()); - inputZoneName->value(CTX::instance()->mesh.cgns_options.zoneName.c_str()); - inputInterfaceName->value(CTX::instance()->mesh.cgns_options.interfaceName.c_str()); - inputPatchName->value(CTX::instance()->mesh.cgns_options.patchName.c_str()); - checkButtonWriteBC->value(CTX::instance()->mesh.cgns_options.writeBC); - checkButtonWriteNormals->value(CTX::instance()->mesh.cgns_options.normalSource); - choiceVecDim->value(CTX::instance()->mesh.cgns_options.vectorDim - 2); - checkButtonUnknownUserDef->value(CTX::instance()->mesh.cgns_options.writeUserDef); + inputBaseName->value(CTX::instance()->cgns_options.baseName.c_str()); + inputZoneName->value(CTX::instance()->cgns_options.zoneName.c_str()); + inputInterfaceName->value(CTX::instance()->cgns_options.interfaceName.c_str()); + inputPatchName->value(CTX::instance()->cgns_options.patchName.c_str()); + checkButtonWriteBC->value(CTX::instance()->cgns_options.writeBC); + checkButtonWriteNormals->value(CTX::instance()->cgns_options.normalSource); + choiceVecDim->value(CTX::instance()->cgns_options.vectorDim - 2); + checkButtonUnknownUserDef->value(CTX::instance()->cgns_options.writeUserDef); // Call all callbacks to ensure consistent options cgnsw_gc_location_cb - ((CTX::instance()->mesh.cgns_options.gridConnectivityLocation) ? + ((CTX::instance()->cgns_options.gridConnectivityLocation) ? roundButton1GCatFace : roundButton0GCatVertex, this); // The order of the next 4 is important cgnsw_normal_source_cb - ((CTX::instance()->mesh.cgns_options.normalSource == 2) ? + ((CTX::instance()->cgns_options.normalSource == 2) ? roundButton1NormalElem : roundButton0NormalGeo, this); cgnsw_write_normals_cb(checkButtonWriteNormals, this); cgnsw_bc_location_cb - ((CTX::instance()->mesh.cgns_options.bocoLocation) ? + ((CTX::instance()->cgns_options.bocoLocation) ? roundButton1BCatFace : roundButton0BCatVertex, this); cgnsw_write_dummy_bc_cb(checkButtonWriteBC, this); } @@ -1084,7 +1084,7 @@ void cgnsw_normal_source_cb(Fl_Widget *widget, void *data) void cgnsw_defaults_cb(Fl_Widget *widget, void *data) { CGNSWriteDialog *dlg = static_cast<CGNSWriteDialog*>(data); - CTX::instance()->mesh.cgns_options.setDefaults(); + CTX::instance()->cgns_options.setDefaults(); dlg->read_all_options(); } diff --git a/Fltk/partitionDialog.cpp b/Fltk/partitionDialog.cpp index 97bfc8a73d369041aa1fb4341a6372ff6ebf77be..6b7ac7d5e3d51cbf7427f3b7f073c5b90dd3f9e4 100644 --- a/Fltk/partitionDialog.cpp +++ b/Fltk/partitionDialog.cpp @@ -72,88 +72,88 @@ struct PartitionDialog void write_all_options() { // Group 0 - CTX::instance()->mesh.partition_options.partitioner = choicePartitioner->value() + 1; - CTX::instance()->mesh.partition_options.num_partitions = + CTX::instance()->partition_options.partitioner = choicePartitioner->value() + 1; + CTX::instance()->partition_options.num_partitions = static_cast<int>(inputNumPartition->value()); // Group 1 - CTX::instance()->mesh.partition_options.global_method = choiceChacoAlg->value() + 1; + CTX::instance()->partition_options.global_method = choiceChacoAlg->value() + 1; // Group 2 - CTX::instance()->mesh.partition_options.architecture = choiceArchitecture->value(); - switch(CTX::instance()->mesh.partition_options.architecture) { + CTX::instance()->partition_options.architecture = choiceArchitecture->value(); + switch(CTX::instance()->partition_options.architecture) { case 0: - CTX::instance()->mesh.partition_options.ndims_tot = + CTX::instance()->partition_options.ndims_tot = static_cast<int>(inputNumPartition1->value()); break; case 3: - CTX::instance()->mesh.partition_options.mesh_dims[2] = + CTX::instance()->partition_options.mesh_dims[2] = static_cast<int>(inputNumPartition3->value()); case 2: - CTX::instance()->mesh.partition_options.mesh_dims[1] = + CTX::instance()->partition_options.mesh_dims[1] = static_cast<int>(inputNumPartition2->value()); case 1: - CTX::instance()->mesh.partition_options.mesh_dims[0] = + CTX::instance()->partition_options.mesh_dims[0] = static_cast<int>(inputNumPartition1->value()); break; } - CTX::instance()->mesh.partition_options.ndims = choiceDivisions->value() + 1; - CTX::instance()->mesh.partition_options.vmax = static_cast<int>(inputVMax->value()); - CTX::instance()->mesh.partition_options.rqi_flag = choiceEigensolver->value(); - CTX::instance()->mesh.partition_options.eigtol = inputEigtol->value(); - CTX::instance()->mesh.partition_options.local_method = choiceLocalAlgorithm->value() + 1; - CTX::instance()->mesh.partition_options.seed = static_cast<long>(inputSeed->value()); - CTX::instance()->mesh.partition_options.refine_partition = checkButtonRefPart->value(); - CTX::instance()->mesh.partition_options.internal_vertices = checkButtonIntVert->value(); - CTX::instance()->mesh.partition_options.refine_map = checkButtonRefMap->value(); - CTX::instance()->mesh.partition_options.terminal_propogation = + CTX::instance()->partition_options.ndims = choiceDivisions->value() + 1; + CTX::instance()->partition_options.vmax = static_cast<int>(inputVMax->value()); + CTX::instance()->partition_options.rqi_flag = choiceEigensolver->value(); + CTX::instance()->partition_options.eigtol = inputEigtol->value(); + CTX::instance()->partition_options.local_method = choiceLocalAlgorithm->value() + 1; + CTX::instance()->partition_options.seed = static_cast<long>(inputSeed->value()); + CTX::instance()->partition_options.refine_partition = checkButtonRefPart->value(); + CTX::instance()->partition_options.internal_vertices = checkButtonIntVert->value(); + CTX::instance()->partition_options.refine_map = checkButtonRefMap->value(); + CTX::instance()->partition_options.terminal_propogation = checkButtonTermProp->value(); // Group 3 - CTX::instance()->mesh.partition_options.algorithm = choiceMetisAlg->value() + 1; + CTX::instance()->partition_options.algorithm = choiceMetisAlg->value() + 1; // Group 4 - CTX::instance()->mesh.partition_options.edge_matching = choiceEdgeMatch->value() + 1; - CTX::instance()->mesh.partition_options.refine_algorithm = choiceRefineAlg->value() + 1; + CTX::instance()->partition_options.edge_matching = choiceEdgeMatch->value() + 1; + CTX::instance()->partition_options.refine_algorithm = choiceRefineAlg->value() + 1; } void read_all_options() { // Group 0 - choicePartitioner->value(CTX::instance()->mesh.partition_options.partitioner - 1); - inputNumPartition->value(CTX::instance()->mesh.partition_options.num_partitions); + choicePartitioner->value(CTX::instance()->partition_options.partitioner - 1); + inputNumPartition->value(CTX::instance()->partition_options.num_partitions); // Group 1 - choiceChacoAlg->value(CTX::instance()->mesh.partition_options.global_method - 1); + choiceChacoAlg->value(CTX::instance()->partition_options.global_method - 1); // Group 2 - choiceArchitecture->value(CTX::instance()->mesh.partition_options.architecture); - switch(CTX::instance()->mesh.partition_options.architecture) { + choiceArchitecture->value(CTX::instance()->partition_options.architecture); + switch(CTX::instance()->partition_options.architecture) { case 0: - inputNumPartition1->value(CTX::instance()->mesh.partition_options.ndims_tot); + inputNumPartition1->value(CTX::instance()->partition_options.ndims_tot); break; case 1: - inputNumPartition1->value(CTX::instance()->mesh.partition_options.mesh_dims[0]); + inputNumPartition1->value(CTX::instance()->partition_options.mesh_dims[0]); break; } - inputNumPartition2->value(CTX::instance()->mesh.partition_options.mesh_dims[1]); - inputNumPartition3->value(CTX::instance()->mesh.partition_options.mesh_dims[2]); - choiceDivisions->value(CTX::instance()->mesh.partition_options.ndims - 1); - inputVMax->value(CTX::instance()->mesh.partition_options.vmax); - choiceEigensolver->value(CTX::instance()->mesh.partition_options.rqi_flag); - inputEigtol->value(CTX::instance()->mesh.partition_options.eigtol); - choiceLocalAlgorithm->value(CTX::instance()->mesh.partition_options.local_method - 1); - inputSeed->value(CTX::instance()->mesh.partition_options.seed); - checkButtonRefPart->value(CTX::instance()->mesh.partition_options.refine_partition); - checkButtonIntVert->value(CTX::instance()->mesh.partition_options.internal_vertices); - checkButtonRefMap->value(CTX::instance()->mesh.partition_options.refine_map); - checkButtonTermProp->value(CTX::instance()->mesh.partition_options.terminal_propogation); + inputNumPartition2->value(CTX::instance()->partition_options.mesh_dims[1]); + inputNumPartition3->value(CTX::instance()->partition_options.mesh_dims[2]); + choiceDivisions->value(CTX::instance()->partition_options.ndims - 1); + inputVMax->value(CTX::instance()->partition_options.vmax); + choiceEigensolver->value(CTX::instance()->partition_options.rqi_flag); + inputEigtol->value(CTX::instance()->partition_options.eigtol); + choiceLocalAlgorithm->value(CTX::instance()->partition_options.local_method - 1); + inputSeed->value(CTX::instance()->partition_options.seed); + checkButtonRefPart->value(CTX::instance()->partition_options.refine_partition); + checkButtonIntVert->value(CTX::instance()->partition_options.internal_vertices); + checkButtonRefMap->value(CTX::instance()->partition_options.refine_map); + checkButtonTermProp->value(CTX::instance()->partition_options.terminal_propogation); // Group 3 - choiceMetisAlg->value(CTX::instance()->mesh.partition_options.algorithm - 1); + choiceMetisAlg->value(CTX::instance()->partition_options.algorithm - 1); // Group 4 - choiceEdgeMatch->value(CTX::instance()->mesh.partition_options.edge_matching - 1); - choiceRefineAlg->value(CTX::instance()->mesh.partition_options.refine_algorithm - 1); + choiceEdgeMatch->value(CTX::instance()->partition_options.edge_matching - 1); + choiceRefineAlg->value(CTX::instance()->partition_options.refine_algorithm - 1); // Call all callbacks to ensure consistent options partition_opt_chaco_globalalg_cb(choiceChacoAlg, this); @@ -303,7 +303,7 @@ void partition_opt_spectralcheck_cb(Fl_Widget *widget, void *data) void partition_defaults_cb(Fl_Widget *widget, void *data) { PartitionDialog *dlg = static_cast<PartitionDialog*>(data); - CTX::instance()->mesh.partition_options.setDefaults(); + CTX::instance()->partition_options.setDefaults(); dlg->read_all_options(); partition_select_groups_cb(dlg->choicePartitioner, data); } @@ -316,7 +316,7 @@ void partition_partition_cb(Fl_Widget *widget, void *data) dlg->write_all_options(); // Partition the mesh - int ier = PartitionMesh(GModel::current(), CTX::instance()->mesh.partition_options); + int ier = PartitionMesh(GModel::current(), CTX::instance()->partition_options); // Update the screen if(!ier) {