!Copyright (c) 2013 by tdem.org under guide of Xiu Li(lixiu@chd.edu.cn) !written by Huaifeng Sun(sunhuaifeng@gmail.com) and Xushan Lu(luxushan@gmail.com) !Code distribution @ tdem.org or sunhuaifeng.com !梯形波电流激发,采用升余弦开关函数和降余弦开关函数 SUBROUTINE TIXING_SOURCE_UPCOS USE CONSTANTPARAMETERS USE ELECTROMAGNETIC_VARIABLES USE RES_MODEL_PARAMETER USE TIME_PARAMETER USE OMP_LIB IMPLICIT NONE REAL(KIND=8)T0 integer i,j,k WAVESTEP=TIME_MAX !Time_max is given in Time_series subroutine: TIME_MAX=GridSize*SQRT(EPS0*MU0/3.0) T0=1.13*MU0*SIGMA_MIN*GridSize*GridSize CTIME(1)=0.0D0 !RAISESTEP !RAISETIME/STEP !1.13*MU0*DELX*DELX/RES(1,1,1) DELT(1)=RAISESTEP !RAISETIME/STEP DELT(0)=DELT(1) SOURCE(1)=AMP*0.5*(1-COS(PI*CTIME(1)/RAISETIME)) !AMP*CTIME(1)/RAISETIME DO I=2,NSTOP CTIME(I)=CTIME(I-1)+DELT(I-1) IF(CTIME(I) .LT. RAISETIME)THEN !小于raistime DELT(I)=RAISESTEP SOURCE(I)=AMP*0.5*(1-COS(PI*CTIME(I)/RAISETIME)) !AMP*CTIME(I)/RAISETIME ELSEIF(CTIME(I) .GE. RAISETIME .AND. CTIME(I) .LT. RAISETIME+WAVE-TIME_RAMP2WAVE_SUM)THEN !RAISETIME小于等于CTIME(I)