clear;fs.randSeed(1);%build random modelB=obj_Box;%build a box objectB.name='BoxWord';B.GPUstatus='auto';B.ballR=0.005;B.isClump=0;B.distriRate=0.2;B.sampleW=1;B.sampleL=0.016;B.sampleH=0.6;%B.BexpandRate=4;%B.PexpandRate=4;B.type='topPlaten';%B.type='TriaxialCompression';B.setType();B.buildInitialModel();%B.show();B.setUIoutput();d=B.d;%d.breakGroup('sample');d.breakGroup('lefPlaten');%--------------end initial model------------B.gravitySediment();B.compactSample(1);%input is compaction timemfs.reduceGravity(d,2);%reduce the gravity of element%------------return and save result--------------d.status.dispEnergy();%display the energy of the modeld.show('aR');d.mo.setGPU('off');d.clearData(1);%clear dependent datad.recordCalHour('Step1Finish');save(['TempModel/'B.name'1.mat'],'B','d');save(['TempModel/'B.name'1R'num2str(B.ballR)'-distri'num2str(B.distriRate)'aNum'num2str(d.aNum)'.mat']);d.calculateData();%because data is clear, it will be re-calculated
%set the material of the modelclear;load('TempModel/BoxWord1.mat');B.setUIoutput();d=B.d;d.calculateData();d.mo.setGPU('off');d.getModel();%get xyz from d.mo%-----------------draw wordpictureName='slope/MatDEM.png';%word should be in black colorsX=d.mo.aX(1:d.mNum);sZ=d.mo.aZ(1:d.mNum);imH=1200;imW=800;%image will be resized to imW*imH%read the image and change the size,image is in black and white colorregionFilter=mfs.image2RegionFilter(pictureName,imH,imW);%white is truesFilter=f.run('fun/applyRegionFilter.m',regionFilter,sX,sZ);sId=find(sFilter);sId(sId>d.mNum)=[];d.addGroup('word',sId);d.makeModelByGroups({'word'});%d.mo.bFilter(:)=true;d.mo.zeroBalance();d.setClump('word');%d.showFilter('Group',{'word'},'aR');d.show('aR');view(0,-10);%-----------save the modeld.mo.setGPU('off');d.clearData(1);%clear dependent datad.recordCalHour('BoxStep2Finish');save(['TempModel/'B.name'2.mat'],'B','d');save(['TempModel/'B.name'2R'num2str(B.ballR)'-distri'num2str(B.distriRate)'aNum'num2str(d.aNum)'.mat']);d.calculateData();
clear;load('TempModel/BoxWord2.mat');B.setUIoutput();d=B.d;d.calculateData();d.mo.setGPU('off');d.getModel();%d.setModel();%reset the initial status of the modeld.status=modelStatus(d);%initialize model status, which records running informationd.mo.isShear=0;d.mo.isHeat=1;%calculate heat in the modeld.addFixId('Y',d.GROUP.word);d.moveBoundary('front',0,-B.ballR,0);d.moveBoundary('back',0,B.ballR,0);visRate=0;d.mo.mVis=d.mo.mVis*visRate;gpuStatus=d.mo.setGPU('auto');d.setStandarddT();d.mo.dT=d.mo.dT*4;totalCircle=50;d.tic(totalCircle);fName=['data/step/'B.namenum2str(B.ballR)'-'num2str(B.distriRate)'loopNumHappy'];save([fName'0.mat']);%return;fori=1:totalCircled.mo.setGPU(gpuStatus);d.balance('Standard',0.1);d.clearData(1);save([fNamenum2str(i)'.mat']);d.calculateData();d.toc();%show the note of timeendd.show('aR');d.mo.setGPU('off');d.clearData(1);d.recordCalHour('Step3Finish');save(['TempModel/'B.name'3.mat'],'B','d');save(['TempModel/'B.name'3R'num2str(B.ballR)'-distri'num2str(B.distriRate)'aNum'num2str(d.aNum)'.mat']);d.calculateData();