CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Point BCs for Heat Transfer Problem (https://www.cfd-online.com/Forums/openfoam/118610-point-bcs-heat-transfer-problem.html)

 cdm May 30, 2013 20:19

Point BCs for Heat Transfer Problem

I'm attempting to run a simple 2-D conduction simulation but I'm either too inexperienced or straying into forbidden territory in my simulation setup.

I want to create a pentagonal array of point-temperature boundary conditions on an adiabatic-walled cylinder with air as the internal fluid (no flow), and let the simulation find the final steady-state distribution. In other words, have 5 temperature points every 72-degrees around the cylinder.

My problem is that I can't find any information on creating point BCs. Does anyone have any advice on how to create such a system with blockMesh, if possible?

I'd appreciate any help, as my searches have led me no where.

 nimasam May 31, 2013 03:17

dear body :)

 cdm May 31, 2013 12:05

Well, there's not much more I can clarify since I'm looking for help setting up the problem in blockMesh. I'm using OF 2.1.X. I don't have case files or a mesh since that's what I'm seeking help with initialising. What further information can I provide that might be of any more use than my initial post?

I made a cylinder in blockMesh from a rectangular prism:

Code:

```vertices ( (  63.5 -63.5 0.0) //0 (  63.5  63.5 0.0) ( -63.5  63.5 0.0) ( -63.5 -63.5 0.0) (  63.5 -63.5 1.0) //4 (  63.5  63.5 1.0) ( -63.5  63.5 1.0) ( -63.5 -63.5 1.0) ); blocks ( hex (0 1 2 3 4 5 6 7) (10 10 1) simpleGrading (1 1 1) ); edges ( arc 2 1 ( 0.0        89.802561 0.0) arc 1 0 ( 89.802561  0.0      0.0) arc 0 3 ( 0.0      -89.802561 0.0) arc 3 2 (-89.802561  0.0      0.0) arc 6 5 ( 0.0        89.802561 1.0) arc 5 4 ( 89.802561  0.0      1.0) arc 4 7 ( 0.0      -89.802561 1.0) arc 7 6 (-89.802561  0.0      1.0) );```
I also tried making a cylinder using pentagonal sides:

Code:

```vertices ( (  0.0      63.5      0.0) //0 (-60.392089  19.622579 0.0) (-51.372579 -37.324364 0.0) ( 51.372579 -37.324364 0.0) ( 60.392089  19.622579 0.0) (  0.0      63.5      10.0) //5 (-60.392089  19.622579 10.0) (-51.372579 -37.324364 10.0) ( 51.372579 -37.324364 10.0) ( 60.392089  19.622579 10.0) (  0.0        0.0      0.0) //10 (  0.0        0.0      10.0) //11 ); blocks ( hex (10 0 1 10 11 5 6 11) (10 10 1) simpleGrading (1 1 1) hex (10 1 2 10 11 6 7 11) (10 10 1) simpleGrading (1 1 1) hex (10 2 3 10 11 7 8 11) (10 10 1) simpleGrading (1 1 1) hex (10 3 4 10 11 8 9 11) (10 10 1) simpleGrading (1 1 1) hex (10 4 0 10 11 9 5 11) (10 10 1) simpleGrading (1 1 1) ); edges ( arc 0 1 (-37.324364  51.372579  0.0) arc 5 6 (-37.324364  51.372579 10.0) arc 1 2 (-60.392089 -19.622579  0.0) arc 6 7 (-60.392089 -19.622579 10.0) arc 2 3 (  0.0      -63.5      0.0) arc 7 8 (  0.0      -63.5      10.0) arc 3 4 ( 60.392089 -19.622579  0.0) arc 8 9 ( 60.392089 -19.622579 10.0) arc 4 0 ( 37.324364  51.372579  0.0) arc 9 5 ( 37.324364  51.372579 10.0) );```
The latter obviously fails check mesh because the centre cells collapse to a point.

I doubt these help at all, since what I want to know is how I can apply temperatures at single nodes (point BCs) in a radially-spaced perimetre about a circle.

 nimasam May 31, 2013 12:14

:) dear body
im afraid any one understand you correctly :)
however, i feel you have a computational domain :) it seems its in cylindrical form, then you want to apply some special BC to it :),
1- if those points are placed at a patch you can apply it from variables in 0 folder
2- if its internal node, you should use setFields to initiate a non-uniform initial condition

3- you can also use topoSet dict utilities to create an cellSet or faceSet

 cdm May 31, 2013 12:37

nimasam, I appreciate you trying to help me out.

Here's an image of what I'm trying to set up. Maybe it helps clear things up a bit?

https://dl.dropboxusercontent.com/u/60307133/setup.gif

Concerning your first suggestion in your previous message, is it possible to assign a point location as a patch? My understanding was that you can only use points defined in the vertices, and when I try to set a patch as below it fails when I run blockMesh.

Code:

```patches ( patch temp1 ( (0 0 0 0) ) );```
Ideally, this is what I want to do (set a patch at a point to set a constant temperature in my 0/T file).

 nimasam May 31, 2013 12:41