SUBROUTINE UEL(RHS,AMATRX,SVARS,ENERGY,NDOFEL,NRHS,NSVARS, | 1 PROPS,NPROPS,COORDS,MCRD,NNODE,U,DU,V,A,JTYPE...) | | INCLUDE 'ABA_PARAM.INC' | | DIMENSION RHS(MLVARX,), AMATRX(NDOFEL,NDOFEL), PROPS(), | 1 SVARS(NSVARS), ENERGY, COORDS(MCRD,NNODE),...) | | CRead real and integer properties set at the ABAQUS input file | | E= PROPS!!! Module Young | Nu= PROPS!!! coeifficentpoisson | Typ_Prb= JPROPS!!! Plane strain/stress | | C============================================================================== | CDefining Gauss points coordinates and Gauss Gauss weights | C============================================================================== | | CALL Gauss ( NbPtInt,DimenProb,GaussPtsCoord,0) | | C============================================================================== | CStiffness matrix and force vector are initialized to zero | C============================================================================== | | DO i = 1, NDOFEL | RHS(i,1) = zero | DO j = 1, NDOFEL | AMATRX(j,i) = zero | ENDDO | ENDDO | | C============================================================================== | DO Gauss integration point loop | C============================================================================== | | CCalculation of the matrix (elasticity) | | CALL CALC_D(Typ_Prb,D,E,Nu) | | CALL Shap_Funct_NURBS(COORDS,dRdx,NNODE,R,GaussPtsCoord(2:,n), !!! Eq (5) | | 1DetJac,NDOFEL,DimenProb,JELEM,NumPatch) | | CCrack tip derivates Functions Psi calculation at Gauss and nodal points | | CALL Psi_CrackTip(NbrCrackPs,CoorCrack,dRdx,Xcoord,Ycoord,DerPsi, | 1DerPsinodal)!!! Eq (9) | | | | CDerPsi: Function Derivatives at the end of crack in gauss points | CDerPsinodal: Function Derivatives at the end of crack in nodal points | CCoorCrack: Coordinates of crack points | CHeaviside Function H calculation at Gauss and nodal points | | CALLHeaviside_Func(NnoeudX,Distance,NNODE,ix,dRdx,Heav,Heavnodal) | !!! Eq (8) | | CHeav: Function Heaviside in point x,y | CHeavnodal: Fonction Heaviside in elements nodes | | C============================================================================== | CAssembly of matrix [B] Derivatives the functions NURBS in coordinates points x, y | C============================================================================== | | B=0 | Iter=1 | | CLoop over the nodes | | DO i= 1,NNODE | | CThe matrix [B] in the standard case part without crack | | B(1,Iter) = dRdx(1,i,1) | B(2,Iter+1)= dRdx(2,i,1) | B(3,Iter) = dRdx(2,i,1) | B(3,Iter+1)= dRdx(1,i,1) | | cThe matrix B in the case of crack compute by heaviside function | | IF (NodesInfo(i)=1) THEN !!! nodes enriched by heaviside functions | | B(1,2+Iter) = (Heav-Heavnodal(i))dRdx(1,i,1) | B(2,3+Iter) = (Heav-Heavnodal(i))dRdx(2,i,1) | B(3,2+Iter) = (Heav-Heavnodal(i))dRdx(2,i,1) | B(3,3+Iter) = (Heav-Heavnodal(i))dRdx(1,i,1) | cThe matrix B in the case of crack compute by the functions (Psi) at the points of the crack | | ELSEIF(NodesInfo(i)=2) THEN !!! nodes enriched by Crack tip functions | DO j= 1,4 | B(1,2j+2+Iter)=DerPsi(i,1,j)-DerPsinodal(i,1,j) | B(2,2j+3+Iter)=DerPsi(i,2,j)-DerPsinodal(i,2,j) | B(3,2j+2+Iter)=DerPsi(i,2,j)-DerPsinodal(i,2,j) | B(3,2j+3+Iter)=DerPsi(i,1,j)-DerPsinodal(i,1,j) | ENDDO | END IF | | Iter=Iter+12 | | ENDDO !!! i End loop over the element nodes | | C============================================================================== | CAssembking RHS and AMATRIX | C============================================================================== | | AMATRX = Ke | RHS = −Fint + Fext | | C============================================================================== | ENDDO !!! end intergartion gauss | C============================================================================== | | | | c Calculate and store in SVARS the values of strains, stresses, strain energy, dRdX, ... | | | CALL SVARS_Sub(JTYPE,JELEM,SVARS,NSVARS,U,NDOFEL,...) | | RETURN | END SUBROUTINE UEL |
|