Shape Class
This in an abstract class that defines an element shape.
Contents
Authors
- Danilo Cavalcanti (dborges@cimne.upc.edu)
Class Definition
classdef Shape < handle
Public properties
properties (SetAccess = public, GetAccess = public)
type = [];
end
Constructor method
methods %------------------------------------------------------------------ function this = Shape(type) if nargin > 0 this.type = type; end end end
Abstract methods
methods (Abstract) %------------------------------------------------------------------ % Evaluate shape function at a given point. N = shapeFnc(this,Xn) %------------------------------------------------------------------ % Get shape function matrix. N = shapeFncMtrx(this,Xn) %------------------------------------------------------------------ % Get shape function derivatives matrix. dNdxi = shapeFncDrv(this,Xn) %------------------------------------------------------------------ % Compute jacobian matrix. J = JacobianMtrx(this,X,Xn) %------------------------------------------------------------------ % Compute the determinant of the jacobian. detJ = detJacobian(this,X,Xn) %------------------------------------------------------------------ % Compute strain-displacement matrix. [B,detJ] = BMatrix(this,X,Xn) %------------------------------------------------------------------ % Transform point coordinates from natural coordinate system to % global cartesian coordinate system. X = coordNaturalToCartesian(this,NODE,Xn) %------------------------------------------------------------------ % Transform point coordinates from global cartesian coordinate system to % natural coordinate system. Xn = coordCartesianToNatural(this,NODE,X) %------------------------------------------------------------------ % Get integration points. [X,W,n] = getIntegrationPoints(this,intOrder,elem) end
Public methods
methods %------------------------------------------------------------------ % Compute shape centroid. function Xc = computeCentroid(~,NODE) x = NODE(1:3,1); y = NODE(1:3,2); polyin = polyshape({x},{y}); [xc,yc] = centroid(polyin); Xc = [xc yc]; end %------------------------------------------------------------------ % Compute the axisymmetric factor. function af = axisSymmetricFactor(~,N,X) r = N*X(:,1); af = 2.0 * r * pi; end end
end