2016-04-25 11 views
1

Ich muss Dirichlet- und Neumann-Bedingungen in einem einfachen Spannungsproblem definieren nur auf Teil einer der Kanten einer Platte. Matlab help für nicht konstante Randbedingungen definiert, zeigt an, dass Funktionen wie geschrieben werden müssen:Nichtkonstante Randbedingungen "teilweise" an einer Kante definieren - MATLAB

applyBoundaryCondition(model,'edge',1,'r',@myrfun); 
applyBoundaryCondition(model,'face',2,'g',@mygfun,'q',@myqfun); 
applyBoundaryCondition(model,'edge',[3,4],'u',@myufun,'EquationIndex',[2,3]); 

Er sagt außerdem, dass jede Funktion die folgende Syntax haben muss.

function bcMatrix = myfun(region,state) 

und schließlich, dass " Region" ist eine Struktur, die Felder region.x (x-Koordinate der Punkte) enthält, region.y (y-Koordinate der Punkte), usw. Wenn es Neumann-Bedingungen gibt (was mein Fall ist), dann geben Solver die folgenden Daten in der Regionsstruktur weiter: region.nx - (x-Komponente des Normalenvektors an den Auswertungspunkten), usw. Meine Fragen sind:

  1. Fr om wo bekomme ich die Struktur region?
  2. Wie kann ich das Argument übergeben, dass Randbedingungen in einem Teil einer der Kanten gelten?

Danke !!

Antwort

1

@Oliver,

1) Ich denke, dass Sie nicht die Struktur region machen müssen, aber Funktionen machen, die sie verwenden können. Da die Randbedingung im Allgemeinen vom Standort abhängt, benötigen Sie region.x und region.y.

2) Sie können region.x und region.y verwenden, um Randbedingungen abhängig von der Position zu machen. Dies ist eine Möglichkeit, sie "teilweise" anzuwenden, wenn die Art der Randbedingung gleich ist. Andernfalls müssen Sie die Aufteilung in der Grenze explizit definieren. Dies geschieht wahrscheinlich während der Definition der Geometrie des Problems.

+0

Vielen Dank @tvo! Würde es Ihnen etwas ausmachen, einen Hinweis darüber zu geben, wie Sie die Region.x und region.y definieren können? Ich meine, ich kann die Koordinaten der Knoten am Rand nicht finden. –

+0

@Oliver Hallo, diese Daten werden innerhalb des PDE-Modellobjekts sein. Sie müssen es nicht bereitstellen, benutzen Sie es nur. Sehen Sie sich den Hilfe-Link in Ihrer Frage an. Je nachdem, ob 'Vectorized' aktiviert oder deaktiviert ist, gibt es zwei Optionen. Die Daten in 'region.x' und' region.y' sind einzelne Punkte oder Vektoren mit mehreren Punkten. Es liegt an Ihnen, ob Sie Vektorisierung wollen oder nicht. Wenn möglich, benutze es, weil es schneller ist. – tvo

+0

Entschuldigung nochmal, auf welchen bestimmten Befehl verweisen Sie in "Vektorisierung"? –

Verwandte Themen