Changeset 51
- Timestamp:
- 04/24/09 15:36:04 (16 years ago)
- Location:
- issm/trunk/src/m/solutions/ice
- Files:
-
- 1 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/solutions/ice/DeviatoricStressCompute.m
r1 r51 14 14 loads=m.loads; 15 15 gridset=m.gridset; 16 17 %figure out active elements that will take part in the stiffness and load generation 18 [n1,n2]=GetNumberOfActiveElements(elements); 16 numberofelements=length(elements); 19 17 20 18 if strcmpi(type,'2d') 21 19 %initialize vectors 22 20 deviatoricstress=struct('xx',[],'yy',[],'xy',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[]); 23 deviatoricstress1=zeros( (n2-n1)+1,3);24 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1);25 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1);21 deviatoricstress1=zeros(numberofelements,3); 22 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); 23 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); 26 24 27 25 %Go through all elements and call the deviatoricstress routine, then compute eigen values and vector 28 for n= n1:n2,26 for n=1:length(elements), 29 27 if ~isempty(elements(n).element), 30 28 deviatoricstressvector=DeviatoricStress(elements(n).element,grids,materials,inputs)'; … … 58 56 %initialize vectors 59 57 deviatoricstress=struct('xx',[],'yy',[],'zz',[],'xy',[],'xz',[],'yz',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'principalvalue3',[],'principalaxis3',[]); 60 deviatoricstress1=zeros( (n2-n1)+1,6);61 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);62 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);63 A3=zeros( (n2-n1)+1,1); Vx3=zeros((n2-n1)+1,1); Vy3=zeros((n2-n1)+1,1); Vz3=zeros((n2-n1)+1,1);58 deviatoricstress1=zeros(numberofelements,6); 59 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); Vz1=zeros(numberofelements,1); 60 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); Vz2=zeros(numberofelements,1); 61 A3=zeros(numberofelements,1); Vx3=zeros(numberofelements,1); Vy3=zeros(numberofelements,1); Vz3=zeros(numberofelements,1); 64 62 65 63 %Go through all elements and call the deviatoricstress routine, then compute eigen values and vector 66 for n= n1:n2,64 for n=1:length(elements), 67 65 if ~isempty(elements(n).element), 68 66 deviatoricstressvector=DeviatoricStress(elements(n).element,grids,materials,inputs)'; -
issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticBaseVert.m
r1 r51 44 44 elements(pos)=SetStructureField(elements(pos),'element','onbed',md.elementonbed(pos)); 45 45 elements(pos)=SetStructureField(elements(pos),'element','onsurface',md.elementonsurface(pos)); 46 elements(pos)=SetStructureField(elements(pos),'element','acceleration',0);%acceleration 0 since no acceleration is posssible47 46 elements(pos)=SetStructureField(elements(pos),'element','collapse',1); 48 47 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); -
issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHoriz.m
r32 r51 52 52 elements(pos)=SetStructureField(elements(pos),'element','meanvel',md.meanvel); 53 53 elements(pos)=SetStructureField(elements(pos),'element','epsvel',md.epsvel); 54 elements(pos)=SetStructureField(elements(pos),'element','acceleration',md.acceleration);55 54 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); 56 55 … … 87 86 elements(pos)=SetStructureField(elements(pos),'element','meanvel',md.meanvel); 88 87 elements(pos)=SetStructureField(elements(pos),'element','epsvel',md.epsvel); 89 elements(pos)=SetStructureField(elements(pos),'element','acceleration',0);%acceleration 0 since no acceleration is posssible90 88 elements(pos)=SetStructureField(elements(pos),'element','collapse',0); 91 89 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); … … 125 123 mygrids(md.elements(el3pos,:))=1; 126 124 mygrids(md.elements(el6pos,:))=1; 127 end128 129 %Deal with acceleration MacAyeal's element.130 if md.acceleration & strcmpi(md.type,'2d'),131 %build accelerated element.132 elements(end+1).element=acceleratedtriaelem;133 elements(end).element.type='acceleratedtriaelem';134 elements(end).element.x=md.x;135 elements(end).element.y=md.y;136 elements(end).element.index=md.elements;137 elements(end).element.nods=md.numberofgrids;138 elements(end).element.nel=md.numberofelements;139 elements(end).element.thickness=md.thickness;140 elements(end).element.surface=md.surface;141 elements(end).element.bed=md.bed;142 elements(end).element.thickness_el=(md.thickness(md.elements))*[1;1;1]/3;143 elements(end).element.B_bar=(md.B(md.elements))*[1;1;1]/3;144 elements(end).element.glen_coeff=md.n;145 elements(end).element.friction_type=md.drag_type;146 elements(end).element.drag=md.drag;147 elements(end).element.p=md.p;148 elements(end).element.q=md.q;149 elements(end).element.meanvel=md.meanvel;150 elements(end).element.epsvel=md.epsvel;151 if isempty(md.segmentonneumann_diag),152 elements(end).element.index_icefront=[];153 else154 elements(end).element.index_icefront=md.segmentonneumann_diag(:,1:2);155 end156 elements(end).element.gridoniceshelf=md.gridoniceshelf;157 elements(end).element.elementonicesheet=md.elementonicesheet;158 elements(end).element.matid=1; %point to first matid element.159 125 end 160 126 -
issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticStokes.m
r1 r51 49 49 elements(stokesnewnumber)=SetStructureField(elements(stokesnewnumber),'element','meanvel',md.meanvel); 50 50 elements(stokesnewnumber)=SetStructureField(elements(stokesnewnumber),'element','epsvel',md.epsvel); 51 elements(stokesnewnumber)=SetStructureField(elements(stokesnewnumber),'element','acceleration',0);%acceleration 0 since no acceleration is posssible52 51 elements(stokesnewnumber)=SetStructureField(elements(stokesnewnumber),'element','collapse',0); 53 52 elements(stokesnewnumber)=SetStructureField(elements(stokesnewnumber),'element','matid',stokesnewnumber); -
issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticVert.m
r1 r51 46 46 elements(pos)=SetStructureField(elements(pos),'element','meanvel',md.meanvel); 47 47 elements(pos)=SetStructureField(elements(pos),'element','epsvel',md.epsvel); 48 elements(pos)=SetStructureField(elements(pos),'element','acceleration',0);%acceleration 0 since no acceleration is posssible49 48 elements(pos)=SetStructureField(elements(pos),'element','collapse',0); 50 49 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); -
issm/trunk/src/m/solutions/ice/ModelProcessorMelting.m
r1 r51 44 44 elements(pos)=SetStructureField(elements(pos),'element','onbed',md.elementonbed(pos)); 45 45 elements(pos)=SetStructureField(elements(pos),'element','onsurface',md.elementonsurface(pos)); 46 elements(pos)=SetStructureField(elements(pos),'element','acceleration',0);%acceleration 0 since no acceleration is posssible47 46 elements(pos)=SetStructureField(elements(pos),'element','collapse',1); 48 47 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); -
issm/trunk/src/m/solutions/ice/ModelProcessorSlopeCompute.m
r1 r51 51 51 elements(pos)=SetStructureField(elements(pos),'element','onbed',md.elementonbed(pos)); 52 52 elements(pos)=SetStructureField(elements(pos),'element','onsurface',md.elementonsurface(pos)); 53 elements(pos)=SetStructureField(elements(pos),'element','acceleration',0);%acceleration 0 since no acceleration is posssible54 53 elements(pos)=SetStructureField(elements(pos),'element','collapse',1); 55 54 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); -
issm/trunk/src/m/solutions/ice/ModelProcessorThermal.m
r1 r51 46 46 elements(pos)=SetStructureField(elements(pos),'element','meanvel',md.meanvel); 47 47 elements(pos)=SetStructureField(elements(pos),'element','epsvel',md.epsvel); 48 elements(pos)=SetStructureField(elements(pos),'element','acceleration',0);%acceleration 0 since no acceleration is posssible49 48 elements(pos)=SetStructureField(elements(pos),'element','collapse',0); 50 49 elements(pos)=SetStructureField(elements(pos),'element','matid',pos); -
issm/trunk/src/m/solutions/ice/PressureElemCompute.m
r1 r51 18 18 gridset=m.gridset; 19 19 20 %figure out active elements that will take part in the stiffness and load generation21 [n1,n2]=GetNumberOfActiveElements(elements);22 23 20 %initialization 24 21 pressure=zeros((n2-n1)+1,1); … … 31 28 32 29 %Go through elements and build pressure defined as P=-1/3*tr(stress) 33 for n=n1:n2, 34 if ~isempty(elements(n).element), 35 stress_tensor=Stress(elements(n).element,grids,materials,inputs); 36 trace=stress_tensor(1)+stress_tensor(2)+stress_tensor(3); 37 pressure(n)=-1/3*trace; 38 end 30 for n=1:length(elements) 31 stress_tensor=Stress(elements(n).element,grids,materials,inputs); 32 trace=stress_tensor(1)+stress_tensor(2)+stress_tensor(3); 33 pressure(n)=-1/3*trace; 39 34 end -
issm/trunk/src/m/solutions/ice/StrainRateCompute.m
r32 r51 17 17 loads=m.loads; 18 18 gridset=m.gridset; 19 20 %figure out active elements that will take part in the stiffness and load generation 21 [n1,n2]=GetNumberOfActiveElements(elements); 19 numberofelements=length(elements); 22 20 23 21 if strcmpi(type,'2d') 24 22 %initialize vectors 25 23 strainrate=struct('xx',[],'yy',[],'xy',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[]); 26 strainrate1=zeros( (n2-n1)+1,3);27 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1);28 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1);24 strainrate1=zeros(numberofelements,3); 25 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); 26 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); 29 27 30 28 %Go through all elements and call the strainrate routine, then compute eigen values and vector 31 for n= n1:n2,29 for n=1:length(elements), 32 30 if ~isempty(elements(n).element), 33 31 strainratevector=StrainRate(elements(n).element,grids,materials,inputs)'; … … 63 61 %initialize vectors 64 62 strainrate=struct('xx',[],'yy',[],'zz',[],'xy',[],'xz',[],'yz',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'principalvalue3',[],'principalaxis3',[]); 65 strainrate1=zeros( (n2-n1)+1,6);66 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);67 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);68 A3=zeros( (n2-n1)+1,1); Vx3=zeros((n2-n1)+1,1); Vy3=zeros((n2-n1)+1,1); Vz3=zeros((n2-n1)+1,1);63 strainrate1=zeros(numberofelements,6); 64 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); Vz1=zeros(numberofelements,1); 65 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); Vz2=zeros(numberofelements,1); 66 A3=zeros(numberofelements,1); Vx3=zeros(numberofelements,1); Vy3=zeros(numberofelements,1); Vz3=zeros(numberofelements,1); 69 67 70 68 %Go through all elements and call the strainrate routine, then compute eigen values and vector 71 for n= n1:n2,69 for n=1:length(elements), 72 70 if ~isempty(elements(n).element), 73 71 strainratevector=StrainRate(elements(n).element,grids,materials,inputs)'; -
issm/trunk/src/m/solutions/ice/StressBedCompute.m
r1 r51 17 17 loads=m.loads; 18 18 gridset=m.gridset; 19 20 %figure out active elements that will take part in the stiffness and load generation 21 [n1,n2]=GetNumberOfActiveElements(elements); 19 numberofelements=length(elements); 22 20 23 21 %initialization 24 stress_bed=zeros( (n2-n1)+1,1);22 stress_bed=zeros(numberofelements,1); 25 23 26 24 if strcmpi(type,'2d') … … 31 29 %initialize vectors 32 30 stress_bed=struct('xx',[],'yy',[],'zz',[],'xy',[],'xz',[],'yz',[],'stress_n','stress_nn','normal_x',[],'normal_y',[],'normal_z',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'principalvalue3',[],'principalaxis3',[],'effectivevalue',[]); 33 stress_bed1=zeros( (n2-n1)+1,6);34 normal1=zeros( (n2-n1)+1,3);35 stress_n1=zeros( (n2-n1)+1,3);36 stress_nn1=zeros( (n2-n1)+1,1);37 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);38 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);39 A3=zeros( (n2-n1)+1,1); Vx3=zeros((n2-n1)+1,1); Vy3=zeros((n2-n1)+1,1); Vz3=zeros((n2-n1)+1,1);31 stress_bed1=zeros(numberofelements,6); 32 normal1=zeros(numberofelements,3); 33 stress_n1=zeros(numberofelements,3); 34 stress_nn1=zeros(numberofelements,1); 35 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); Vz1=zeros(numberofelements,1); 36 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); Vz2=zeros(numberofelements,1); 37 A3=zeros(numberofelements,1); Vx3=zeros(numberofelements,1); Vy3=zeros(numberofelements,1); Vz3=zeros(numberofelements,1); 40 38 41 39 %Go through all elements and call the stress_bed routine, then compute eigen values and vector 42 for n= n1:n2,40 for n=1:length(elements), 43 41 if ~isempty(elements(n).element), 44 42 [stress_vector,normal]=StressBed(elements(n).element,grids,materials,inputs); -
issm/trunk/src/m/solutions/ice/StressCompute.m
r1 r51 17 17 loads=m.loads; 18 18 gridset=m.gridset; 19 numberofelements=length(elements); 19 20 20 %figure out active elements that will take part in the stiffness and load generation21 [n1,n2]=GetNumberOfActiveElements(elements);22 21 if strcmpi(type,'2d') 23 22 24 23 %initialize vectors 25 24 stress=struct('xx',[],'yy',[],'xy',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[]); 26 stress1=zeros( (n2-n1)+1,3);27 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);28 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);25 stress1=zeros(numberofelements,3); 26 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); Vz1=zeros(numberofelements,1); 27 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); Vz2=zeros(numberofelements,1); 29 28 30 29 %Go through all elements and call the stress routine, then compute eigen values and vector 31 for n= n1:n2,30 for n=1:length(elements), 32 31 if ~isempty(elements(n).element), 33 32 stressvector=Stress(elements(n).element,grids,materials,inputs)'; … … 64 63 %initialize vectors 65 64 stress=struct('xx',[],'yy',[],'zz',[],'xy',[],'xz',[],'yz',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'principalvalue3',[],'principalaxis3',[]); 66 stress1=zeros( (n2-n1)+1,6);67 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);68 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);69 A3=zeros( (n2-n1)+1,1); Vx3=zeros((n2-n1)+1,1); Vy3=zeros((n2-n1)+1,1); Vz3=zeros((n2-n1)+1,1);65 stress1=zeros(numberofelements,6); 66 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); Vz1=zeros(numberofelements,1); 67 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); Vz2=zeros(numberofelements,1); 68 A3=zeros(numberofelements,1); Vx3=zeros(numberofelements,1); Vy3=zeros(numberofelements,1); Vz3=zeros(numberofelements,1); 70 69 71 70 %Go through all elements and call the stress routine, then compute eigen values and vector 72 for n= n1:n2,71 for n=1:length(elements), 73 72 if ~isempty(elements(n).element), 74 73 stressvector=Stress(elements(n).element,grids,materials,inputs)'; -
issm/trunk/src/m/solutions/ice/StressSurfaceCompute.m
r1 r51 17 17 loads=m.loads; 18 18 gridset=m.gridset; 19 20 %figure out active elements that will take part in the stiffness and load generation 21 [n1,n2]=GetNumberOfActiveElements(elements); 19 numberofelements=length(elements); 22 20 23 21 %initialization 24 stress_surface=zeros( (n2-n1)+1,1);22 stress_surface=zeros(numberofelements,1); 25 23 26 24 if strcmpi(type,'2d') … … 31 29 %initialize vectors 32 30 stress_surface=struct('xx',[],'yy',[],'zz',[],'xy',[],'xz',[],'yz',[],'stress_n','stress_nn','normal_x',[],'normal_y',[],'normal_z',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'principalvalue3',[],'principalaxis3',[],'effectivevalue',[]); 33 stress_surface1=zeros( (n2-n1)+1,6);34 normal1=zeros( (n2-n1)+1,3);35 stress_n1=zeros( (n2-n1)+1,3);36 stress_nn1=zeros( (n2-n1)+1,1);37 A1=zeros( (n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);38 A2=zeros( (n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);39 A3=zeros( (n2-n1)+1,1); Vx3=zeros((n2-n1)+1,1); Vy3=zeros((n2-n1)+1,1); Vz3=zeros((n2-n1)+1,1);31 stress_surface1=zeros(numberofelements,6); 32 normal1=zeros(numberofelements,3); 33 stress_n1=zeros(numberofelements,3); 34 stress_nn1=zeros(numberofelements,1); 35 A1=zeros(numberofelements,1); Vx1=zeros(numberofelements,1); Vy1=zeros(numberofelements,1); Vz1=zeros(numberofelements,1); 36 A2=zeros(numberofelements,1); Vx2=zeros(numberofelements,1); Vy2=zeros(numberofelements,1); Vz2=zeros(numberofelements,1); 37 A3=zeros(numberofelements,1); Vx3=zeros(numberofelements,1); Vy3=zeros(numberofelements,1); Vz3=zeros(numberofelements,1); 40 38 41 39 %Go through all elements and call the stress_surface routine, then compute eigen values and vector 42 for n= n1:n2,40 for n=1:length(elements), 43 41 if ~isempty(elements(n).element), 44 42 [stress_vector,normal]=StressSurface(elements(n).element,grids,materials,inputs); -
issm/trunk/src/m/solutions/ice/SystemMatrices.m
r1 r51 13 13 pg={}; 14 14 15 %figure out active elements that will take part in the stiffness and load generation16 [n1,n2]=GetNumberOfActiveElements(elements);17 18 15 if kflag, 19 16 … … 22 19 23 20 %Go through elements and build stiffness matrix 24 for n= n1:n2,21 for n=1:length(elements), 25 22 26 23 if ~isempty(elements(n).element), … … 42 39 43 40 %Go through elements and build loads 44 for n= n1:n2,41 for n=1:length(elements), 45 42 46 43 if ~isempty(elements(n).element), -
issm/trunk/src/m/solutions/ice/ViscousHeatingCompute.m
r1 r51 18 18 gridset=m.gridset; 19 19 20 %figure out active elements that will take part in the stiffness and load generation21 [n1,n2]=GetNumberOfActiveElements(elements);22 23 20 %initialize vector 24 viscousheating=zeros( (n2-n1)+1,1);21 viscousheating=zeros(numberofelements,1); 25 22 26 23 %Go through all elements and call the vicous heating routine. 27 for n= n1:n2,24 for n=1:length(elements), 28 25 29 26 if ~isempty(elements(n).element),
Note:
See TracChangeset
for help on using the changeset viewer.