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 + -
显示快捷键?