In [4]:
from collections import OrderedDict, defaultdict
from LoadSets import LoadSet, LoadCombination
from Tables import DataSource

In [5]:
class Object(object):
    pass

class Frame2D(object):
    
    def __init__(self,dsname=None):
        self.dsname = dsname
        if dsname is not None:
            DataSource.set_source(dsname)
        self.reset()
        
    def reset(self):
        self.rawdata = Object()
        self.nodes = OrderedDict()
        self.members = OrderedDict()
        self.nodeloads = LoadSet()
        self.nodedeltas = LoadSet()
        self.memberloads = LoadSet()
        self.loadcombinations = LoadCombination()
        self.dofdesc = []
        self.loadcase_fefs = {}
        self.ndof = 0
        self.nfree = 0
        self.ncons = 0
        self.R = None
        self.D = None
        self.PDF = None    # P-Delta forces

In [6]:
class ResultSet(object):
    
    """Instances of class ResultSet gather together all of the results from
    one complete structural analysis of one load case."""
    
    def __init__(self,loadcase):
        self.loadcase = loadcase
        self.node_P = None       # applied node loads
        self.memb_P = None       # applied fixed end member forces
        self.memb_fefs = {}      # fixed end member forces, indexed by member
        self.node_displacements = None  # all node displacements
        self.reaction_displacements = None # constrained node displacements
        self.reaction_forces = None        # constrained node reactions
        self.member_efs = {}                 # member end forces, indexed by member
        self.pdelta = False
        self.pdelta_forces = None

In [ ]: