Impose Regions Definitions

Starting with v2020, nanoFluidX has the capability to define an arbitrary number of regions, which fall into one of the three categories (types): fluid velocity, body force and temperature.

The fluid velocity region can be specified in a rectangular or spherical shape and it hard-imposes a velocity on all fluid particles which are within the prescribed region. The easiest analogy is a pump mechanism (momentum source), except that there are no moving parts involved. The body force region imposes a defined body force on all the particles which are within the defined region. It also can be thought of as a momentum source region, except that by defining the body force instead of hard-setting the velocity of the particles, the region is likely to behave more stably. Finally, the temperature region assigns a temperature to all fluid or wall particles (optional) which are within the prescribed region, and is essentially a heat source/sink.

The regions are defined through a separate parameter section called imposeRegions.
imposeRegions	
{
        imposeRegion 
        {
                imposeRegion_type		 \CUBOIDVEL			
                cuboidvel_unv                  "1. 2. 0."			
 		  cuboidvel_vel                  1.                            
                cuboidvel_min                  "0. 0. 0."                    
                cuboidvel_max                  "0.4 0.4 0.4"                 

                t_start                        0. 			
                t_end                          10. 			
                t_damping                      0.1

                cuboidvel_tvs_file		time_velocity_series.txt	
                cuboidvel_tvs_offset           0.1                            
                cuboidvel_tvs_latch            false				
        }
        imposeRegion 
        {
                imposeRegion_type               CYLINDERVEL			
                cylindervel_unv                 "1. 2. 0."                     
                cylindervel_vel                 -0.4 				
                cylindervel_rad                 0.1				  
                cylindervel_pbl                 true				 

                ;[option 1]
                cylindervel_cntr                "-0.4 0. 0."                    
                cylindervel_hght                0.02                            
                ;[option 2]
                cylindervel_pnt1                "-0.4 0. 0."                    
                cylindervel_pnt2                "-0.4 0. 0."                    

                t_start                         0. 
                t_end                           10. 
                t_damping                       0.1

                cylindervel_tvs_file            time_velocity_series.txt        
                cylindervel_tvs_offset          0.1                             
                cylindervel_tvs_latch           false                           
        }
        imposeRegion 
        {
                imposeRegion_type               SPHEREVEL                        
                spherevel_unv                   "1. 2. 0."                       
                spherevel_vel                   -1.                              
                spherevel_cntr                  "-0.4 0. 0."                     
                spherevel_rad                   0.02                             

                t_start                         0. 
                t_end                           10. 
                t_damping                       0.1

                spherevel_tvs_file              time_velocity_series.txt        
                spherevel_tvs_offset            0.1                             
                spherevel_tvs_latch		false                           
        }
        imposeRegion 
        {
                imposeRegion_type                CUBOIDACC                                 
                cuboidacc_acc			"1. 0. 0."                       
                cuboidacc_min			"0. 0. 0."                       
                cuboidacc_max			"0.4 0.4 0.4"                    

                t_start                          0.
                t_end                            10.
                t_damping                        0.1
        }
        imposeRegion 
        {
                imposeRegion_type		  CUBOIDTEMP                       
                cuboidtemp_temp                 "1. 0. 0."                       
                cuboidtemp_fluidonly            false                            
                cuboidtemp_min                  "0. 0. 0."                       
                cuboidtemp_max                  "0.4 0.4 0.4"			

                t_start                         0.	
                t_end                           10.
                t_damping                       0.1
        }
...
}
t_start / t_end
Common parameters for all imposed regions, indicating beginning and end of time at which the region is active.
Default: 0.0
Note: t_end must be greater equal t_start.
t_damping
During this period, the prescribed velocity, body force or temperature will reach it prescribed value (analogous to the t_damping in the Imposed Motions section).
Default: 0.0
Note: t_damping will be renamed to t_ramping in the future, as it describes better the effect it has in the simulation. The exact version wherein the switch will occur is unknown, but will be appropriately announced via Release Notes.
imposeRegion_type
Defines the type of the imposed region.
Options are: RECTANGLE (velocity), SPHERE (velocity), BODYFORCE, TEMPERATURE.
cylindervel_unv, cuboidvel_unv, spherevel_unv
Defines the velocity normal vector within an imposed velocity region. This determines the direction of the velocity vector.
In case of cylindervel_unv, the command doubles as a direction of the cylinder definition when defining the imposed region through Option 1 (center of base definition + radius + normal vector to determine the direction of the cylinder extrusion).
Default: “0. 0. 0”
cylindervel_vel, cuboidvel_vel, spherevel_vel
Defines the velocity magnitude within an imposed velocity region.
This is a scalar value, as the direction vector is determined by cylindervel_unv, cuboidvel_unv, spherevel_unv.
Default: 0.0
cuboidvel_min, cuboidacc_min, cuboidtemp_min
Minimum bounds of the rectangular impose region box.
Default: “0. 0. 0”
cuboidvel_max, cuboidacc_max, cuboidtemp_max
Maximum bounds of the rectangular impose region box.
Default: “0. 0. 0”
cylindervel_rad
Cylinder radius.
Units: [m]
cylindervel_pbl
Boolean switch that enables a parabolic velocity profile when cylindrical imposed velocity regions are used.
If set to true, the cylindervel_vel is then the mean velocity of the parabolic profile.
Default: false
Options to define the cylindervel region include:
  1. Use a direction vector, starting point, and cylinder height to define a cylinder.
  2. Use two points, where point 1 is the starting point and point 2 is the ending point (thus defining the direction of the cylinder).
cylindervel_cntr
Coordinates of the base point of the cylinder.
Belongs to Option 1.
cylindervel_hght
Height of the cylinder (distance between two bases).
Belongs to Option 1.
cylindervel_pnt1
Coordinates of the base point of the cylinder.
Belongs to Option 2.
cylindervel_pnt2
Coordinates of the top point of the cylinder.
Belongs to Option 2.
spherevel_cntr
Location of the spherical velocity impose region.
Default: “0. 0. 0”
spherevel_rad
Radius of the spherical velocity impose region.
Default: 0
cuboidtemp_temp
Temperature which will be assigned to all the particles which enter the rectangular temperature region.
cuboidtemp_fluidonly
Switch which allows to prescribe the temperature to only fluids, or alternatively to all FLUID, MOVINGWALL or WALL particles.
Default: false
cuboidvel_tvs_file, cylindervel_tvs_file, spherevel_tvs_file
Variable prescribed velocity file (Time Velocity Series – TVS).
Define variable velocity inside the imposed region by using an external file.
The format is: Time u v w (space as a delimiter).
cuboidvel_tvs_offset, cylindervel_tvs_ offset, spherevel_tvs_ offset
Time offset value in case that the TVS file starts at a time different from zero (e.g. begin using TVS at t = 10 s).
cuboidvel_tvs_latch, cylindervel_tvs_latch, spherevel_tvs_latch
Boolean command for keeping the last value of the TVS file throughout the simulation.
Example: TVS file defines only a ramp-up curve for the imposed region, from t = 0 to t = 5 s and velocity in X direction from u = 0 to u = 3 m/s, while the total simulation time is t_final = 10 s. If latch is set to true – for t > 5 s, velocity will be set constant at 3 m/s (last value in the TVS file). If latch is set to false, the velocity for t > 5 s will be set to 0 m/s.
Default: false