constraints.m
来自「matlab实例」· M 代码 · 共 23 行
M
23 行
%***********************************************************************
% function constraints
%
% apply rigid and prescribed constraints to global stiffness matrix
%***********************************************************************
function [kglobal,load_vector] = constraints(NodeConstraint, ndofs, ndofs_node, kglobal,load_vector)
% find constrained degree-of-freedom
constr_dof = (NodeConstraint.nodeID - 1)*ndofs_node + NodeConstraint.dof;
temp = kglobal(constr_dof,constr_dof); % save diagonal term
for i = 1:ndofs % adjust for non-zero constraint
load_vector(i) = load_vector(i) - kglobal(i,constr_dof) * NodeConstraint.value;
end
kglobal(:,constr_dof) = zeros(ndofs,1); % zero stiffness column
kglobal(constr_dof,:) = zeros(1,ndofs); % zero stiffness row
load_vector(constr_dof) = temp * NodeConstraint.value;
if temp == 0, temp = 1;, end % prevent non-zero diagonal
kglobal(constr_dof,constr_dof) = temp; % replace diagonal term
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?