System Preprocessors
Functions
sysprotransform.h File Reference
#include "syspro.h"
#include "petsc.h"

Go to the source code of this file.

Functions

PetscErrorCode NewTransform (const char *, SalsaTransform *)
PetscErrorCode DeregisterTransform (SalsaTransform)
PetscErrorCode TransformGetName (SalsaTransform, const char **)
PetscErrorCode TransformGetByName (const char *, SalsaTransform *)
PetscErrorCode NewTransformObject (const char *, const char *, SalsaTransformObject *)
PetscErrorCode FreeTransformObject (SalsaTransformObject tf)
PetscErrorCode TransformObjectGetByName (const char *, const char *, SalsaTransformObject *)
PetscErrorCode TransformGetObjects (SalsaTransform, int *, SalsaTransformObject **)
PetscErrorCode TransformObjectGetName (SalsaTransformObject, const char **)
PetscErrorCode TransformObjectGetTransformName (SalsaTransformObject, char **)
PetscErrorCode TransformObjectsGetNames (SalsaTransform, const char ***)
PetscErrorCode TransformObjectSetExplanation (SalsaTransformObject, const char *)
PetscErrorCode TransformObjectSetSuitabilityFunction (SalsaTransformObject, void *, PetscErrorCode(*)(NumericalProblem, void *, SuitabilityValue *))
PetscErrorCode SetSuitabilityContextTester (SalsaTransform, PetscErrorCode(*)(void *))
PetscErrorCode TransformObjectGetSuitabilityFunction (SalsaTransformObject, void **, PetscErrorCode(**)(NumericalProblem, void *, SuitabilityValue *))
PetscErrorCode TransformObjectAddOptionExplanation (SalsaTransformObject, int, const char *)
PetscErrorCode TransformItemGetFirstOption (const char *, const char *, int *, PetscTruth *)
PetscErrorCode TransformItemGetNextOption (const char *, const char *, int *, PetscTruth *)
PetscErrorCode TransformReportTeXTable (SalsaTransform, FILE *)
PetscErrorCode TransformReportEnabled (SalsaTransform, const char **)
PetscErrorCode TransformItemDescribeShort (SalsaTransform, char *, int, char **)
PetscErrorCode TransformItemDescribeLong (SalsaTransform, char *, int, char **)
PetscErrorCode TransformObjectMark (SalsaTransformObject tf)
PetscErrorCode TransformObjectUnmark (SalsaTransformObject tf)
PetscErrorCode TransformObjectsMarkAll (SalsaTransform tf)
PetscErrorCode TransformObjectsUnmarkAll (SalsaTransform tf)
PetscErrorCode TransformObjectGetMark (SalsaTransformObject, int *)
PetscErrorCode TransformItemOptionMark (SalsaTransform, const char *, int)
PetscErrorCode TransformGetNUnmarked (SalsaTransform, int *)
PetscErrorCode TransformObjectsUseOnly (SalsaTransform, const char *)
PetscErrorCode TransformItemOptionsUseOnly (SalsaTransformObject, const char *)
PetscErrorCode TransformGetNItems (SalsaTransform, int *n)
PetscErrorCode TransformGetNextUnmarkedItem (SalsaTransform, const char *, SalsaTransformObject *, PetscTruth *)
PetscErrorCode PreprocessorSaveAprioriSelection (SystemPreprocessor)
PetscErrorCode PreprocessorApplyAprioriSelection (SystemPreprocessor)
PetscErrorCode SysProDefineCharAnnotation (const char *, const char *)
PetscErrorCode TransformCharAnnotationGetIndex (SalsaTransform, const char *, int *, PetscTruth *)
PetscErrorCode TransformObjectCharAnnotate (SalsaTransformObject, const char *, const char *)
PetscErrorCode TransformObjectIntAnnotate (SalsaTransformObject, const char *, int)
PetscErrorCode TransformObjectGetIntAnnotation (SalsaTransformObject, const char *, int *, PetscTruth *)
PetscErrorCode SysProDefineIntAnnotation (const char *, const char *)
PetscErrorCode TransformIntAnnotationGetIndex (SalsaTransform, const char *, int *, PetscTruth *)
PetscErrorCode TransformItemIntAnnotate (SalsaTransform, int, int)
PetscErrorCode TransformItemGetIntAnnotation (SalsaTransform, int idx, char *an, int *v, PetscTruth *f)
PetscErrorCode TransformObjectDefineOption (SalsaTransformObject, const char *)
PetscErrorCode TransformObjectAddOption (SalsaTransformObject, int)
PetscErrorCode TransformItemCharAnnotationGetIndex (SalsaTransform, char *, int *)
PetscErrorCode TransformItemGetCharAnnotation (SalsaTransform, int idx, char *an, char **v, PetscTruth *)
PetscErrorCode TransformCurrentItemDefineOption (SalsaTransform, char *, char *)
PetscErrorCode TransformItemDefineOption (SalsaTransform, int, char *, char *)
PetscErrorCode TransformItemGetNOptions (SalsaTransform, int it, int *nopt)
PetscErrorCode TransformItemGetOptionI (SalsaTransform, int it, int iopt, int *v)
PetscErrorCode TransformSetUserChoices (SalsaTransform, PetscTruth)
PetscErrorCode TransformGetUserChoices (SalsaTransform, PetscTruth *)
PetscErrorCode SalsaTransformIntegrityTest (SalsaTransform tf)

Function Documentation

PetscErrorCode DeregisterTransform ( SalsaTransform  )
PetscErrorCode FreeTransformObject ( SalsaTransformObject  tf)
PetscErrorCode NewTransform ( const char *  name,
SalsaTransform tf 
)

Define a new class of preprocessors, for instance scaling or permutation.

Definition at line 45 of file transform.c.

References SalsaTransform_::alloc_objects, SalsaTransform_::aprioriselection, CHKERRQ(), SalsaTransform_::cookie, ierr, SalsaTransform_::n_objects, SalsaTransform_::name, TFINC, TRANSFORMCOOKIE, and SalsaTransform_::transformobjects.

Referenced by DeclarePreprocessor().

PetscErrorCode NewTransformObject ( const char *  transform,
const char *  name,
SalsaTransformObject to 
)

Create a transform object specified by name for the preprocessor class transform. The to parameter can be NULL if no further specifications of the object are needed, in which case this only registers the name.

Definition at line 109 of file transform.c.

References SalsaTransform_::alloc_objects, CHKERRQ(), SalsaTransformObject_::cookie, ierr, SalsaTransform_::n_objects, SalsaTransformObject_::name, SalsaTransformObject_::transform, TransformGetByName(), TRANSFORMOBJECTCOOKIE, and SalsaTransform_::transformobjects.

Referenced by declareadders(), setup_approximation_choices(), setup_distribution_choices(), setup_flipsign_choices(), setup_ksp_choices(), setup_pc_choices(), setup_scaling_choices(), and setup_singleton_choices().

PetscErrorCode PreprocessorApplyAprioriSelection ( SystemPreprocessor  )
PetscErrorCode PreprocessorSaveAprioriSelection ( SystemPreprocessor  )
PetscErrorCode SalsaTransformIntegrityTest ( SalsaTransform  tf)
PetscErrorCode SetSuitabilityContextTester ( SalsaTransform  ,
PetscErrorCode(*)(void *)   
)

Definition at line 884 of file transform.c.

References CHECKVALIDTRANSFORM, and SalsaTransform_::suitabilityctxtester.

Referenced by setup_ksp_choices().

PetscErrorCode SysProDefineCharAnnotation ( const char *  transform,
const char *  ann 
)

Define a character string annotation for a transform. The index of this annotation can be retrieved with TransformCharAnnotationGetIndex(). The actual annotation can be found with TransformItemGetCharAnnotation().

Definition at line 276 of file transform.c.

References SalsaTransform_::annotations_c, CHKERRQ(), ierr, SalsaTransform_::n_annotate_c, TFINC, and TransformGetByName().

Referenced by setup_ksp_choices().

PetscErrorCode SysProDefineIntAnnotation ( const char *  transform,
const char *  ann 
)

Define a integer string annotation for a transform. The index of this annotation can be retrieved with TransformIntAnnotationGetIndex(). The actual annotation can be found with TransformItemGetIntAnnotation().

Definition at line 332 of file transform.c.

References SalsaTransform_::annotations_i, CHKERRQ(), ierr, SalsaTransform_::n_annotate_i, TFINC, and TransformGetByName().

