docs: def __update_layer_density(self):
          """calculate or update the layer density"""
          _stack = self.stack
          _density_lock = self.density_lock
          list_compound = _stack.keys()
          for _key in list_compound:
              if _density_lock[_key]:
                  continue
  
              _list_ratio = _stack[_key]['stoichiometric_ratio']
              _list_density = []
              for _element in _stack[_key]['elements']:
                  _list_density.append(_stack[_key][_element]['density']['value'])
                  _compound_density = _utilities.get_compound_density(list_density=_list_density,
                                                                      list_ratio=_list_ratio)
  
              _stack[_key]['density']['value'] = _compound_density
          self.stack = _stack