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.
>