Autor
|
Thema: Dynamic Mesh (577 mal gelesen)
|
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 14. Jul. 2021 14:27 <-- editieren / zitieren --> Unities abgeben:
Hi Leute, ggf kann mir jemand helfen. Ich möchte zwei Objekte aneinander vorbeifahren lassen. Ähnlich einer Kollision. Dazu habe ich den sixDoFRigidBodyMotion solver und das dynamic mesh verwendet. Dem Objekt habe ich dann eine lineare Geschwindigkeit gegeben und das ganze scheint zu laufen. Dummerweise verzerrt das mesh so stark dass sie Simulation abbricht ... Hat jemand eine Idee wie das klappen könnte... Habe ich etwas übersehen ??? 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: 14. Jul. 2021 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
|
hulli1 Mitglied
Beiträge: 61 Registriert: 23.01.2020 --
|
erstellt am: 14. Jul. 2021 19:34 <-- editieren / zitieren --> Unities abgeben:
Hi Tobi, vielen Dank ... das hatte ich schon gegoogled aber da das nicht in der of8 Version dabei ist, sondern nur bei den 20xx hatte ich versucht das anders zu lösen ... dann werde ich das morgen gleich mal kompilieren ... alles klar mal wieder vielen vielen DANK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli Mitglied
Beiträge: 54 Registriert: 20.11.2017 openFoam
|
erstellt am: 15. Jul. 2021 14:14 <-- 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: 15. Jul. 2021 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Das is eigentlich ganz einfach: - Erstellung eines Netzes (background-mesh in overset genannt) - Erstellung des Objektes das sich bewegt Beides kann man mit snappy vernetzen und dann zusammenbauen. Geht super easy und läuft recht stabil. Es gibt da ein Tutorial "mesh-hole" oder sowas in der Art. Ist quasi eine Zylinderumströmung in dem das Grundnetz komplett ohne Zylinder ist und dann gibt es ein zweites Netz, in dem das Loch drin ist. Beide werden anschließend (soweit ich mich noch entsinne) gemerged (man erhält dann glaub für jedes Netz eine Zone). Die Zone verwendet man dann um der overset Library zu sagen was was ist. Mit den Ziffern 0 und 1. Ich weiß das nicht mehr ganz so genau, weil ich das nur mal getestet hatte. Aber das Tutorial is eigentlich genau das was man braucht. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli Mitglied
Beiträge: 54 Registriert: 20.11.2017 openFoam
|
erstellt am: 15. Jul. 2021 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Moin Tobi, vielen vielen Dank für den Tipp!!! Also den einzigen case in den tutorials mit einem snappyhexmesh ist der aerofoil case ... das scheint die Blaupause zu sein die ich brauche!!! Den case den Du meintest ist glaube ich der cylinder case ... Was ich nun nicht verstehe wie ich im dynamicMeshdict eine motion zuweise denn wenn ich das aus den rotor case copy/paste: solver multiSolidBodyMotionSolver; multiSolidBodyMotionSolverCoeffs { movingZone { solidBodyMotionFunction rotatingMotion; rotatingMotionCoeffs { origin (0.005 0.005 0.005); axis (0 0 1); omega 100.0; } } } dann kommt of mit folgender Meldung: -->> Cannot find cellZone named c0. Valid zones are () Das checke ich nicht da die regions doch imt setFields gesetzt werden??? Hast Du wir da auch noch n kleinen Tipp 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: 15. Jul. 2021 17:35 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Also "Regionen" gibts in dem Sinne nicht. Das ist ein numerisches Netz mit Besonderheiten. Du brauchst die Cellzones der einzelnen Zonen (Netze). Die sind unter constant/polyMesh/cellZones. Falls da nix is, musst Du das eben erzeugen. Das Beispiel von Dir sucht nach ner cellZone mit dem Namen c0 (weiß nicht ob das irgendwo noch angegeben ist) aber eigentlich muss man den Namen noch angeben. ------------------ Glück Auf, Tobi OpenFOAM® Community - Knowledge Base Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli Mitglied
Beiträge: 54 Registriert: 20.11.2017 openFoam
|
erstellt am: 15. Jul. 2021 20:16 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Danke Danke … alles klar … ich muss das nochmals mit nem frischem Kopf durchgehen… ist zu warm… hast recht … das muss irgendwo stehen… sag Dir Bescheid wenn ich es herausgefunden habe … Merci!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hulli Mitglied
Beiträge: 54 Registriert: 20.11.2017 openFoam
|
erstellt am: 19. Jul. 2021 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für hulli1
Moin, Tobi erstmals Danke für Deine Tipps !!! falls jemand sonst das gleiche Problem hat: also es hat jetzt geklappt, um das ganz zu bewegen, muss man im toposetDict: ein cellZoneSet hinzufügen da die cellZones im polymesh ordner im case cylinder oder aerofoil leer sind { name zone1; type cellZoneSet; action new; source setToCellZone; set c1; } dann kann man im dynamicMeshdict so was reinkloppen: dynamicFvMesh dynamicOversetFvMesh; //motionSolverLibs (fvMotionSolvers); // //solver displacementLaplacian; // //displacementLaplacianCoeffs //{ // diffusivity uniform 1; //} solver multiSolidBodyMotionSolver; multiSolidBodyMotionSolverCoeffs { zone1 { solidBodyMotionFunction linearMotion; linearMotionCoeffs { velocity (0 0.5 0); } } } Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |