Implementing finite elements in Mma ?
- To: mathgroup at smc.vnet.net
- Subject: [mg7073] Implementing finite elements in Mma ?
- From: jost at no-junk-mail.fr (Christian Jost)
- Date: Sun, 4 May 1997 21:59:34 -0400 (EDT)
- Organization: Universite Paris-Sud XI
- Sender: owner-wri-mathgroup at wolfram.com
I try to test some simple (one-dimensional) finite-element algorithms in Mathematica, and havn't found yet a way to program them in a way to keep them symbolically integratable. The function below calculates the value of the i-th linear finite element phi_i at time t based on the array of timevalues that defines where the respective finite elements should be 1 or 0 (phi_i(t_j) = delta_ij (kronecker)). But the way its implemented only allows for numerical integration. Any idea? Thanks, Christian. 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