@@ -236,9 +236,6 @@ def load_km(self, as_sparse=True, sort=False):
236236 raise ImportError ('Unable to load scipy, use ``load_km`` with '
237237 '``as_sparse=False``' )
238238
239- # Get header details
240- neqn = self ._header ['neqn' ] # Number of equations
241-
242239 # number of terms in stiffness matrix
243240 ntermK = two_ints_to_long (self ._header ['ntermKl' ], self ._header ['ntermKh' ])
244241
@@ -272,7 +269,7 @@ def load_km(self, as_sparse=True, sort=False):
272269 krow , kcol , kdata = _binary_reader .read_array (self .filename ,
273270 ptrSTF ,
274271 ntermK ,
275- neqn ,
272+ self . neqn ,
276273 const )
277274 else :
278275 warnings .warn ('Missing stiffness matrix' )
@@ -282,7 +279,7 @@ def load_km(self, as_sparse=True, sort=False):
282279 mrow , mcol , mdata = _binary_reader .read_array (self .filename ,
283280 ptrMAS ,
284281 ntermM ,
285- neqn ,
282+ self . neqn ,
286283 const )
287284 else :
288285 warnings .warn ('Missing mass matrix' )
@@ -305,7 +302,8 @@ def load_km(self, as_sparse=True, sort=False):
305302
306303
307304 # sort nodal equivalence
308- dof_ref , index , nref , dref = _binary_reader .sort_nodal_eqlv (neqn , neqv , ndof )
305+ dof_ref , index , nref , dref = _binary_reader .sort_nodal_eqlv (self .neqn ,
306+ neqv , ndof )
309307
310308 # store constrained dof information
311309 unsort_dof_ref = np .vstack ((nref , dref )).T
@@ -339,7 +337,7 @@ def load_km(self, as_sparse=True, sort=False):
339337 if as_sparse :
340338
341339 if kdata is not None :
342- k = coo_matrix ((neqn ,) * 2 )
340+ k = coo_matrix ((self . neqn ,) * 2 )
343341 k .data = kdata # data has to be set first
344342 k .row = krow
345343 k .col = kcol
@@ -350,7 +348,7 @@ def load_km(self, as_sparse=True, sort=False):
350348 k = None
351349
352350 if mdata is not None :
353- m = coo_matrix ((neqn ,) * 2 )
351+ m = coo_matrix ((self . neqn ,) * 2 )
354352 m .data = mdata
355353 m .row = mrow
356354 m .col = mcol
@@ -362,19 +360,41 @@ def load_km(self, as_sparse=True, sort=False):
362360
363361 else :
364362 if kdata is not None :
365- k = np .zeros ((neqn ,) * 2 )
363+ k = np .zeros ((self . neqn ,) * 2 )
366364 k [krow , kcol ] = kdata
367365 else :
368366 k = None
369367
370368 if mdata is not None :
371- m = np .zeros ((neqn ,) * 2 )
369+ m = np .zeros ((self . neqn ,) * 2 )
372370 m [mrow , mcol ] = mdata
373371 else :
374372 m = None
375373
376374 return dof_ref , k , m
377375
376+ @property
377+ def neqn (self ):
378+ """Number of equations
379+
380+ Examples
381+ --------
382+ >>> full.neqn
383+ 963
384+ """
385+ return self ._header ['neqn' ]
386+
387+ @property
388+ def load_vector (self ):
389+ """The load vector
390+
391+ Examples
392+ --------
393+ >>> full.load_vector
394+ array([0., 0., 0., ..., 0., 0., 0.])
395+ """
396+ return self .read_record (self ._header ['ptrRHS' ])[:self .neqn ]
397+
378398 def _load_km (self ):
379399 """Loads the matrices with sorted DOF"""
380400 self ._dof_ref , self ._k , self ._m = self .load_km (sort = True )
0 commit comments