code: def parse_simple_fault_node(node, mfd_spacing=0.1, mesh_spacing=1.0):
      
      assert "simpleFaultSource" in node.tag
      sf_taglist = get_taglist(node)
      # Get metadata
      sf_id, name, trt = (node.attrib["id"],
                          node.attrib["name"],
                          node.attrib["tectonicRegion"])
      # Process geometry
      trace, dip, upper_depth, lower_depth = node_to_simple_fault_geometry(
          node.nodes[sf_taglist.index("simpleFaultGeometry")])
      # Process scaling relation
      msr = node_to_scalerel(node.nodes[sf_taglist.index("magScaleRel")])
      # Process aspect ratio
      aspect = float_(node.nodes[sf_taglist.index("ruptAspectRatio")].text)
      # Process MFD
      mfd = node_to_mfd(node, sf_taglist)
      # Process rake
      rake = float_(node.nodes[sf_taglist.index("rake")].text)
      simple_fault = mtkSimpleFaultSource(sf_id, name, trt,
                                          geometry=None,
                                          dip=dip,
                                          upper_depth=upper_depth,
                                          lower_depth=lower_depth,
                                          mag_scale_rel=msr,
                                          rupt_aspect_ratio=aspect,
                                          mfd=mfd,
                                          rake=rake)
      simple_fault.create_geometry(trace, dip, upper_depth, lower_depth,
                                   mesh_spacing)
      return simple_fault
docs: Parses a "simpleFaultSource" node and returns an instance of the :class:
      openquake.hmtk.sources.simple_fault.mtkSimpleFaultSource