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 ]

Reply via email to