> On Apr 16, 2015, at 2:47 AM, siddhesh godbole <[email protected]>
> wrote:
>
> Hello Barry
>
> sorry for the same doubt again but i have tried everything i could to send
> data across matlab from petsc via socket. matlab paths to
> ${PETSC_DIR}/share/petsc/matlab and ${PETSC_DIR}/${PETSC_ARCH}/lib/matlab are
> added properly, petsc was configured with --with matlab option, and it has
> successfully generated mex files corresponding to sopen etc too. i have a
> file named sopen.mexa64 in ${PETSC_ARCH}/lib/matlab.
>
> everytime the petsc program is lauched from matlab with
> Launch('./program',np,opt) it gives an error in the line p = PetscOpenSocket;
> in which the error is specifically in S = struct('fd', sopen());
Please always cut and paste the entire error message.
Does src/ksp/ksp/examples/tutorials/ex41.m work?
You can attempt to debug by manually opening Matlab and entering
launch('./ex41 ',1,' ');
p = PetscOpenSocket;
etc.
> i have made sure that previous sopen belonging to some other package as u
> said does not exist in the path.
> can you tell me why i would be getting this error?
>
> extract from my code in c
> PetscViewerSocketOpen(PETSC_COMM_WORLD,"server",PETSC_NULL,&fd);
> ierr = MatCreate(PETSC_COMM_WORLD,&mmtop);CHKERRQ(ierr);
> ierr = MatLoad(mmtop,fd);CHKERRQ(ierr);
>
> ierr = MatCreate(PETSC_COMM_WORLD,&kktop);CHKERRQ(ierr);
> ierr = MatLoad(kktop,fd);CHKERRQ(ierr);
>
> ierr = MatView(Phi,fd);CHKERRQ(ierr);
>
>
> extract from my matlab code interfacing with petsc
>
> mmtop=zeros(15,15);
> kktop=zeros(15,15);
> for i=1:15;
> for j=1:15;
> mmtop(i,j)=(i+j)+(i+1)*(j+2);
> kktop(i,j)=(i+j+5)+(i+2)*(j+2);
> end
> end
> if (nargin < 1)
> np = 1;
> end
> if (nargin < 2)
> opt = ' ';
> end
> launch('./eps13D ',np,opt);
>
> fd=PetscOpenSocket();
>
>
> PetscBinaryWrite(fd,mmtop);
> PetscBinaryWrite(fd,kktop);
> phi = PetscBinaryRead(fd);
>
> close(socket);
>
>
> thank you
>
>
>
>
>
>
> Siddhesh M Godbole
>
> 5th year Dual Degree,
> Civil Eng & Applied Mech.
> IIT Madras
>
> On Fri, Apr 10, 2015 at 10:39 PM, siddhesh godbole
> <[email protected]> wrote:
> Oh...I found that! Sorry for the silly doubt!
>
> Thank you so much Barry!
>
> On Apr 10, 2015 6:23 PM, "Barry Smith" <[email protected]> wrote:
>
> Ahh, bad name spacing. PETSc has an sopen mex file for opening socket
> connections, some completely different other package has an sopen.m which is
> being found first. Make sure the PETSc sopen mex file is in the MATLABPATH
> before the other one or better yet make sure the other sopen.m is not in the
> MATLABPATH
>
> Barry
>
> > On Apr 10, 2015, at 6:46 AM, siddhesh godbole <[email protected]>
> > wrote:
> >
> > Hello,
> >
> > I am having difficulty in launching petsc program from matlab. According to
> > the error the problem is with the sopen function. error given in the matlab
> > command window is that there are not enough arguments for sopen in the line
> > 75. i am attaching sopen.m file with mail. can you help me out with this as
> > there is no one to solve my doubt in this area. i am also attaching my
> > program file eps13D.m
> > the sopen call is made by the function PetscOpenSocket in which line 10
> > subsequently also shoots an error.
> >
> > Thanks a lot
> >
> >
> > Siddhesh M Godbole
> >
> > 5th year Dual Degree,
> > Civil Eng & Applied Mech.
> > IIT Madras
> > <eps13D.m><sopen.m><PetscOpenSocket.m>
>
>