| | |
 | Deine FEM Schulung mit ANSYS , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: Koordinaten der Faces - Face centre (2175 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 |

| | Senior Engineer HVAC (m/w/d) Reinraumtechnik | Exyte ist weltweit führend in der Planung, Entwicklung und Lieferung von Anlagen für die Hightech-Industrie. Seit der Gründung vor mehr als 100 Jahren hat Exyte eine einzigartige Expertise für kontrollierte und regulierte Fertigungsumgebungen entwickelt. Das Unternehmen agiert auf der ganzen Welt und arbeitet mit den technisch anspruchsvollsten Kunden in Märkten wie der Halbleiter-, Batterie-, Biotech- oder Pharmaindustrie sowie im Bereich Datenzentren zusammen.... | | Anzeige ansehen | Feste Anstellung |
|
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 |