Re: IndexError: index is out of bounds for axis 1 with size

2016-05-06 Thread Daniel Wheeler
The following runs for me with a few changes.

On Fri, May 6, 2016 at 1:25 PM, Mohammad Kazemi  wrote:
>
> Pk.constrain([Pd], mesh.facesLeft)
> Pk.constrain([Pu], mesh.facesRight)

Pk.constrain(Pd.faceValue, mesh.facesLeft)
Pk.constrain(Pu.faceValue, mesh.facesRight)

> Pf.constrain([Pd], mesh.facesLeft)
> Pf.constrain([Pu], mesh.facesRight)

Pf.constrain(Pd.faceValue, mesh.facesLeft)
Pf.constrain(Pu.faceValue, mesh.facesRight)

This makes sense since the Pf and Pk are scalars and [Pd] and [Pu] are
effectively vectors. Also the face value is required since the
constraint is on the faces.

I hope this helps.

-- 
Daniel Wheeler
___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


Re: IndexError: index is out of bounds for axis 1 with size

2016-05-06 Thread Mohammad Kazemi
Sorry for the confusion. For some reasons, it did not show me that error,
but I fixed the Pf definition. Here is my code which still give me the
index error.

CODE

from __future__ import division
from numpy import *
from pylab import *
from matplotlib import rc
from fipy import *

 INITIALLIZATION
###
L = 0.0508  #+0.0021+0.0014
nx = 10.0
dx = L / nx
Pdi=6894757.29
Pui=7170547.58
D=1e-6
tmax = 1000
sigma = 400
k0 = 10e-16
T = 300
M = 0.0399
R = 8.314
muf=1.96e-5
hf=30e-6
phif=0.25
A1=1.14
A2=0.28
wkf=4
wkd=4
wku=4

mesh = Grid1D(nx=nx, dx=dx)

### VARIABLE DEFINITIN
###
Pk = CellVariable(mesh=mesh, value=Pdi,hasOld=True)
Pf = CellVariable(mesh=mesh, value=Pdi,hasOld=True)
Pd = CellVariable(mesh=mesh, value=Pdi,hasOld=True)
Pu = CellVariable(mesh=mesh, value=Pui,hasOld=True)
Kn=sqrt((3.14*R*T/(2*M))*muf/(Pf*hf))
# Kerogen mass balance

Pk.constrain([Pd], mesh.facesLeft)
Pk.constrain([Pu], mesh.facesRight)
eqpk = TransientTerm(var=Pk) == DiffusionTerm(D, var=Pk)

# Natural Fracture mass balance
Df = k0 * (1 + 6 * A1 * Kn + 12 * A2 * Kn**2)*Pf/muf

wkfD=wkf*D
Pf.constrain([Pd], mesh.facesLeft)
Pf.constrain([Pu], mesh.facesRight)
eqpf = TransientTerm(phif,var=Pf) == DiffusionTerm(Df,var=Pf) -
ImplicitSourceTerm(coeff=wkfD,var=Pf) +
ImplicitSourceTerm(coeff=wkfD,var=Pk)

 Downstream tank
sigmaD = (k0*(1 + 6 * A1 * Kn + 12 * A2 * Kn**2)*sigma)/(muf)

eqpd = TransientTerm(var=Pd) == ImplicitSourceTerm(coeff=sigmaD,var=Pf) -
ImplicitSourceTerm(coeff=sigmaD,var=Pd)-
ImplicitSourceTerm(coeff=wkfD,var=Pd) +
ImplicitSourceTerm(coeff=wkfD,var=Pk)

##  Upstream tank

eqpu = - TransientTerm(var=Pu) == ImplicitSourceTerm(coeff=sigmaD,var=Pf) -
ImplicitSourceTerm(coeff=sigmaD,var=Pu)-
ImplicitSourceTerm(coeff=wkfD,var=Pu) +
ImplicitSourceTerm(coeff=wkfD,var=Pk)

## TIMESTEP
dt = 0.9 * dx**2 / (2 * D)
steps = 100

# Coupling

eqn = eqpk & eqpf & eqpd & eqpu

 Solver
for t in range(1):
Pk.updateOld()
Pf.updateOld()
Pd.updateOld()
Pu.updateOld()
eqn.sweep(dt=dt)



--
Error:

--

