-------------------------------------------------------------------------------- import DC import Circuit import Print import Time import CPUTime import Array circuit :: ESim -> [Device] circuit z0 = (trf1 1 0 1 2 0 0.210 z0) ++ (vsrc6 2 1 0 pwl v0 z0) ++ (res1 3 1 0 1e15 z0) ++ (trf1 4 1 0 3 0 0.210 z0) ++ (dio1 5 6 3 z0) ++ (res1 6 6 4 1.0 z0) ++ (res1 7 6 3 1.0e7 z0) ++ (dio1 8 2 7 z0) ++ (res1 9 7 5 1.0 z0) ++ (res1 10 2 7 1.0e7 z0) ++ (dio1 11 3 8 z0) ++ (res1 12 5 8 1.0 z0) ++ (res1 13 3 8 1.0e7 z0) ++ (dio1 14 9 2 z0) ++ (res1 15 4 9 1.0 z0) ++ (res1 16 9 2 1.0e7 z0) ++ (res1 17 4 5 1.0e20 z0) ++ (ind1 18 4 10 1.0e-3 z0) ++ (cap1 19 10 5 1.0e-6 z0) ++ (res1 20 10 5 100.0 z0) v0 = defaultVStep {vlim = 200, tlim = 50, steps = 10} g0 = defaultGmin f = 20000.0 per = 1 / f vp = 400.0 pwl = [ (0.0, 0.0), (vp, per*0.01), (vp, per*0.39), (0.0, per*0.40), (0.0, per*0.50), ((-1 * vp), per * 0.51), ((-1 * vp), per * 0.89), (0.0, per * 0.90), (0.0, per) ] m = dcOP1 [] [] circuit i0 = opvalue m z = dcTran1 (per / 16) (1 * per) i0 i0 circuit tr_out = trPrint [0,1,2,3,4,5,6,7,9] z op_out = opPrint m main = do op_out tr_out