You can do the following

    d = Interval(0,1)
    f1 = Fun(x->0,d)
    f2 = Fun(x->1 / ((1 + x)^2 + 1),d)
    f3 = Fun(y->y / (1 + y^2),d)
    f4 = Fun(y->y / (4 + y^2),d)

    u = [dirichlet(d^2),lap(d^2)]\[f1,f2,f3,f4]



> On 22 Mar 2015, at 7:35 pm, Dominic Steinitz <[email protected]> wrote:
> 
> Ah thanks - that produces an answer. However I want the boundary conditions 
> to be on [0,1]^2. I tried
> 
>> dd = (domain(Fun(identity,[0.0,1.0])))^2
> 
> 
>> u = [dirichlet(dd),lap(dd)]\[f1,f2,f3,f4]
> 
> 
> but this gives me
> 
>> julia> u = [dirichlet(dd),lap(dd)]\[f1,f2,f3,f4]
>> WARNING: [a,b] concatenation is deprecated; use [a;b] instead
>>  in depwarn at 
>> /Applications/Julia-0.4.0-dev-5587ca352f.app/Contents/Resources/julia/lib/julia/sys.dylib
>>  in oldstyle_vcat_warning at 
>> /Applications/Julia-0.4.0-dev-5587ca352f.app/Contents/Resources/julia/lib/julia/sys.dylib
>>  in vect at abstractarray.jl:35
>> ERROR: AssertionError: domainscompatible(a,b)
>>  in conversion_rule at 
>> /Users/dom/.julia/v0.4/ApproxFun/src/Spaces/Ultraspherical/UltrasphericalOperators.jl:313
>>  in conversion_type at 
>> /Users/dom/.julia/v0.4/ApproxFun/src/Fun/FunctionSpace.jl:146
>>  in coefficients at 
>> /Users/dom/.julia/v0.4/ApproxFun/src/Fun/FunctionSpace.jl:233
>>  in * at /Users/dom/.julia/v0.4/ApproxFun/src/Operators/algebra.jl:398
>>  in cont_reduce_dofs! at 
>> /Users/dom/.julia/v0.4/ApproxFun/src/PDE/cont_lyap.jl:20
>>  in cont_reduce_dofs! at 
>> /Users/dom/.julia/v0.4/ApproxFun/src/PDE/cont_lyap.jl:64
>>  in cont_constrained_lyap at 
>> /Users/dom/.julia/v0.4/ApproxFun/src/PDE/cont_lyap.jl:297
>>  in pdesolve at /Users/dom/.julia/v0.4/ApproxFun/src/PDE/pdesolve.jl:127
>>  in pdesolve at /Users/dom/.julia/v0.4/ApproxFun/src/PDE/pdesolve.jl:126
>>  in pdesolve at /Users/dom/.julia/v0.4/ApproxFun/src/PDE/pdesolve.jl:101
>>  in \ at /Users/dom/.julia/v0.4/ApproxFun/src/PDE/pdesolve.jl:138
> 
> 
> I am not clear which domains are incompatible.
> 
> Dominic Steinitz
> [email protected] <mailto:[email protected]>
> http://idontgetoutmuch.wordpress.com <http://idontgetoutmuch.wordpress.com/>
> On 22 Mar 2015, at 02:25, Sheehan Olver <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>> 
>> It's expanding f1-f4 as bivariate functions on [-1,1]^2, but instead you 
>> want to expand them as univariate functions on [-1,1]:
>> 
>> d = Interval()^2
>> 
>> f1 = Fun(x->0)
>> f2 = Fun(x->1 / ((1 + x)^2 + 1))
>> f3 = Fun(y->y / (1 + y^2))
>> f4 = Fun(y->y / (4 + y^2))
>> 
>> u = [dirichlet(d),lap(d)]\[f1,f2,f3,f4]
>> 
>> 
>> 
>> On Sunday, March 22, 2015 at 8:02:45 AM UTC+11, idontgetoutmuch wrote:
>> 
>> 
>> I am trying to solve Laplace's equation using ApproxFun with the following 
>> boundary conditions
>> 
>> {
>> \phi(x, 0) &= 0 \\
>> \phi(x, 1) &= \frac{1}{(1 + x)^2 + 1} \\
>> \phi(0, y) &= \frac{y}{1 + y^2} \\
>> \phi(1, y) &= \frac{y}{4 + y^2}
>> \end{aligned}
>> }
>> 
>> I'm not clear how to express these. I've tried
>> 
>> {
>> d = Interval()^2
>> 
>> f1 = Fun((x,y)->0)
>> f2 = Fun((x,y)->1 / ((1 + x)^2 + 1))
>> f3 = Fun((x,y)->y / (1 + y^2))
>> f4 = Fun((x,y)->y / (4 + y^2))
>> 
>> u = [dirichlet(d),lap(d)]\[f1,f2,f3,f4]
>> }
>> 
>> and
>> 
>> {
>> u = [dirichlet(d),lap(d)]\[zeros(1),f2,f3,f4]
>> }
>> 
>> but in both cases I get errors (which I can attach).
>> 
>> I can see ldirichlet and rdirichlet exist but I need to specify the top and 
>> bottom as well.
> 

Reply via email to