JuliaFEM.elasticity_solver¶
Internal¶
-
assemble!(fe, eldofs_, I, V)¶ Assemble global RHS to I,V ready for sparse format
Parameters: fe : local vector
eldofs_ : Array
degrees of freedom
I,V : Arrays for sparse matrix
Notes
eldofs can also be node ids for convenience. In that case dimension is calculated and eldofs are “extended” to problem dimension.
-
assemble!(ke, eldofs_, I, J, V) Assemble global stiffness matrix to I,J,V ready for sparse format
Parameters: ke : local matrix
eldofs_ : Array
degrees of freedom
I,J,V : Arrays for sparse matrix
Notes
eldofs can also be node ids for convenience. In that case dimension is calculated and eldofs are “extended” to problem dimension.
-
calc_local_matrices!(X, u, R, Kt, N, dNdchi, lambda_, mu_, ipoints, iweights)¶ Calculate local tangent stiffness matrix and residual force vector R = T - F
-
eliminate_boundary_conditions(dirichletbc, I, J, V)¶ Eliminate Dirichlet boundary conditions from matrix
Parameters: dirichletbc : array [dim x nnodes]
I, J, V : sparse matrix arrays
Returns: I, J, V : boundary conditions removed
Raises: Exception, if displacement boundary conditions given, i.e.
DX=2 for some node, for example.
Notes
pros: - matrix assembly remains positive definite cons: - maybe inefficient because of extra sparse matrix operations. (It’s hard to remove stuff from sparse matrix.) - if u != 0 in dirichlet boundary requires extra care
-
eliminate_boundary_conditions(dirichletbc, I, V) Eliminate Dirichlet boundary conditions from vector
Parameters: dirichletbc : array [dim x nnodes]
I, V : sparse vector arrays
Returns: I, V : boundary conditions removed
Raises: Exception, if displacement boundary conditions given, i.e.
DX=2 for some node, for example.
Notes
pros: - matrix assembly remains positive definite cons: - maybe inefficient because of extra sparse matrix operations. (It’s hard to remove stuff from sparse matrix.) - if u != 0 in dirichlet boundary requires extra care
-
interpolate{T<:Real}(field::Array{T<:Real, 1}, basis::Function, ip)¶ Interpolate field variable using basis functions f for point ip. This function tries to be as general as possible and allows interpolating lot of different fields.
Parameters: field :: Array{Number, dim}
Field variable
basis :: Function
Basis functions
ip :: Array{Number, 1}
Point to interpolate
-
solve_elasticity_increment!(X, u, du, elmap, nodalloads, dirichletbc, lambda, mu, N, dNdchi, ipoints, iweights)¶ Solve one increment of elasticity problem