Autor
|
Thema: Koordinaten der Faces - Face centre (2085 mal gelesen)
|
BennoB Mitglied Promotionsstudent
Beiträge: 4 Registriert: 21.07.2010 Ubuntu 8.04
|
erstellt am: 01. Jul. 2011 17:53 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, kann jemand erklären, wie die Koordinaten der Oberflächen bei einer Boundary berechnet werden? Nach dem Programmers Guide S. 33 kann mit dem Befehl Cf() die "face centre" an einer bestimmten Boundary herausschreiben: vectorField M = mesh.Cf().boundaryField()[patchID]; Ich erhalte dann ein Vektorfeld M mit Vektoren, die jeweils die Koordinaten der Face Centre angeben. Weiß nun jemand, wie die Face Centre berechnet werden? Sind das zufällig die Flächenschwerpunkte? Beste Grüße Benno
------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 04. Jul. 2011 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für BennoB
|
BennoB Mitglied Promotionsstudent
Beiträge: 4 Registriert: 21.07.2010 Ubuntu 8.04
|
erstellt am: 04. Jul. 2011 19:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, vielen Dank für die Antwort. Das hilft mir erstmal weiter. Weiß zusätzlich noch jemand, wo man den Berechnungscode für die Flächenschwerpunkte findet? Oder kennt jemand eine Referenz, auf die ich verweisen kann? Beste Grüße Benno Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 04. Jul. 2011 21:21 <-- editieren / zitieren --> Unities abgeben: Nur für BennoB
Hi, Nichts leichter als das: "Face.C". Es gilt beim Dreieck: S = 1/3 * (A + B +C)
Code:
Foam: Point Foam::face::centre(const pointField& points) const { // Calculate the centre by breaking the face into triangles and // area-weighted averaging their centres const label nPoints = size(); // If the face is a triangle, do a direct calculation if (nPoints == 3) { return (1.0/3.0) *( points[operator[](0)] + points[operator[](1)] + points[operator[](2)] ); } .... }
Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BennoB Mitglied Promotionsstudent
Beiträge: 4 Registriert: 21.07.2010 Ubuntu 8.04
|
erstellt am: 11. Jul. 2011 17:21 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für die Antwort. Wieso jedoch wird durch den Befehl "mesh.Cf().boundaryField()[patchID];" der andere Befehl "Face.C" aufgerufen? Wo finde ich den Zusammenhang? Beste Grüße Benno Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TTB Mitglied CFD Engineer
Beiträge: 353 Registriert: 02.10.2008 BIM HVACTool für Windows OpenFOAM-2.2.x
|
erstellt am: 14. Jul. 2011 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für BennoB
Hallo, um den genauen Zusammenhang zu bestimmen, müsst man jeden Aufruf verfolgen. Ich habe es gerade mal auf die schnelle versucht und bin auf einer anderen Datei gestoßen, die auch den Flächenschwerpunkt berechnet, aber Pointer verwendet... Code:
Cf() -> makeCf() -> faceCentres() -> calcFaceCentresAndAreas() -> makeFaceCentresAndAreas
Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |