Changeset 380e8c9 in sasmodels for sasmodels/generate.py


Ignore:
Timestamp:
Mar 24, 2016 10:56:44 AM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
151f3bc
Parents:
60eab2a
Message:

progress on new polydispersity loop, but still broken

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/generate.py

    r60eab2a r380e8c9  
    614614    # Note: the reversing view, x[::-1], does not require a copy 
    615615    pd_length = np.array([len(w) for w in weights]) 
    616     print (pd_length) 
    617     print (weights) 
    618616    pd_offset = np.cumsum(np.hstack((0, pd_length))) 
    619617    pd_isvol = np.array([p.type=='volume' for p in pars]) 
    620618    idx = np.argsort(pd_length)[::-1][:max_pd] 
    621     print (idx) 
    622619    pd_stride = np.cumprod(np.hstack((1, pd_length[idx][:-1]))) 
    623620    par_offsets = np.cumsum(np.hstack((2, pd_length)))[:-1] 
     621    coord_offset = par_offset+npars 
     622    fast_coord_offset = par_offset+2*npars 
    624623 
    625624    theta_par = -1 
     
    637636    details[par_offset+0*npars:par_offset+1*npars] = par_offsets 
    638637    details[par_offset+1*npars:par_offset+2*npars] = 0  # no coordination for most 
    639     details[par_offset+2*npars:par_offset+3*npars] = 0  # no fast coord with 0 
    640     coord_offset = par_offset+1*npars 
    641638    for k,parameter_num in enumerate(idx): 
    642639        details[coord_offset+parameter_num] = 2**k 
     640    details[fast_coord_offset] = idx[0] 
     641    details[fast_coord_offset+1:fast_coord_offset+npars] = 0  # no fast coord with 0 
    643642    details[constants_offset] = 1   # fast_coord_count: one fast index 
    644643    details[constants_offset+1] = theta_par 
    645     print ("details",details) 
     644    print("polydispersity details") 
     645    print_details(model_info, details) 
    646646    return details 
     647 
     648def print_details(model_info, details): 
     649    max_pd = model_info['max_pd'] 
     650    pars = model_info['parameters'].kernel_pars() 
     651    npars = len(pars) 
     652    par_offset = 5*max_pd 
     653    constants_offset = par_offset + 3*npars 
     654 
     655    print("pd_par", details[0*max_pd:1*max_pd]) 
     656    print("pd_length", details[1*max_pd:2*max_pd]) 
     657    print("pd_offset", details[2*max_pd:3*max_pd]) 
     658    print("pd_stride", details[3*max_pd:4*max_pd]) 
     659    print("pd_isvol", details[4*max_pd:5*max_pd]) 
     660    print("par_offsets", details[par_offset+0*npars:par_offset+1*npars]) 
     661    print("par_coord", details[par_offset+1*npars:par_offset+2*npars]) 
     662    print("fast_coord_pars", details[par_offset+2*npars:par_offset+3*npars]) 
     663    print("fast_coord_count", details[constants_offset]) 
     664    print("theta par", details[constants_offset+1]) 
    647665 
    648666def constrained_poly_details(model_info, weights, constraints): 
Note: See TracChangeset for help on using the changeset viewer.