Respostas:
A resposta curta é: requer trabalho específico para diferentes equações, mas existem algumas técnicas gerais que sugerem como fazê-lo. Essencialmente, dada uma evolução de primeira ordem PDE
Onde como alguns operadores (possivelmente diferenciais), os estados estacionários são aqueles para os quais
É comum usar uma abordagem de divisão em que e são discretizados de maneiras diferentes. Em seguida, haverá erros de truncamento associados a cada uma dessas discretizações, e os erros de truncamento geralmente não serão cancelados, mesmo no caso de um estado estacionário. Um exemplo clássico (como mencionado na pergunta) são as equações de águas rasas com batimetria, nas quais representa termos convectivos e representa a força do momento devido à variável altura do fundo. Existem muitos artigos publicados nos últimos anos que oferecem maneiras diferentes de manter exatamente as soluções em estado estacionário.
Uma abordagem que eu gosto é o uso de solucionadores de onda F de Riemann, conforme proposto por Bale et. al. . A ideia é discretizar os termos convectivos com um método Godunov-tipo, mas para subtrair ao largo da contribuição dos outros termos dentro do solucionador de Riemann. Então, no caso do estado estacionário, nenhuma onda é gerada. No entanto, isso exige que os termos convectivos e de origem sejam calculados exatamente (para cancelar exatamente). Isso é possível para as equações de águas rasas, mas mais difícil para muitos outros sistemas.