transform.c File Reference

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "petsc.h"
#include "sysprotransform.h"
#include "syspro_impl.h"

Go to the source code of this file.

Defines

#define TFINC   20
#define STRDUP(a)   ( (a) ? strdup(a) : NULL)

Functions

PetscErrorCode NewTransform (char *name, SalsaTransform *tf)
PetscErrorCode DeregisterTransform (SalsaTransform tf)
PetscErrorCode TransformGetName (SalsaTransform tf, char **name)
PetscErrorCode TransformGetObjects (SalsaTransform tf, int *n, SalsaTransformObject **objs)
PetscErrorCode NewTransformObject (char *transform, char *name, SalsaTransformObject *to)
PetscErrorCode FreeTransformObject (SalsaTransformObject tf)
PetscErrorCode TransformObjectGetName (SalsaTransformObject tf, char **name)
PetscErrorCode TransformObjectSetExplanation (SalsaTransformObject tf, char *x)
PetscErrorCode TransformObjectSetSuitabilityFunction (SalsaTransformObject tf, void *sctx, PetscErrorCode(*f)(NumericalProblem, void *, SuitabilityValue *))
PetscErrorCode TransformObjectGetSuitabilityFunction (SalsaTransformObject tf, void **sctx, PetscErrorCode(**f)(NumericalProblem, void *, SuitabilityValue *))
PetscErrorCode TransformObjectGetTransformName (SalsaTransformObject tf, char **name)
PetscErrorCode TransformObjectGetByName (char *trans, char *name, SalsaTransformObject *tf)
PetscErrorCode TransformObjectsGetNames (SalsaTransform tf, char ***names)
PetscErrorCode SysProDefineCharAnnotation (char *transform, char *ann)
PetscErrorCode TransformCharAnnotationGetIndex (SalsaTransform tf, char *ann, int *idx, PetscTruth *flg)
PetscErrorCode SysProDefineIntAnnotation (char *transform, char *ann)
PetscErrorCode TransformIntAnnotationGetIndex (SalsaTransform tf, char *ann, int *idx, PetscTruth *flg)
PetscErrorCode TransformObjectMark (SalsaTransformObject tf)
PetscErrorCode TransformObjectUnmark (SalsaTransformObject tf)
PetscErrorCode TransformObjectsMarkAll (SalsaTransform tf)
PetscErrorCode TransformObjectsUnmarkAll (SalsaTransform tf)
PetscErrorCode TransformObjectGetMark (SalsaTransformObject tf, int *m)
PetscErrorCode TransformGetNUnmarked (SalsaTransform tf, int *n)
PetscErrorCode PreprocessorSaveAprioriSelection (SystemPreprocessor pp)
PetscErrorCode PreprocessorApplyAprioriSelection (SystemPreprocessor pp)
PetscErrorCode TransformObjectsUseOnly (SalsaTransform tf, char *list)
PetscErrorCode TransformGetNextUnmarkedItem (SalsaTransform tf, char *old, SalsaTransformObject *snew, PetscTruth *f)
PetscErrorCode TransformObjectDefineOption (SalsaTransformObject tf, char *opt)
PetscErrorCode TransformObjectAddOption (SalsaTransformObject tf, int v)
PetscErrorCode TransformObjectAddOptionExplanation (SalsaTransformObject tf, int opt, char *ex)
PetscErrorCode TransformItemOptionsUseOnly (SalsaTransformObject tf, char *opt)
PetscErrorCode TransformItemGetFirstOption (char *tf, char *it, int *v, PetscTruth *f)
PetscErrorCode TransformItemGetNextOption (char *tf, char *it, int *v, PetscTruth *f)
PetscErrorCode TransformItemOptionMark (SalsaTransform tf, char *it, int o)
PetscErrorCode TransformObjectCharAnnotate (SalsaTransformObject tf, char *an, char *v)
PetscErrorCode TransformObjectIntAnnotate (SalsaTransformObject tf, char *an, int v)
PetscErrorCode TransformObjectGetIntAnnotation (SalsaTransformObject tf, char *an, int *v, PetscTruth *f)
PetscErrorCode TransformReportTeXTable (SalsaTransform tf, FILE *f)
PetscErrorCode TransformReportEnabled (SalsaTransform tf, char **rs)
PetscErrorCode TransformItemDescribeShort (SalsaTransform tf, char *it, int opt, char **s)
PetscErrorCode TransformItemDescribeLong (SalsaTransform tf, char *it, int opt, char **s)
PetscErrorCode TransformSetUserChoices (SalsaTransform tf, PetscTruth ch)
PetscErrorCode TransformGetUserChoices (SalsaTransform tf, PetscTruth *ch)


Define Documentation

#define STRDUP (  )     ( (a) ? strdup(a) : NULL)

Definition at line 504 of file transform.c.

#define TFINC   20


Function Documentation

PetscErrorCode DeregisterTransform ( SalsaTransform  tf  ) 

PetscErrorCode FreeTransformObject ( SalsaTransformObject  tf  ) 

PetscErrorCode NewTransform ( char *  name,
SalsaTransform tf 
)

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

Definition at line 31 of file transform.c.

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

Referenced by DeclarePreprocessor().

PetscErrorCode NewTransformObject ( char *  transform,
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 92 of file transform.c.

References SalsaTransform_::alloc_objects, CHKERRQ(), ierr, SalsaTransform_::n_objects, SalsaTransformObject_::name, SalsaTransformObject_::transform, TransformGetByName(), 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  pp  ) 

