- Joined
- Jan 6, 2002

Time to give this subject it's own thread. If you need to catch up on some of the other discussion, check out a good chunk of it here: http://forum.oc-forums.com/vb/showthread.php?s=&threadid=73775

First off I think it would be best to give a short background on how my particular numerical model works, which happens to be a finite difference model. A finite difference (fd) model takes the physical model and divides it up into several nodes. Generally speaking, the more nodes, the higher the accuracy, at a price. The computational power it takes increases dramatically with added nodes. Also since I am doing my current model in Excel, I have to have a cell for each node and I'm quickly running out of cells to use. I'm going to have to switch my model from being horizontal in Excel to being vertical (there are more rows than columns available.)

An fd model calculates the value of each node by comparing it to the neighboring nodes and calculating its value. All nodes have to be 'seeded' with a close enough guess at the final value in order to get convergence. The program goes through iteration after iteration until all of the nodal values meet a pre-defined convergence criteria, ie if at iteration 3004, a certain node has a value of 1.0010 and at iteration 3005 the value is 1.0014 and the convergence criteria is set at .0005, the node has 'converged' becuase it changed less than the criteria.

To apply this to a water block model, the boundary conditions must be applied to the model. These conditions consist of certain nodes haveing heat applied to them, some nodes feel the effect of convection, etc. Setting up the model is the easy part, getting the boundary conditions right is a whole other story and has caused more than a few mental breakdowns through the years. If the boundary conditions are not set up right and if the nodes are not seeded properly, convergence may never be reached.

The model I'm currently working with consists of nodes representing the block thickness and length along the channel. Input power from the cpu is represented by some of the nodes having a heat generation effect. In other words, these particular nodes are the ones adding the heat into the block. The nodes in contact with the moving fluid have several factors that have to be calculated seperate from the fd model. These include the temperature of the fluid at ever point along the path and the convective heat transfer coefficient. These numbers are calculated in a seperate spreadsheet by knowing the channel dimensions, fluid properties, flow rate, viscosity, etc. etc. etc. Also input into the fd model is the conductivity of the block material and the distance between each node.

Still with me? I know this may seem boring as hell, but it's important to have at least a minor grasp on how the model works in order to understand what it is capable of.

Now in another thread, BillA asked: "how are you modeling the channel being continously 'folded' about itself ?

and the heat source being radially applied 'across' the channel with shared walls (at an ever greater distance) ?" and "can you do a sensitivity calc to look at the incremental effect of adding a revolution, and another, etc

- each trial having the total channel resized for a constant head loss (as that is how the pump 'sees' the wb)"

Well, this is the tricky part. Each node is calculated by knowing its own boundary conditions, then taking into account the state of its immediate neighbors. For a straight channel, this is a piece of cake because a node's neighbors are just the ones right before it and the ones right after it. When a channel 'folds' or 'spirals' about itself, it brings a whole new factor into what each nodes neighbors are. Instead of just having the ones before and after, there are the ones that now neighbors because the channel snakes back on itself. This is where it gets tricky on deciding exactly what nodes affect what nodes and how to determine the weighting of each neighboring node. It can be done, it's just very tedious and time consuming and often requires alot of trial and error to get the nodal weighting right.

So long answer made short, yes, I can model the effects of adding extra spirals or length to a channel, it just a royal pain in the arse. But, to me it's a pain worth enduring and one I'm willing to bear.

The main object of this exercise is to come up with a model that will allow for changing certain variables such as channel dimensions, input power, flow rate, base plate thickness, etc. to see how each of these changes could change the performance of a block. It has never been my goal (with this particular model) to be able to exactly predict the results of specific blocks. While this is certainly possible to a certain degree of accuracy, it is still a 2-D model simulating a 3-D world. As I work towards a more intricate and sophisticated model, real world results will be more accurately predicted. Just remember that that is not the goal of this model, just a side benefit.

I'll be working with some commercial CFD (computational fluid dynamics) code shortly in particular FloWorks and FloTherm to see if and how they may be beneficial to our cause. These programs are best suited to model the flow itself in 3-D and they do a very good job at that. What I'm interested in seeing is if they can accurately model/predict the effects of the flow past the surface of a block.

First off I think it would be best to give a short background on how my particular numerical model works, which happens to be a finite difference model. A finite difference (fd) model takes the physical model and divides it up into several nodes. Generally speaking, the more nodes, the higher the accuracy, at a price. The computational power it takes increases dramatically with added nodes. Also since I am doing my current model in Excel, I have to have a cell for each node and I'm quickly running out of cells to use. I'm going to have to switch my model from being horizontal in Excel to being vertical (there are more rows than columns available.)

An fd model calculates the value of each node by comparing it to the neighboring nodes and calculating its value. All nodes have to be 'seeded' with a close enough guess at the final value in order to get convergence. The program goes through iteration after iteration until all of the nodal values meet a pre-defined convergence criteria, ie if at iteration 3004, a certain node has a value of 1.0010 and at iteration 3005 the value is 1.0014 and the convergence criteria is set at .0005, the node has 'converged' becuase it changed less than the criteria.

To apply this to a water block model, the boundary conditions must be applied to the model. These conditions consist of certain nodes haveing heat applied to them, some nodes feel the effect of convection, etc. Setting up the model is the easy part, getting the boundary conditions right is a whole other story and has caused more than a few mental breakdowns through the years. If the boundary conditions are not set up right and if the nodes are not seeded properly, convergence may never be reached.

The model I'm currently working with consists of nodes representing the block thickness and length along the channel. Input power from the cpu is represented by some of the nodes having a heat generation effect. In other words, these particular nodes are the ones adding the heat into the block. The nodes in contact with the moving fluid have several factors that have to be calculated seperate from the fd model. These include the temperature of the fluid at ever point along the path and the convective heat transfer coefficient. These numbers are calculated in a seperate spreadsheet by knowing the channel dimensions, fluid properties, flow rate, viscosity, etc. etc. etc. Also input into the fd model is the conductivity of the block material and the distance between each node.

Still with me? I know this may seem boring as hell, but it's important to have at least a minor grasp on how the model works in order to understand what it is capable of.

Now in another thread, BillA asked: "how are you modeling the channel being continously 'folded' about itself ?

and the heat source being radially applied 'across' the channel with shared walls (at an ever greater distance) ?" and "can you do a sensitivity calc to look at the incremental effect of adding a revolution, and another, etc

- each trial having the total channel resized for a constant head loss (as that is how the pump 'sees' the wb)"

Well, this is the tricky part. Each node is calculated by knowing its own boundary conditions, then taking into account the state of its immediate neighbors. For a straight channel, this is a piece of cake because a node's neighbors are just the ones right before it and the ones right after it. When a channel 'folds' or 'spirals' about itself, it brings a whole new factor into what each nodes neighbors are. Instead of just having the ones before and after, there are the ones that now neighbors because the channel snakes back on itself. This is where it gets tricky on deciding exactly what nodes affect what nodes and how to determine the weighting of each neighboring node. It can be done, it's just very tedious and time consuming and often requires alot of trial and error to get the nodal weighting right.

So long answer made short, yes, I can model the effects of adding extra spirals or length to a channel, it just a royal pain in the arse. But, to me it's a pain worth enduring and one I'm willing to bear.

The main object of this exercise is to come up with a model that will allow for changing certain variables such as channel dimensions, input power, flow rate, base plate thickness, etc. to see how each of these changes could change the performance of a block. It has never been my goal (with this particular model) to be able to exactly predict the results of specific blocks. While this is certainly possible to a certain degree of accuracy, it is still a 2-D model simulating a 3-D world. As I work towards a more intricate and sophisticated model, real world results will be more accurately predicted. Just remember that that is not the goal of this model, just a side benefit.

I'll be working with some commercial CFD (computational fluid dynamics) code shortly in particular FloWorks and FloTherm to see if and how they may be beneficial to our cause. These programs are best suited to model the flow itself in 3-D and they do a very good job at that. What I'm interested in seeing is if they can accurately model/predict the effects of the flow past the surface of a block.

Last edited: