
Re: measured boundary conditions with pde toolbox
Posted:
Apr 2, 2014 3:33 PM


"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

