Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1997
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1997

[Date Index] [Thread Index] [Author Index]

Search the Archive

Implementing finite element basis functions in Mma

  • To: mathgroup at smc.vnet.net
  • Subject: [mg7093] Implementing finite element basis functions in Mma
  • From: jost at no-junk-mail.fr (Christian Jost)
  • Date: Wed, 7 May 1997 01:58:17 -0400 (EDT)
  • Organization: Universite Paris-Sud XI
  • Sender: owner-wri-mathgroup at wolfram.com

I try to test out a finite element algorithm in Mathematica, where the
basis functions phi_i for a given vector of numbers {x1,x2,...xn} with
x1<x2<..<xn are piecewise linear and phi_i(xj) = delta(i,j) (kronecker
symbol).
The function below returns the value of the i-th basis function at number
t, but the way I implemented it makes symbolic integration (for example
the integral of phi_i * phi_j or D[phi_i,x]*phi_j) impossible. Any ideas
how I have to write the basis functions to maintain the symbolic calculus?

Thanks for your interest, Christian.

ps: sorry if you have read this before, but our server had some problems
so I could not verify if the original post made it to the net.

numberQ[x_] := NumberQ[N[x]]

BasisFunctions[i_Integer, t_Real,timeValue:{_?numberQ..}] :=
    Module[{posOfT,sublist,len,value},
         len = Length[timeValue];
     If[Length[(sublist= Position[(# < t)& /@timeValue,False])] > 0,
      posOfT = sublist[[1,1]];, posOfT = 0;];
      Which[t<timeValue[[1]], (* beginning of which*)
         value = 0.0,
         t>timeValue[[len]],
         0.0,
         posOfT == i,
         (t-timeValue[[posOfT-1]])/(timeValue[[posOfT]]-timeValue[[posOfT-1]]),
         posOfT == i+1,
         (timeValue[[posOfT]]-t)/(timeValue[[posOfT]]-timeValue[[posOfT-1]]),
         True,
         0.0 ] (* end of which *)
      ]

-- 
*********************************************************************
Christian Jost, Université Paris-Sud XI, Orsay, France

Please don't send any junk mail or advertisements. For personal mail please send to: Christian.Jost at epc.u-psud.fr


  • Prev by Date: scaling 3D axes?
  • Next by Date: Making copyrighted Packages/Notebooks available over intranet?
  • Previous by thread: Re: scaling 3D axes?
  • Next by thread: Making copyrighted Packages/Notebooks available over intranet?