For context, I’m an applied mathematics Ph.D student working in numerical analysis with a focus on probably convergent methods
At the start of my first project, I did a lot of reading of specific papers chosen by my advisor. I worked to build a codebase which could reproduce the results of the current state of the art methods and could be built upon for developing improved methods. For about a month or two my days consistent of writing code, testing the code for known benchmarks, and trying to find and read relevant ideas. Somewhere along the way I got lucky and stumbled upon a well known result from a different field which could be modified to fit our problem.
This idea was not the original project my advisor has set for me to do, so it became a bit disorganized. For about a year my days followed some form of this process: do some math on paper trying to figure out how to implement this new idea, implement what I had come up with and see what works and what didn’t, make reports for my advisor on what I’ve done and the results, have her explain why the problems are probably happening and offer some potential solutions.
For myself personally, I found that there are three types of work modes I had while doing research. There’s solving problems I know how to solve already. This is usually in the form of coding or doing some simple asymptotic analysis. Then there is solving problems I don’t know how to solve. This can be aided with computers to get an idea of what the answer should be, but often it’s just banging your head against a wall. This can also involve talking to colleagues, mentors, reading papers, etc. The final mode is trying to solve problems that you don’t know that you’re trying to solve. This is often the most fun part of research, but I’ve found I really have to limit myself here because it’s easy to “lose yourself” (being a grad student usually leads to having lots of time constraints and not a lot of time to waste). This process is usually sparked by conversation, talks, or reading (though sometimes a random idea just pops into your head), and often involves rapidly writing or coding an idea for preliminary testing without much of an idea of where the results will take you. For example, I may come across a result that allowed someone to compute a specific quantity in a “fast” way. This quantity may be related to a quantity I need to compute, so I’d try to modify what they’ve done to fit what I need to do.
Now that I’m further into my program, my days are a bit more organized. I have some material I’m trying to learn, so I have daily time set aside for working through that. A lot of my days go to writing up the work I’ve done for my thesis and publication. The same sort of iterative process I described above still happens, though now sometimes my advisor comes to me with problems.
Hope this gives some insight!