本文整理汇总了C++中PetscFPrintf函数的典型用法代码示例。如果您正苦于以下问题:C++ PetscFPrintf函数的具体用法?C++ PetscFPrintf怎么用?C++ PetscFPrintf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PetscFPrintf函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: PetscDrawCreate_TikZ
PETSC_EXTERN PetscErrorCode PetscDrawCreate_TikZ(PetscDraw draw)
{
PetscDraw_TikZ *win;
PetscErrorCode ierr;
PetscFunctionBegin;
ierr = PetscMemcpy(draw->ops,&DvOps,sizeof(DvOps));CHKERRQ(ierr);
ierr = PetscNew(PetscDraw_TikZ,&win);CHKERRQ(ierr);
ierr = PetscLogObjectMemory(draw,sizeof(PetscDraw_TikZ));CHKERRQ(ierr);
draw->data = (void*) win;
if (draw->title) {
ierr = PetscStrallocpy(draw->title,&win->filename);CHKERRQ(ierr);
} else {
const char *fname;
ierr = PetscObjectGetName((PetscObject)draw,&fname);CHKERRQ(ierr);
ierr = PetscStrallocpy(fname,&win->filename);CHKERRQ(ierr);
}
ierr = PetscFOpen(PetscObjectComm((PetscObject)draw),win->filename,"w",&win->fd);CHKERRQ(ierr);
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,TikZ_BEGIN_DOCUMENT);CHKERRQ(ierr);
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,TikZ_BEGIN_FRAME);CHKERRQ(ierr);
win->written = PETSC_FALSE;
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:26,代码来源:tikz.c
示例2: PetscCloseHistoryFile
PetscErrorCode PetscCloseHistoryFile(FILE **fd)
{
PetscErrorCode ierr;
PetscMPIInt rank;
char date[64];
int err;
PetscFunctionBegin;
ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
CHKERRQ(ierr);
if (!rank) {
ierr = PetscGetDate(date,64);
CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"---------------------------------------------------------\n");
CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"Finished at %s\n",date);
CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"---------------------------------------------------------\n");
CHKERRQ(ierr);
err = fflush(*fd);
if (err) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SYS,"fflush() failed on file");
err = fclose(*fd);
if (err) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SYS,"fclose() failed on file");
}
PetscFunctionReturn(0);
}
开发者ID:hsahasra,项目名称:petsc-magma-dense-mat,代码行数:26,代码来源:init.c
示例3: DMPlexVTKWriteField_ASCII
PetscErrorCode DMPlexVTKWriteField_ASCII(DM dm, PetscSection section, PetscSection globalSection, Vec field, const char name[], FILE *fp, PetscInt enforceDof, PetscInt precision, PetscReal scale)
{
MPI_Comm comm;
PetscInt numDof = 0, maxDof;
PetscInt pStart, pEnd, p;
PetscErrorCode ierr;
PetscFunctionBegin;
ierr = PetscObjectGetComm((PetscObject)dm,&comm);CHKERRQ(ierr);
ierr = PetscSectionGetChart(section, &pStart, &pEnd);CHKERRQ(ierr);
for (p = pStart; p < pEnd; ++p) {
ierr = PetscSectionGetDof(section, p, &numDof);CHKERRQ(ierr);
if (numDof) break;
}
numDof = PetscMax(numDof, enforceDof);
ierr = MPI_Allreduce(&numDof, &maxDof, 1, MPIU_INT, MPI_MAX, PetscObjectComm((PetscObject)dm));CHKERRQ(ierr);
if (!name) name = "Unknown";
if (maxDof == 3) {
ierr = PetscFPrintf(comm, fp, "VECTORS %s double\n", name);CHKERRQ(ierr);
} else {
ierr = PetscFPrintf(comm, fp, "SCALARS %s double %d\n", name, maxDof);CHKERRQ(ierr);
ierr = PetscFPrintf(comm, fp, "LOOKUP_TABLE default\n");CHKERRQ(ierr);
}
ierr = DMPlexVTKWriteSection_ASCII(dm, section, globalSection, field, fp, enforceDof, precision, scale);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:pombredanne,项目名称:petsc,代码行数:26,代码来源:plexvtk.c
示例4: monitorRelres
PetscErrorCode monitorRelres(const VerboseLevel vl, const Vec x, const Vec right_precond, const PetscInt num_iter, const PetscReal rel_res, const Mat CF, const Vec conjParam, const Vec conjSrc, GridInfo *gi)
{
PetscFunctionBegin;
PetscErrorCode ierr;
if (gi->output_relres) {
ierr = PetscFPrintf(PETSC_COMM_WORLD, gi->relres_file, "%d,%e\n", num_iter, rel_res); CHKERRQ(ierr);
}
if (gi->verbose_level >= vl) {
ierr = PetscFPrintf(PETSC_COMM_WORLD, stdout, "\tnumiter: %d\trelres: %e\n", num_iter, rel_res); CHKERRQ(ierr);
}
/*
PetscInt axis, n;
for (axis = 0; axis < Naxis; ++axis) {
for (n = 0; n < gi->N[axis]; ++n) {
gi->d_dual[axis][n] *= gi->s_prim[axis][n];
gi->d_prim[axis][n] *= gi->s_dual[axis][n];
}
}
Mat DivE;
ierr = createDivE(&DivE, *gi); CHKERRQ(ierr);
Vec epsE0;
ierr = create_jSrc(&epsE0, *gi); CHKERRQ(ierr);
ierr = VecScale(epsE0, -1.0/PETSC_i/gi->omega); CHKERRQ(ierr);
Vec y;
ierr = VecDuplicate(gi->vecTemp, &y); CHKERRQ(ierr);
ierr = VecAYPX(epsE0, -1.0, x); CHKERRQ(ierr);
ierr = MatMult(DivE, epsE0, y);
PetscReal norm_x, norm_y;
ierr = VecNorm(x, NORM_INFINITY, &norm_x);
ierr = VecNorm(y, NORM_INFINITY, &norm_y);
ierr = PetscFPrintf(PETSC_COMM_WORLD, stdout, "\t%d\t\ttransversality: %e\n", num_iter, norm_y/norm_x); CHKERRQ(ierr);
//ierr = PetscFPrintf(PETSC_COMM_WORLD, stdout, "\t%d\t\ttransversality: %e\n", num_iter, norm_y); CHKERRQ(ierr);
for (axis = 0; axis < Naxis; ++axis) {
for (n = 0; n < gi->N[axis]; ++n) {
gi->d_dual[axis][n] /= gi->s_prim[axis][n];
gi->d_prim[axis][n] /= gi->s_dual[axis][n];
}
}
ierr = MatDestroy(DivE); CHKERRQ(ierr);
ierr = VecDestroy(y); CHKERRQ(ierr);
*/
PetscFunctionReturn(0);
}
开发者ID:SiyiHuang,项目名称:fd3d,代码行数:55,代码来源:output.c
示例5: PetscObjectsDump
/*@C
PetscObjectsDump - Prints the currently existing objects.
Logically Collective on PetscViewer
Input Parameter:
+ fd - file pointer
- all - by default only tries to display objects created explicitly by the user, if all is PETSC_TRUE then lists all outstanding objects
Options Database:
. -objects_dump <all>
Level: advanced
Concepts: options database^printing
@*/
PetscErrorCode PetscObjectsDump(FILE *fd,PetscBool all)
{
PetscErrorCode ierr;
PetscInt i;
#if defined(PETSC_USE_DEBUG)
PetscInt j,k=0;
#endif
PetscObject h;
PetscFunctionBegin;
if (PetscObjectsCounts) {
ierr = PetscFPrintf(PETSC_COMM_WORLD,fd,"The following objects were never freed\n");CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_WORLD,fd,"-----------------------------------------\n");CHKERRQ(ierr);
for (i=0; i<PetscObjectsMaxCounts; i++) {
if ((h = PetscObjects[i])) {
ierr = PetscObjectName(h);CHKERRQ(ierr);
{
#if defined(PETSC_USE_DEBUG)
PetscStack *stack = 0;
char *create,*rclass;
/* if the PETSc function the user calls is not a create then this object was NOT directly created by them */
ierr = PetscMallocGetStack(h,&stack);CHKERRQ(ierr);
if (stack) {
k = stack->currentsize-2;
if (!all) {
k = 0;
while (!stack->petscroutine[k]) k++;
ierr = PetscStrstr(stack->function[k],"Create",&create);CHKERRQ(ierr);
if (!create) {
ierr = PetscStrstr(stack->function[k],"Get",&create);CHKERRQ(ierr);
}
ierr = PetscStrstr(stack->function[k],h->class_name,&rclass);CHKERRQ(ierr);
if (!create) continue;
if (!rclass) continue;
}
}
#endif
ierr = PetscFPrintf(PETSC_COMM_WORLD,fd,"[%d] %s %s %s\n",PetscGlobalRank,h->class_name,h->type_name,h->name);CHKERRQ(ierr);
#if defined(PETSC_USE_DEBUG)
ierr = PetscMallocGetStack(h,&stack);CHKERRQ(ierr);
if (stack) {
for (j=k; j>=0; j--) {
fprintf(fd," [%d] %s() in %s\n",PetscGlobalRank,stack->function[j],stack->file[j]);
}
}
#endif
}
}
}
}
PetscFunctionReturn(0);
}
开发者ID:firedrakeproject,项目名称:petsc,代码行数:72,代码来源:inherit.c
示例6: PetscDrawClear_TikZ
PetscErrorCode PetscDrawClear_TikZ(PetscDraw draw)
{
PetscDraw_TikZ *win = (PetscDraw_TikZ*)draw->data;
PetscErrorCode ierr;
PetscFunctionBegin;
/* often PETSc generates unneeded clears, we want avoid creating empy pictures for them */
if (!win->written) PetscFunctionReturn(0);
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,TikZ_END_FRAME);CHKERRQ(ierr);
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,TikZ_BEGIN_FRAME);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:12,代码来源:tikz.c
示例7: PetscOpenHistoryFile
PetscErrorCode PetscOpenHistoryFile(const char filename[],FILE **fd)
{
PetscErrorCode ierr;
PetscMPIInt rank,size;
char pfile[PETSC_MAX_PATH_LEN],pname[PETSC_MAX_PATH_LEN],fname[PETSC_MAX_PATH_LEN],date[64];
char version[256];
PetscFunctionBegin;
ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
CHKERRQ(ierr);
if (!rank) {
char arch[10];
int err;
ierr = PetscGetArchType(arch,10);
CHKERRQ(ierr);
ierr = PetscGetDate(date,64);
CHKERRQ(ierr);
ierr = PetscGetVersion(version,256);
CHKERRQ(ierr);
ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);
CHKERRQ(ierr);
if (filename) {
ierr = PetscFixFilename(filename,fname);
CHKERRQ(ierr);
} else {
ierr = PetscGetHomeDirectory(pfile,240);
CHKERRQ(ierr);
ierr = PetscStrcat(pfile,"/.petschistory");
CHKERRQ(ierr);
ierr = PetscFixFilename(pfile,fname);
CHKERRQ(ierr);
}
*fd = fopen(fname,"a");
if (!fd) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_FILE_OPEN,"Cannot open file: %s",fname);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"---------------------------------------------------------\n");
CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"%s %s\n",version,date);
CHKERRQ(ierr);
ierr = PetscGetProgramName(pname,PETSC_MAX_PATH_LEN);
CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"%s on a %s, %d proc. with options:\n",pname,arch,size);
CHKERRQ(ierr);
ierr = PetscFPrintf(PETSC_COMM_SELF,*fd,"---------------------------------------------------------\n");
CHKERRQ(ierr);
err = fflush(*fd);
if (err) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SYS,"fflush() failed on file");
}
PetscFunctionReturn(0);
}
开发者ID:hsahasra,项目名称:petsc-magma-dense-mat,代码行数:53,代码来源:init.c
示例8: PetscDrawDestroy_TikZ
PetscErrorCode PetscDrawDestroy_TikZ(PetscDraw draw)
{
PetscDraw_TikZ *win = (PetscDraw_TikZ*)draw->data;
PetscErrorCode ierr;
PetscFunctionBegin;
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,TikZ_END_FRAME);CHKERRQ(ierr);
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,TikZ_END_DOCUMENT);CHKERRQ(ierr);
ierr = PetscFClose(PetscObjectComm((PetscObject)draw),win->fd);CHKERRQ(ierr);
ierr = PetscFree(win->filename);CHKERRQ(ierr);
ierr = PetscFree(win);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:13,代码来源:tikz.c
示例9: PetscLogEventBeginTrace
PetscErrorCode PetscLogEventBeginTrace(PetscLogEvent event, int t, PetscObject o1, PetscObject o2, PetscObject o3, PetscObject o4)
{
PetscStageLog stageLog;
PetscEventRegLog eventRegLog;
PetscEventPerfLog eventPerfLog = NULL;
PetscLogDouble cur_time;
PetscMPIInt rank;
int stage,err;
PetscErrorCode ierr;
PetscFunctionBegin;
if (!petsc_tracetime) PetscTime(&petsc_tracetime);
ierr = MPI_Comm_rank(PETSC_COMM_WORLD, &rank);CHKERRQ(ierr);
ierr = PetscLogGetStageLog(&stageLog);CHKERRQ(ierr);
ierr = PetscStageLogGetCurrent(stageLog, &stage);CHKERRQ(ierr);
ierr = PetscStageLogGetEventRegLog(stageLog, &eventRegLog);CHKERRQ(ierr);
ierr = PetscStageLogGetEventPerfLog(stageLog, stage, &eventPerfLog);CHKERRQ(ierr);
/* Check for double counting */
eventPerfLog->eventInfo[event].depth++;
petsc_tracelevel++;
if (eventPerfLog->eventInfo[event].depth > 1) PetscFunctionReturn(0);
/* Log performance info */
PetscTime(&cur_time);
ierr = PetscFPrintf(PETSC_COMM_SELF,petsc_tracefile, "%s[%d] %g Event begin: %s\n", petsc_tracespace, rank, cur_time-petsc_tracetime, eventRegLog->eventInfo[event].name);CHKERRQ(ierr);
ierr = PetscStrncpy(petsc_tracespace, petsc_traceblanks, 2*petsc_tracelevel);CHKERRQ(ierr);
petsc_tracespace[2*petsc_tracelevel] = 0;
err = fflush(petsc_tracefile);
if (err) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SYS,"fflush() failed on file");
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:33,代码来源:eventlog.c
示例10: PetscErrorPrintfDefault
PetscErrorCode PetscErrorPrintfDefault(const char format[],...)
{
va_list Argp;
static PetscBool PetscErrorPrintfCalled = PETSC_FALSE;
/*
This function does not call PetscFunctionBegin and PetscFunctionReturn() because
it may be called by PetscStackView().
This function does not do error checking because it is called by the error handlers.
*/
if (!PetscErrorPrintfCalled) {
PetscErrorPrintfCalled = PETSC_TRUE;
/*
On the SGI machines and Cray T3E, if errors are generated "simultaneously" by
different processors, the messages are printed all jumbled up; to try to
prevent this we have each processor wait based on their rank
*/
#if defined(PETSC_CAN_SLEEP_AFTER_ERROR)
{
PetscMPIInt rank;
if (PetscGlobalRank > 8) rank = 8; else rank = PetscGlobalRank;
PetscSleep((PetscReal)rank);
}
#endif
}
PetscFPrintf(PETSC_COMM_SELF,PETSC_STDERR,"[%d]PETSC ERROR: ",PetscGlobalRank);
va_start(Argp,format);
(*PetscVFPrintf)(PETSC_STDERR,format,Argp);
va_end(Argp);
return 0;
}
开发者ID:erdc-cm,项目名称:petsc-dev,代码行数:35,代码来源:errtrace.c
示例11: PetscViewerBinaryGetInfoPointer_Binary
PetscErrorCode PetscViewerBinaryGetInfoPointer_Binary(PetscViewer viewer,FILE **file)
{
PetscViewer_Binary *vbinary = (PetscViewer_Binary*)viewer->data;
PetscErrorCode ierr;
MPI_Comm comm;
PetscFunctionBegin;
*file = vbinary->fdes_info;
if (viewer->format == PETSC_VIEWER_BINARY_MATLAB && !vbinary->matlabheaderwritten) {
vbinary->matlabheaderwritten = PETSC_TRUE;
ierr = PetscObjectGetComm((PetscObject)viewer,&comm);CHKERRQ(ierr);
ierr = PetscFPrintf(comm,*file,"#--- begin code written by PetscViewerBinary for MATLAB format ---#\n");CHKERRQ(ierr);
ierr = PetscFPrintf(comm,*file,"#$$ Set.filename = '%s';\n",vbinary->filename);CHKERRQ(ierr);
ierr = PetscFPrintf(comm,*file,"#$$ fd = PetscOpenFile(Set.filename);\n");CHKERRQ(ierr);
ierr = PetscFPrintf(comm,*file,"#--- end code written by PetscViewerBinary for MATLAB format ---#\n\n");CHKERRQ(ierr);
}
PetscFunctionReturn(0);
}
开发者ID:ZJLi2013,项目名称:petsc,代码行数:18,代码来源:binv.c
示例12: monitor_relres
/**
* monitor_relres
* --------------
* Function to monitor the relative value of residual (= norm(r)/norm(b)).
*/
PetscErrorCode monitor_relres(KSP ksp, PetscInt n, PetscReal norm_r, void *ctx)
{
PetscFunctionBegin;
PetscErrorCode ierr;
MonitorCtx *monitor_ctx = (MonitorCtx *) ctx;
PetscReal norm_b = monitor_ctx->norm_b;
GridInfo *gi = monitor_ctx->gi;
PetscReal rel_res = norm_r/norm_b;
if (gi->output_relres) {
ierr = PetscFPrintf(PETSC_COMM_WORLD, gi->relres_file, "%d,%e\n", n, rel_res); CHKERRQ(ierr);
}
ierr = PetscFPrintf(PETSC_COMM_WORLD, stdout, "\tnumiter: %d\tnorm(r)/norm(b) = %e\n", n, rel_res); CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:SiyiHuang,项目名称:fd3d,代码行数:23,代码来源:output.c
示例13: PetscViewerASCIIOpen
/*@C
PetscViewerASCIIPrintf - Prints to a file, only from the first
processor in the PetscViewer
Not Collective, but only first processor in set has any effect
Input Parameters:
+ viewer - optained with PetscViewerASCIIOpen()
- format - the usual printf() format string
Level: developer
Fortran Note:
The call sequence is PetscViewerASCIIPrintf(PetscViewer, character(*), int ierr) from Fortran.
That is, you can only pass a single character string from Fortran.
Concepts: PetscViewerASCII^printing
Concepts: printing^to file
Concepts: printf
.seealso: PetscPrintf(), PetscSynchronizedPrintf(), PetscViewerASCIIOpen(),
PetscViewerASCIIPushTab(), PetscViewerASCIIPopTab(), PetscViewerASCIISynchronizedPrintf(),
PetscViewerCreate(), PetscViewerDestroy(), PetscViewerSetType(), PetscViewerASCIIGetPointer(), PetscViewerASCIISynchronizedAllow()
@*/
PetscErrorCode PetscViewerASCIIPrintf(PetscViewer viewer,const char format[],...)
{
PetscViewer_ASCII *ascii = (PetscViewer_ASCII*)viewer->data;
PetscMPIInt rank;
PetscInt tab;
PetscErrorCode ierr;
FILE *fd = ascii->fd;
PetscBool iascii;
int err;
PetscFunctionBegin;
PetscValidHeaderSpecific(viewer,PETSC_VIEWER_CLASSID,1);
PetscValidCharPointer(format,2);
ierr = PetscObjectTypeCompare((PetscObject)viewer,PETSCVIEWERASCII,&iascii);CHKERRQ(ierr);
if (!iascii) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_WRONG,"Not ASCII PetscViewer");
ierr = MPI_Comm_rank(PetscObjectComm((PetscObject)viewer),&rank);CHKERRQ(ierr);
if (!rank) {
va_list Argp;
if (ascii->bviewer) petsc_printfqueuefile = fd;
tab = ascii->tab;
while (tab--) {
ierr = PetscFPrintf(PETSC_COMM_SELF,fd," ");CHKERRQ(ierr);
}
va_start(Argp,format);
ierr = (*PetscVFPrintf)(fd,format,Argp);CHKERRQ(ierr);
err = fflush(fd);
if (err) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SYS,"fflush() failed on file");
if (petsc_history) {
va_start(Argp,format);
tab = ascii->tab;
while (tab--) {
ierr = PetscFPrintf(PETSC_COMM_SELF,fd," ");CHKERRQ(ierr);
}
ierr = (*PetscVFPrintf)(petsc_history,format,Argp);CHKERRQ(ierr);
err = fflush(petsc_history);
if (err) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_SYS,"fflush() failed on file");
}
va_end(Argp);
}
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:68,代码来源:filev.c
示例14: communicator
/*@C
PetscFunctionListPrintTypes - Prints the methods available.
Collective over MPI_Comm
Input Parameters:
+ comm - the communicator (usually MPI_COMM_WORLD)
. fd - file to print to, usually stdout
. prefix - prefix to prepend to name (optional)
. name - option string (for example, "-ksp_type")
. text - short description of the object (for example, "Krylov solvers")
. man - name of manual page that discusses the object (for example, "KSPCreate")
. list - list of types
- def - default (current) value
Level: developer
.seealso: PetscFunctionListAdd(), PetscFunctionList
@*/
PetscErrorCode PetscFunctionListPrintTypes(MPI_Comm comm,FILE *fd,const char prefix[],const char name[],const char text[],const char man[],PetscFunctionList list,const char def[])
{
PetscErrorCode ierr;
char p[64];
PetscFunctionBegin;
if (!fd) fd = PETSC_STDOUT;
ierr = PetscStrncpy(p,"-",sizeof(p));CHKERRQ(ierr);
if (prefix) {ierr = PetscStrlcat(p,prefix,sizeof(p));CHKERRQ(ierr);}
ierr = PetscFPrintf(comm,fd," %s%s <%s>: %s (one of)",p,name+1,def,text);CHKERRQ(ierr);
while (list) {
ierr = PetscFPrintf(comm,fd," %s",list->name);CHKERRQ(ierr);
list = list->next;
}
ierr = PetscFPrintf(comm,fd," (%s)\n",man);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:firedrakeproject,项目名称:petsc,代码行数:38,代码来源:reg.c
示例15: PetscDrawLine_TikZ
PetscErrorCode PetscDrawLine_TikZ(PetscDraw draw,PetscReal xl,PetscReal yl,PetscReal xr,PetscReal yr,int cl)
{
PetscDraw_TikZ *win = (PetscDraw_TikZ*)draw->data;
PetscErrorCode ierr;
PetscFunctionBegin;
win->written = PETSC_TRUE;
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,"\\draw [%s] (%g,%g) --(%g,%g);\n",TikZColorMap(cl),XTRANS(draw,xl),YTRANS(draw,yl),XTRANS(draw,xr),YTRANS(draw,yr));CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:10,代码来源:tikz.c
示例16: PetscDrawString_TikZ
PetscErrorCode PetscDrawString_TikZ(PetscDraw draw,PetscReal xl,PetscReal yl,int cl,const char text[])
{
PetscDraw_TikZ *win = (PetscDraw_TikZ*)draw->data;
PetscErrorCode ierr;
PetscFunctionBegin;
win->written = PETSC_TRUE;
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,"\\node [above right, %s] at (%g,%g) {%s};\n",TikZColorMap(cl),XTRANS(draw,xl),YTRANS(draw,yl),text);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:10,代码来源:tikz.c
示例17: DMPlexVTKWritePartition_ASCII
PetscErrorCode DMPlexVTKWritePartition_ASCII(DM dm, FILE *fp)
{
MPI_Comm comm;
PetscInt numCells = 0, cellHeight;
PetscInt numLabelCells, cMax, cStart, cEnd, c;
PetscMPIInt numProcs, rank, proc, tag;
PetscBool hasLabel;
PetscErrorCode ierr;
PetscFunctionBegin;
ierr = PetscObjectGetComm((PetscObject)dm,&comm);CHKERRQ(ierr);
ierr = PetscCommGetNewTag(comm, &tag);CHKERRQ(ierr);
ierr = MPI_Comm_size(comm, &numProcs);CHKERRQ(ierr);
ierr = MPI_Comm_rank(comm, &rank);CHKERRQ(ierr);
ierr = DMPlexGetVTKCellHeight(dm, &cellHeight);CHKERRQ(ierr);
ierr = DMPlexGetHeightStratum(dm, cellHeight, &cStart, &cEnd);CHKERRQ(ierr);
ierr = DMPlexGetHybridBounds(dm, &cMax, NULL, NULL, NULL);CHKERRQ(ierr);
if (cMax >= 0) cEnd = PetscMin(cEnd, cMax);
ierr = DMPlexGetStratumSize(dm, "vtk", 1, &numLabelCells);CHKERRQ(ierr);
hasLabel = numLabelCells > 0 ? PETSC_TRUE : PETSC_FALSE;
for (c = cStart; c < cEnd; ++c) {
if (hasLabel) {
PetscInt value;
ierr = DMPlexGetLabelValue(dm, "vtk", c, &value);CHKERRQ(ierr);
if (value != 1) continue;
}
++numCells;
}
if (!rank) {
for (c = 0; c < numCells; ++c) {ierr = PetscFPrintf(comm, fp, "%d\n", rank);CHKERRQ(ierr);}
for (proc = 1; proc < numProcs; ++proc) {
MPI_Status status;
ierr = MPI_Recv(&numCells, 1, MPIU_INT, proc, tag, comm, &status);CHKERRQ(ierr);
for (c = 0; c < numCells; ++c) {ierr = PetscFPrintf(comm, fp, "%d\n", proc);CHKERRQ(ierr);}
}
} else {
ierr = MPI_Send(&numCells, 1, MPIU_INT, 0, tag, comm);CHKERRQ(ierr);
}
PetscFunctionReturn(0);
}
开发者ID:pombredanne,项目名称:petsc,代码行数:42,代码来源:plexvtk.c
示例18: PetscSynchronizedPrintf
/*@
PetscSynchronizedFlush - Flushes to the screen output from all processors
involved in previous PetscSynchronizedPrintf() calls.
Collective on MPI_Comm
Input Parameters:
. comm - the communicator
Level: intermediate
Notes:
Usage of PetscSynchronizedPrintf() and PetscSynchronizedFPrintf() with
different MPI communicators REQUIRES an intervening call to PetscSynchronizedFlush().
.seealso: PetscSynchronizedPrintf(), PetscFPrintf(), PetscPrintf(), PetscViewerASCIIPrintf(),
PetscViewerASCIISynchronizedPrintf()
@*/
PetscErrorCode PetscSynchronizedFlush(MPI_Comm comm)
{
PetscErrorCode ierr;
PetscMPIInt rank,size,tag,i,j,n,dummy = 0;
char *message;
MPI_Status status;
FILE *fd;
PetscFunctionBegin;
ierr = PetscCommDuplicate(comm,&comm,&tag);CHKERRQ(ierr);
ierr = MPI_Comm_rank(comm,&rank);CHKERRQ(ierr);
ierr = MPI_Comm_size(comm,&size);CHKERRQ(ierr);
/* First processor waits for messages from all other processors */
if (!rank) {
if (petsc_printfqueuefile) {
fd = petsc_printfqueuefile;
} else {
fd = PETSC_STDOUT;
}
for (i=1; i<size; i++) {
/* to prevent a flood of messages to process zero, request each message separately */
ierr = MPI_Send(&dummy,1,MPI_INT,i,tag,comm);CHKERRQ(ierr);
ierr = MPI_Recv(&n,1,MPI_INT,i,tag,comm,&status);CHKERRQ(ierr);
for (j=0; j<n; j++) {
PetscMPIInt size;
ierr = MPI_Recv(&size,1,MPI_INT,i,tag,comm,&status);CHKERRQ(ierr);
ierr = PetscMalloc(size * sizeof(char), &message);CHKERRQ(ierr);
ierr = MPI_Recv(message,size,MPI_CHAR,i,tag,comm,&status);CHKERRQ(ierr);
ierr = PetscFPrintf(comm,fd,"%s",message);
ierr = PetscFree(message);CHKERRQ(ierr);
}
}
petsc_printfqueuefile = PETSC_NULL;
} else { /* other processors send queue to processor 0 */
PrintfQueue next = petsc_printfqueuebase,previous;
ierr = MPI_Recv(&dummy,1,MPI_INT,0,tag,comm,&status);CHKERRQ(ierr);
ierr = MPI_Send(&petsc_printfqueuelength,1,MPI_INT,0,tag,comm);CHKERRQ(ierr);
for (i=0; i<petsc_printfqueuelength; i++) {
ierr = MPI_Send(&next->size,1,MPI_INT,0,tag,comm);CHKERRQ(ierr);
ierr = MPI_Send(next->string,next->size,MPI_CHAR,0,tag,comm);CHKERRQ(ierr);
previous = next;
next = next->next;
ierr = PetscFree(previous->string);CHKERRQ(ierr);
ierr = PetscFree(previous);CHKERRQ(ierr);
}
petsc_printfqueue = 0;
petsc_printfqueuelength = 0;
}
ierr = PetscCommDestroy(&comm);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:Kun-Qu,项目名称:petsc,代码行数:72,代码来源:mprint.c
示例19: PetscViewerDestroy_Binary
PetscErrorCode PetscViewerDestroy_Binary(PetscViewer v)
{
PetscViewer_Binary *vbinary = (PetscViewer_Binary*)v->data;
PetscErrorCode ierr;
PetscFunctionBegin;
if (v->format == PETSC_VIEWER_BINARY_MATLAB) {
MPI_Comm comm;
FILE *info;
ierr = PetscObjectGetComm((PetscObject)v,&comm);CHKERRQ(ierr);
ierr = PetscViewerBinaryGetInfoPointer(v,&info);CHKERRQ(ierr);
ierr = PetscFPrintf(comm,info,"#--- begin code written by PetscViewerBinary for MATLAB format ---#\n");CHKERRQ(ierr);
ierr = PetscFPrintf(comm,info,"#$$ close(fd);\n");CHKERRQ(ierr);
ierr = PetscFPrintf(comm,info,"#--- end code written by PetscViewerBinary for MATLAB format ---#\n\n");CHKERRQ(ierr);
}
ierr = PetscViewerFileClose_Binary(v);CHKERRQ(ierr);
ierr = PetscFree(vbinary);CHKERRQ(ierr);
PetscFunctionReturn(0);
}
开发者ID:ZJLi2013,项目名称:petsc,代码行数:20,代码来源:binv.c
示例20: PetscDrawBoxedString_TikZ
/*
Does not handle multiline strings correctly
*/
PetscErrorCode PetscDrawBoxedString_TikZ(PetscDraw draw,PetscReal xl,PetscReal yl,int cl,int ct,const char text[],PetscReal *w,PetscReal *h)
{
PetscDraw_TikZ *win = (PetscDraw_TikZ*)draw->data;
PetscErrorCode ierr;
size_t len;
PetscFunctionBegin;
win->written = PETSC_TRUE;
ierr = PetscFPrintf(PetscObjectComm((PetscObject)draw),win->fd,"\\draw (%g,%g) node [rectangle, draw, align=center, inner sep=1ex] {%s};\n",XTRANS(draw,xl),YTRANS(draw,yl),text);CHKERRQ(ierr);
/* make up totally bogus height and width of box */
ierr = PetscStrlen(text,&len);CHKERRQ(ierr);
if (w) *w = .07*len;
if (h) *h = .07;
PetscFunctionReturn(0);
}
开发者ID:feelpp,项目名称:debian-petsc,代码行数:19,代码来源:tikz.c
注:本文中的PetscFPrintf函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论