1c4762a1bSJed Brown 2c4762a1bSJed Brown static char help[] = "Demonstrates PetscMatlabEngineXXX()\n"; 3c4762a1bSJed Brown 4c4762a1bSJed Brown #include <petscsys.h> 5c4762a1bSJed Brown #include <petscmatlab.h> 6c4762a1bSJed Brown 7c4762a1bSJed Brown int main(int argc,char **argv) 8c4762a1bSJed Brown { 9c4762a1bSJed Brown PetscErrorCode ierr; 10c4762a1bSJed Brown PetscMPIInt rank; 11c4762a1bSJed Brown char buffer[256],*output,user[256]; 12c4762a1bSJed Brown PetscBool userhappy = PETSC_FALSE; 13c4762a1bSJed Brown 14*b122ec5aSJacob Faibussowitsch CHKERRQ(PetscInitialize(&argc,&argv,(char*)0,help)); 15c4762a1bSJed Brown ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank); 16c4762a1bSJed Brown 175f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMatlabEngineGetOutput(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),&output)); 18c4762a1bSJed Brown 195f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),"MPI_Comm_rank")); 205f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedPrintf(PETSC_COMM_WORLD,"[%d]Processor rank is %s",rank,output)); 215f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFlush(PETSC_COMM_WORLD,PETSC_STDOUT)); 225f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,">>")); 235f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFGets(PETSC_COMM_WORLD,stdin,256,user)); 245f80ce2aSJacob Faibussowitsch CHKERRQ(PetscStrncmp(user,"exit",4,&userhappy)); 25c4762a1bSJed Brown while (!userhappy) { 265f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),user)); 275f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedPrintf(PETSC_COMM_WORLD,"[%d]The result is %s",rank,output)); 285f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFlush(PETSC_COMM_WORLD,PETSC_STDOUT)); 295f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,">>")); 305f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFGets(PETSC_COMM_WORLD,stdin,256,user)); 315f80ce2aSJacob Faibussowitsch CHKERRQ(PetscStrncmp(user,"exit",4,&userhappy)); 32c4762a1bSJed Brown } 33*b122ec5aSJacob Faibussowitsch CHKERRQ(PetscFinalize()); 34*b122ec5aSJacob Faibussowitsch return 0; 35c4762a1bSJed Brown } 36