def simOnePeriod(self):
        '''
        Simulates one period for this type.  Calls the methods getMortality(), getShocks() or
        readShocks, getStates(), getControls(), and getPostStates().  These should be defined for
        AgentType subclasses, except getMortality (define its components simDeath and simBirth
        instead) and readShocks.

        Parameters
        ----------
        None

        Returns
        -------
        None
        '''
        self.getMortality()  # Replace some agents with "newborns"
        if self.read_shocks: # If shock histories have been pre-specified, use those
            self.readShocks()
        else:                # Otherwise, draw shocks as usual according to subclass-specific method
            self.getShocks()
        self.getStates()     # Determine each agent's state at decision time
        self.getControls()   # Determine each agent's choice or control variables based on states
        self.getPostStates() # Determine each agent's post-decision / end-of-period states using states and controls

        # Advance time for all agents
        self.t_age = self.t_age + 1 # Age all consumers by one period
        self.t_cycle = self.t_cycle + 1 # Age all consumers within their cycle
        self.t_cycle[self.t_cycle == self.T_cycle] = 0
Simulates one period for this type.  Calls the methods getMortality(), getShocks() or
        readShocks, getStates(), getControls(), and getPostStates().  These should be defined for
        AgentType subclasses, except getMortality (define its components simDeath and simBirth
        instead) and readShocks.

        Parameters
        ----------
        None

        Returns
        -------
        None