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 14c4762a1bSJed Brown ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 15c4762a1bSJed Brown ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank); 16c4762a1bSJed Brown 17*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMatlabEngineGetOutput(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),&output)); 18c4762a1bSJed Brown 19*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),"MPI_Comm_rank")); 20*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedPrintf(PETSC_COMM_WORLD,"[%d]Processor rank is %s",rank,output)); 21*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFlush(PETSC_COMM_WORLD,PETSC_STDOUT)); 22*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,">>")); 23*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFGets(PETSC_COMM_WORLD,stdin,256,user)); 24*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscStrncmp(user,"exit",4,&userhappy)); 25c4762a1bSJed Brown while (!userhappy) { 26*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD),user)); 27*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedPrintf(PETSC_COMM_WORLD,"[%d]The result is %s",rank,output)); 28*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFlush(PETSC_COMM_WORLD,PETSC_STDOUT)); 29*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,">>")); 30*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscSynchronizedFGets(PETSC_COMM_WORLD,stdin,256,user)); 31*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscStrncmp(user,"exit",4,&userhappy)); 32c4762a1bSJed Brown } 33c4762a1bSJed Brown ierr = PetscFinalize(); 34c4762a1bSJed Brown return ierr; 35c4762a1bSJed Brown } 36