@@ -1553,6 +1553,29 @@ int CeedOperatorSetName(CeedOperator op, const char *name) {
15531553 return CEED_ERROR_SUCCESS ;
15541554}
15551555
1556+ /**
1557+ @brief Get name of `CeedOperator`
1558+
1559+ @param[in] op `CeedOperator`
1560+ @param[in,out] name Address of variable to hold currently set name
1561+
1562+ @return An error code: 0 - success, otherwise - failure
1563+
1564+ @ref User
1565+ **/
1566+ int CeedOperatorGetName (CeedOperator op , const char * * name ) {
1567+ if (op -> name ) {
1568+ * name = op -> name ;
1569+ } else if (!op -> is_composite ) {
1570+ CeedQFunction qf ;
1571+
1572+ CeedCall (CeedOperatorGetQFunction (op , & qf ));
1573+ if (qf ) CeedCall (CeedQFunctionGetName (qf , name ));
1574+ CeedCall (CeedQFunctionDestroy (& qf ));
1575+ }
1576+ return CEED_ERROR_SUCCESS ;
1577+ }
1578+
15561579/**
15571580 @brief Core logic for viewing a `CeedOperator`
15581581
@@ -1565,8 +1588,11 @@ int CeedOperatorSetName(CeedOperator op, const char *name) {
15651588 @ref Developer
15661589**/
15671590static int CeedOperatorView_Core (CeedOperator op , FILE * stream , bool is_full ) {
1568- bool has_name = op -> name , is_composite , is_at_points ;
1591+ bool has_name , is_composite , is_at_points ;
1592+ const char * name = NULL ;
15691593
1594+ CeedCall (CeedOperatorGetName (op , & name ));
1595+ has_name = name ? strlen (name ) : false;
15701596 CeedCall (CeedOperatorIsComposite (op , & is_composite ));
15711597 CeedCall (CeedOperatorIsAtPoints (op , & is_at_points ));
15721598 if (is_composite ) {
@@ -1575,7 +1601,7 @@ static int CeedOperatorView_Core(CeedOperator op, FILE *stream, bool is_full) {
15751601
15761602 CeedCall (CeedCompositeOperatorGetNumSub (op , & num_suboperators ));
15771603 CeedCall (CeedCompositeOperatorGetSubList (op , & sub_operators ));
1578- fprintf (stream , "Composite CeedOperator%s%s\n" , has_name ? " - " : "" , has_name ? op -> name : "" );
1604+ fprintf (stream , "Composite CeedOperator%s%s\n" , has_name ? " - " : "" , has_name ? name : "" );
15791605
15801606 for (CeedInt i = 0 ; i < num_suboperators ; i ++ ) {
15811607 has_name = sub_operators [i ]-> name ;
@@ -1584,7 +1610,7 @@ static int CeedOperatorView_Core(CeedOperator op, FILE *stream, bool is_full) {
15841610 if (is_full ) CeedCall (CeedOperatorSingleView (sub_operators [i ], 1 , stream ));
15851611 }
15861612 } else {
1587- fprintf (stream , "CeedOperator%s%s%s\n" , is_at_points ? " AtPoints" : "" , has_name ? " - " : "" , has_name ? op -> name : "" );
1613+ fprintf (stream , "CeedOperator%s%s%s\n" , is_at_points ? " AtPoints" : "" , has_name ? " - " : "" , has_name ? name : "" );
15881614 if (is_full ) CeedCall (CeedOperatorSingleView (op , 0 , stream ));
15891615 }
15901616 return CEED_ERROR_SUCCESS ;
0 commit comments