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