There's no need to create, extract, and reshape the result. Just use the mesh's y coordinates:
TransientTerm(coeff=mesh.y**2) == DiffusionTerm(coeff=D) should work. > On Jun 8, 2016, at 9:01 AM, Gopalakrishnan, Krishnakumar > <k.gopalakrishna...@imperial.ac.uk> wrote: > > <script > src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script> > Hello, > > The following PDE is defined in a non-square 2D (x-y) cartesian grid (20 x > 10) domain > > $$ \frac{\partial}{\partial t} (y^2 \phi(x,y,t)) = D \nabla^2 \phi(x,y,t) $$ > > wherein $y^2$ is the 'y' co-ordinate of my 2D domain. > > The FiPy representation of an analogous type of equation is as follows: > > $$ \frac{\partial}{\partial t} (\rho \phi(x,y,t)) = D \nabla^2 \phi(x,y,t) $$ > > TransientTerm(coeff=rho) == DiffusionTerm(coeff=D) > > By matching coefficients, we can see that my $\rho = y^2$ > > I am quite confused about setting up this problem in FiPy. > > a. Are these types of non-linear coefficients allowed for the transient-term ? > b. All the examples that I have seen thus far, use constant/scalar > coefficients. In my case, I have a coefficient-matrix which depends on the > spatial variable in the y-direction. > c. If coefficient-matrix is indeed allowed, what must be the data-type ? > > > The following is my general approach thus far, > > · Construct a 'temporary' 1D mesh using the dy and ny parameters of > the original 2D mesh, and extract it's node-values using Cellcenters method. > This should correspond to the original nodes in the y-direction (am I right > ?). > · Convert this to 'ndarray' datatype using numerix.ndarray. > · Transpose this, such as the result is a column vector. > > The one-liner code that (potentially) implements this is shown below: > > discretised_y_vector = numerix.array((Grid1D(dx = dy_2D_original , nx = > ny_2D_original)).cellCenters[0]).transpose() > > Repeat (replicate) the column vector 'nx' times (in my case, 20 times) to > obtain the coefficient matrix for the transient term. > > discretised_y_matrix = numerix.repeat(discretised_y_vector, nx) > > Is this approach correct ? I am a beginner to FiPy and numerical PDE solving > in general. Any pointers in this direction shall be much appreciated. > > > Regards > > Krishna > _______________________________________________ > 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 ]