FEMOD1 - 1D Finite Element Code
FEMOD1 is an interactive program for the setup, solution, and
printout of a two point boundary value problem in a one dimensional
region. The finite element method is used.
The differential equation has the form:
-d/dX ( K(X) dU/dX ) + C(X) * dU/dX + B(X) * U = F(X) + P(X)
Here, P(X) stands for a point load function.
The boundary conditions at the end points may have one of the
following forms:
-
U(X0) = value1;
-
K(X0) * dU/dX(X0) = value1 * U(X0) + value2.
At run time, the user may interactively specify
-
the extent of the region;
-
the arrangement of nodes;
-
the order of each element;
-
formulas for the material functions K, C, B and
F;
-
the location and strength of the point loads P;
-
the boundary conditions.
-
Reference:
-
Eric Becker, Graham Carey, J Tinsley Oden,
Finite Elements, An Introduction, Volume I.
Prentice-Hall, Englewood Cliffs, New Jersey, 1981.
Files you may copy include:
The list of routines includes:
-
FEMOD1 is a one-dimensional interactive finite element program.
-
BC_APPLY modifies the global arrays to account for boundary conditions.
-
BC_READ reads the boundary conditions from the user.
-
BC_WRITE prints the boundary conditions.
-
C_CAP capitalizes a single character.
-
C_EQI is a case insensitive comparison of two characters for equality.
-
C_TO_DIGIT returns the integer value of a base 10 digit.
-
COMRPN can translate formulas you type in and evaluate them.
-
DIGIT_TO_C returns the character representation of a decimal digit.
-
EKF_ADD adds the element arrays to the global arrays.
-
EKF_SET computes the local stiffness matrix EK, and force vector EF.
-
EKF_WRITE writes out an element stiffness matrix and right hand side.
-
ELEMENT_READ reads the element data.
-
ELEMENT_WRITE prints out information about the elements.
-
ERROR_WRITE prints the RMS and energy norm errors.
-
EXACT_READ reads formulas for the exact solution U(x) and dU/dx.
-
EXACT_WRITE prints the formulas for the exact solution U and its derivative.
-
FUNSCL evaluates a scalar function of one or more scalar arguments.
-
FUNVAL evaluates a function given an argument and an RPN formula.
-
GAUSS_READ reads the desired quadrature rule order.
-
GAUSS_SET sets the weights and abscissas for Gaussian quadrature.
-
GAUSS_WRITE prints out information about the quadrature rule.
-
GKF_ASSEMBLE forms the global stiffness matrix GK and force vector GF.
-
GKF_WIDTH computes the bandwidth of the stiffness matrix.
-
GKF_WRITE prints out the global stiffness matrix and force vector.
-
HELLO prints out an introductory message.
-
HELP prints out a list of legal commands.
-
I_GCF finds the greatest common factor of I and J.
-
I_TO_S_ZERO converts an integer to a string, with zero padding.
-
INICOM initializes data for COMRPN.
-
INIFEM initializes the finite element data.
-
LCM computes the least common multiple of two integers.
-
MALPHA returns .TRUE. if STRING contains only alphabetic characters.
-
MATERIAL_EVALUATE evaluates the material function formulas.
-
MATERIAL_READ reads the material function formulas.
-
MATERIAL_WRITE prints the material function formulas.
-
MATWRT prints out a scalar, vector or array.
-
NODE_READ sets the X coordinates of the nodes.
-
NODE_WRITE prints out the location of the nodes.
-
PCHECK checks parentheses in a formula.
-
POINT_READ gets the point load data.
-
POINT_WRITE prints out the point load data.
-
PREP does the preprocessing of the problem.
-
PROC assembles the linear system and solves it.
-
RPNCHK examines IRPN, looking for a complete RPN expression.
-
RPNSET converts a formula that the user has typed into RPN format.
-
RPNVAL evaluates a "complicated" RPN formula.
-
S_BLANK_DELETE removes blanks from a string, left justifying the remainder.
-
S_BLANKS_DELETE replaces consecutive blanks by one blank.
-
S_CAP replaces any lowercase letters by uppercase ones in a string.
-
S_EQI is a case insensitive comparison of two strings for equality.
-
S_INDEXI is a case-insensitive INDEX function.
-
S_TO_R reads a real number from a string.
-
SGB_CHECK checks the dimensions of a general band matrix.
-
SGB_FA factors a matrix stored in LINPACK general band storage.
-
SGB_SL solves a system factored by SGB_FA.
-
SHAPE evaluates the shape functions at the local coordinate XI.
-
SOLUTION_EVALUATE evaluates the solution U(X) and its derivative dUdX.
-
SOLUTION_WRITE prints out the computed solution.
-
SYMADD adds a new symbol name to the list of symbolic names.
-
SYMLST prints out information about a variable.
-
SYMVAL evaluates, sets or deletes a variable.
-
TOKENS converts a character string into a list of token indices.
Return to the FORTRAN software page.
Last revised on 27 March 2001.