FEM: singularidad de la matriz de rigidez.

11

Estoy resolviendo la ecuación diferencial con condiciones iniciales u (0) = u (1) = 0 , u '' (0) = u '' (1) = 0 . Aquí \ sigma (x) \ geqslant \ sigma_ {0}> 0 es el parámetro. En forma de operador podemos reescribir la ecuación diferencial como Au = f , donde el operador A es definitivo positivo.

(σ2(x)u(x))=f(x),0x1
u(0)=u(1)=0u(0)=u(1)=0σ(x)σ0>0Au=fA

Siguiendo el esquema FEM, reduzco mi problema a un problema de optimización J (u) = (Au, u) - 2 (f, u) \ to \ min_ {u} Introduzco

J(u)=(Au,u)2(f,u)minu
elementos finitos hk(x) como
vk(x)={1(xxkh)2,x[xk1,xk+1]0,otherwise
para cualquier k=1,,n1 , donde xk=hk , h=1n . Los elementos finitos v0(x) y vn(x) se introducen de manera similar.

Intento encontrar numéricamente el vector α modo que u(x)=k=0nαkvk(x) resuelva el problema de optimización. Tenemos

J(u)=i=0nj=0nαiαj(Avi,vj)i=0n2αi(vi,f)=αTVα2αTbminα,
donde bi=(f,vi) y Vi,j=(Avi,vj) . Después de la diferenciación con respecto a α , recibo
Vα=b,
pero aquí la matriz de rigidez V es singular. ¿Entonces qué tengo que hacer? ¿Tal vez tengo que elegir otros elementos finitos?
Apliques
fuente
Hola, Nimza, ¿tienes un problema de prueba que conoces la solución exacta? En caso afirmativo, intente resolver VTVα=VTb primero para probar si su base es correcta dentro del dominio, si todo parece correcto, entonces tal vez sea el BC incorrectamente planteado la matriz singular. Pero el BC me parece bien.
Shuhao Cao

Respuestas:

13

En orden decreciente de probabilidad

  1. Base incorrecta Según su descripción, parece que tiene exactamente dos funciones cuadráticas con soporte en cada elemento. Ese espacio no es una partición de la unidad y no es (primeras derivadas continuas). Para discretizar su problema de cuarto orden directamente (en lugar de reducirlo a un sistema de ecuaciones de segundo orden, por ejemplo), necesitará una base . Tenga en cuenta que la base debería poder reproducir exactamente todas las funciones lineales.C1C1C1

  2. Condiciones de contorno insuficientes. Esto será evidente si calculas y trazas el espacio nulo.

  3. Montaje incorrecto Verifique el mapa desde los elementos hasta el orden ensamblado para confirmar que es lo que esperaba, por ejemplo, que no está invirtiendo la orientación de los elementos.

  4. Montaje local incorrecto. En 1D, puede calcular analíticamente el aspecto de la matriz de rigidez del elemento (tal vez para un caso simplificado) y verificar que el código la reproduce.

Jed Brown
fuente
Gracias. 1. Creo que necesitaré una base porque . Entonces, si considero solo las funciones que satisfacen las condiciones de contorno, entonces . C2(Au,v)=01σ2(x)u(x)v(x)dxkerA={0}
Aplique
1
Una base es suficiente, el integrando no necesita ser continuo. Tenga en cuenta que las condiciones de frontera en las segundas derivadas se convertirán en una integral de frontera. Puede usar una base para la discretización directa de un problema de cuarto orden, pero necesitará integrar términos de salto como con los métodos discontinuos de Galerkin para sistemas de primer y segundo orden. No es un mal método, pero es innecesariamente complicado en 1D porque es muy fácil construir bases con cualquier orden de continuidad (por ejemplo, splines). Este artículo es un ejemplo de " DG". C1C0C0
Jed Brown
Okay. Corregí mi base: ahora en e . Ahora es . Pero el método aún no funciona. vk(x)=cos2(π2h(xxi))[xi1,xi+1]i=1,,n1C1
Aplicación el
La base debería poder reproducir funciones lineales, pero esto no puede. Una vez que arregle eso, verifique que las integrales se realicen correctamente, luego verifique las condiciones de contorno. C1
Jed Brown
0

Claramente, el problema tiene una derivada de orden ODD. Más específicamente para números de Péclet más grandes , la matriz de rigidez podría no mantener una forma 'fina', lo que crea ceros durante el ensamblaje y, por lo tanto, obtiene un determinante singular o, a veces, muy pequeño, que son notables por las oscilaciones en el diagrama de solución.

La solución a este tipo de problema es el uso de la penalización, entre otros métodos. Más específicamente, esto se llama método Petrov-Galerkin .

Perdón por mi mala comprensión del inglés.

Sohail Ahmed
fuente