[Numpy-discussion] Can this function by Numpy-ized?
Rob
europax at home.com
Sun Aug 26 15:17:06 CDT 2001
Thanks Paul, I will try it out. That at least gives me some
direction. I've been pouring over the Numpy manual, but there are so
many different functions! I would like to try to write an extension
that includes some of these FEM routines, but thats for later.
BTW, at work I have to use Windows NT, but I've grown to love the
calldll/DynWin extension. You can even interact with the windows kernel
with that one. Rob.
"Paul F. Dubois" wrote:
>
> def cgqp(QuadPoint, TrngleNode, a):
> s = a.Qpnt[Quadpoint,:]
> c = Numeric.take(a.NodeCord, TrngleNode)
> return Numeric.add.reduce(s * c, axis=1)
>
> This may or may not be right. The data structures I would have to set up
> to test it are too much for Sunday morning.
>
> -----Original Message-----
> From: numpy-discussion-admin at lists.sourceforge.net
> [mailto:numpy-discussion-admin at lists.sourceforge.net] On Behalf Of Rob
> Sent: Sunday, August 26, 2001 8:39 AM
> To: numpy-discussion at lists.sourceforge.net.
> Subject: [Numpy-discussion] Can this function by Numpy-ized?
>
> I finally got my FEM EM code working. I profiled it and this function
> uses up a big hunk of time. It performs gaussian integration over a
> triangle. I am trying to figure out how to slice the arrays so as to
> push it down into the C level. Does anyone have any ideas? Thanks,
> Rob.
>
> ps. it looks to be intractible to me. Maybe I need to look at writing a
> C extension. I've never done that before.
>
> ##**********************************************************************
> *****
> ##Prototype: void ComputeGaussQuadPoint(int QuadPoint, int
> *a.TrngleNode,
> ## double *SrcPointCol)
> ##Description: To compute the coordinates of 7-point Gauss nodes of
> ## a triangular patch.
> ##Input value:
> ## int QuadPoint --- node index, it can be from 0 to 6.
> ## int *a.TrngleNode --- the three nodes of a tringular patch.
> ## double *SrcPointCol --- where to store the results
> ##Return value: none
> ##Global value used: a.NodeCord, a.Qpnt
> ##Global value modified: none
> ##Subroutines called: none
> ##Note: Not very sure.
> ************************************************************************
> ****
> def ComputeGaussQuadPoint(QuadPoint,TrngleNode,a):
>
> SrcPointCol=zeros((3),Float)
>
> SrcPointCol[0] = a.Qpnt[QuadPoint,0]*a.NodeCord[TrngleNode[0],0]\
> + a.Qpnt[QuadPoint,1]*a.NodeCord[TrngleNode[1],0]\
> + a.Qpnt[QuadPoint,2]*a.NodeCord[TrngleNode[2],0]
>
> SrcPointCol[1] = a.Qpnt[QuadPoint,0]*a.NodeCord[TrngleNode[0],1]\
> + a.Qpnt[QuadPoint,1]*a.NodeCord[TrngleNode[1],1]\
> + a.Qpnt[QuadPoint,2]*a.NodeCord[TrngleNode[2],1]
>
> SrcPointCol[2] = a.Qpnt[QuadPoint,0]*a.NodeCord[TrngleNode[0],2]\
> + a.Qpnt[QuadPoint,1]*a.NodeCord[TrngleNode[1],2]\
> + a.Qpnt[QuadPoint,2]*a.NodeCord[TrngleNode[2],2]
>
>
> return SrcPointCol
>
>
> --
> The Numeric Python EM Project
>
> www.members.home.net/europax
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at lists.sourceforge.net
> http://lists.sourceforge.net/lists/listinfo/numpy-discussion
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at lists.sourceforge.net
> http://lists.sourceforge.net/lists/listinfo/numpy-discussion
--
The Numeric Python EM Project
www.members.home.net/europax
More information about the Numpy-discussion
mailing list