Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  OpenFOAM
  Einfaches blockMesh zweier Quader funktioniert nicht

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
Autor Thema:  Einfaches blockMesh zweier Quader funktioniert nicht (2235 mal gelesen)
Walfleisch
Mitglied



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

Beiträge: 10
Registriert: 01.05.2014

erstellt am: 01. Mai. 2014 21:28    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


bild5.png

 
Hallo,
bin seit 2 Tagen an OpenFOAM dran und ich kriege es einfach nicht hin, 2 Quader selber zu vernetzen.
Ich weiß mittlerweile, dass die Reihenfolge der Vertices entscheidend für das lokale Koordinatensystem der Blocks ist.

Wenn ich dann die boundaries erstelle und die faces eingebe, muss ich hier auch bestimmte Reihenfolge der vertices beachten oder ist es egal???

Hier mein Beispiel der constant/blockMeshDict

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.3.0                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1.0;

vertices
(
  (0 0 0)
  (0.1 0 0)
  (0.1 0.1 0)
  (0 0.1 0)
  (0 0 0.1)
  (0.1 0 0.1)
  (0.1 0.1 0.1)
  (0 0.1 0.1)
  (0.5 0 0)
  (0.5 0.1 0)
  (0.5 0 0.1)
  (0.5 0.1 0.1)

);

blocks
(
    hex (0 1 2 3 4 5 6 7) (12 8 5) simpleGrading (1 1 1)
    hex (1 8 9 2 5 10 11 6) (12 12 5) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    Inlet
    {
        type patch;
        faces
        (
    (0 3 7 4) 
        );
    }
   
    Outlet
    {
        type patch;
        faces
        (
    (8 9 11 10)
        );
    }

    fixedWalls
    {
        type wall;
        faces
        (
    (5 6 11 10)
    (1 2 9 8)
    (0 3 2 1)
    (4 7 6 5)
        );
    }
    frontAndBack
    {
        type empty;
        faces
        (
    (6 11 9 2)
    (5 10 8 1)
    (3 7 6 2)
    (0 4 5 1)
        );
    }
);

mergePatchPairs
(
);

// ************************************************************************* //


Es sind 2 Quader, die über die Vertices 1 2 5 6 zusammenhängen. Alle anderen faces sind über Randbedingungen festgelegt.

In der Shell heißt es:

Code:

Check topology

        Basic statistics
                Number of internal faces : 1
                Number of boundary faces : 10
                Number of defined boundary faces : 10
                Number of undefined boundary faces : 0
        Checking patch -> block consistency

Creating block offsets
Creating merge list

--> FOAM FATAL ERROR:
Inconsistent number of faces between block pair 0 and 1

    From function blockMesh::calcMergeInfo()
    in file blockMesh/blockMeshMerge.C at line 221.

FOAM exiting


Inconsistent number of faces. Das versteh ich nicht, ich habe doch genau ein Face zwischen den beiden Blocks.
Im Anhang findet ihr eine Skizze mit der Nummerierung der Punkte.

Wo genau liegt mein Fehler?

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

slint
Mitglied
M.Sc. Schiffs- und Meerestechnik


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

Beiträge: 48
Registriert: 02.09.2012

OpenFOAM 2.3.x

erstellt am: 01. Mai. 2014 23:31    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 Walfleisch 10 Unities + Antwort hilfreich

Hallo,

ich habe mir dein blockMeshDict nicht genau angeschaut, aber den entscheidenden Fehler machst du in der Definition der Blöcke. Du kannst deinen ersten Block nicht 8 mal entlang der y-Achse unterteilen wenn du den zweiten Block 12 mal entlang der y-Achse unterteilen möchtest (gleiches gilt in deinem Fall für die Unterteilung in z-Richtung). Hier muss die Konsistenz stimmen 

Anbei die Lösung zu deinem Problem:

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.3.0                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      blockMeshDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
    (0 0 0)
    (0.1 0 0)
    (0.1 0.1 0)
    (0  0.1 0)
    (0 0 0.1)
    (0.1 0 0.1)
    (0.1 0.1 0.1)
    (0 0.1 0.1)
    (0.5 0 0)
    (0.5 0.1 0)
    (0.5 0 0.1)
    (0.5 0.1 0.1)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (12 12 5) simpleGrading (1 1 1)
    hex (1 8 9 2 5 10 11 6) (12 12 5) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 4 7 3)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (9 11 10 8)
        );
    }
    fixedWalls
    {
type wall;
  faces
(
    (0 3 2 1)
            (1 2 9 8)
    (5 10 11 6)
    (4 5 6 7)
);
    }
    frontAndBack
    {
        type patch;
        faces
        (
            (3 7 6 2)
            (2 6 11 9)
    (1 5 4 0)
            (8 10 5 1)
        );
    }
);

// ************************************************************************* //


Beste Grüße,
Robert

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

Walfleisch
Mitglied



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

Beiträge: 10
Registriert: 01.05.2014

erstellt am: 02. Mai. 2014 12:03    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 Walfleisch 10 Unities + Antwort hilfreich

Oh ich werd verrückt. Ich hab den Fehler immer bei der Definition der Faces gesucht und gar nicht bei der Diskretisierung.

Danke Robert.

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: 2463
Registriert: 27.08.2010

OpenFOAM-dev (Foundation)
OpenFOAM-xxxx (ESI)

erstellt am: 06. Mai. 2014 09:49    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 Walfleisch 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von slint:
[B]Du kannst deinen ersten Block nicht 8 mal entlang der y-Achse unterteilen wenn du den zweiten Block 12 mal entlang der y-Achse unterteilen möchtest (gleiches gilt in deinem Fall für die Unterteilung in z-Richtung). Hier muss die Konsistenz stimmen   


Hallo zusammen,

ich möchte hier nur für Anfänger etwas ergänzen:

Die Unterteilung und somit die Konsistenz der Zellen ist - wie oben beschrieben - einzuhalten. Es ist jedoch darauf zu achten, wie die Blöcke miteinander verbunden sind. Wäre die Kontaktebene auf z-x zurückzufürhen, ist der Nutzer frei bei der Wahl der y Diskretisierung.

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

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)2023 CAD.de | Impressum | Datenschutz