PetscErrorCode PreprocessorSaveAprioriSelection ( SystemPreprocessor  pp  ) 

PetscErrorCode SysProDefineCharAnnotation ( char *  transform,
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 243 of file transform.c.

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

Referenced by setup_ksp_choices().

PetscErrorCode SysProDefineIntAnnotation ( char *  transform,
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 297 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  tf,
char *  ann,
int *  idx,
PetscTruth *  flg 
)

PetscErrorCode TransformGetName ( SalsaTransform  tf,
char **  name 
)

Definition at line 66 of file transform.c.

References SalsaTransform_::name.

PetscErrorCode TransformGetNextUnmarkedItem ( SalsaTransform  tf,
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 477 of file transform.c.

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

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

PetscErrorCode TransformGetNUnmarked ( SalsaTransform  tf,
int *  n 
)

PetscErrorCode TransformGetObjects ( SalsaTransform  tf,
int *  n,
SalsaTransformObject **  objs 
)

PetscErrorCode TransformGetUserChoices ( SalsaTransform  tf,
PetscTruth *  ch 
)

Definition at line 794 of file transform.c.

References SalsaTransform_::userchoices.

Referenced by PreprocessedSolution().

PetscErrorCode TransformIntAnnotationGetIndex ( SalsaTransform  tf,
char *  ann,
int *  idx,
PetscTruth *  flg 
)

PetscErrorCode TransformItemDescribeLong ( SalsaTransform  tf,
char *  it,
int  opt,
char **  s 
)

PetscErrorCode TransformItemDescribeShort ( SalsaTransform  tf,
char *  it,
int  opt,
char **  s 
)

PetscErrorCode TransformItemGetFirstOption ( char *  tf,
char *  it,
int *  v,
PetscTruth *  f 
)

PetscErrorCode TransformItemGetNextOption ( char *  tf,
char *  it,
int *  v,
PetscTruth *  f 
)

PetscErrorCode TransformItemOptionMark ( SalsaTransform  tf,
char *  it,
int  o 
)

PetscErrorCode TransformItemOptionsUseOnly ( SalsaTransformObject  tf,
char *  opt 
)

PetscErrorCode TransformObjectAddOption ( SalsaTransformObject  tf,
int  v 
)

PetscErrorCode TransformObjectAddOptionExplanation ( SalsaTransformObject  tf,
int  opt,
char *  ex 
)

PetscErrorCode TransformObjectCharAnnotate ( SalsaTransformObject  tf,
char *  an,
char *  v 
)

PetscErrorCode TransformObjectDefineOption ( SalsaTransformObject  tf,
char *  opt 
)

Definition at line 508 of file transform.c.

References SalsaTransformObject_::option.

Referenced by declareadders(), setup_ksp_choices(), and setup_pc_choices().

PetscErrorCode TransformObjectGetByName ( char *  trans,
char *  name,
SalsaTransformObject tf 
)

PetscErrorCode TransformObjectGetIntAnnotation ( SalsaTransformObject  tf,
char *  an,
int *  v,
PetscTruth *  f 
)

PetscErrorCode TransformObjectGetMark ( SalsaTransformObject  tf,
int *  m 
)

Definition at line 393 of file transform.c.

References SalsaTransformObject_::marked.

Referenced by TransformReportEnabled().

PetscErrorCode TransformObjectGetName ( SalsaTransformObject  tf,
char **  name 
)

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.

Definition at line 182 of file transform.c.

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

Referenced by PreprocessorSpecificSetup(), and unset_ksps().

PetscErrorCode TransformObjectGetTransformName ( SalsaTransformObject  tf,
char **  name 
)

Definition at line 192 of file transform.c.

References SalsaTransform_::name, and SalsaTransformObject_::transform.

PetscErrorCode TransformObjectIntAnnotate ( SalsaTransformObject  tf,
char *  an,
int  v 
)

PetscErrorCode TransformObjectMark ( SalsaTransformObject  tf  ) 

PetscErrorCode TransformObjectSetExplanation ( SalsaTransformObject  tf,
char *  x 
)

PetscErrorCode TransformObjectSetSuitabilityFunction ( SalsaTransformObject  tf,
void *  sctx,
PetscErrorCode(*)(NumericalProblem, void *, SuitabilityValue *)  f 
)

Set the suitability function; see Suitability functions

Definition at line 168 of file transform.c.

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

Referenced by setup_ksp_choices().

PetscErrorCode TransformObjectsGetNames ( SalsaTransform  tf,
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 223 of file transform.c.

References 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,
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 445 of file transform.c.

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

Referenced by PreprocessorsOptionsHandling().

PetscErrorCode TransformObjectUnmark ( SalsaTransformObject  tf  ) 

PetscErrorCode TransformReportEnabled ( SalsaTransform  tf,
char **  rs 
)

PetscErrorCode TransformReportTeXTable ( SalsaTransform  tf,
FILE *  f 
)

PetscErrorCode TransformSetUserChoices ( SalsaTransform  tf,
PetscTruth  ch 
)

Definition at line 785 of file transform.c.

References SalsaTransform_::userchoices.

Referenced by PreprocessorsOptionsHandling().


Generated on Sun Oct 4 04:03:05 2009 for System Preprocessors by  doxygen 1.5.9