CFD Online Discussion Forums

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 :)

please read this post, then post enough information here, then forum users will help you ;)

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

unfortunately, i dont have access to pic link
you can do this with codeStream ( i guess) or more easily with groovyBC
in groovy BC, you can create a non-uniform variable in patch, so you can give an special point or region special BC you want

cdm May 31, 2013 12:48

Thanks, nimasam. I'll have a look at GroovyBC and update this post if I find a solution. Cheers.


All times are GMT -4. The time now is 08:16.