Autor
|
Thema: Tracer in OpenFoam (669 mal gelesen)
|
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 02. Sep. 2021 15:03 <-- editieren / zitieren --> Unities abgeben:
Hi Leute, Ich habe leider mal wieder ein Problem. Ich will eine Strömung um ein Objekt tracen. Habe schon viel ausprobiert. Am besten bis jetzt finde ich den Ansatz mit den kinematicCloud (langrangian tracer mit Partikeln). Mein tracer soll nicht diffusiv sein so wie beim passive scalar (Bakterien sind das wohl nicht ). Das ganze klappt auch ganz gut, wenn ich die Partikel an einem Patch oder manuell über eine Liste erstelle. Am liebsten wäre es mir aber die initiale Position, wo die Partikel erstellt werden sollen, also über eine definierte CellZone. Die CellZone habe ich mit topoSet definiert. Dummerweise bekomme ich immer diesen Fehler: Number of particles to be added to cellZone zone1 is zero (laut C file: soll der Fehler auftreten wenn das vorliegt woraus ich aber nicht schlau werde ????
Code:
//============================================================================= if ((nCellsTotal == 0) | | (VCellsTotal*numberDensity_ < 1)) { WarningInFunction << "Number of particles to be added to cellZone " << cellZoneName_ << " is zero" << endl; }) //============================================================================= Hat da jemand eine Idee???Mein toposetDict sieht so aus: //============================================================================= actions ( { name zone1_cellset; type cellSet; action new; source boxToCell; sourceInfo { box (0.008 0.008 0.005) (0.012 0.012 0.007); } } { name zone1; type cellZoneSet; action new; source setToCellZone; sourceInfo { set zone1_cellset; } } //=============================================================================
und der wesentliche Teil der kinematicCloudProperties sieht so aus: Code:
model1 { type cellZoneInjection; cellZone zone1; // Name of cellZone SOI 0; // Start Of Injection //flowRateProfile constant 1; // Flow rate profile relative to SOI parcelBasisType fixed; // How are the number of particles calculated nParticle 1; numberDensity 0; // numberDensity multiplied by cellZoneVolume gives the number of particles to be injected duration 5e-5;///5e-5; //cellZoneInjection through this manner is a one time injection, i.e., all the particles will be injected at once U0 (0 0 0); //initial velocity of the particles upon injection massTotal 0;//24e-3; // Total mass injected over injection duration sizeDistribution { type fixedValue; fixedValueDistribution { value 0.000101; // diameter of particles } } } //=============================================================================
Wie immer bin ich über jegliche Hilfe dankbar !!! LG H Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 02. Sep. 2021 16:10 <-- editieren / zitieren --> Unities abgeben:
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 03. Sep. 2021 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Guten Morgen, soweit ich das sehe ist folgendes Dein Problem:
Code:
numberDensity 0; // numberDensity multiplied by cellZoneVolume gives the number of particles to be injected
Wenn das auf 0 ist, dann sind auch die Parcels die in das System kommen = 0. Das erklärt zumindest in der If-Anweisung das zweite Argument. Das erste nTotalCells kann ich jetzt nicht beurteilen weil ich nicht weiß, wie dieser Integer berechnet wird. Könnte natürlich schnell nachschauen aber muss grad anderes machen ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 03. Sep. 2021 12:01 <-- editieren / zitieren --> Unities abgeben:
Hi Tobi, schöne von Dir zu hören !!! Vielen Dank !!! Ja number of density wäre schon der richtige Ansatz aber das kappt auch nicht ... immer der gleiche Fehler ... es wäre schon cool die point cloid über die cellZones reinzbekommen ... aber ich bekomme einfach keine Partikel rein ... nicht mal eine ganz egal welche Werte ich da eintrage, extrem kleine, extrem große, keine Chance ... das nervt ... naja kennst Du ja )) aus Ehrgeiz werde ich es noch weiter versuchen, ansonsten werde ich es über eine vorgegebene pointcloud machen ... mal sehen, wie das klappt ... Vielen Dank !!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 08. Sep. 2021 13:52 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Hast Du einen Test-case. Ich hab grad einiges zu tun, da ich die OF Tutorials auf meiner Seite für die v9 upgrade und da gibts auch ein paar Änderungen. Zum Debuggen kannst auch ganz einfach mal folgendes machen: Code:
Info<< "nCellsTotal: " << nCellsTotal << endl; Info<< "numberDensity: " << numberDensity_ << endl; Info<< "Volumen: " << VCellsTotal << endl;if ((nCellsTotal == 0) | | (VCellsTotal*numberDensity_ < 1))
-> Neukompilieren der Lib und Starten des Solvers. Was mich noch stört ist deine "massTotal". Ist auch Null. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 08. Sep. 2021 15:11 <-- editieren / zitieren --> Unities abgeben:
Hi, kein Stress ich versuche das gerade mit der manual injection, in dem ich eine Punktwolke vorgebe ... das klappt zum Glück ... nur irgendwie scheint das System überhaupt nicht auf die Masse zu reagieren ... aber mit paraview so wie ich gelernt habe geht es auch nur etwas viel geklicke ... ich vergleiche gerade die Ergebnisse bzw. plotte mir das ganze um die Verweilzeiten zu berechnen ... das mit dem cellset haut gar nicht hin wie kann ich Dir denn einen Case zukommen lassen? Kompilierung mache ich klar !!! achso bin auf of 2012 umgestiegen da die lagr. particle cloud mit of 9 irgendwie blöd zu visualisieren ist ... LG und DANKE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 09. Sep. 2021 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
|
Shor-ty Moderator
Beiträge: 2463 Registriert: 27.08.2010 OpenFOAM-dev (Foundation) OpenFOAM-xxxx (ESI)
|
erstellt am: 09. Sep. 2021 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Deinen Case hab ich wie folgt gestartet:
- blockMesh
- topoSet (mit modifiziertem TopoSetDict)
- pisoFoam
Output:
Code:
Solving3-D cloud kinematicCloud Cloud: kinematicCloud injector: model1 Added 26901 new parcels Cloud: kinematicCloud Current number of parcels = 26901 Current mass in system = 1 Linear momentum = (1.7719e-14 4.36414e-14 0.00236902) |Linear momentum| = 0.00236902 Linear kinetic energy = 2.80613e-06 Average particle per parcel = 3413.26 Injector model1: - parcels added = 26901 - mass introduced = 1 Parcel fate: system (number, mass) - escape = 0, 0 Parcel fate: patch (ffminx|ffmaxx|ffminy_front|ffminy_back|sphere) (number, mass) - escape = 0, 0 - stick = 0, 0 Parcel fate: patch (ffmin_z_top|ffmin_z_bottom) (number, mass) - escape = 0, 0 - stick = 0, 0 Rotational kinetic energy = 0
ESI Version 2106 ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 12. Sep. 2021 09:20 <-- editieren / zitieren --> Unities abgeben:
|