Step 1 Put the beans in a large pot and add 2 quarts water, one-half teaspoon salt and the epazote, if using. Bring to a boil, cover almost completely and simmer until the beans are tender, about 1 hour.
Step 2 In batches, puree the beans with 4 cups of the cooking liquid in a blender. Strain; discard the bean skins.
Step 3Roast the chiles on a grill just until fragrant, a few seconds. Do not allow them to burn (they burn rapidly). Remove and set aside for garnish. Roast the garlic, one onion half and the tomato until spotted with brown. Peel and core the tomato and puree in a blender with the garlic, onion and 1 1/2 cups of the chicken stock.
Step 4Heat the olive oil in a large saucepan over high heat. Add the tomato puree and cook for 5 minutes.
Step 5Add the remaining chicken stock, bring to a boil and boil for 2 minutes. Reduce the heat and cook, stirring occasionally, 15 minutes until slightly reduced. Add the strained black bean puree. Simmer for 45 minutes, skimming the surface occasionally. Season with 1 teaspoon salt.
Step 6Cut the tortillas in half and cut each half into thin strips. Heat one-half inch oil in a small skillet, add the tortilla pieces a few at a time and fry, turning at least once, for about 3 minutes or until golden brown. Remove from the oil with a slotted spoon and drain on paper towels.
Step 7Cut the chiles into one-eighth-inch-thick strips and remove the seeds. Coarsely chop the cilantro and finely dice the remaining onion half.
Step 8To serve, add tortilla strips, cilantro and onions to each bowl of soup. Garnish each with a few rings of ancho chile and queso fresco.