Actual source code: ex16.c
2: static char help[] = "Demonstrates PetscMatlabEngineXXX()\n";
4: #include <petscsys.h>
5: #include <petscmatlab.h>
7: int main(int argc, char **argv)
8: {
9: PetscMPIInt rank;
10: char buffer[256], *output, user[256];
11: PetscBool userhappy = PETSC_FALSE;
14: PetscInitialize(&argc, &argv, (char *)0, help);
15: MPI_Comm_rank(PETSC_COMM_WORLD, &rank);
17: PetscMatlabEngineGetOutput(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD), &output);
19: PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD), "MPI_Comm_rank");
20: PetscSynchronizedPrintf(PETSC_COMM_WORLD, "[%d]Processor rank is %s", rank, output);
21: PetscSynchronizedFlush(PETSC_COMM_WORLD, PETSC_STDOUT);
22: PetscPrintf(PETSC_COMM_WORLD, ">>");
23: PetscSynchronizedFGets(PETSC_COMM_WORLD, stdin, 256, user);
24: PetscStrncmp(user, "exit", 4, &userhappy);
25: while (!userhappy) {
26: PetscMatlabEngineEvaluate(PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD), user);
27: PetscSynchronizedPrintf(PETSC_COMM_WORLD, "[%d]The result is %s", rank, output);
28: PetscSynchronizedFlush(PETSC_COMM_WORLD, PETSC_STDOUT);
29: PetscPrintf(PETSC_COMM_WORLD, ">>");
30: PetscSynchronizedFGets(PETSC_COMM_WORLD, stdin, 256, user);
31: PetscStrncmp(user, "exit", 4, &userhappy);
32: }
33: PetscFinalize();
34: return 0;
35: }