📄 constraints.m
字号:
%***********************************************************************
% 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -