Does `PCDPC` actually implement DCP rather than PCD??

Abierto
#5,486 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
hpc

Línea de trabajo

Read firedrake/preconditioners/pcd.py, especially the docstring near lines 13–22 and the implementation near lines 124–128. Compare both operator orderings with equation 4.13 in the cited Elman et al. reference, then determine whether the code, documentation, or both are inconsistent. Done means the PCD definition and its implementation agree with the reference.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug straightforward

The PCD preconditioner implements the pressure-convection-diffusion preconditioner from Elman et al 2006

$$
S \approx K F^{-1} M
$$

Where $K$ is a diffusion operator, $F$ is an advection-diffusion operator on the pressure space, and $M$ is the pressure mass matrix.

The preconditioner should apply the inverse (equation 4.13 in the reference above):

$$
S^{-1} \approx M^{-1} F K^{-1}
$$

However, both the docstring and the code write the inverse as:

$$
S^{-1} \approx K^{-1} F M^{-1}
$$

https://github.com/firedrakeproject/firedrake/blob/2bfed39d4dfa617dd677ceafe2a880d7057c0d69/firedrake/preconditioners/pcd.py#L13-L22

https://github.com/firedrakeproject/firedrake/blob/2bfed39d4dfa617dd677ceafe2a880d7057c0d69/firedrake/preconditioners/pcd.py#L124-L128

Lenguaje dominante
Python
Estrellas
684
Forks
204
Merge medio
4 d 14 h
PR fusionados (30 d)
46

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de firedrakeproject/firedrake

Todos los issues de firedrakeproject/firedrake

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.