Thanks to show me how to use characteristic function as a source. But I
still have a problem.
I am solving these equations
1)eqp=ImplicitDiffusionTerm(coeff=1)==source1, where source1=q1s+q2s
2)eqphi=TransientTerm(coeff=2)==source2 where source2=q1s-q2s
where:
qin=40*((phi>=.1)and(phi<=.3))+20*((phi>=.7)and(phi<=.9))
qout=60*((phi>=.4)and(phi<=.6))
sin=.8
q1s=sin*qin+s*qout
q2s=(1-sin)*qin+(1-phi)*qout
when I run the I program I have the following error:
Evaluating diphabis.py
Traceback (most recent call last):
File "<string>", line 1, in <string>
AttributeError: 'bool' object has no attribute 'solve'
I don't understand this error, could any one have an idea? see my code
below.
Regards,
Franck
*********************************************************************************************************************************************************************************************
nx=400
dx=L/nx
timeStepDuration=0.012
from fipy.meshes.grid1D import Grid1D
mesh=Grid1D(dx=dx, nx=nx)
from fipy.variables.cellVariable import CellVariable
phi=CellVariable(name="saturation", mesh=mesh)
p=CellVariable(name="pressure",mesh=mesh)
x=mesh.getCellCenters()[...,0]
phi.setValue(.9, where=x<.5)
phi.setValue(.3, where=x>=.5)
p.setValue(1.)
#pcs=0
#built sources
qin=40*((phi>=.1)and(phi<=.3))+20*((phi>=.7)and(phi<=.9))
qout=60*((phi>=.4)and(phi<=.6))
sin=.8
#pin=0
q1s=sin*qin+s*qout
q2s=(1-sin)*qin+(1-phi)*qout
from fipy.terms.transientTerm import TransientTerm
from fipy.terms.implicitSourceTerm import ImplicitSourceTerm
from fipy.terms.implicitDiffusionTerm import ImplicitDiffusionTerm
eqp=ImplicitDiffusionTerm(coeff=1)==q1s+q2s
eqs=TransientTerm(coeff=2)==q1s-q2s
steps=50
for i in range(steps):
eqp.solve(p,dt=timeStepDuration)
eqphi.solve(phi,dt=timeStepDuration)
if __name__ =='__main__':
phiviewer=fipy.viewers.make(vars=(phi), limits={'datamin':0.,
'datamax':1.})
pviewer=fipy.viewers.make(vars=(p), limits={'datamin':0.,
'datamax':1.})
phiviewer.plot()
pviewer.plot()
**********************************************************************************************************************************************************************************************
2008/8/18 Jonathan Guyer <[EMAIL PROTECTED]>
>
>
> On Aug 18, 2008, at 2:57 PM, franck kalala wrote:
>
> my source term for the above problem looks like
>>
>> source=q(phi)=40*chi[0.1,.03](phi)+20*chi[0.7,0.9](phi)
>> where chi is the characteristic function of [0.1,0.3] which is 1 if phi
>> belongs to [0.1,0.3] and 0 otherwise.
>> how do I set such a function in fipy?
>>
>
> (phi >= 0.7) & (phi <= 0.9)
>
>
>
--
***********************************************
***********************************************
Franck Kalala Mutombo
[EMAIL PROTECTED]
African Institut for Mathematical Sciences, Muizenberg Cape Town, South
Africa
[EMAIL PROTECTED]
************************************************
************************************************