本文整理汇总了C++中PetscValidHeader函数的典型用法代码示例。如果您正苦于以下问题:C++ PetscValidHeader函数的具体用法?C++ PetscValidHeader怎么用?C++ PetscValidHeader使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PetscValidHeader函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PetscObjectCopyFortranFunctionPointers
/*@C
PetscObjectCopyFortranFunctionPointers - Copy function pointers to another object
Logically Collective on PetscObject
Input Parameter:
+ src - source object
- dest - destination object
Level: developer
Note:
Both objects must have the same class.
@*/
PetscErrorCode PetscObjectCopyFortranFunctionPointers(PetscObject src,PetscObject dest)
{
PetscErrorCode ierr;
PetscInt cbtype,numcb[PETSC_FORTRAN_CALLBACK_MAXTYPE];
PetscFunctionBegin;
PetscValidHeader(src,1);
PetscValidHeader(dest,2);
if (src->classid != dest->classid) SETERRQ(src->comm,PETSC_ERR_ARG_INCOMP,"Objects must be of the same class");
ierr = PetscFree(dest->fortran_func_pointers);CHKERRQ(ierr);
ierr = PetscMalloc(src->num_fortran_func_pointers*sizeof(void(*)(void)),&dest->fortran_func_pointers);CHKERRQ(ierr);
ierr = PetscMemcpy(dest->fortran_func_pointers,src->fortran_func_pointers,src->num_fortran_func_pointers*sizeof(void(*)(void)));CHKERRQ(ierr);
dest->num_fortran_func_pointers = src->num_fortran_func_pointers;
ierr = PetscFortranCallbackGetSizes(src->classid,&numcb[PETSC_FORTRAN_CALLBACK_CLASS],&numcb[PETSC_FORTRAN_CALLBACK_SUBTYPE]);CHKERRQ(ierr);
for (cbtype=PETSC_FORTRAN_CALLBACK_CLASS; cbtype<PETSC_FORTRAN_CALLBACK_MAXTYPE; cbtype++) {
ierr = PetscFree(dest->fortrancallback[cbtype]);CHKERRQ(ierr);
ierr = PetscCalloc1(numcb[cbtype],&dest->fortrancallback[cbtype]);CHKERRQ(ierr);
ierr = PetscMemcpy(dest->fortrancallback[cbtype],src->fortrancallback[cbtype],src->num_fortrancallback[cbtype]*sizeof(PetscFortranCallback));CHKERRQ(ierr);
dest->num_fortrancallback[cbtype] = src->num_fortrancallback[cbtype];
}
PetscFunctionReturn(0);
}
示例2: PetscViewerVTKOpen
/*@C
PetscViewerVTKAddField - Add a field to the viewer
Collective
Input Arguments:
+ viewer - VTK viewer
. dm - DM on which Vec lives
. PetscViewerVTKWriteFunction - function to write this Vec
. fieldtype - Either PETSC_VTK_POINT_FIELD or PETSC_VTK_CELL_FIELD
- vec - Vec to write
Level: developer
Note:
This routine keeps exclusive ownership of the Vec. The caller should not use or destroy the Vec after adding it.
.seealso: PetscViewerVTKOpen(), DMDAVTKWriteAll(), PetscViewerVTKWriteFunction
@*/
PetscErrorCode PetscViewerVTKAddField(PetscViewer viewer,PetscObject dm,PetscErrorCode (*PetscViewerVTKWriteFunction)(PetscObject,PetscViewer),PetscViewerVTKFieldType fieldtype,PetscObject vec)
{
PetscErrorCode ierr;
PetscFunctionBegin;
PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1);
PetscValidHeader(dm,2);
PetscValidHeader(vec,4);
ierr = PetscUseMethod(viewer,"PetscViewerVTKAddField_C",(PetscViewer,PetscObject,PetscErrorCode (*)(PetscObject,PetscViewer),PetscViewerVTKFieldType,PetscObject),(viewer,dm,PetscViewerVTKWriteFunction,fieldtype,vec));CHKERRQ(ierr);
PetscFunctionReturn(0);
}
示例3: with
/*@C
PetscObjectCompose - Associates another PETSc object with a given PETSc object.
Not Collective
Input Parameters:
+ obj - the PETSc object; this must be cast with (PetscObject), for example,
PetscObjectCompose((PetscObject)mat,...);
. name - name associated with the child object
- ptr - the other PETSc object to associate with the PETSc object; this must also be
cast with (PetscObject)
Level: advanced
Notes:
The second objects reference count is automatically increased by one when it is
composed.
Replaces any previous object that had the same name.
If ptr is null and name has previously been composed using an object, then that
entry is removed from the obj.
PetscObjectCompose() can be used with any PETSc object (such as
Mat, Vec, KSP, SNES, etc.) or any user-provided object. See
PetscContainerCreate() for info on how to create an object from a
user-provided pointer that may then be composed with PETSc objects.
Concepts: objects^composing
Concepts: composing objects
.seealso: PetscObjectQuery(), PetscContainerCreate()
@*/
PetscErrorCode PetscObjectCompose(PetscObject obj,const char name[],PetscObject ptr)
{
PetscErrorCode ierr;
PetscFunctionBegin;
PetscValidHeader(obj,1);
PetscValidCharPointer(name,2);
if (ptr) PetscValidHeader(ptr,3);
if (obj == ptr) SETERRQ(PetscObjectComm((PetscObject)obj),PETSC_ERR_SUP,"Cannot compose object with itself");
ierr = (*obj->bops->compose)(obj,name,ptr);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
示例4: PetscObjectSAWsBlock
/*@C
PetscObjectSAWsSetBlock - Sets whether an object will block at PetscObjectSAWsBlock()
Collective on PetscObject
Input Parameters:
+ obj - the Petsc variable
Thus must be cast with a (PetscObject), for example,
PetscObjectSetName((PetscObject)mat,name);
- flg - whether it should block
Level: advanced
Concepts: publishing object
.seealso: PetscObjectSetName(), PetscObjectSAWsViewOff(), PetscObjectSAWsBlock()
@*/
PetscErrorCode PetscObjectSAWsSetBlock(PetscObject obj,PetscBool flg)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
obj->amspublishblock = flg;
PetscFunctionReturn(0);
}
示例5: a
/*@C
PetscObjectGetClassId - Gets the classid for any PetscObject
Not Collective
Input Parameter:
. obj - any PETSc object, for example a Vec, Mat or KSP.
Thus must be cast with a (PetscObject), for example,
PetscObjectGetClassId((PetscObject)mat,&classid);
Output Parameter:
. classid - the classid
Level: developer
@*/
PetscErrorCode PetscObjectGetClassId(PetscObject obj,PetscClassId *classid)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
*classid = obj->classid;
PetscFunctionReturn(0);
}
示例6: PetscPythonMonitorSet
EXTERN_C_END
#undef __FUNCT__
#define __FUNCT__ "PetscPythonMonitorSet"
/*@C
PetscPythonMonitorSet - Set Python monitor
Level: developer
.keywords: Python
@*/
PetscErrorCode PetscPythonMonitorSet(PetscObject obj, const char url[])
{
PetscErrorCode ierr;
PetscFunctionBegin;
PetscValidHeader(obj,1);
PetscValidCharPointer(url,2);
if (PetscPythonMonitorSet_C == PETSC_NULL) {
ierr = PetscPythonInitialize(PETSC_NULL,PETSC_NULL);CHKERRQ(ierr);
if (PetscPythonMonitorSet_C == PETSC_NULL)
SETERRQ(PETSC_COMM_SELF,PETSC_ERR_LIB,"Couldn't initialize Python support for monitors");
}
ierr = PetscPythonMonitorSet_C(obj,url);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
示例7: a
/*@C
PetscObjectName - Gives an object a name if it does not have one
Collective
Input Parameters:
. obj - the Petsc variable
Thus must be cast with a (PetscObject), for example,
PetscObjectName((PetscObject)mat,name);
Level: developer
Concepts: object name^setting default
Notes: This is used in a small number of places when an object NEEDS a name, for example when it is saved to MATLAB with that variable name.
Use PetscObjectSetName() to set the name of an object to what you want. The SAWs viewer requires that no two published objects
share the same name.
Developer Note: this needs to generate the exact same string on all ranks that share the object. The current algorithm may not always work.
.seealso: PetscObjectGetName(), PetscObjectSetName()
@*/
PetscErrorCode PetscObjectName(PetscObject obj)
{
PetscErrorCode ierr;
PetscCommCounter *counter;
PetscMPIInt flg;
char name[64];
PetscFunctionBegin;
PetscValidHeader(obj,1);
if (!obj->name) {
union {
MPI_Comm comm;
void *ptr;
char raw[sizeof(MPI_Comm)];
} ucomm;
ierr = MPI_Attr_get(obj->comm,Petsc_Counter_keyval,(void*)&counter,&flg);
CHKERRQ(ierr);
if (!flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_CORRUPT,"Bad MPI communicator supplied; must be a PETSc communicator");
ucomm.ptr = NULL;
ucomm.comm = obj->comm;
ierr = MPI_Bcast(ucomm.raw,sizeof(MPI_Comm),MPI_BYTE,0,obj->comm);
CHKERRQ(ierr);
/* If the union has extra bytes, their value is implementation-dependent, but they will normally be what we set last
* in 'ucomm.ptr = NULL'. This output is always implementation-defined (and varies from run to run) so the union
* abuse acceptable. */
ierr = PetscSNPrintf(name,64,"%s_%p_%D",obj->class_name,ucomm.ptr,counter->namecount++);
CHKERRQ(ierr);
ierr = PetscStrallocpy(name,&obj->name);
CHKERRQ(ierr);
}
PetscFunctionReturn(0);
}
示例8: a
/*@
PetscObjectGetTabLevel - Gets the number of tabs that ASCII output for that object use
Not Collective
Input Parameter:
. obj - any PETSc object, for example a Vec, Mat or KSP. Thus must be
cast with a (PetscObject), for example,
PetscObjectGetComm((PetscObject)mat,&comm);
Output Parameter:
. tab - the number of tabs
Level: developer
Notes:
this is used to manage the output from options that are imbedded in other objects. For example
the KSP object inside a SNES object. By indenting each lower level further the heirarchy of objects
is very clear.
.seealso: PetscObjectIncrementTabLevel()
@*/
PetscErrorCode PetscObjectGetTabLevel(PetscObject obj,PetscInt *tab)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
*tab = obj->tablevel;
PetscFunctionReturn(0);
}
示例9: PetscObjectGetComm_Petsc
/*
The following routines are the versions private to the PETSc object
data structures.
*/
PetscErrorCode PetscObjectGetComm_Petsc(PetscObject obj,MPI_Comm *comm)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
*comm = obj->comm;
PetscFunctionReturn(0);
}
示例10: with
/*@C
PetscObjectSetPrecision - sets the precision used within a given object.
Collective on the PetscObject
Input Parameters:
+ obj - the PETSc object; this must be cast with (PetscObject), for example,
PetscObjectCompose((PetscObject)mat,...);
- precision - the precision
Level: advanced
.seealso: PetscObjectQuery(), PetscContainerCreate()
@*/
PetscErrorCode PetscObjectSetPrecision(PetscObject obj,PetscPrecision precision)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
obj->precision = precision;
PetscFunctionReturn(0);
}
示例11: PetscObjectGetOptionsPrefix
/*
PetscObjectGetOptionsPrefix - Gets the prefix of the PetscObject.
Input Parameters:
. obj - any PETSc object, for example a Vec, Mat or KSP.
Output Parameters:
. prefix - pointer to the prefix string used is returned
Concepts: prefix^getting
*/
PetscErrorCode PetscObjectGetOptionsPrefix(PetscObject obj,const char *prefix[])
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
PetscValidPointer(prefix,2);
*prefix = obj->prefix;
PetscFunctionReturn(0);
}
示例12: PetscObjectRemoveReference
PetscErrorCode PetscObjectRemoveReference(PetscObject obj,const char name[])
{
PetscErrorCode ierr;
PetscFunctionBegin;
PetscValidHeader(obj,1);
ierr = PetscObjectListRemoveReference(&obj->olist,name);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
示例13: PetscFinalize
/*@C
PetscObjectRegisterDestroy - Registers a PETSc object to be destroyed when
PetscFinalize() is called.
Logically Collective on PetscObject
Input Parameter:
. obj - any PETSc object, for example a Vec, Mat or KSP.
This must be cast with a (PetscObject), for example,
PetscObjectRegisterDestroy((PetscObject)mat);
Level: developer
Notes:
This is used by, for example, PETSC_VIEWER_XXX_() routines to free the viewer
when PETSc ends.
.seealso: PetscObjectRegisterDestroyAll()
@*/
PetscErrorCode PetscObjectRegisterDestroy(PetscObject obj)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
if (PetscObjectRegisterDestroy_Count < MAXREGDESOBJS)
PetscObjectRegisterDestroy_Objects[PetscObjectRegisterDestroy_Count++] = obj;
else SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_PLIB,"No more room in array, limit %d \n recompile src/sys/objects/destroy.c with larger value for MAXREGDESOBJS\n",MAXREGDESOBJS);
PetscFunctionReturn(0);
}
示例14: PetscObjectSetTabLevel
/*@
PetscObjectIncrementTabLevel - Sets the number of tabs that ASCII output for that object use based on
the tablevel of another object. This should be called immediately after the object is created.
Not Collective
Input Parameter:
+ obj - any PETSc object where we are changing the tab
. oldobj - the object providing the tab
- tab - the increment that is added to the old objects tab
Level: developer
Notes:
this is used to manage the output from options that are imbedded in other objects. For example
the KSP object inside a SNES object. By indenting each lower level further the heirarchy of objects
is very clear.
.seealso: PetscObjectSetTabLevel(), PetscObjectGetTabLevel()
@*/
PetscErrorCode PetscObjectIncrementTabLevel(PetscObject obj,PetscObject oldobj,PetscInt tab)
{
PetscFunctionBegin;
PetscValidHeader(obj,1);
if (oldobj) obj->tablevel = oldobj->tablevel + tab;
else obj->tablevel = tab;
PetscFunctionReturn(0);
}
示例15: PetscObjectQueryFunction_Petsc
PetscErrorCode PetscObjectQueryFunction_Petsc(PetscObject obj,const char name[],void (**ptr)(void))
{
PetscErrorCode ierr;
PetscFunctionBegin;
PetscValidHeader(obj,1);
ierr = PetscFunctionListFind(obj->qlist,name,ptr);CHKERRQ(ierr);
PetscFunctionReturn(0);
}