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, ¶m_cats); */
saf_find_collections(pmode, suite, SAF_PARAM_SLICE,
SAF_CELLTYPE_ANY, SAF_ANY_TOPODIM, SAF_DECOMP_TORF,
&num_param_cats, ¶m_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);
}