dx needs to be a float: `dx = 1.`

This doesn't always seem to be true, but it is often enough that we should 
figure out how to fix it or raise an error.

https://github.com/usnistgov/fipy/issues/672

> On Sep 26, 2019, at 7:29 PM, Justin Pothoof <jpoth...@uw.edu> wrote:
> 
> Hello,
> 
> I'm trying to set up a 2D diffusion problem.  I noticed that if i 
> print(shape(CellVariable.value)) after defining a CellVariable I get the 
> output (2000,) for example.. which isn't a 2D array.  I decided to test the 
> 2D diffusion example provided, but I encounter the "RuntimeError: Factor is 
> exactly singular" and it also will not plot. It is copied straight from the 
> mesh.20x20 example, so I'm not sure why it will not run.
> 
> from fipy import CellVariable, Grid2D, Viewer, TransientTerm, DiffusionTerm
> from fipy.tools import numerix
> 
> nx = 20
> ny = nx
> dx = 1
> dy = dx
> L = dx * nx
> mesh = Grid2D(dx=dx, dy=dy, nx=nx, ny=ny)
> 
> phi = CellVariable(name="solution variable", mesh=mesh, value=0.)
> D = 1
> eq = TransientTerm() == DiffusionTerm(coeff=D)
> 
> valueTopLeft = 0
> valueBottomRight = 1
> 
> X, Y = mesh.faceCenters
> facesTopLeft = ((mesh.facesLeft & (Y > L / 2)) | (mesh.facesTop & (X < L / 
> 2)))
> facesBottomRight = ((mesh.facesRight & (Y < L / 2)) | (mesh.facesBottom & (X 
> > L / 2)))
> 
> phi.constrain(valueTopLeft, facesTopLeft)
> phi.constrain(valueBottomRight, facesBottomRight)
> 
> 
> if __name__ == '__main__':
>     viewer = Viewer(vars=phi, datamin=0., datamax=1.)
>     viewer.plot()
> 
> timeStepDuration = 10 * 0.9 * dx**2 / (2 * D)
> steps = 10
> for step in range(steps):
>     eq.solve(var=phi, dt=timeStepDuration)
>     if __name__ == '__main__':
>         viewer.plot()
> Justin Pothoof
> The University of Washington - Department of Chemistry
> Pre-Candidacy PhD Student
> Ginger Group
> _______________________________________________
> 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 ]

Reply via email to