Como calcular o gradiente de uma célula com uma face limite?
Em muitas situações em solucionadores de malha não estruturados, é necessário calcular o gradiente de variável arbitrária $\phi$ como temperatura ou velocidade nos centros da face (uma dessas situações é a correção para a não ortogonalidade da malha), que pode ser aproximada como:
$$ \nabla \phi_f = (g_C \ \nabla \phi_C) + (g_F \ \nabla \phi_F)$$
Onde $C$ E $F$ são duas células adjacentes que compartilham o rosto $f$ e $g_C$ E $g_F$ são fatores de ponderação de interpolação.
Agora, $\nabla \phi_C$ e $\nabla \phi_F$ pode ser aproximado como o gradiente médio na célula, usando o teorema de Gauss-Green como: $$ \nabla \phi_C = \frac{1}{V_C} \sum_{faces} \phi_f \mathbf{S_f} $$
Onde $\mathbf{S_f}$ é o vetor normal do rosto no rosto $f$, e $V_C$ é o volume da célula.
o $\phi_f$ os valores das faces internas podem ser facilmente conhecidos.
- E se o rosto for um rosto limite e isolado? como conseguir$\phi_f$ nesse caso?
- E se a face tiver uma condição de limite fixa $\phi_{f} = \phi_{specified}$ (o que significa que a face tem apenas uma célula adjacente, portanto, a primeira equação de interpolação não pode ser usada), como calcular o gradiente na face nesse caso?
Respostas
Isenção de responsabilidade: não tenho 100% de certeza, mas achei que deveria fornecer minha solução de trabalho para o problema acima, para qualquer visitante futuro que possa ter as mesmas perguntas. A resposta é para um problema de difusão de temperatura constante.
E se o rosto for um rosto limite e isolado? como conseguir$\phi_f$ nesse caso?
Uma vez que uma face de limite está em contato com apenas uma célula, não podemos usar interpolação, mas uma vez que um limite isolado terá um gradiente zero $\nabla \phi=0$ em todas as suas faces e assumindo a variação linear entre o centróide da célula e o centróide da face, portanto, para uma célula arbitrária com um limite de face, pode-se escrever: $$ \phi_C = \phi_f + (r_C - r_f).\nabla \phi_f \implies \phi_C = \phi_f$$
E se a face tiver uma condição de limite fixa $\phi_{f} = \phi_{specified}$ (significando que a face tem apenas uma célula adjacente, portanto, a primeira equação de interpolação não pode ser usada), como calcular o gradiente na face nesse caso?
Novamente, uma vez que um perfil linear é assumido: $$ \nabla \phi_f = \frac{\phi_{specified} - \phi_C}{\|r_f - r_C\|} \hat{e}$$ Onde $\hat{e} = \frac{r_f - r_C}{\|r_f - r_C\|}$
Eu tentei isso em uma malha não-ortogonal não estruturada e a solução finalmente convergiu, tendo um bom acordo com laplacianFoam ( eu ainda não implementei a correção de assimetria, o que justifica o desvio do OpenFOAM (e iterações insuficientes) , e usei Gauss simples -Seidel Solver), e esta é a distribuição de temperatura da linha central