|
SALSA Analysis Modules
|

Go to the source code of this file.
Data Structures | |
| struct | componentobject_ |
Defines | |
| #define | COMPONENTCOOKIE 4723847 |
| #define | CHECKVALIDCOMPONENT(x) ANAMODCHECKVALID(x,COMPONENTCOOKIE,"component") |
Functions | |
| PetscErrorCode | CreateComponentObject (const char *name, componentobject *obj) |
| PetscErrorCode | DestroyComponentObject (componentobject cmp) |
| PetscErrorCode | ComponentSetModule (componentobject cmpt, AnalysisDataType type, int id, PetscErrorCode(*f)(AnaModNumericalProblem, AnalysisItem *, int *, PetscBool *)) |
| PetscErrorCode | ComponentCompute (componentobject cmpt, AnaModNumericalProblem prob, AnalysisItem *res, int *reslen, PetscBool *success) |
| PetscErrorCode | ComponentRetrieve (componentobject cmpt, AnaModNumericalProblem prob, AnalysisItem *res, int *reslen, PetscBool *success) |
| PetscErrorCode | ComponentGetType (componentobject cmpt, AnalysisDataType *t) |
| PetscErrorCode | ComponentGetName (componentobject cmpt, const char **name) |
| PetscErrorCode | ComponentGetId (componentobject cmpt, int *id) |
| #define CHECKVALIDCOMPONENT | ( | x | ) | ANAMODCHECKVALID(x,COMPONENTCOOKIE,"component") |
Definition at line 6 of file component.c.
Referenced by ComponentCompute(), ComponentGetId(), ComponentGetName(), ComponentGetType(), ComponentRetrieve(), ComponentSetModule(), and DestroyComponentObject().
| #define COMPONENTCOOKIE 4723847 |
Definition at line 5 of file component.c.
Referenced by CreateComponentObject().
| PetscErrorCode ComponentCompute | ( | componentobject | cmpt, |
| AnaModNumericalProblem | prob, | ||
| AnalysisItem * | res, | ||
| int * | reslen, | ||
| PetscBool * | success | ||
| ) |
Definition at line 57 of file component.c.
References CHECKVALIDCOMPONENT, componentobject_::hasval, and componentobject_::module.
Referenced by ComputeOrRetrieveQuantity().
{
PetscErrorCode ierr;
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmpt);
if (!cmpt->module)
*success = PETSC_FALSE;
else {
ierr = (cmpt->module)(prob,res,reslen,success); CHKERRQ(ierr);
}
cmpt->hasval = *success;
PetscFunctionReturn(0);
}
| PetscErrorCode ComponentGetId | ( | componentobject | cmpt, |
| int * | id | ||
| ) |
Definition at line 139 of file component.c.
References CHECKVALIDCOMPONENT, and componentobject_::dataid.
Referenced by GetDataID(), and HasQuantity().
{
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmpt);
*id = cmpt->dataid;
PetscFunctionReturn(0);
}
| PetscErrorCode ComponentGetName | ( | componentobject | cmpt, |
| const char ** | name | ||
| ) |
Definition at line 129 of file component.c.
References CHECKVALIDCOMPONENT, and componentobject_::name.
Referenced by CategoryGetOrCreateComponent().
{
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmpt);
*name = cmpt->name;
PetscFunctionReturn(0);
}
| PetscErrorCode ComponentGetType | ( | componentobject | cmpt, |
| AnalysisDataType * | t | ||
| ) |
Definition at line 119 of file component.c.
References CHECKVALIDCOMPONENT, and componentobject_::type.
Referenced by ComputeOrRetrieveQuantity(), GetDataType(), and HasQuantity().
{
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmpt);
*t = cmpt->type;
PetscFunctionReturn(0);
}
| PetscErrorCode ComponentRetrieve | ( | componentobject | cmpt, |
| AnaModNumericalProblem | prob, | ||
| AnalysisItem * | res, | ||
| int * | reslen, | ||
| PetscBool * | success | ||
| ) |
Definition at line 75 of file component.c.
References ANALYSISDBLARRAY, ANALYSISDOUBLE, ANALYSISINTARRAY, ANALYSISINTEGER, CHECKVALIDCOMPONENT, componentobject_::dataid, AnalysisItem::i, AnalysisItem::ii, AnalysisItem::r, AnalysisItem::rr, and componentobject_::type.
Referenced by ComputeOrRetrieveQuantity().
{
PetscBool flg; PetscErrorCode ierr;
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmpt);
*success = PETSC_FALSE;
switch (cmpt->type) {
case ANALYSISINTEGER : {
int ir;
ierr = PetscObjectComposedDataGetInt
((PetscObject)prob,cmpt->dataid,ir,flg); CHKERRQ(ierr);
res->i = ir; *success = flg;
break;}
case ANALYSISDOUBLE : {
PetscReal rr;
ierr = PetscObjectComposedDataGetReal
((PetscObject)prob,cmpt->dataid,rr,flg); CHKERRQ(ierr);
res->r = rr; *success = flg;
break;}
case ANALYSISINTARRAY : {
int *iir;
ierr = PetscObjectComposedDataGetIntstar
((PetscObject)prob,cmpt->dataid,iir,flg); CHKERRQ(ierr);
res->ii = iir; *success = flg;
ierr = PetscObjectComposedDataGetInt
((PetscObject)prob,cmpt->dataid,*reslen,flg); CHKERRQ(ierr);
break;}
case ANALYSISDBLARRAY : {
PetscReal *rrr;
ierr = PetscObjectComposedDataGetRealstar
((PetscObject)prob,cmpt->dataid,rrr,flg); CHKERRQ(ierr);
res->rr = rrr; *success = flg;
ierr = PetscObjectComposedDataGetInt
((PetscObject)prob,cmpt->dataid,*reslen,flg); CHKERRQ(ierr);
break;}
default :
SETERRQ(MPI_COMM_WORLD,1,"Can not retrieve array data yet");
}
PetscFunctionReturn(0);
}
| PetscErrorCode ComponentSetModule | ( | componentobject | cmpt, |
| AnalysisDataType | type, | ||
| int | id, | ||
| PetscErrorCode(*)(AnaModNumericalProblem, AnalysisItem *, int *, PetscBool *) | f | ||
| ) |
Definition at line 43 of file component.c.
References CHECKVALIDCOMPONENT, componentobject_::dataid, id, componentobject_::module, and componentobject_::type.
Referenced by CategoryComponentSetModule().
{
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmpt);
cmpt->type = type;
cmpt->dataid = id;
cmpt->module = f;
PetscFunctionReturn(0);
}
| PetscErrorCode CreateComponentObject | ( | const char * | name, |
| componentobject * | obj | ||
| ) |
Definition at line 17 of file component.c.
References COMPONENTCOOKIE, componentobject_::cookie, and componentobject_::name.
Referenced by CategoryGetOrCreateComponent().
{
componentobject nnew; PetscErrorCode ierr;
PetscFunctionBegin;
ierr = PetscMalloc(sizeof(struct componentobject_),&nnew); CHKERRQ(ierr);
nnew->cookie = COMPONENTCOOKIE;
ierr = PetscStrallocpy(name,(char**)&(nnew->name)); CHKERRQ(ierr);
*obj = nnew;
PetscFunctionReturn(0);
}
| PetscErrorCode DestroyComponentObject | ( | componentobject | cmp | ) |
Definition at line 30 of file component.c.
References CHECKVALIDCOMPONENT, and componentobject_::name.
Referenced by DestroyCategoryObject().
{
PetscErrorCode ierr;
PetscFunctionBegin;
CHECKVALIDCOMPONENT(cmp);
ierr = PetscFree(cmp->name); CHKERRQ(ierr);
ierr = PetscFree(cmp); CHKERRQ(ierr);
PetscFunctionReturn(0);
}
1.7.6.1