1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 int
 saf_describe_suite(SAF_ParMode pmode,           /* The parallel mode. */
                    SAF_Suite   *suite,          /* A suite handle. */
                    char        **name,          /* [OUT] The returned name of the suite. Pass NULL if you do not want this value
                                                  * returned. */
                    int         *num_space_sets, /* [OUT] The number of sets returned in MESH_SPACE. */
                    SAF_Set     **mesh_space,    /* [OUT] The returned array of sets representing the computational meshes associated
                                                  * with each state of the suite. This is the list of sets in the "SAF_SPACE_SLICE"
                                                  * collection. */
                    SAF_Set     **param_space    /* [OUT] The returned array of sets representing the parametric space, such as
                                                  * time. These are associated with the histories of the suite and are thus
                                                  * contained in the "SAF_PARAM_SLICE" collection.  This will not be
                                                  * implemented at this time. */
                    )
 {
   SAF_ENTER(saf_describe_suite,0);

   int num_space_cats, num_param_cats, num_param_sets;
   SAF_Cat *space_cats, *param_cats;

   saf_describe_set (pmode, suite, name, NULL, NULL, NULL, NULL, NULL, NULL);

   space_cats = NULL;
   /* saf_find_categories (suite, SAF_ANY_NAME, SAF_SPACE_SLICE, SAF_ANY_TOPODIM, &num_space_cats, &space_cats); */
   saf_find_collections(pmode, suite, SAF_SPACE_SLICE,
                          SAF_CELLTYPE_ANY, SAF_ANY_TOPODIM, SAF_DECOMP_TORF,
                          &num_space_cats, &space_cats);

   if( (num_space_sets != NULL) && (mesh_space != NULL) )
       /* find all sets that are immediate subsets of suite by the SAF_SPACE_SLICE category */
       saf_find_sets( pmode, SAF_FSETS_SUBS, suite, space_cats+0, num_space_sets, mesh_space);

   if( param_space != NULL ) {
       param_cats = NULL;
       /* saf_find_categories(suite, SAF_ANY_NAME, SAF_PARAM_SLICE, SAF_ANY_TOPODIM, &num_param_cats, &param_cats);  */
       saf_find_collections(pmode, suite, SAF_PARAM_SLICE,
                          SAF_CELLTYPE_ANY, SAF_ANY_TOPODIM, SAF_DECOMP_TORF,
                          &num_param_cats, &param_cats);
       saf_find_sets(pmode, SAF_FSETS_SUBS, suite, param_cats+0, &num_param_sets, NULL);
       if( num_param_sets > 0 )
           saf_find_sets(pmode, SAF_FSETS_SUBS, suite, param_cats+0, &num_param_sets, param_space);
   }
   SAF_LEAVE(0);
 }