Ignore:
Timestamp:
Nov 14, 2017 8:57:07 AM (6 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
f0ce6e2
Parents:
a57ae07
Message:

tinycc doesn't return structures, so must pass return structure as pointer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sascalc/calculator/sas_gen.py

    ra1daf86 r144e032a  
    133133        sldn = copy.deepcopy(self.data_sldn) 
    134134        sldn -= self.params['solvent_SLD'] 
    135         model = mod.new_GenI((1 if self.is_avg else 0), 
    136                              pos_x, pos_y, pos_z, 
    137                              sldn, self.data_mx, self.data_my, 
    138                              self.data_mz, self.data_vol, 
    139                              self.params['Up_frac_in'], 
    140                              self.params['Up_frac_out'], 
    141                              self.params['Up_theta']) 
     135        # **** WARNING **** new_GenI holds pointers to numpy vectors 
     136        # be sure that they are contiguous double precision arrays and make  
     137        # sure the GC doesn't eat them before genicom is called. 
     138        # TODO: rewrite so that the parameters are passed directly to genicom 
     139        args = ( 
     140            (1 if self.is_avg else 0), 
     141            pos_x, pos_y, pos_z, 
     142            sldn, self.data_mx, self.data_my, 
     143            self.data_mz, self.data_vol, 
     144            self.params['Up_frac_in'], 
     145            self.params['Up_frac_out'], 
     146            self.params['Up_theta']) 
     147        model = mod.new_GenI(*args) 
    142148        if len(qy): 
    143149            qx, qy = _vec(qx), _vec(qy) 
Note: See TracChangeset for help on using the changeset viewer.