Hot News:

Unser Angebot:

  Foren auf CAD.de
  OpenFOAM
  Löser einbinden

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Löser einbinden (2072 mal gelesen)
Holzbasti
Mitglied
Student, Praktikant


Sehen Sie sich das Profil von Holzbasti an!   Senden Sie eine Private Message an Holzbasti  Schreiben Sie einen Gästebucheintrag für Holzbasti

Beiträge: 16
Registriert: 26.10.2012

OpenFOAM 2.3.0
Ubuntu 14.04 LTS 64-bit

erstellt am: 12. Sep. 2013 21:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


viscoelasticFluidFoam.zip


coupledMatrix.zip


lduSolvers.zip

 
Hallo miteinander,

ich soll und möchte gern ein viskoelastisches Material simulieren. Dazu haben ich bereits einen Löser gefunden, heißt viscoelasticFluidFoam. Den habe ich auch eingebunden bekommen.

Ich verwenden OpenFOAM 2.1.1 auf Ubuntu 12.04 LTS 64-bit.

Dieser Löser enthält auch Tutorials, die ich natürlich zuerste probierte. Da kommt das erste Problem:

Code:

--> FOAM FATAL IO ERROR:
Unknown asymmetric matrix solver BiCGStab

Valid asymmetric matrix solvers are :

4
(
BICCG
GAMG
PBiCG
smoothSolver
)


Nach einigem Suchen fand ich 1. heraus, dass dieser Löser eigentlich für OF 1.6-ext geschrieben wurde und 2. dass ich den Fehlenden Löser einfach mit BICCG ersetzen könnte.

Hab ich gemacht, klappt auch.

Nun habe ich mir aber gedacht, dass es vielleicht doch sinnvoll sein kann, die vorgegebenen Löser zu verwenden. Gesagt getan, Quellcode von OF 1.6-ext runtergeladen, besagtenn Löser gesucht und zwei Ordner gefunden.

Einmal (alle in src/) coupledMatrix und einmal lduSolvers.
Meine Idee war nun, die beiden Löser zu nehmen und in meine bestehende Installation einzufügen.
Dazu also beide Ordner in openfoam211/scr/ kopiert und in beiden Ordnern

Code:
wmake libso

ausgeführt.

Bei coupledMatrix erhalte ich folgende Meldungen:

Code:
root@Basti:/opt/openfoam211/src/coupledMatrix# wmake libso
SOURCE=coupledLduMatrix/coupledLduMatrix.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100 -I/opt/openfoam211/src/finiteVolume/lnInclude -IlnInclude -I. -I/opt/openfoam211/src/OpenFOAM/lnInclude -I/opt/openfoam211/src/OSspecific/POSIX/lnInclude  -fPIC -c $SOURCE -o Make/linux64GccDPOpt/coupledLduMatrix.o
In file included from coupledLduMatrix/coupledLduMatrix.C:36:0:
coupledLduMatrix/coupledLduMatrix.H:109:23: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.H:109:54: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.H:119:23: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.H:119:54: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.H:129:23: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.H:129:54: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.H:139:23: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.H:139:54: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.C:118:11: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.C:118:42: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.C: In Elementfunktion »void Foam::coupledLduMatrix::Amul(Foam::FieldField<Foam::Field, double>&, const Foam::FieldField<Foam::Field, double>&, const Foam::PtrList<Foam::FieldField<Foam::Field, double> >&, const int&, Foam::Direction) const«:
coupledLduMatrix/coupledLduMatrix.C:139:24: Fehler: »const class Foam::lduMatrix« hat kein Element namens »AmulCore«
coupledLduMatrix/coupledLduMatrix.C: Im globalen Gültigkeitsbereich:
coupledLduMatrix/coupledLduMatrix.C:159:11: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.C:159:42: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.C: In Elementfunktion »void Foam::coupledLduMatrix::Tmul(Foam::FieldField<Foam::Field, double>&, const Foam::FieldField<Foam::Field, double>&, const Foam::PtrList<Foam::FieldField<Foam::Field, double> >&, const int&, Foam::Direction) const«:
coupledLduMatrix/coupledLduMatrix.C:180:24: Fehler: »const class Foam::lduMatrix« hat kein Element namens »TmulCore«
coupledLduMatrix/coupledLduMatrix.C: Im globalen Gültigkeitsbereich:
coupledLduMatrix/coupledLduMatrix.C:198:11: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.C:198:42: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.C: In Elementfunktion »void Foam::coupledLduMatrix::initMatrixInterfaces(const Foam::PtrList<Foam::FieldField<Foam::Field, double> >&, const int&, const Foam::FieldField<Foam::Field, double>&, Foam::FieldField<Foam::Field, double>&, Foam::Direction) const«:
coupledLduMatrix/coupledLduMatrix.C:211:28: Fehler: ungültige Typen »const int[Foam::label {aka int}]« für Feldindex
coupledLduMatrix/coupledLduMatrix.C: Im globalen Gültigkeitsbereich:
coupledLduMatrix/coupledLduMatrix.C:223:11: Fehler: »lduInterfaceFieldPtrsListList« bezeichnet keinen Typ
coupledLduMatrix/coupledLduMatrix.C:223:42: Fehler: ISO-C++ verbietet Deklaration von »interfaces« ohne Typ [-fpermissive]
coupledLduMatrix/coupledLduMatrix.C: In Elementfunktion »void Foam::coupledLduMatrix::updateMatrixInterfaces(const Foam::PtrList<Foam::FieldField<Foam::Field, double> >&, const int&, const Foam::FieldField<Foam::Field, double>&, Foam::FieldField<Foam::Field, double>&, Foam::Direction) const«:
coupledLduMatrix/coupledLduMatrix.C:236:28: Fehler: ungültige Typen »const int[Foam::label {aka int}]« für Feldindex
make: *** [Make/linux64GccDPOpt/coupledLduMatrix.o] Fehler 1

