# Car fire in an underground park - Simulate a temperature sensor

 Register Blogs Members List Search Today's Posts Mark Forums Read

 March 5, 2010, 19:11 Car fire in an underground park - Simulate a temperature sensor #1 New Member   Join Date: Nov 2009 Posts: 8 Rep Power: 8 Dear All, I need to simulate a car fire in an underground park and I've got a problem. I want to simulate a temperature sensor that starts a momentum source when the temperature reaches a specific value. I think the best way to simulate it is to create a UDF that starts the momentum source when the temperature at the cell x is at a temperature T. Something like, if C_T(cell,thread)==T we have momentum. Else no. Is it possible for me to identify a certain cell in order to establish this condition? If not, does anyone have an alternative for me? Thanks in advance!!! Pedro

March 8, 2010, 03:47
#2
Senior Member

Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 109
Rep Power: 8
Quote:
 Originally Posted by pedroscosta Dear All, I need to simulate a car fire in an underground park and I've got a problem. I want to simulate a temperature sensor that starts a momentum source when the temperature reaches a specific value. I think the best way to simulate it is to create a UDF that starts the momentum source when the temperature at the cell x is at a temperature T. Something like, if C_T(cell,thread)==T we have momentum. Else no. Is it possible for me to identify a certain cell in order to establish this condition? If not, does anyone have an alternative for me? Thanks in advance!!! Pedro
Maybe you can use the coordinate to judge which the right cell is.
The simplest scheme is to use the cell whose distance to your specified location is the least. Of course, this is not a very concise scheme if your grid is not fine enough.

March 8, 2010, 06:54
#3
New Member

Join Date: Nov 2009
Posts: 8
Rep Power: 8
Quote:
 Originally Posted by gearboy Maybe you can use the coordinate to judge which the right cell is. The simplest scheme is to use the cell whose distance to your specified location is the least. Of course, this is not a very concise scheme if your grid is not fine enough.

I'll try it.

Pedro

March 12, 2010, 00:38
#4
Senior Member

Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 109
Rep Power: 8
Quote:
 Originally Posted by pedroscosta Dear All, I need to simulate a car fire in an underground park and I've got a problem. I want to simulate a temperature sensor that starts a momentum source when the temperature reaches a specific value. I think the best way to simulate it is to create a UDF that starts the momentum source when the temperature at the cell x is at a temperature T. Something like, if C_T(cell,thread)==T we have momentum. Else no. Is it possible for me to identify a certain cell in order to establish this condition? If not, does anyone have an alternative for me? Thanks in advance!!! Pedro
Here is the example, Note: the location of the specified point must be in the computational domain, otherwise error will occur.

#include "udf.h"
DEFINE_ON_DEMAND(find_cell)
{
cell_t c;
CX_Cell_Id cx_cell;
real NV_VEC(pt);
real c_centroid[ND_ND];
NV_D(pt, =, 0.5, 0.3, 0.2); //coordinate of your specified location,it must be in the domain coordinate range
CX_Start_ND_Point_Search();
cx_cell=*CX_Find_Cell_With_Point(pt);
CX_End_ND_Point_Search();
c=RP_CELL(&cx_cell); //the right cell number
C_CENTROID(c_centroid,c,t);
Message0("coordinate of the specified point: x=%g,y=%g,z=%g\n",pt[0],pt[1],pt[2]);
Message0("coordinate of the cell found: x=%g,y=%g,z=%g\n",c_centroid[0],c_centroid[1],c_centroid[2]);
}

March 12, 2010, 15:48
#5
New Member

Join Date: Nov 2009
Posts: 8
Rep Power: 8
Quote:
 Originally Posted by gearboy Here is the example, Note: the location of the specified point must be in the computational domain, otherwise error will occur. #include "udf.h" DEFINE_ON_DEMAND(find_cell) { cell_t c; Thread *t; CX_Cell_Id cx_cell; real NV_VEC(pt); real c_centroid[ND_ND]; NV_D(pt, =, 0.5, 0.3, 0.2); //coordinate of your specified location,it must be in the domain coordinate range CX_Start_ND_Point_Search(); cx_cell=*CX_Find_Cell_With_Point(pt); CX_End_ND_Point_Search(); c=RP_CELL(&cx_cell); //the right cell number t = RP_THREAD(&cx_cell); // the thread C_CENTROID(c_centroid,c,t); Message0("coordinate of the specified point: x=%g,y=%g,z=%g\n",pt[0],pt[1],pt[2]); Message0("coordinate of the cell found: x=%g,y=%g,z=%g\n",c_centroid[0],c_centroid[1],c_centroid[2]); }
1000 thanks, now I know how to use cx_find_cell_with_point!

 May 15, 2010, 08:34 #6 New Member   Join Date: Nov 2009 Posts: 8 Rep Power: 8 just replace real NV_VEC(pt); to float NV_VEC(pt); Pedro

January 3, 2011, 22:14
#7
New Member

Gang Gang
Join Date: Dec 2010
Posts: 1
Rep Power: 0
Quote:
 Originally Posted by gearboy Here is the example, Note: the location of the specified point must be in the computational domain, otherwise error will occur. #include "udf.h" DEFINE_ON_DEMAND(find_cell) { cell_t c; Thread *t; CX_Cell_Id cx_cell; real NV_VEC(pt); real c_centroid[ND_ND]; NV_D(pt, =, 0.5, 0.3, 0.2); //coordinate of your specified location,it must be in the domain coordinate range CX_Start_ND_Point_Search(); cx_cell=*CX_Find_Cell_With_Point(pt); CX_End_ND_Point_Search(); c=RP_CELL(&cx_cell); //the right cell number t = RP_THREAD(&cx_cell); // the thread C_CENTROID(c_centroid,c,t); Message0("coordinate of the specified point: x=%g,y=%g,z=%g\n",pt[0],pt[1],pt[2]); Message0("coordinate of the cell found: x=%g,y=%g,z=%g\n",c_centroid[0],c_centroid[1],c_centroid[2]); }

I have place the above program in UDF and replace with float NV_VEC(pt). But it always remind that there is an assignment error in cx_cell=*CX_Find_Cell_With_Point(pt); I don't konw why and beg your instructions.

March 12, 2012, 10:48
#8
New Member

JH
Join Date: Jan 2012
Posts: 4
Rep Power: 6
Hello I get the following error:

Quote:
 ..\..\src\find.c(14) : error C2100: illegal indirection ..\..\src\find.c(14) : error C2440: '=' : cannot convert from 'int' to 'CX_Cell_Id'
I just copied the code above and line 14 is:

Quote:
 cx_cell=*CX_Find_Cell_With_Point(pt);

Can anyone please say what the problem is?

August 8, 2012, 16:54
#9
New Member

Join Date: Jul 2012
Location: Cincinnati, OH
Posts: 12
Rep Power: 6
Quote:
 Originally Posted by Seppl Hello I get the following error: I just copied the code above and line 14 is: Can anyone please say what the problem is?
I have the same problem, does anyone know the solution???

 June 9, 2014, 06:16 #10 Member   Join Date: Jul 2013 Posts: 74 Rep Power: 5 I know this is an old post, but I have faced the same problem as Blackhawks84 and Seppl. Can anybody help me? Cheers

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post guillaume Phoenics 9 October 27, 2015 06:57 guillaume FLUENT 3 June 27, 2011 11:17 guillaume Main CFD Forum 12 June 27, 2011 11:16 guillaume CFX 0 May 11, 2008 19:59

All times are GMT -4. The time now is 11:58.