Oops, sorry a typo in my question - I left in the negative sign I
changed in vel.faceGrad.constrain([-0], mesh.facesRight) to see if
that did anything. This didn't fix anything, the problem still happens
with that or vel.faceGrad.constrain([0], mesh.facesRight).

Oliver

On 28 September 2012 15:24, Oliver Maclaren <[email protected]> wrote:
> Hi,
> thanks for the response Daniel! Playing around with this example, I
> also noticed that solving the equation (over domain [0,1]):
>
> (A) eq = PowerLawConvectionTerm([1]) - 1
>
> subject to:
>
> (B) vel.constrain(0, mesh.facesLeft)
> (C) vel.faceGrad.constrain([-0], mesh.facesRight)
>
> gives the correct answer (y=x, from 0 to 1), but requires the second
> boundary condition to be specified otherwise gives the error message:
>
> ".../FiPy-3.0/fipy/solvers/pysparse/linearLUSolver.py", line 89, in _solve_
>     LU = superlu.factorize(L.matrix.to_csr())
> RuntimeError: Factor is exactly singular"
>
> On the other hand, solving what should be an equivalent equation (?):
>
> (D) eq= -PowerLawConvectionTerm([1]) +1
>
> subject to the same boundary conditions gives the solution y=x-1, i.e.
> y going from -1 to 0, which seems incorrect (the solution should be
> the same as before?). I.e. the equation is satisfied (slope =1) but
> the LHS boundary condition is not enforced properly.
>
> Any idea what is happening here? I am hoping to solve a system of two
> (or more) coupled equations with one being a
> convection-diffusion-reaction equation for solute transport in a tube
> and the other a convection equation with a source term coupled to the
> solute concentration (representing an osmotic source). So before I do
> this I would like to verify the solvers for each part as much as
> possible.
>
> Thanks so much for your time!
> Oliver.
>
>
> On 28 September 2012 03:57, Daniel Wheeler <[email protected]> wrote:
>> On Tue, Sep 25, 2012 at 9:47 PM, Oliver Maclaren
>> <[email protected]> wrote:
>>> Hi,
>>> I'm new to FiPy and first just want to say thanks for all the time and
>>> effort put into this, it looks like a great learning and research
>>> tool!
>>>
>>> I also have a comment and question about the simple
>>> convection-with-source example at:
>>> http://www.ctcms.nist.gov/fipy/examples/convection/generated/examples.convection.source.html
>>>
>>> The (very minor!) comment is that the equation to be solved is stated
>>> in the text of the example as:
>>>
>>> d(phi)/dx - alpha*phi = 0
>>>
>>> but the equation solved is:
>>>
>>> d(phi)/dx + alpha*phi = 0
>>>
>>> which gives the negative gradient of the solution (also in the code
>>> the equation is specified by eq = PowerLawConvectionTerm((1,)) +
>>> ImplicitSourceTerm(alpha)).
>>
>> Thanks for that. I'll change it around.
>>
>>> My question is about the part of the description reading "The boundary
>>> condition at x = L will require the implementation of an outflow
>>> boundary condition, which is not currently implemented in FiPy. An
>>> ImplicitSourceTerm object will be used to represent this term."
>>
>> This isn't strictly true any more now that we are using constraints.
>> As long as any constraint is applied to an exterior surface then the
>> boundary conditions is an outflow condition. The reason for this
>> requirement is backwards compatibility due to our bad choices int the
>> past. The "phi.faceGrad.constrain([0], mesh.facesRight)" basically
>> enables an outflow boundary condition otherwise the natural condition
>> is applied which is zero velocity.
>>
>>> I'm not expert in well-posedness and requirements of numerical
>>> formulations, but since there is a boundary condition given at x=0 and
>>> the equation is first order, why is a boundary condition at x=L
>>> required? I tried taking the condition at x=L out and the code still
>>> works, but perhaps there is a default Neumann condition implemented
>>> anyway?
>>
>> Obviously, it depends on the direction of the flow, but yes you are
>> right. I'll try and modify the text in the example so it makes more
>> sense.
>>
>> Thanks!
>>
>> --
>> Daniel Wheeler
>> _______________________________________________
>> fipy mailing list
>> [email protected]
>> http://www.ctcms.nist.gov/fipy
>>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
>
>
> --
> Oliver Maclaren BE(Hons)
> PhD Candidate
> Auckland Bioengineering Institute
> The University of Auckland
> New Zealand



-- 
Oliver Maclaren BE(Hons)
PhD Candidate
Auckland Bioengineering Institute
The University of Auckland
New Zealand
_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to