In Lagrange, Ohio, Curtis LaForche (Michael Shannon) has apocalyptic dreams, and visual and auditory hallucinations; of rain "like fresh motor oil", swarms of menacing black birds, and being harmed by people close to him. He hides all of this from his wife, Samantha (Jessica Chastain), and their deaf daughter Hannah (Tova Stewart). He instead channels his anxieties into a compulsive obsession to build a storm shelter in his backyard; however, his increasingly strange behavior -- including a tendency to cut ties with anyone in his life that has harmed him only in his dreams -- strains his relationship with his family, friends, employer, and the close-knit town. Curtis grudgingly sees a counselor at a free clinic, with whom he talks about his family's psychological history (his mother (Kathy Baker) suffers from paranoid schizophrenia that surfaced in her at about the same age that Curtis is now).
In order to get the expanded storm shelter done, Curtis breaks work rules by using equipment from his construction job at his house, and gets a home improvement loan he can ill afford to start building the shelter - all without telling his wife. Sam becomes angry when she discovers the project. After Curtis takes more than the prescribed dose of a sedative and suffers a seizure, Sam calls an ambulance. He recovers, then finally explains the truth to her, including his dreams.
Curtis begins to miss more work, causing tensions with his boss, as he and Sam make preparations for the cochlear implant surgery Hannah is to undergo in six weeks' time. Having been informed of the borrowed work equipment, Curtis's boss fires him and gives him only two weeks' worth of medical insurance benefits, after placing Dewart (Shea Whigham) (the close friend and co-worker whom Curtis asked to help him start construction of the shelter) on two weeks' unpaid administrative leave.
Curtis buys gas masks for his family, and extends his previous employer's health insurance policy for a few extra weeks. Finding that his counselor at the free clinic has suddenly transferred and been replaced with a new one, he walks out. Tensions linger between Curtis and Sam over his loss of a job/income at such a crucial time for their family. Sam gets Curtis to see an actual psychiatrist, and demands that they attend a social function so she can restore some sense of normalcy to their strained, increasingly isolated life. At a Lions Club community gathering, a bitter Dewart (who has been spreading a whispering campaign about Curtis being crazy) angrily provokes and punches Curtis. Curtis loses his temper and unleashes a frightening verbal tirade upon everyone at the Lions Club dinner. He prophetically shouts that a devastating storm is coming, insisting that none of them are prepared.
Later, a tornado warning sends him and his family into the shelter. After they awaken, Curtis reluctantly removes his gas mask, prompted by Samantha. They go to open the shelter doors, but he still hears a storm outside. His wife implores him, insisting that there's no storm and that he needs to open the door. After a tense standoff, Curtis throws open the doors into the blinding sun; a strong-but-bearable storm has passed, and neighbors are cleaning up broken tree limbs and other yard debris as power company trucks restore electricity along the street.
A psychiatrist advises the couple to go through with their planned, annual beach vacation; but that Curtis will need to get psychiatric care in a facility away from his family upon their return. At Myrtle Beach, while Curtis is building sand castles with Hannah, she signs the word "storm". As Samantha exits their beachhouse, the thick, oily rain that Curtis spoke of begins to fall, staining her outstretched hand. Sam looks up to a bigger version of the ominous storm clouds Curtis had seen, massing over the ocean; tornado-like waterspouts reach down to the ocean's surface, and the tide pulls back as a tsunami looms in the distance. Curtis and Sam exchange knowing glances.

Question: Where does Curtis learn of the apocalypse?
Answer: In his dreams