SystemMatrices

PURPOSE ^

SYSTEMMATRICES - create the stiffness matrix and load vector

SYNOPSIS ^

function [Kgg,pg]=SystemMatrices(elements,grids,loads,materials,kflag,pflag, sparsity,inputs,analysis_type);

DESCRIPTION ^

SYSTEMMATRICES - create the stiffness matrix and load vector

   Create system matrices (stiffness matrix and load vector), from element
   formulations

   Usage:
      [Kgg,pg]=SystemMatrices(elements,grids,loads,materials,kflag,pflag, sparsity,inputs,analysis_type)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [Kgg,pg]=SystemMatrices(elements,grids,loads,materials,kflag,pflag, sparsity,inputs,analysis_type);
0002 %SYSTEMMATRICES - create the stiffness matrix and load vector
0003 %
0004 %   Create system matrices (stiffness matrix and load vector), from element
0005 %   formulations
0006 %
0007 %   Usage:
0008 %      [Kgg,pg]=SystemMatrices(elements,grids,loads,materials,kflag,pflag, sparsity,inputs,analysis_type)
0009 
0010 %initialize system matrices
0011 dofcount=getdofcount(grids);
0012 Kgg={};
0013 pg={};
0014 
0015 %figure out active elements that will take part in the stiffness and load generation
0016 [n1,n2]=GetNumberOfActiveElements(elements);
0017 
0018 if kflag, 
0019     
0020     %allocate
0021     Kgg=spalloc(dofcount,dofcount,floor(dofcount*dofcount*sparsity)); 
0022 
0023     %Go through elements and build stiffness matrix
0024     for n=n1:n2,
0025 
0026         if ~isempty(elements(n).element),
0027             %call element system matrix generation.
0028             Ke=CreateKMatrix(elements(n).element,grids,materials,inputs,analysis_type);
0029             
0030             %plug element system matrix into global system matrix.
0031             Kgg=AddElemMatrix(Ke,Kgg);
0032         end
0033 
0034     end
0035     
0036 else
0037     Kgg={};
0038 end
0039 
0040 if pflag, 
0041     pg=spalloc(dofcount,1,floor(dofcount*sparsity));
0042 
0043     %Go through elements and build loads
0044     for n=n1:n2,
0045         
0046         if ~isempty(elements(n).element),
0047             %call element load generation
0048             pe=CreatePVector(elements(n).element,grids,materials,inputs,analysis_type);
0049         
0050             %plug element load vector into global vector
0051             pg=AddElemVector(pe,pg);
0052 
0053         end
0054     end
0055 
0056     %Go through loads created by presence of boundary conditions.
0057     for l=1:length(loads),
0058         if ~isempty(loads(l).load),
0059             %Call vector matrix generation
0060             pe=CreatePVector(loads(l).load,elements,grids,materials,inputs,analysis_type);
0061             
0062             %plug load contribution into load vector
0063             pg=AddElemVector(pe,pg);
0064         end
0065     end
0066 else 
0067     pg={};
0068 end

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003