Changeset 2493 in lmdz_wrf


Ignore:
Timestamp:
May 1, 2019, 11:19:01 PM (6 years ago)
Author:
lfita
Message:

Adding up winds' condition for sails to zsailing_boat'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/geometry_tools.py

    r2492 r2493  
    638638    dx = length/(N-1)
    639639    ia = ival*np.pi/180.
    640     da = 2*np.pi*dx/3.
     640    da = 2*np.pi*dx/lamb
    641641
    642642    sinusoide = np.zeros((N,2), dtype=np.float)
     
    719719      lmast: position of the mast (as percentage of length, default 0.6)
    720720      wmast: width of the mast (default 0.1)
    721       hsd: head sail direction respect to center line (default 5.)
    722       msd: main sail direction respect to center line (default 5.)
     721      hsd: head sail direction respect to center line (default 5., -999.99 for upwind)
     722      msd: main sail direction respect to center line (default 5., -999.99 for upwind)
    723723      lheads: length of head sail (as percentage of legnth, defaul 0.38)
    724724      lmains: length of main sail (as percentage of legnth, defaul 0.55)
     
    748748    # head sails
    749749    lsail = lheads*length
    750     sailsa = np.pi/2. - np.pi*hsd/180.
    751     endsail = np.array([lsail*np.sin(sailsa), lsail*np.cos(sailsa)])
    752     endsail[0] = length - endsail[0]
    753     if bow[1] < endsail[1]:
    754         hsail = circ_sec(endsail, bow, lsail*2.15)
     750    if hsd != -999.99:
     751        sailsa = np.pi/2. - np.pi*hsd/180.
     752        endsail = np.array([lsail*np.sin(sailsa), lsail*np.cos(sailsa)])
     753        endsail[0] = length - endsail[0]
     754        if bow[1] < endsail[1]:
     755            hsail = circ_sec(endsail, bow, lsail*2.15)
     756        else:
     757            hsail = circ_sec(bow, endsail, lsail*2.15)
    755758    else:
    756         hsail = circ_sec(bow, endsail, lsail*2.15)
     759        hsail0 = p_sinusiode(length=lsail, amp=0.2, lamb=0.75, N=dpts)
     760        hsail = np.zeros((dpts,2), dtype=np.float)
     761        hsail[:,0] = hsail0[:,1]
     762        hsail[:,1] = hsail0[:,0]
     763        hsail = bow - hsail
    757764
    758765    # main sails
    759     sailsa = np.pi/2. - np.pi*msd/180.
    760766    lsail = lmains*length
    761     begsail = np.array([length*lmast, 0.])
    762     endsail = np.array([lsail*np.sin(sailsa), lsail*np.cos(sailsa)])
    763     endsail[0] = length*lmast - endsail[0]
    764     if endsail[1] < begsail[1]:
    765         msail = circ_sec(begsail, endsail, lsail*2.15)
     767    if msd != -999.99:
     768        sailsa = np.pi/2. - np.pi*msd/180.
     769        begsail = np.array([length*lmast, 0.])
     770        endsail = np.array([lsail*np.sin(sailsa), lsail*np.cos(sailsa)])
     771        endsail[0] = length*lmast - endsail[0]
     772        if endsail[1] < begsail[1]:
     773            msail = circ_sec(begsail, endsail, lsail*2.15)
     774        else:
     775            msail = circ_sec(endsail, begsail, lsail*2.15)
    766776    else:
    767         msail = circ_sec(endsail, begsail, lsail*2.15)
     777        msail0 = p_sinusiode(length=lsail, amp=0.25, lamb=1., N=dpts)
     778        msail = np.zeros((dpts,2), dtype=np.float)
     779        msail[:,0] = msail0[:,1]
     780        msail[:,1] = msail0[:,0]
     781        msail = [length*lmast,0] - msail
    768782
    769783    sailingboat = np.zeros((dpts*8+4,2), dtype=np.float)
Note: See TracChangeset for help on using the changeset viewer.