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