Referenced by setup_distribution_choices(), setup_ksp_choices(), setup_pc_choices(), and setup_scaling_choices().

PetscErrorCode TransformCharAnnotationGetIndex ( SalsaTransform  ,
const char *  ,
int *  ,
PetscTruth *   
)
PetscErrorCode TransformCurrentItemDefineOption ( SalsaTransform  ,
char *  ,
char *   
)
PetscErrorCode TransformGetByName ( const char *  ,
SalsaTransform  
)
PetscErrorCode TransformGetName ( SalsaTransform  ,
const char **   
)

Definition at line 81 of file transform.c.

References CHECKVALIDTRANSFORM, and SalsaTransform_::name.

PetscErrorCode TransformGetNextUnmarkedItem ( SalsaTransform  tf,
const char *  old,
SalsaTransformObject snew,
PetscTruth *  f 
)

Find the next unmarked value; if old is NULL, the first first unmarked value is given, otherwise the first one after a match with old.

Definition at line 527 of file transform.c.

References CHECKVALIDTRANSFORM, CHECKVALIDTRANSFORMOBJECT, SalsaTransformObject_::marked, SalsaTransform_::n_objects, SalsaTransformObject_::name, SalsaTransform_::transformobjects, and TRUTH.

Referenced by ChooseFirstTransform(), PreprocessedSolution(), and PreprocessorsOptionsHandling().

PetscErrorCode TransformGetNItems ( SalsaTransform  ,
int *  n 
)
PetscErrorCode TransformGetNUnmarked ( SalsaTransform  ,
int *   
)
PetscErrorCode TransformGetObjects ( SalsaTransform  ,
int *  ,
SalsaTransformObject **   
)
PetscErrorCode TransformGetUserChoices ( SalsaTransform  tf,
PetscTruth *  ch 
)

Query whether the user has ordained which choice(s) to take for a specific transform. The values of these choices are implicitly given by disabling some transforms.

See also TransformSetUserChoices(), TransformObjectsUseOnly().

Definition at line 874 of file transform.c.

References CHECKVALIDTRANSFORM, and SalsaTransform_::userchoices.

Referenced by PreprocessedSolution().

PetscErrorCode TransformIntAnnotationGetIndex ( SalsaTransform  ,
const char *  ,
int *  ,
PetscTruth *   
)
PetscErrorCode TransformItemCharAnnotationGetIndex ( SalsaTransform  ,
char *  ,
int *   
)
PetscErrorCode TransformItemDefineOption ( SalsaTransform  ,
int  ,
char *  ,
char *   
)
PetscErrorCode TransformItemDescribeLong ( SalsaTransform  ,
char *  ,
int  ,
char **   
)
PetscErrorCode TransformItemDescribeShort ( SalsaTransform  ,
char *  ,
int  ,
char **   
)
PetscErrorCode TransformItemGetCharAnnotation ( SalsaTransform  ,
int  idx,
char *  an,
char **  v,
PetscTruth *   
)
PetscErrorCode TransformItemGetFirstOption ( const char *  ,
const char *  ,
int *  ,
PetscTruth *   
)
PetscErrorCode TransformItemGetIntAnnotation ( SalsaTransform  ,
int  idx,
char *  an,
int *  v,
PetscTruth *  f 
)
PetscErrorCode TransformItemGetNextOption ( const char *  ,
const char *  ,
int *  ,
PetscTruth *   
)
PetscErrorCode TransformItemGetNOptions ( SalsaTransform  ,
int  it,
int *  nopt 
)
PetscErrorCode TransformItemGetOptionI ( SalsaTransform  ,
int  it,
int  iopt,
int *  v 
)
PetscErrorCode TransformItemIntAnnotate ( SalsaTransform  ,
int  ,
int   
)
PetscErrorCode TransformItemOptionMark ( SalsaTransform  ,
const char *  ,
int   
)
PetscErrorCode TransformItemOptionsUseOnly ( SalsaTransformObject  ,
const char *   
)
PetscErrorCode TransformObjectAddOption ( SalsaTransformObject  ,
int   
)
PetscErrorCode TransformObjectAddOptionExplanation ( SalsaTransformObject  ,
int  ,
const char *   
)
PetscErrorCode TransformObjectCharAnnotate ( SalsaTransformObject  ,
const char *  ,
const char *   
)
PetscErrorCode TransformObjectDefineOption ( SalsaTransformObject  ,
const char *   
)
PetscErrorCode TransformObjectGetByName ( const char *  ,
const char *  ,
SalsaTransformObject  
)
PetscErrorCode TransformObjectGetIntAnnotation ( SalsaTransformObject  ,
const char *  ,
int *  ,
PetscTruth *   
)
PetscErrorCode TransformObjectGetMark ( SalsaTransformObject  ,
int *   
)

