📄 pbar_shape_lag.m
字号:
function [psi, dpsi] = pBar_shape_lag(ksi, p)
% compute 1-D Lagrangean shape funtions and derivatives at point ksi in master element.
% p = p-order of shape functions
switch(p)
case(1)
% Linear shape functions
% 1------2
psi(1) = 0.5 * (1. - ksi);
psi(2) = 0.5 * (1. + ksi);
dpsi(1) =-0.5;
dpsi(2) = 0.5;
case (2)
% Quadratic shape functions
% 1----2----3
psi(1) = ksi * (ksi - 1.0) * 0.5;
psi(2) = 1.0 - ksi*ksi;
psi(3) = ksi * (ksi + 1.0) * 0.5;
dpsi(1) = ksi - 0.5;
dpsi(2) = -2.0 * ksi;
dpsi(3) = ksi + 0.5;
case (3)
% Cubic shape functions
% 1----2----3----4
psi(1) = 9.0/16. * (1.0/9.0 - ksi*ksi) * (ksi - 1.0);
psi(2) = 27.0/16.0 * (1.0 - ksi*ksi) * (1.0/3.0 - ksi);
psi(3) = 27.0/16.0 * (1.0 - ksi*ksi) * (1.0/3.0 + ksi);
psi(4) = -9.0/16. * (1.0/9.0 - ksi*ksi) * (ksi + 1.0);
dpsi(1) = -9.0/16.0 * (3.0*ksi*ksi - 2.0*ksi -1.0/9.0);
dpsi(2) = 27.0/16.0 * (3.0*ksi*ksi -2.0/3.0*ksi -1.0);
dpsi(3) = 27.0/16.0 * (-3.0*ksi*ksi -2.0/3.0*ksi +1.0);
dpsi(4) = -9.0/16.0 * (-3.0*ksi*ksi -2.0*ksi +1.0/9.0);
case (4)
% Quartic shape functions
% 1----2----3----4----5
psi(1) = (4.0*ksi^3 - 4.0*ksi*ksi - ksi + 1.0)*ksi/6.0;
psi(2) =(-8.0*ksi^3 + 4.0*ksi*ksi + 8.0*ksi -4.0)*ksi/3.0;
psi(3) = 4.0*ksi^4 - 5.0*ksi*ksi + 1.0;
psi(4) =(-8.0*ksi^3 - 4.0*ksi*ksi + 8.0*ksi +4.0)*ksi/3.0;
psi(5) = (4.0*ksi^3 + 4.0*ksi*ksi - ksi - 1.0)*ksi/6.0;
dpsi(1) =(16.0*ksi^3 - 12.0*ksi*ksi - 2.0*ksi + 1.0)/6.0;
dpsi(2) =(-32.0*ksi^3 + 12.0*ksi*ksi +16.0*ksi -4.0)/3.0;
dpsi(3) = (16.0*ksi*ksi - 10.0)*ksi;
dpsi(4) =(-32.0*ksi^3 - 12.0*ksi*ksi +16.0*ksi +4.0)/3.0;
dpsi(5) = (16.0*ksi^3 + 12.0*ksi*ksi - 2.0*ksi -1.0)/6.0;
otherwise
error('shape_lag: Requested invalid p-order');
end
% check computations
sum_psi = sum( psi );
if abs(sum_psi - 1.0) > 1.0e-14
error('shape_lag: functions do not add to one??');
end
sum_dpsi = sum(dpsi);
if abs(sum_dpsi) > 1.0e-14;
error('shape_lag: derivatives do not add to zero??');
end
% ****************************************************
% ****************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -