aspen 发表于 2005-6-3 14:55

FEMOD1 - 1D Finite Element Code

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:
femod1.f90, the source code;
linear.inp, linear element input;
linear.out, linear element output;
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.

blueblooder 发表于 2009-3-8 16:22

多谢啦,好东西啊!
页: [1]
查看完整版本: FEMOD1 - 1D Finite Element Code