Dmitry
Posts:
4
Registered:
4/2/14


Re: measured boundary conditions with pde toolbox
Posted:
Apr 3, 2014 12:56 AM


"Bill Greene" wrote in message <lhholl$pur$1@newscl01ah.mathworks.com>... > "Dmitry" wrote in message <lhhm8o$j16$1@newscl01ah.mathworks.com>... > > "Doug" wrote in message <h5psrj$8g9$1@fred.mathworks.com>... > > > OK, I've answered my own question, and the answer is a boundary Mfile. > > > > > > Though wbound makes a boundary Mfile that is based on a simple formula, in exactly the same format as a boundary condition matrix, it's possible to write your own boundary Mfile *any way you like*. As long as it takes (p,e,u,time) as inputs and returns [q,g,h,r] as outputs, it works fine with assempde. You just pass the filename of the boundary Mfile as the first argument to assempde. So I've written a boundary Mfile that takes the necessary inputs (p,e,u,time) but ignores them, instead constructing [q,g,h,r] from my measurements. And it works. Reading the help file for pdebound over and over was the key! > > > > Hi Doug, > > Could you provide an example of this kind of usage please? > > As I understood, you just loaded the variable in the boundary Mfile like this: > > > load('var.mat','var'); > > and used it for construction of [q,g,h,r]. Am I right? > > > > I've done the same (for hyperbolic solver), but I can't check if it works because for some (another) reason the solver gives me the error: > > >Error using pdeexpd (line 57) > > >Number of variables mismatch between u and bl. > > >Error in assemb (line 101) > > > [q,g,h,r]=pdeexpd(p,e,u,time,bl); > > >Error in pdeODEInfo/getMats (line 164) > > > [Q,G,H,R]=assemb(self.b,self.p,self.e,u,time); > > >Error in pdeODEInfo/checkFuncDepen (line 60) > > > [MM0,K0,M0,F0,Q0,G0,H0,R0] = self.getMats(u0, t0); > > >Error in pdeHyperbolicInfo (line 15) > > > obj=obj.checkFuncDepen(u0, tlist); > > >Error in hyperbolic (line 41) > > > pdehyp=pdeHyperbolicInfo(u0,ut0,tlist,b,p,e,t,c,a,f,d); > > >Error in main (line 49) > > >u = hyperbolic(u0,ut0,tlist,b,p,e,t,c,a,f,d); > > > > In my case I have only dependence on time in boundary Mfile, but the solver assumes that output of it depends on the solution u too > > (it goes wrong way at pdeODEInfo/checkFuncDepen stage). > > Don't know what to do... > > There appears to be something wrong with your pdebound function or > with how you are passing the handle to it into hyperbolic. > > Did you follow the example here if you have a single pde: > > http://www.mathworks.com/help/pde/ug/boundaryconditionsforscalarpde.html > > or here if you have a system of pde: > > http://www.mathworks.com/help/pde/ug/boundaryconditionsforpdesystems.html > > Is the value of "b" that you are passing into hyperbolic something like this? > > b = @myPdeBoundFunction; % myPdeBoundFunction is whatever you named your function > > Bill
Oh, thanks, Bill, I'd passed 'b' the wrong way...