--IndexError
   Traceback (most recent call
last) in () 72
Pd.updateOld() 73 Pu.updateOld()---> 74 eqn.sweep(dt=dt)
/home/mkhome/anaconda/lib/python2.7/site-packages/fipy/terms/term.pyc
in sweep(self, var, solver, boundaryConditions, dt, underRelaxation,
residualFn, cacheResidual, cacheError)234 235 """-->
236 solver = self._prepareLinearSystem(var=var, solver=solver,
boundaryConditions=boundaryConditions, dt=dt)237
solver._applyUnderRelaxation(underRelaxation=underRelaxation)238
  residual = solver._calcResidual(residualFn=residualFn)
/home/mkhome/anaconda/lib/python2.7/site-packages/fipy/terms/term.pyc
in _prepareLinearSystem(self, var, solver, boundaryConditions, dt)
168
transientGeomCoeff=self._getTransientGeomCoeff(var),169

diffusionGeomCoeff=self._getDiffusionGeomCoeff(var),--> 170

buildExplicitIfOther=self._buildExplcitIfOther)171 172
self._buildCache(matrix, RHSvector)
/home/mkhome/anaconda/lib/python2.7/site-packages/fipy/terms/coupledBinaryTerm.pyc
in _buildAndAddMatrices(self, var, SparseMatrix, boundaryConditions,
dt, transientGeomCoeff, diffusionGeomCoeff, buildExplicitIfOther)
120

transientGeomCoeff=uncoupledTerm._getTransientGeomCoeff(tmpVar),
121

diffusionGeomCoeff=uncoupledTerm._getDiffusionGeomCoeff(tmpVar),-->
122
  buildExplicitIfOther=buildExplicitIfOther)123
 124 termMatrix += tmpMatrix
/home/mkhome/anaconda/lib/python2.7/site-packages/fipy/terms/binaryTerm.pyc
in _buildAndAddMatrices(self, var, SparseMatrix, boundaryConditions,
dt, transientGeomCoeff, diffusionGeomCoeff, buildExplicitIfOther)
66
transientGeomCoeff=transientGeomCoeff, 67

diffusionGeomCoeff=diffusionGeomCoeff,---> 68

buildExplicitIfOther=buildExplicitIfOther) 69  70
matrix += tmpMatrix
/home/mkhome/anaconda/lib/python2.7/site-packages/fipy/terms/unaryTerm.pyc
in _buildAndAddMatrices(self, var, SparseMatrix, boundaryConditions,
dt, transientGeomCoeff, diffusionGeomCoeff, buildExplicitIfOther)
97dt=dt,
98
transientGeomCoeff=transientGeomCoeff,---> 99
  diffusionGeomCoeff=diffusionGeomCoeff)
 100 elif buildExplicitIfOther:101 _, matrix,
RHSvector = self._buildMatrix(self.var,
/home/mkhome/anaconda/lib/python2.7/site-packages/fipy/terms/abstractDiffusionTerm.pyc
in _buildMatrix(s

Re: IndexError: index is out of bounds for axis 1 with size

2016-05-06 Thread Raymond Smith
I think Daniel's point is that Pf is not defined yet when it is first
called in the script. You could fix this by moving the line using Pf that
Daniel pointed to after the definition that you refer to. I think the
general point, however, is that it makes it much easier to help if you try
to make sure that the script you send gives the errors that you see.

Best,
Ray


Virus-free.
www.avast.com

<#m_-68387843283325897_DDB4FAA8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Fri, May 6, 2016 at 1:00 PM, Mohammad Kazemi  wrote:

> Thanks Daniel for your response. I thought defining variables as
> cellvariable should be enough.
>
> Pf = CellVariable(mesh=mesh, value=Pdi,hasOld=True)
>
>
> Should I define it in some other way?
>
> Thanks
>
> On Fri, May 6, 2016 at 12:10 PM, Daniel Wheeler  > wrote:
>
>> On Fri, May 6, 2016 at 12:09 PM, Daniel Wheeler
>>  wrote:
>> > Hi Mo,
>>
>> Apologies for that.
>>
>> --
>> Daniel Wheeler
>> ___
>> fipy mailing list
>> fipy@nist.gov
>> http://www.ctcms.nist.gov/fipy
>>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>>
>
>
>
> --
> Mohammad Kazemi
> West Virginia University
> Department of Petroleum and Natural Gas Engineering
>
> ___
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
>
___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


Re: IndexError: index is out of bounds for axis 1 with size

2016-05-06 Thread Mohammad Kazemi
Thanks Daniel for your response. I thought defining variables as
cellvariable should be enough.

Pf = CellVariable(mesh=mesh, value=Pdi,hasOld=True)


Should I define it in some other way?

Thanks

On Fri, May 6, 2016 at 12:10 PM, Daniel Wheeler 
wrote:

> On Fri, May 6, 2016 at 12:09 PM, Daniel Wheeler
>  wrote:
> > Hi Mo,
>
> Apologies for that.
>
> --
> Daniel Wheeler
> ___
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>



-- 
Mohammad Kazemi
West Virginia University
Department of Petroleum and Natural Gas Engineering
___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


Re: IndexError: index is out of bounds for axis 1 with size

2016-05-06 Thread Daniel Wheeler
On Fri, May 6, 2016 at 12:09 PM, Daniel Wheeler
 wrote:
> Hi Mo,

Apologies for that.

-- 
Daniel Wheeler
___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


Re: IndexError: index is out of bounds for axis 1 with size

2016-05-06 Thread Daniel Wheeler
Hi Mo,

I tried running your code but I got "name 'Pf' is not defined" -- a
different error.

On Fri, May 6, 2016 at 12:41 AM, Mohammad Kazemi  wrote:
>
> CODE:
> 
> from __future__ import division
> from numpy import *
> from pylab import *
> from matplotlib import rc
> from fipy import *
>
>  INITIALLIZATION
> ###
> L = 0.0508  #+0.0021+0.0014
> nx = 10.0
> dx = L / nx
> Pdi=6894757.29
> Pui=7170547.58
> D=1e-6
> tmax = 1000
> sigma = 400
> k0 = 10e-16
> T = 300
> M = 0.0399
> R = 8.314
> muf=1.96e-5
> hf=30e-6
> phif=0.25
> A1=1.14
> A2=0.28
> wkf=4
> wkd=4
> wku=4
> Kn=sqrt((3.14*R*T/(2*M))*muf/(Pf*hf))

At this point "Pf" is not defined.

-- 
Daniel Wheeler
___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]