Definition at line 438 of file transform.c.

References CHECKVALIDTRANSFORMOBJECT, and SalsaTransformObject_::marked.

Referenced by TransformReportEnabled().

PetscErrorCode TransformObjectGetName ( SalsaTransformObject  ,
const char **   
)
PetscErrorCode TransformObjectGetSuitabilityFunction ( SalsaTransformObject  tf,
void **  sctx,
PetscErrorCode(**)(NumericalProblem, void *, SuitabilityValue *)  f 
)

Retrieve the suitability function and context; see Suitability functions. Both arguments can be null.

See also TransformObjectSetSuitabilityFunction().

Definition at line 210 of file transform.c.

References CHECKVALIDTRANSFORMOBJECT, SalsaTransformObject_::suitabilityctx, and SalsaTransformObject_::suitabilityfunction.

Referenced by PreprocessorSpecificSetup(), SalsaTransformIntegrityTest(), and unset_ksps().

PetscErrorCode TransformObjectGetTransformName ( SalsaTransformObject  ,
char **   
)
PetscErrorCode TransformObjectIntAnnotate ( SalsaTransformObject  ,
const char *  ,
int   
)
PetscErrorCode TransformObjectMark ( SalsaTransformObject  tf)
PetscErrorCode TransformObjectSetExplanation ( SalsaTransformObject  ,
const char *   
)
PetscErrorCode TransformObjectSetSuitabilityFunction ( SalsaTransformObject  tf,
void *  sctx,
PetscErrorCode(*)(NumericalProblem, void *, SuitabilityValue *)  f 
)
PetscErrorCode TransformObjectsGetNames ( SalsaTransform  tf,
const char ***  names 
)

Get the names of all declared transformobjects. An array is allocated for the names, which needs to be PetscFree()'d.

Definition at line 255 of file transform.c.

References CHECKVALIDTRANSFORM, CHKERRQ(), ierr, SalsaTransform_::n_objects, SalsaTransformObject_::name, and SalsaTransform_::transformobjects.

Referenced by ContinueRetrievingAllPreprocessors(), and TransformReportEnabled().

PetscErrorCode TransformObjectsMarkAll ( SalsaTransform  tf)
PetscErrorCode TransformObjectsUnmarkAll ( SalsaTransform  tf)
PetscErrorCode TransformObjectsUseOnly ( SalsaTransform  tf,
const char *  list 
)

Mark a list of names as to be used.

Cases:

  • "name1,name2,name3" : all other names are marked as not to be used
  • "not,name1,name2" : all names will be used, except for the ones listed

Definition at line 494 of file transform.c.

References CHECKVALIDTRANSFORM, CHKERRQ(), ierr, SalsaTransform_::name, TransformObjectGetByName(), TransformObjectMark(), TransformObjectsMarkAll(), TransformObjectsUnmarkAll(), and TransformObjectUnmark().

Referenced by PreprocessorsOptionsHandling().

PetscErrorCode TransformObjectUnmark ( SalsaTransformObject  tf)
PetscErrorCode TransformReportEnabled ( SalsaTransform  ,
const char **   
)
PetscErrorCode TransformReportTeXTable ( SalsaTransform  ,
FILE *   
)
PetscErrorCode TransformSetUserChoices ( SalsaTransform  tf,
PetscTruth  ch 
)

Declare that the user has ordained which choice(s) to take for a specific transform. The values of these choices are implicitly given by disabling some transforms.

See also TransformGetUserChoices(), TransformObjectsUseOnly().

Definition at line 858 of file transform.c.

References CHECKVALIDTRANSFORM, and SalsaTransform_::userchoices.

Referenced by PreprocessorsOptionsHandling().