OptFEM3DP1 Toolbox  V1.0
Matlab/Octave Optimized P1-Lagrange Finite Element Method in 3D
 All Files Functions Variables Pages
File List
Here is a list of all files with brief descriptions:
[detail level 12]
o-base
|o*BuildElemMassVFMatFunc.mCopyright: See License issues
|o*BuildElemStiffElasMatFunc.mCopyright: See License issues
|o*BuildIkFunc.mDefinition of the GetI function depending on the global numbering of vector fields Num. Used by AssemblingStiffElasP1 functions
|o*CubeMesh.mInitialization of a minimalist 3D Mesh structure for the cube domain
|o*GetMaxLengthEdges.mComputation of the maximal value of edge lengths
|o*Hooke.mCopyright: See License issues
|o*MassAssembling3DP1base.mAssembly of the Mass Matrix by $P_1$-Lagrange finite elements in 3D
|o*MassVFAssembling3DP1base.mAssembly of the Mass vectors fields Matrix by $P_1$-Lagrange finite elements in 3D using basic version (see report)
|o*StiffAssembling3DP1base.mAssembly of the Stiffness Matrix by $P_1$-Lagrange finite elements in 3D
|\*StiffElasAssembling3DP1base.mAssembly of the Stiffness Elasticity Matrix by $P_1$-Lagrange finite elements in 3D using basic version (see report)
o-bench
|o*benchMass3DP1.mBenchmark function for MassAssembling $P_1$ functions in 3D
|o*benchMassVF3DP1.mBenchmark function for MassVFAssembling $P_1$ functions in 3D
|o*benchStiff3DP1.mBenchmark function for StiffAssembling $P_1$ functions
|\*benchStiffElas3DP1.mBenchmark function for StiffElasAssembling3DP1 functions
o-common
|o*getComputerName.mGETCOMPUTERNAME returns the name of the computer (hostname) name = getComputerName()
|o*isOctave.mTo determine whether Octave is used or not
|o*load_gmsh.mReads a mesh in msh format, version 1 or 2 Copyright: See License issues
|o*load_gmsh2.mCopyright: See License issues
|o*PrintDataInLatexTabular.mDataFormat={$d$,$d$,%.3f,%.3f,%.3f} ColumnFormat=|r|r||*{3}{c|} RowFormat=; RowHeaderFormat= ; Header={$N$,$n_q$,Matlab,Octave,FreeFEM++} Data array Copyright: See License issues
|\*SaveFigure.mTo manage the saving of figures. Save in eps, jpg and png format
o-doxygen
|o*developers.c
|\*maindoc.c
o-ElemMat
|o*ElemMassMat3DP1D0.mNAME [Elem]=ElemMassMat3DP1D0(V) INPUTS V : double (element volume) OUTPUTS Elem : matrix 4x4 DESCRIPTION Compute P1-Lagrange elementary Mass matrix. Numbering of local points in reference element is :

P=[(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]

Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|o*ElemMassMat3DVecP1D0.mNAME [Kg]=ElemMassMat3DVecP1D0(volumes) INPUTS volumess : vector 1 x nme (elements volume) OUTPUTS Kg : matrix 16 x nme DESCRIPTION Compute P1-Lagrange Kg array for Mass matrix (see report). Numbering of local points in reference element is :

P=[(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]

Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|o*ElemMassVFMat3DBaP1.mD=(ones(4,4)+eye(4,4))*volume/20; Copyright: See License issues
|o*ElemMassVFMat3DBbP1.mD=(ones(4,4)+eye(4,4))*volume/20; Copyright: See License issues
|o*ElemStiffElasMat3DBaP1.mNAME [Elem]=ElemStiffElasMat3DBaP1(ql,V,H) INPUTS area : double (element volume) ql : matrix 3x4 ql(:,il) ... H : Hooke matrix (6x6) OUTPUTS Elem : matrix 12x12 DESCRIPTION Compute P1-Lagrange elementary Stiff matrix. Numbering of local points in reference element is :

P=[(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]

Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|o*ElemStiffElasMat3DBbP1.mNAME [Elem]=ElemStiffElasMat3DBbP1(ql,V,H) INPUTS area : double (element volume) ql : matrix 3x4 ql(:,il) ... H : Hooke matrix (6x6) OUTPUTS Elem : matrix 12x12 DESCRIPTION Compute P1-Lagrange elementary Stiff matrix. Numbering of local points in reference element is :

P=[(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]

Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|o*ElemStiffElasMatBaVecP1D0OptV0.m
Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|o*ElemStiffElasMatBbVecP1D0.m
Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|o*ElemStiffMat3DP1D0.mNAME [Elem]=ElemStiffMat3DP1D0(ql,V) INPUTS area : double (element volume) ql : matrix 3x4 ql(:,il) ... OUTPUTS Elem : matrix 4x4 DESCRIPTION Compute P1-Lagrange elementary Stiff matrix. Numbering of local points in reference element is :

P=[(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]

Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
|\*ElemStiffMat3DVecP1D0.mNAME [Kg]=ElemStiffMat3DVecP1D0(q,me,areas) INPUTS q : matrix 2 x nq me : matrix 3 x nme volumes : vector 1 x nme (elements volume) OUTPUTS Kg : matrix 16x nme DESCRIPTION Compute P1-Lagrange Kg array for Stiff matrix (see report). Numbering of local points in reference element is :

P=[(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]

Automatic generation with sage (c) Cuvelier F. email:cuvel.nosp@m.ier@.nosp@m.math..nosp@m.univ.nosp@m.-pari.nosp@m.s13..nosp@m.fr Copyright: See License issues
o-Opt
|o*BuildEdges.mE2q (nedx2) Edges to Nodes e2q(l,il) : indice dans le tableau Th.q du sommet il de l'arete l e2t (nedx2) Edges to Triangles e2t(l,1) : indice dans le tableau Th.me du 1er triangle adjacent a l'arete l e2t(l,2) : indice dans le tableau Th.me du 2eme triangle adjacent a l'arete l si arete interne sinon 0 e2n (nedx2) : Edges to local number e2n(l,1) : numero local de l'arete dans le 1er triangle (voir e2t) e2n(l,2) : numero local de l'arete dans le 2eme triangle (voir e2t) s'il existe. 0 sinon. e2do (nedx1) e2do(l) : +1 si l'arete est dans le sens direct pour le 1er triangle (voir e2t) -1 sinon e2be (nbex4) : nbe number of boundary edges e2be(l,1) : numero de l'arete du bord e2be(l,2) : +1 si l'arete est dans le "bon" sens (sens de Th.be) -1 sinon e2be(l,3) : label du bord e2be(l,4) : permet de reconstruire le tableau Th.be I=find(e2be(:,2)~=1); K=e2be(:,4); be=e2q(e2be(:,1),:); be(I,:)=fliplr(be(I,:)); be(K,:)=be; be'- Th.be; be' <=> Correspond a Th.be Copyright: See License issues
|o*BuildElemStiffElasMatFuncVec.mReturn handle of the function Elementary Stiffness Elasticity matrix associated with local numbering Num
|o*BuildIgJgP1VF.mBuild Ig and Jg arrays for vectors fields with numerotation <Num>. See report
|o*ComputeGradientVec.mCompute, for each tetraedra, the gradients of the 4 local $P_1$-Lagrange basis functions multiply by $6|T|$
|o*ComputeVolumesOpt.mCopyright: See License issues
|o*GetMeshOpt.mInitialization of the Mesh structure from a FreeFEM++ mesh file % Optimized version
|o*GetMeshOptV2.mInitialization of the Mesh structure from a FreeFEM++ mesh file % Optimized version
|o*MassAssembling3DP1OptV0.mAssembly of the Mass Matrix by $P_1$-Lagrange finite elements in 3D
|o*MassAssembling3DP1OptV1.mAssembly of the Mass Matrix by $P_1$-Lagrange finite elements in 3D
|o*MassAssembling3DP1OptV2.mAssembly of the Mass Matrix by $P_1$-Lagrange finite elements in 3D
|o*MassVFAssembling3DP1OptV0.mAssembly of the Mass vectors fields Matrix by $P_1$-Lagrange finite elements in 3D using OptV0 version (see report)
|o*MassVFAssembling3DP1OptV1.mAssembly of the Mass vectors fields Matrix by $P_1$-Lagrange finite elements in 3D using OptV1 version (see report)
|o*MassVFAssembling3DP1OptV2.mAssembly of the Mass vectors fields Matrix by $P_1$-Lagrange finite elements in 3D using OptV2 version (see report)
|o*MassVFAssembling3DP1OptV3.mCopyright: See License issues
|o*StiffAssembling3DP1OptV0.mAssembly of the Stiffness Matrix by $P_1$-Lagrange finite elements in 3D
|o*StiffAssembling3DP1OptV1.mAssembly of the Stiffness Matrix by $P_1$-Lagrange finite elements in 3D
|o*StiffAssembling3DP1OptV2.mAssembly of the Stiffness Matrix by $P_1$-Lagrange finite elements in 3D
|o*StiffElasAssembling3DP1OptV0.mAssembly of the Stiffness Elasticity Matrix by $P_1$-Lagrange finite elements in 3D using OptV0 version (see report)
|o*StiffElasAssembling3DP1OptV1.mAssembly of the Stiffness Elasticity Matrix by $P_1$-Lagrange finite elements in 3D using OptV1 version (see report)
|\*StiffElasAssembling3DP1OptV2.mAssembly of the Stiffness Elasticity Matrix by $P_1$-Lagrange finite elements in 3D using OptV2 version (see report)
o-valid
|o*valid_FEMmatrices.mAutomatic generation with sage Copyright: See License issues
|o*valid_MECA.mCopyright: See License issues
|o*validMass3DP1.mCopyright: See License issues
|o*validMassVF3DP1.mCopyright: See License issues
|o*validStiff3DP1.mCopyright: See License issues
|\*validStiffElas3DP1.mCopyright: See License issues
o*InitOptFEM3D.mInitialization of the MATLAB search path and loading of msh package for Octave
o*runBenchs.mRun 3D benchs for Mass (benchMass3DP1), Stiff (benchStiff3DP1), MassVF (benchMassVF3DP1) and StiffElas (benchStiffElas3DP1) matrices. For each assembly matrix, we compare computation times of corresponding functions for version base, OptV0, OptV1 and OptV2
\*runValids.mRun validation tests for Mass (validMass3DP1), Stiff (#validStiffP1), StiffElas (validStiffElas3DP1) and MassVF (validMassVF3DP1) matrices. For each assembly matrix, we make 3 tests