I am a graduate student in mathematics. I've been having a difficult relationship with my advisor, and I need some help on the matter.
Some background
When I just started my graduate studies, my advisor warned me that he tends to be strict, and that sometimes he can have anger outbursts. I thought (and still think) that a strict advisor would be good for me, and didn't think the mentioned anger issue would be as bad as it turned out to be.
In the beginning, our relationship was good and (professionally) friendly, and I looked forward to every meeting with him. Our discussions gave me motivation in my studies and research.
About half a year later, I was going through depression unrelated to academic issues (and started being treated by medications), and was completely unproductive and not concentrated on my work for a few of months, which my advisor was unhappy about. He said that he didn't care about my personal problems, didn't want to hear excuses, and that he expected me to work regardless. From that point on, our relationship completely changed. He stopped being nice and supportive, and started accusing me of not being serious and not working hard enough. This seems to have been the main trigger for his behaviour which I am to describe next.
The problem
If I don't get results, and try explaining that I've been working hard and just couldn't come up with a solution, my advisor starts yelling (yes, really yelling) that my progress is too slow, that he's sure he could have solved it in a month/week/hour himself if he tried, etc.
He also tends to interpret everything I say as a personal accusation, even though I always try to formulate my questions carefully and politely. For example, if I ask whether I should stick with a certain approach even after being unsuccessful for a while, he responds by yelling that he's an experienced researcher and that if he suggested it there must be a reason, and how dare I, a student, question anything he says.
A similar situation happened when I pointed out a mistake made by another researcher (and which was checked, per my request, by a third party after the incident). My advisor didn't check my claim thoroughly, and yelled that how dare I "accuse" a well-regarded researcher of making a mistake, and that it makes him angry that I "don't check my facts" before making such a claim, and compared me to mathematical cranks.
[To clarify: I pointed out the mistake in an email to my advisor, not in any arrogant way, and without involving anyone else at that point.]
It is difficult for me to work, because every time I'm stuck on something, I panic thinking about our next meeting and how he would yell at me again for lack of results. It also makes me look for "shortcuts" instead of really understanding what I'm studying for my research (even when those are basic things that he would agree I should understand) to save time.
When I explained to my advisor that this slows down my progress, he said that he's not a psychologist, and it's not his job to deal with my psychological problems.
Another problem is that almost all of our conversations revolve around my lack of progress and him yelling repeatedly the same things, while I'm trying to pull the conversation back to the math, as I need his help, and as there is no-one else working in this area at my university (and perhaps in the country). He had another graduate student who just graduated and switched to a different field, telling me that he would not continue for a PhD with this advisor because "he can't survive this psychological pressure for several more years".
I don't see a feasible option of switching advisors for the reason stated above, and also because based on his past PhD students and on what he told me, he could significantly help me in finding positions after I graduate. Also, I regard him as a good advisor in other aspects (much better than other advisors I know at our department), and I do believe that after all he cares and would help me if I made progress.
As much as possible, I would like to have a good relationship with him, and I definitely don't want to harm him in any way (such as reporting it - which would have been counter-productive anyway).
Our relationship quite reminds me of the movie "Whiplash" (without the physical abuse)...
Since the situation seems to have been worsening recently, I would very much appreciate some input on how to deal with this situation.