github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/valinit.go (about)

     1  package eeslism
     2  
     3  /*****  SIMCONTL の初期化  *****/
     4  func NewSIMCONTL() *SIMCONTL {
     5  	S := new(SIMCONTL)
     6  	S.Title = ""
     7  	S.File = ""
     8  	S.Wfname = ""
     9  	S.Ofname = ""
    10  	S.Unit = ""
    11  	S.Unitdy = ""
    12  	S.Fwdata = nil
    13  	S.Fwdata2 = nil
    14  	S.Ftsupw = nil
    15  	S.Timeid = []rune{' ', ' ', ' ', ' ', ' '}
    16  	S.Helmkey = ' '
    17  	S.Wdtype = ' '
    18  	S.Daystartx = 0
    19  	S.Daystart = 0
    20  	S.Dayend = 0
    21  	S.Dayntime = 0
    22  	S.Ntimedyprt = 0
    23  	S.Ntimehrprt = 0
    24  	S.Nhelmsfpri = 0
    25  	S.Nvcfile = 0
    26  	S.DTm = 0
    27  	S.Sttmm = 0
    28  	S.Vcfile = nil
    29  	S.Loc = nil
    30  	S.Wdpt.Ta = nil
    31  	S.Wdpt.Xa = nil
    32  	S.Wdpt.Rh = nil
    33  	S.Wdpt.Idn = nil
    34  	S.Wdpt.Isky = nil
    35  	S.Wdpt.Ihor = nil
    36  	S.Wdpt.Cc = nil
    37  	S.Wdpt.Rn = nil
    38  	S.Wdpt.Wv = nil
    39  	S.Wdpt.Wdre = nil
    40  	S.MaxIterate = 5 // 最大収束回数のデフォルト値
    41  	S.Daywk = make([]int, 366)
    42  	S.Dayprn = make([]int, 366)
    43  
    44  	for i := 0; i < 366; i++ {
    45  		S.Daywk[i] = 0
    46  		S.Dayprn[i] = 0
    47  	}
    48  
    49  	return S
    50  }
    51  
    52  /*****  COMPNT の初期化  *****/
    53  func NewCOMPNT() *COMPNT {
    54  	C := new(COMPNT)
    55  	C.Name = ""
    56  	C.Roomname = ""
    57  	C.Eqptype = ""
    58  	C.Envname = ""
    59  	C.Exsname = ""
    60  	C.Hccname = ""
    61  	C.Idi = nil
    62  	C.Ido = nil
    63  	C.Tparm = ""
    64  	C.Wetparm = ""
    65  	C.Eqp = nil
    66  	C.Ivparm = nil
    67  	C.Elouts = nil
    68  	C.Elins = nil
    69  	C.Neqp, C.Ncat, C.Nivar = 0, 0, 0
    70  	C.Eqpeff = 0.0
    71  	C.Airpathcpy = true
    72  	C.Control = ' '
    73  	C.Nout, C.Nin = 3, 3
    74  	C.Valvcmp = nil
    75  	C.Rdpnlname = ""
    76  	C.Omparm = ""
    77  	C.PVcap = -999.0
    78  	C.Ac, C.Area = -999.0, -999.0
    79  	// C.x = 1.0
    80  	// C.xinit = -999.0
    81  	// C.org = 'n'
    82  	// C.OMfanName = nil
    83  	C.MonPlistName = ""
    84  	C.MPCM = -999.0
    85  	return C
    86  }
    87  
    88  /*****  ELOUT の初期化  *****/
    89  func NewEloutSlice(n int) []*ELOUT {
    90  	s := make([]*ELOUT, n)
    91  	for i := 0; i < n; i++ {
    92  		s[i] = NewElout()
    93  	}
    94  	return s
    95  }
    96  
    97  func NewElout() *ELOUT {
    98  	Eo := new(ELOUT)
    99  	Eo.Ni = 0
   100  	Eo.G = 0.0
   101  	Eo.Co = 0.0
   102  	Eo.Coeffo = 0.0
   103  	Eo.Control = ' '
   104  	Eo.Id = ' '
   105  	Eo.Fluid, Eo.Sysld = ' ', ' '
   106  	Eo.Q, Eo.Sysv, Eo.Load = 0.0, 0.0, 0.0
   107  	Eo.Sv, Eo.Sld = 0, 0
   108  
   109  	Eo.Cmp = nil
   110  	Eo.Elins = nil
   111  	Eo.Eldobj, Eo.Emonitr = nil, nil
   112  
   113  	Eo.Coeffin = nil
   114  	Eo.Lpath = nil
   115  	Eo.Pelmoid = 'x'
   116  
   117  	return Eo
   118  }
   119  
   120  /*****  ELIN の初期化  *****/
   121  func NewElinSlice(n int) []*ELIN {
   122  	s := make([]*ELIN, n)
   123  	for i := 0; i < n; i++ {
   124  		s[i] = NewElin()
   125  	}
   126  	return s
   127  }
   128  
   129  func NewElin() *ELIN {
   130  	Ei := new(ELIN)
   131  	Ei.Id = ' '
   132  	Ei.Sysvin = 0.0
   133  	Ei.Upo, Ei.Upv = nil, nil
   134  	Ei.Lpath = nil
   135  	return Ei
   136  }
   137  
   138  func NewPLIST() *PLIST {
   139  	Pl := new(PLIST)
   140  	Pl.Name = ""
   141  	Pl.Type, Pl.Control = ' ', ' '
   142  	Pl.Batch = false
   143  	Pl.Org = true
   144  	Pl.Plmvb, Pl.Pelm = nil, nil
   145  	Pl.Lpair = nil
   146  	Pl.Go = nil
   147  	Pl.G = -999.0
   148  	Pl.Lvc, Pl.Nvav, Pl.Nvalv = 0, 0, 0
   149  	// Pl.Npump = 0
   150  	Pl.N = -999
   151  	Pl.Valv = nil
   152  	Pl.Mpath = nil
   153  	Pl.Plistt, Pl.Plistx = nil, nil
   154  	Pl.Rate = nil
   155  	Pl.Upplist, Pl.Dnplist = nil, nil
   156  	Pl.NOMVAV = 0
   157  	// Pl.Pump = nil
   158  	Pl.OMvav = nil
   159  	Pl.UnknownFlow = 1
   160  	Pl.Plistname = ""
   161  	Pl.Gcalc = 0.0
   162  	return Pl
   163  }
   164  
   165  /*****  PELM の初期化  ******/
   166  func NewPELM() *PELM {
   167  	return &PELM{
   168  		Co:  ELIO_SPACE,
   169  		Ci:  ELIO_SPACE,
   170  		Cmp: nil,
   171  		Out: nil,
   172  		In:  nil,
   173  		//Pelmx: nil,
   174  	}
   175  }
   176  
   177  /*****  MPATH の初期化  *****/
   178  func NewMPATH() *MPATH {
   179  	return &MPATH{
   180  		Name:    "",
   181  		NGv:     0,
   182  		NGv2:    0,
   183  		Ncv:     0,
   184  		Lvcmx:   0,
   185  		Plist:   nil,
   186  		Mpair:   nil,
   187  		Sys:     ' ',
   188  		Type:    ' ',
   189  		Fluid:   ' ',
   190  		Control: ' ',
   191  		Pl:      nil,
   192  		Cbcmp:   nil,
   193  		G0:      nil,
   194  		Rate:    false,
   195  	}
   196  }
   197  
   198  /*****  EXSF の初期化  ******/
   199  func Exsfinit(e *EXSF) {
   200  	e.Name = ""
   201  	e.Typ = 'S'
   202  	e.Wa, e.Wb = 0.0, 0.0
   203  	e.Rg, e.Fs, e.Wz, e.Ww, e.Ws = 0.0, 0.0, 0.0, 0.0, 0.0
   204  	e.Swb, e.CbSa, e.CbCa, e.Cwa = 0.0, 0.0, 0.0, 0.0
   205  	e.Swa, e.Z, e.Erdff, e.Cinc = 0.0, 0.0, 0.0, 0.0
   206  	e.Tazm, e.Tprof, e.Idre, e.Idf = 0.0, 0.0, 0.0, 0.0
   207  	e.Iw, e.Rn, e.Tearth = 0.0, 0.0, 0.0
   208  	e.Erdff = 0.36e-6
   209  	e.Alo = CreateConstantValuePointer(0.0)
   210  	// e.alosch = nil
   211  	e.Alotype = Alotype_Fix
   212  }
   213  
   214  /*****  SYSEQ の初期化  *****/
   215  func Syseqinit(S *SYSEQ) {
   216  	S.A = ' '
   217  }
   218  
   219  /*****  EQSYS の初期化  *****/
   220  func NewEQSYS() *EQSYS {
   221  	E := new(EQSYS)
   222  	E.Cnvrg = make([]*COMPNT, 0)
   223  	E.Hcc = make([]*HCC, 0)
   224  	E.Boi = make([]*BOI, 0)
   225  	E.Refa = make([]*REFA, 0)
   226  	E.Coll = make([]*COLL, 0)
   227  	E.Pipe = make([]*PIPE, 0)
   228  	E.Stank = make([]*STANK, 0)
   229  	E.Hex = make([]*HEX, 0)
   230  	E.Pump = make([]*PUMP, 0)
   231  	E.Flin = make([]*FLIN, 0)
   232  	E.Hcload = make([]*HCLOAD, 0)
   233  	E.Vav = make([]*VAV, 0)
   234  	E.Stheat = make([]*STHEAT, 0)
   235  	E.Thex = make([]*THEX, 0)
   236  	E.Valv = make([]*VALV, 0)
   237  	E.Qmeas = make([]*QMEAS, 0)
   238  	E.PVcmp = make([]*PV, 0)
   239  	E.OMvav = make([]*OMVAV, 0)
   240  
   241  	// 使用されていなかった:
   242  	//E.Ngload = 0
   243  	//E.Gload = nil
   244  
   245  	return E
   246  }
   247  
   248  /*****  RMVLS の初期化  *****/
   249  func NewRMVLS() *RMVLS {
   250  	R := new(RMVLS)
   251  	R.Twallinit = 0.0
   252  	R.Emrk = nil
   253  	R.Wall = nil
   254  	R.Window = nil
   255  	R.Snbk = nil
   256  	R.Rdpnl = nil
   257  	R.Qrm, R.Qrmd = nil, nil
   258  	R.Trdav = nil
   259  	R.Sd = nil
   260  	R.PCM = nil
   261  	// R.airflow = nil
   262  	R.Pcmiterate = 'n'
   263  
   264  	R.Mw = nil
   265  	R.Room = nil
   266  	R.Qetotal.Name = ""
   267  
   268  	return R
   269  }
   270  
   271  func VPTRinit(v *VPTR) {
   272  	v.Type = ' '
   273  	v.Ptr = nil
   274  }
   275  
   276  func TMDTinit(t *TMDT) {
   277  	for i := 0; i < 5; i++ {
   278  		t.Dat[i] = nil
   279  	}
   280  
   281  	t.CYear = ""
   282  	t.CMon = ""
   283  	t.CDay = ""
   284  	t.CWkday = ""
   285  	t.CTime = ""
   286  	t.Year, t.Mon, t.Day, t.Time = 0, 0, 0, 0
   287  }
   288  
   289  func NewLOCAT() *LOCAT {
   290  	L := new(LOCAT)
   291  	L.Name = ""
   292  	L.Lat, L.Lon, L.Ls, L.Tgrav, L.DTgr = -999.0, -999.0, -999.0, -999.0, -999.0
   293  	L.Daymxert = -999
   294  
   295  	matinitx(L.Twsup[:], 12, -999.0)
   296  
   297  	return L
   298  }
   299  
   300  func NewEQCAT() *EQCAT {
   301  	E := new(EQCAT)
   302  	E.Rfcmp = nil
   303  	E.Hccca = nil
   304  	E.Boica = nil
   305  	E.Refaca = nil
   306  	E.Collca = nil
   307  	E.Pipeca = nil
   308  	E.Stankca = nil
   309  	E.Hexca = nil
   310  	E.Pumpca = nil
   311  	E.Vavca = nil
   312  	E.Stheatca = nil
   313  	E.Thexca = nil
   314  	E.Pfcmp = nil
   315  	E.PVca = nil
   316  	E.OMvavca = nil
   317  	return E
   318  }
   319  
   320  func MtEdayinit(mtEday *[12][24]EDAY) {
   321  	for i := 0; i < 12; i++ {
   322  		for j := 0; j < 24; j++ {
   323  			mtEday[i][j].D = 0.0
   324  			mtEday[i][j].Hrs = 0
   325  			mtEday[i][j].Mx = 0.0
   326  			mtEday[i][j].Mxtime = 0
   327  		}
   328  	}
   329  }