xref: /petsc/include/petscmatlab.h (revision 7d0a6c19129e7069c8a40e210b34ed62989173db)
1 /*
2     Defines an interface to the MATLAB Engine from PETSc
3 */
4 
5 #if !defined(__PETSCMATLAB_H)
6 #define __PETSCMATLAB_H
7 PETSC_EXTERN_CXX_BEGIN
8 
9 extern PetscClassId MATLABENGINE_CLASSID;
10 
11 /*S
12      PetscMatlabEngine - Object used to communicate with MATLAB
13 
14    Level: intermediate
15 
16 .seealso:  PetscMatlabEngineCreate(), PetscMatlabEngineDestroy(), PetscMatlabEngineEvaluate(),
17            PetscMatlabEngineGetOutput(), PetscMatlabEnginePut(), PetscMatlabEngineGet(),
18            PetscMatlabEnginePrintOutput(), PetscMatlabEnginePutArray(), PetscMatlabEngineGetArray(),
19            PETSC_MATLAB_ENGINE_(), PETSC_MATLAB_ENGINE_SELF, PETSC_MATLAB_ENGINE_WORLD
20 S*/
21 typedef struct _p_PetscMatlabEngine* PetscMatlabEngine;
22 
23 extern PetscErrorCode  PetscMatlabEngineCreate(MPI_Comm,const char[],PetscMatlabEngine*);
24 extern PetscErrorCode  PetscMatlabEngineDestroy(PetscMatlabEngine);
25 extern PetscErrorCode  PetscMatlabEngineEvaluate(PetscMatlabEngine,const char[],...);
26 extern PetscErrorCode  PetscMatlabEngineGetOutput(PetscMatlabEngine,char **);
27 extern PetscErrorCode  PetscMatlabEnginePrintOutput(PetscMatlabEngine,FILE*);
28 extern PetscErrorCode  PetscMatlabEnginePut(PetscMatlabEngine,PetscObject);
29 extern PetscErrorCode  PetscMatlabEngineGet(PetscMatlabEngine,PetscObject);
30 extern PetscErrorCode  PetscMatlabEnginePutArray(PetscMatlabEngine,int,int,const PetscScalar*,const char[]);
31 extern PetscErrorCode  PetscMatlabEngineGetArray(PetscMatlabEngine,int,int,PetscScalar*,const char[]);
32 
33 extern PetscMatlabEngine  PETSC_MATLAB_ENGINE_(MPI_Comm);
34 
35 /*MC
36   PETSC_MATLAB_ENGINE_WORLD - same as PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD)
37 
38   Level: developer
39 M*/
40 #define PETSC_MATLAB_ENGINE_WORLD PETSC_MATLAB_ENGINE_(PETSC_COMM_WORLD)
41 
42 /*MC
43   PETSC_MATLAB_ENGINE_SELF - same as PETSC_MATLAB_ENGINE_(PETSC_COMM_SELF)
44 
45   Level: developer
46 M*/
47 #define PETSC_MATLAB_ENGINE_SELF  PETSC_MATLAB_ENGINE_(PETSC_COMM_SELF)
48 
49 PETSC_EXTERN_CXX_END
50 #endif
51