Impose Regions Definitions

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_motphs                1				
            }
            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_motphs                 1                           
            }
            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_motphs                 1                           
            }
            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_motphs                 S1
            }
            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

                imposeregion_motphs                 1
            }
            imposeRegion
            {
                imposeRegion_type                   CUBOIDPOROUS
                use_prtl_reuni                      false
                cuboidporous_min                    "0.0 0.0 0.0"
                cuboidporous_max                    "0.4 0.4 0.4"

                porous_inert                        "1000.0 10.0 1000.0"
                porous_visc                         "100.0  100.0 10.0"
                t_start                             0.0
                t_end                               10.0

                imposeregion_motphs                 1
            }
            imposeRegion
            {
                imposeRegion_type                   CYLINDERPOROUS
                use_prtl_reuni                      false
                cylinderporous_unv                  "1.0 1.0 1.0"
                cylinderporous_cntr                 "0.2 0.2 0.4"
                cylinderporous_hght                 0.8
                cylinderporous_pnt1                 "0.0 0.1 0.2"
                cylinderporous_pnt2                 "0.0 0.1 0.4"
                cylinderporous_rad                  1.0

                porous_inert                        "1000.0 10.0 1000.0"
                porous_visc                         "100.0  100.0 10.0"
                t_start                             0.0
                t_end                               10.0

                imposeregion_motphs                 1
            }
            imposeRegion
            {
                imposeRegion_type                   SPHEREPOROUS
                use_prtl_reuni                      false
                sphereporous_cntr                   "-0.4 0.0 0.0"
                sphereporous_rad                    25.0e-2

                porous_inert                        "1000.0 10.0 1000.0"
                porous_visc                         "100.0  100.0 10.0"
                t_start                             0.0
                t_end                               10.0

                imposeregion_motphs                 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_motphs
Impose regions are capable of following a MOVINGWALL phase with a predefined motion.
This command specified the MOVINGWALL phase ID, which the region will follow.
imposeRegion_type
Defines the type of the imposed region.
Options are: CUBIODVEL (velocity), CYLINDERVEL (velocity), SPHEREVEL (velocity), CUBIODACC (acceleration), CUBOIDTEMP (temperature), CUBOIDPOROUS (porosity), CYLINDERPOROUS (porosity) and SPHEREPOROUS (porosity).
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, cuboidporous_min
Minimum bounds of the rectangular impose region box.
Default: “0. 0. 0”
cuboidvel_max, cuboidacc_max, cuboidtemp_max, cuboidporous_max
Maximum bounds of the rectangular impose region box.
Default: “0. 0. 0”
cylindervel_rad, cylinderporous_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 and cylinderporous regions 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, cylinderporous_cntr
Coordinates of the base point of the cylinder.
Belongs to Option 1.
cylindervel_hght, cylinderporous_hght
Height of the cylinder (distance between two bases).
Belongs to Option 1.
cylindervel_pnt1, cylinderporous_pnt1
Coordinates of the base point of the cylinder.
Belongs to Option 2.
cylindervel_pnt2, cylinderporous_pnt2
Coordinates of the top point of the cylinder.
Belongs to Option 2.
spherevel_cntr, sphereporous_cntr
Location of the spherical velocity impose region.
Default: “0. 0. 0”
spherevel_rad, sphereporous_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, for example 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
use_prtl_reuni
This command toggles the use of transport velocity or artificial particle displacement (APD) inside the porous region. It is considered to be an advanced parameter.
Options: true / false
Default: false
porous_inert
This command defines the inertial component coefficient in the Darcy-Forchheimer porosity model. If the values of this vector are all set to 0.0 and all the components of porous_visc are set to non-zero, then the used porosity model effectively becomes the Darcy model/equation.
Given that nanoFluidX supports non-isotropic porous media, this coefficient is a 3-component vector value of the form "X Y Z".
Unit: [1/m]
porous_visc
This command defines the inertial component coefficient in the Darcy-Forchheimer porosity model. If only the values of this vector are used and all the components of porous_inert are set to 0.0, then the used porosity model effectively becomes the Darcy model/equation.
Given that nanoFluidX supports non-isotropic porous media, this coefficient is a 3-component vector value of the form "X Y Z".
Unit: [1/m^2]