und bei lduSolvers

Code:
root@Basti:/opt/openfoam211/src/lduSolvers# wmake libso
SOURCE=lduPrecon/CholeskyPrecon/CholeskyPrecon.C ;  g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-100  -IlnInclude -I. -I/opt/openfoam211/src/OpenFOAM/lnInclude -I/opt/openfoam211/src/OSspecific/POSIX/lnInclude  -fPIC -c $SOURCE -o Make/linux64GccDPOpt/CholeskyPrecon.o
In file included from lduPrecon/CholeskyPrecon/CholeskyPrecon.C:36:0:
lduPrecon/CholeskyPrecon/CholeskyPrecon.H:56:1: Fehler: expected class-name before »{« token
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:45:5: Fehler: »lduPreconditioner« bezeichnet keinen Typ
lduPrecon/CholeskyPrecon/CholeskyPrecon.C: In Elementfunktion »void Foam::CholeskyPrecon::calcPreconDiag()«:
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:56:9: Fehler: »matrix_« wurde in diesem Gültigkeitsbereich nicht definiert
lduPrecon/CholeskyPrecon/CholeskyPrecon.C: In Konstruktor »Foam::CholeskyPrecon::CholeskyPrecon(const Foam::lduMatrix&, const Foam::FieldField<Foam::Field, double>&, const Foam::FieldField<Foam::Field, double>&, const lduInterfaceFieldPtrsList&, const Foam::Dictionary&)«:
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:90:5: Fehler: Klasse »Foam::CholeskyPrecon« hat keinen Feldnamen »lduPreconditioner«
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:97:17: Fehler: »matrix_« wurde in diesem Gültigkeitsbereich nicht definiert
lduPrecon/CholeskyPrecon/CholeskyPrecon.C: In Konstruktor »Foam::CholeskyPrecon::CholeskyPrecon(const Foam::lduMatrix&, const Foam::FieldField<Foam::Field, double>&, const Foam::FieldField<Foam::Field, double>&, const lduInterfaceFieldPtrsList&)«:
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:111:5: Fehler: Klasse »Foam::CholeskyPrecon« hat keinen Feldnamen »lduPreconditioner«
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:118:17: Fehler: »matrix_« wurde in diesem Gültigkeitsbereich nicht definiert
lduPrecon/CholeskyPrecon/CholeskyPrecon.C: In Elementfunktion »virtual void Foam::CholeskyPrecon: :tongue:recondition(Foam::scalarField&, const scalarField&, Foam::Direction) const«:
lduPrecon/CholeskyPrecon/CholeskyPrecon.C:144:9: Fehler: »matrix_« wurde in diesem Gültigkeitsbereich nicht definiert
make: *** [Make/linux64GccDPOpt/CholeskyPrecon.o] Fehler 1

.

Beide enden mit Fehler 1, also nicht so, wie es sollte. Der Test zeigte auch die gleiche Fehlermeldung wie am Anfang.

Kann mir jemand sagen, wie ich den Löser zum Laufen bringen kann?

Vielen Danke,
Holzbasti

Nochmal mein System: OpenFOAM 2.1.1, Ubuntu 12.04 LTS 64-bit
Im Anhang findet sich der viskoelastische Löser (gibt's auch über die Googlesuche) und die beiden Ordner (aus OF 1.6-ext) samt Löser um die es geht.

[Diese Nachricht wurde von Holzbasti am 12. Sep. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

erstellt am: 13. Sep. 2013 08:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Holzbasti 10 Unities + Antwort hilfreich

Das g eht nicht so einfach.

Du benötigst dabei eine Anpassung der Solver auf die OF-2.1 Struktur.
Von 1.x auf 2.x haben sich einige Klassen geändert etc. entsprechend müsstest du das alles abändern, was zu ändern wäre.

An deiner Stelle würde ich andere Berechnungslöser verwenden.

------------------
Grüße Tobias Holzmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Holzbasti
Mitglied
Student, Praktikant


Sehen Sie sich das Profil von Holzbasti an!   Senden Sie eine Private Message an Holzbasti  Schreiben Sie einen Gästebucheintrag für Holzbasti

Beiträge: 16
Registriert: 26.10.2012

OpenFOAM 2.3.0
Ubuntu 14.04 LTS 64-bit

erstellt am: 13. Sep. 2013 13:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Achso. Schade. Aber danke für die Antwort.

Gibt es eine andere Möglichkeit an den BICGStab Solver zu kommen? Ist der in irgendeiner 2.xer Version enthalten?

Viele Grüße,
Holzbasti

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

erstellt am: 16. Sep. 2013 12:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Holzbasti 10 Unities + Antwort hilfreich

Hallo Basti,

bist du auf diese Methode den angewiesen? Wieso verwendest du keine andere?

Irgendwie gibt's sicher ne andere Möglichkeit zum Beispiel du findest jemanden der es bereits in OF-2.2 implementiert hat und den Quellcode offenlegt.

Ansonsten musst du es halt selber machen oder eine andere Methode verwenden.

In deinem Fall eben möglicherweise: PBiCG

------------------
Grüße Tobias Holzmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ulrich Heck
Mitglied
OpenFOAM Tool Entwicklung


Sehen Sie sich das Profil von Ulrich Heck an!   Senden Sie eine Private Message an Ulrich Heck  Schreiben Sie einen Gästebucheintrag für Ulrich Heck

Beiträge: 291
Registriert: 08.09.2003

CastNet (DHCAE Tools)
OpenFOAM
CalculiX

erstellt am: 17. Sep. 2013 08:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Holzbasti 10 Unities + Antwort hilfreich

Hallo zusammen,
in der Windows-OpenFOAM Portierung von BlueCape ist der viskoselastische Solver drin (OF-version 2.1).
Vielleicht hilft das Orientierung und Einstieg
http://joomla.bluecape.com.pt/index.php?option=com_content&task=view&id=18&Itemid=30&lang=en

Wir arbeiten auch intensiver mit dem viskoelastischen Solver (eigene 2.2-Portierung), man muss aber relativ viel Hand anlegen, d.h. individuelle OpenFOAM Anpassungen vornehmen, was aber eher im Strömungsverhalten begründet ist als das OpenFOAM das nicht könnte. So viel als Warnung vorweg.

Gruß

Ulrich

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

erstellt am: 17. Sep. 2013 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Holzbasti 10 Unities + Antwort hilfreich

Hallo Ulrich,

danke für die Information.
Ich bewege mich nicht in der viskoelastischen CFD aber bezüglich den Methoden

Code:

PBiCG
BiCGStab

Letzteres ist doch eigentlich numerisch stabiler. Beide Methoden sollten aber zum gleichen Ergebnis führen, oder?

------------------
Grüße Tobias Holzmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ulrich Heck
Mitglied
OpenFOAM Tool Entwicklung


Sehen Sie sich das Profil von Ulrich Heck an!   Senden Sie eine Private Message an Ulrich Heck  Schreiben Sie einen Gästebucheintrag für Ulrich Heck

Beiträge: 291
Registriert: 08.09.2003

CastNet (DHCAE Tools)
OpenFOAM
CalculiX

erstellt am: 17. Sep. 2013 13:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Holzbasti 10 Unities + Antwort hilfreich

Hallo Tobias,

ja, das haben wir überprüft. Zumindest für unsere Fälle gab es keine Abhängigkeit bzgl. der Stabilität oder Ergebnisqualität bei Verwendung des BiCStab oder ohne.

Gruß

Ulrich

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Holzbasti
Mitglied
Student, Praktikant


Sehen Sie sich das Profil von Holzbasti an!   Senden Sie eine Private Message an Holzbasti  Schreiben Sie einen Gästebucheintrag für Holzbasti

Beiträge: 16
Registriert: 26.10.2012

erstellt am: 18. Sep. 2013 13:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallöchen,

erstmal danke für eure Antworten.

Wie gesagt, mit BICCG klappt es, mit PBiCG gibt es Probleme mit dem preconditioner und dann wieder mit dem löser und dann mit dem agglomerator.
Es war nur eine Idee, um sich ein wenig Aufwand zu sparen und so nicht so viel am Beispiel ändern muss.

Eine Portierung  nach OF 2.x.y habe ich nicht finden können.

Ich habe in BlueCFD (Single-core) keinen viskoelastischen Löser gefunden. Das prinzipielle Einbinden in OF 2.1.1 (unter Ubuntu) war aber kein Problem. Wie gesagt, nur der Löser fehlte.

Ich werde dann wohl mit BICCG arbeiten. Wenn der genauso stabil, bzw. genau das gleiche macht, ist das ja kein Problem.

Viele Grüße,
Basti

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz