text:
Remember when Tosu fans showed their school pride by lighting something on fire or assaulting a Michigan fan?
Boy, have times changed.
Lately I've been running across way too many Buck fans who fancy themselves singers and/or rappers. And it ain't pretty. Way back during MZone 1.0, we introduced you to the Sleep(inducing)y Rappers. Just this week we brought you the Buckstreet Boys celebrating Tosu's victory over Miami. Now comes the video below which I saw on Busted Coverage.
Let me speak for everyone involved when I say, "O-H...N-O!"
Friday, September 17, 2010
AMERICAN IDOL Fever Running Rampant in Columbus
Posted by Yost at 4:30 AM
Labels: ohio state
4 comments:
- phil said...
I think Tupac Shakur would agree, there's never a good drive-by shooting when you need one.
- September 17, 2010 6:09 AM
- plooder said...
I like the dude with the one eye black, doing a sticky pants dance...Go Bucks
- September 17, 2010 9:12 AM
- Andy said...
- September 17, 2010 11:29 AM
- Mikoyan said...
Looks like my action figures have new targets...
- September 17, 2010 12:50 PM
Subscribe to: Post Comments (Atom)


text:
2002 Football
academic honors
Senior football standouts Staley, Steiner earn Verizon Academic All-District honors
November 18, 2002
By Allan King, Jr., SID intern
Bluffton College senior defensive standouts Cam Staley (Lima, Ohio/Bath H.S.) and Brian Steiner (Rawson, Ohio/Cory-Rawson H.S.) have received Verizon Academic All-District IV honors.
Staley, a criminal justice and communications double major, owns a 3.69 grade point average and was named to the third-team defensive unit. A two-year starter at strong safety, Staley led the Bluffton defense this season with four interceptions, was second on the team with eight pass break-ups and was fourth on the team with 61 tackles.
Steiner, a sport management major, owns a 3.57 GPA and was named to the second-team defensive unit for the second straight season. A three-year starter at defensive end, Steiner collected 50 tackles this season, which ranked seventh on the team, and three of those tackles were behind the line of scrimmage. He added one pass break-up on the year.
Verizon sponsors academic all-district teams in many sports and members of the College Sports Information Directors of America nominate and vote on the teams. District IV is comprised of Ohio, Michigan, Kentucky and Tennessee.

subset: commoncrawl


text:
A new free class at Spa 33 will educate residents how pure essential oils can enhance their health.
Spa 33 Nail Technician Carrie Barnhill said the classes will focus on doTerra Essential Oils, which are certified pure therapeutic grade oils. She said the name of the product doTerra means "from the earth."
"It's just the oil, everything else is taken out," Barnhill said, adding that the oils are indigenous of their native surroundings. "It comes from all over, which makes the oils much nicer."
Spa 33 owner Nadine Southall said since essential oils are being absorbed into the body, it is important to utilize pure oils.
Barnhill said with the oils being pure, an individual can smell them, drink them, wear them and cook with them without any side affects.
"You can't overuse them," Southall said of the oils." "We want to educate people how they can enhance their health."
Fact Box
If You Go
What: doTerra Essential Oils class
Where: Spa 33, 4547 Pine Island Road, in
When: May 15, 6-8 p.m.
Topic: Medicine cabinet makeover
Admission: Free
Register: Call Spa 33 239-558-8217
Although the essential oils can be used for many health-related symptoms, she said they should not take the place of an individual's physician.Once a month Barnhill highlights one essential oil, with lavender being the month of April. Some of the health benefits of lavender are relieving anxiety and tension, reducing insomnia, promoting well-being, improving concentration, calming agitation, as well as being utilized for antibacterial uses and sunburns.
In addition, the oil of the month is also used with the manicures and pedicures, as well as massages and facials to further demonstrate the health benefits of the essential oils.
Next month, lemon will be highlighted.
Southall said, in addition to health benefits, essential oils can also be used for cleaning products. She said all you have to do is mix a few drops of the oil with water.
By using the oils, Southall said, no toxins are being used.
"It is so pure, you only use a couple drops of oil," she said.
Barnhill said using pure essential oils is easy.
"It's just so easy and everyone can do it," she said. "You can just play with them. There are no harmful side effects."
The first doTerra Essential class will be held at Spa 33 May 15 from 6-8 p.m. The topic will be "medicine cabinet makeover." The class will educate individuals about what they can replace in their medicine cabinet with essential oils.
Individuals interested in attending the class are encouraged to call the spa at 239-558-8217 to reserve a spot, due to limited seating.
doTerra is available at Spa 33 for those interested in purchasing them, as well as other aroma therapy supplies.
Spa 33 is located at 4547 Pine Island Road in Matlacha.


text:
Behind a two-goal performance by junior forward Lauren Burns, the University of Alabama-Huntsville women's soccer team topped GSW 5-0 on Sunday afternoon in the Peach Belt/Gulf South Conference Invitiational in Columbus.
Burns drew first blood for the Lady Chargers at 30:01 with her
first of the season from fellow junior Devin
Newman. Burns then made it a 2-0 UAH lead just before
the end of the half in the 41st minute with an assist from
sophomore midfielder Judy Boatman.
The scoring settled down from that point on until the 71st minute when the Hurricanes put the ball in their own net and that opened the flood gates as the Lady Chargers went on to put two more on the scoreboard in less than five minutes time. Freshman forward Courtney Mayers made it a 4-0 contest with her third tally of the season from fellow newcomer Sherra Stansberry in the 74th minute before junior midfielder Janelle Nedd rounded out the scoring with her second strike of the season just over two minutes later at 75:28.
Rookie netminder Rachel Marsicano notched her first career shutout with a three-save performance as the Lady Chargers held an 11-3 shots-on-goal advantage in the contest. Freshman Brittney Hill led the Lady Hurricanes with four shots, one on goal. GSW goalkeeper Christy Drabek recorded 11 saves.
The Lady 'Canes (2-6) hit the road on Wednesday for a 5:00 p.m. match at Montevallo. The game is being broadcast live by the host Falcons. Fans can access the feed by clicking the following link: http://www.montevallo.edu/athletics/Department/athleticinternetschedule.shtm
PICTURED: Brittney Hill
PHOTO BY: Chris Fenn


text:
At OpenTable, we love Thanksgiving (Food! Dining! Food!)! Because a lot of our diners will be traveling this week to spend every foodie's favorite holiday with family and friends, we've rolled out our Spotlight offers a day early. Get $50 for $25 at Le Cordon Bleu in Atlanta, Boston, and Chicago, Black Pearl in Denver, Los Angeles restaurant Chez Melange, New York's Tula, Generations in Philadelphia, Cioppino's On The Wharf in San Francisco, and Washington, D.C. fave Cafe of India.
Which offer whets your appetite? Share your thoughts on the Spotlight message boards, Facebook, or Twitter!


text:
43 U.S. Code § 104 - Disobedience to subpoena
Any person willfully neglecting or refusing obedience to such subpoena, or neglecting or refusing to appear and testify when subpoenaed, his fees having been paid if demanded, shall be deemed guilty of a misdemeanor, for which he shall be punished by indictment in the district court of the United States or in the district courts of the Territories exercising the jurisdiction of district courts of the United States. The punishment for such offense, upon conviction, shall be a fine of not more than $200, or imprisonment not to exceed ninety days, or both, at the discretion of the court: Provided, That if such witness has been prevented from obeying such subpoena without fault upon his part he shall not be punished under the provisions of this section.
Act Mar. 3, 1911, conferred the powers and duties of the former circuit courts upon the district courts.
LII has no control over and does not endorse any external Internet site that contains links to or references LII.


text:
The following is the preview box for tonight's Nicholls State University men's and women's basketball games against Central Arkansas.
5:30 tonight at Stopher Gym in Thibodaux (Southland Conference game).
Records: Central Arkansas (7-4 overall, 0-0 in SLC); Nicholls (8-3, 0-0).
Coaches: Central Arkansas — Sandra Rushing (first season); Nicholls — DoBee Plaisance (fifth season).
Last meeting: March 6, 2012 — Nicholls defeated Central Arkansas, 79-59 in quarterfinals of Southland Conference Tournament. (UCA leads series, 10-3).
Statistical leaders: Central Arkansas — Megan Herbert (17.1 points per game, 11.3 rebounds per game), Courtney Duever (12.4 ppg, 8.5 rpg), Desiree' Rogers (7.4 ppg, 6.4 rpg); Nicholls — Alisha Allen (13.7 ppg, 4.7 rpg), KK Babin (12.7 ppg, 4.5 assists per game), Emani White (8.4 ppg, 2.4 apg), LiAnn McCarthy (8.4 ppg, 3.9 rpg).
Notes: It is the conference opener for both teams ... The 8-3 record is the best start ever for Nicholls ... Central Arkansas leads the conference in scoring defense (49.6 ppg), while Nicholls is the third in scoring defense (61.7 ppg) ... Herbert is the returning Southland Conference Player of the Year and Defensive Player of the Year... Allen needs to 25 points to reach the 1,300-point mark in her career ... Nicholls is the best free-throw shooting team in the SLC at 71 percent ... The game can be heard on 91.5 KNSU-FM.
7:30 tonight at Stopher Gym in Thibodaux (Southland Conference game).
Records: Central Arkansas (5-5, 0-0); Nicholls (1-9, 0-0).
Coaches: Central Arkansas — Corliss Williamson (third season); Nicholls — J.P. Piper (ninth season).
Last meeting: Feb. 22, 2012 — Nicholls defeated Central Arkansas, 80-70. (Nicholls leads the series, 7-6).
Statistical leaders: Central Arkansas — Jarvis Garner (15.9 ppg, 6.9 rpg), Robert Crawford (15.3 ppg, 4.4 rpg), LaQuentin Miles (13.9 ppg), Jordan Harks (11.5 ppg); Nicholls — Fred Hunter (18.3 ppg, 7.6 rpg), Dantrell Thomas (13.5 ppg, 6 rpg), T.J. Carpenter (13.4 ppg, 4.2 rpg).
Notes: It is the conference opener for both teams ... The game will feature three of the conference's Top 5 scorers in Hunter (second), Garner (third) and Crawford (fifth) ... Central Arkansas is ranked second in scoring offense (80.3) in the conference but last in scoring defense (78.3) ... Carpenter is the second leading scorer among freshmen in the conference ... Opponents are converting 49 percent of field goals and 41 percent of 3-pointers against Nicholls. The Colonels are ranked last in the conference in both defensive categories ... Hunter became the 17th Colonel to reach 1,200 career points with 1,204 ... The game can be heard on 100.3 KLRZ-FM and 1600-AM KLEB.
—Teddy Renois/Staff Writer


text:
Lois Lowry's Blog
Let the Right One In---(or not)
I was in New York for three days last week, for several meetings: one with an editor, one with an agent, one as part of a board meeting. So I was busy while I was there. But I also had a few hours free between meetings one afternoon, and I was not far from an art film house that I love (the Angelika on Houston and Mercer Streets); so I went there in hopes of seeing "I've Loved You So Long" with Kristin Scott Thomas. But I arrived twenty minutes after that film had begun, so I looked through the listings to find out what was showing at a time that worked for me.


text:
Karamea flood tutorial
From Gerris
|Revision as of 22:29, 13 June 2012
Popinet (Talk | contribs)
(→Adding culverts)
← Previous diff
|Current revision
Popinet (Talk | contribs)
(→Importing the results into a GIS application - OutputGRD now does linear interpolation)
|Line 749:
|Line 749:
|will create files called: p-0.asc, p-600.asc, p-1200.asc, ... (at 10 minutes intervals) which describe the evolution of the fluid depth P. These files can be imported directly into a GIS application.
|will create files called: p-0.asc, p-600.asc, p-1200.asc, ... (at 10 minutes intervals) which describe the evolution of the fluid depth P. These files can be imported directly into a GIS application.
|Note that the interpolation of the quadtree mesh onto the regular grid is only "first-order" i.e. that interpolated grid points just take the value of the quadtree cell they fall in.
|= Optimising the simulation =
|= Optimising the simulation =
Current revision
This page is a step-by-step description of how to setup, run and visualise a flood simulation using the GfsRiver solver of Gerris.
I will assume that you have access to a machine where both Gerris and GfsView are installed. All the commands described in this tutorial need to be run on this system.
We will start by creating a directory
% mkdir karamea % cd karamea
We will simulate the lower reaches of the Karamea river, including part of the sea on the western boundary. Three input files are thus required:
- A Digital Terrain Model of the area:
- A flow-rate file defining the evolution in time of the river flow at the eastern boundary:
- A tide file defining the sea level at the western boundary:
These files need to be copied to our
karamea directory.
All files should be in Unix ASCII format. If they have been created on a Windows system, they should be converted using:
% dos2unix topo.asc flow.asc tide.asc
We will assume that the DTM file uses the ESRI grid ASCII format. The file should look like:
% more topo.asc ncols 1867 nrows 1490 xllcorner 1523880 yllcorner 5430180 cellsize 3 NODATA_value -9999 19 19 1...
flow.asc and
tide.asc files are lists of two values separated by a space or tab. The first is the time in hours, the second the value of either the flow rate (in cumecs) or the sea level (in metres relative to zero). The files should look like:
% more flow.asc 0.00 151.5 1.00 176.63 2.00 463.7 3.00 1013.93 4.00 1306.4 5.00 1709.67 6.00 2320.75 ...
Setting up the simulation domain
We first need to write a parameter file for Gerris. Use your favourite text editor and cut and paste the following
1 0 GfsRiver GfsBox GfsGEdge {} {
GfsBox {}
then save the file as
karamea.gfs. This is the smallest valid Gerris parameter file possible. It just says that we want to use the GfsRiver model and that the simulation domain is a single "GfsBox", by default a square centered on (0,0) and of size unity i.e. the coordinates of the simulation domain are within [-0.5:0.5] x [-0.5:0.5]. We can then run this simulation using
% gerris2D karamea.gfs
Of course this doesn't do much yet... We first need to make the domain larger. Our
topo.asc file defines a domain width of 1867 x 3 = 5601 metres, so we will set the box size to 5600 metres by adding
1 0 GfsRiver GfsBox GfsGEdge {} {
PhysicalParams { L = 5600 g = 9.81 }
GfsBox {}
Note that we have also defined the acceleration of gravity (in m/s^2). Gerris doesn't impose any units by default; it's up to the user to define quantities in a consistent unit system. By defining g to 9.81 we are now forced to specify any other length using metres and any other time using seconds. For example, the following would have also been valid
PhysicalParams { L = 5.6 g = 0.00981 }
but all lengths should now be specified in kilometres (times still in seconds). A slighty more complex example would be
PhysicalParams { L = 5.6 g = 127137.6 }
where all lengths now use kilometres and times use hours (g is now in km/hour^2).
For this tutorial, we have to stay in metres and seconds to be consistent with our input files above. We then have a domain with coordinates within [-2800:2800] x [-2800:2800]. It would be nice to recenter everything in [0:5600] x [0:5600] so that our domain matches the terrain model in
topo.asc. This can be done using
1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
PhysicalParams { L = 5600 g = 9.81 }
GfsBox {}
which shifts the position of the center of the square to (0.5,0.5) (before resizing the domain, so that the bottom-left corner of the domain is now at (0,0)). To work in absolute coordinates, we need to further shift this origin to the origin of the terrain model (the
xll,yll parameters of
topo.asc). This can be done using
1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
PhysicalParams { L = 5600 g = 9.81 }
MapTransform { tx = 1523880 ty = 5430180 }
GfsBox {}
Creating the topography
To be able to generate the topography we first need to convert
topo.asc to the Gerris terrain database format. This database does not depend on the detail of the Gerris model. For example the same terrain database can be used for models running at different resolutions, smaller or larger domains or even different models (e.g. ocean models, 3D atmospheric models etc...). Several databases (corresponding for example to different datasets e.g. acoustic sounding bathymetry, lidar data, satellite altimetry etc...) can also be merged to create a single terrain. See the documentation for the Terrain module for more background info.
Gerris terrain databases are created using the xyz2kdt command. Like any other Gerris command (and many Unix commands), a simple explanation of the command can be obtained by typing
% xyz2kdt -h Usage: xyz2kdt [OPTION] BASENAME Converts the x, y and z coordinates on standard input to a 2D-tree-indexed database suitable for use with the terrain module of Gerris. -p N --pagesize=N sets the pagesize in bytes (default is 4096) -v --verbose display progress bar -h --help display this help and exit Report bugs to email@example.com
xyz2kdt takes a list of space-separated triplets (x,y and z) as input. The first step is thus to convert
topo.asc to such a list. Many tools can do this conversion (GIS systems for example). A simple and general way of doing such "text to text" conversions is to use the awk scripting language. Programming in awk is beyond the scope of this tutorial but the following should give you can idea of how this works. Open your text editor and cut and paste the following
n = 0;
if ($1 == "ncols")
ncols = $2;
else if ($1 == "nrows")
nrows = $2;
else if ($1 == "xllcorner")
x = xllcorner = $2;
else if ($1 == "yllcorner")
yllcorner = $2;
else if ($1 == "cellsize") {
cellsize = $2;
y = yllcorner + cellsize*(nrows - 1);
else if ($1 == "NODATA_value")
NODATA_value = $2;
for (i = 1; i <= NF; i++) {
if ($i != NODATA_value)
printf ("%f %f %f\n", x,y,$i);
x += cellsize;
if (n >= ncols) {
print "";
y -= cellsize;
x = xllcorner;
n = 0;
Save the file as
asc2xyz.awk. If you have done some programming you can guess what this code does. It just retrieves the header information from the ESRI ASCII grid file and computes the corresponding x,y coordinates for each data value.
We can check whether this works using
% awk -f asc2xyz.awk < topo.asc | more 1523880.000000 5434647.000000 19.000000 1523883.000000 5434647.000000 19.000000 1523886.000000 5434647.000000 19.000000 1523889.000000 5434647.000000 19.000000 1523892.000000 5434647.000000 19.000000 ...
which looks OK.
To create the Gerris terrain database we could do
% awk -f asc2xyz.awk < topo.asc > topo.xyz % xyz2kdt -v topo < topo.xyz
however we don't need to waste disk space by generating the topo.xyz file and we can use Unix pipes instead and do everything at once
% awk -f asc2xyz.awk < topo.asc | xyz2kdt -v topo
At this stage it is a good idea to check the statistics returned by
xyz2kdt. In particular any inconsistency in the minimum, average and maximum height values:
2781830 points Height min: -9.43687 average: 10.9881 max: 33.79
can reveal errors in the input data.
We now have several files (in addition to the original topo.asc file) which together define the terrain database
% ls -lh topo* -rw-r--r-- 1 popinet popinet 129K 2010-09-08 11:48 topo.kdt -rw-r--r-- 1 popinet popinet 64M 2010-09-08 11:48 topo.pts -rw-r--r-- 1 popinet popinet 2.9M 2010-09-08 11:48 topo.sum
Testing the database
To test whether this worked we will start by reconstructing and displaying the terrain corresponding to our simulation. One way of doing this is to add the following lines to our Gerris parameter file
1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
PhysicalParams { L = 5600 g = 9.81 }
MapTransform { tx = 1523880 ty = 5430180 }
GModule terrain
RefineTerrain 8 T { basename = topo } TRUE
GfsBox {}
The terrain database system is a module of Gerris which we need to include (hence the GModule line). The RefineTerrain line specifies how to refine the mesh and the name of the variables which will hold the terrain representation. We set a maximum of eight levels of refinement: level 0 is the "root" of the quadtree i.e. the entire square domain, level 1 is obtained by dividing level 0 into four square cells, etc... thus eight levels of refinement will give 2^8 = 256 x 256 square cells.
If you haven't already you should follow the links to terrain and RefineTerrain above and have a read. Most keywords used in Gerris parameter files are documented in the syntax reference page.
We could now run this simulation but it would not do much because we have not told Gerris to output anything yet. To do this we add
1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
PhysicalParams { L = 5600 g = 9.81 }
MapTransform { tx = 1523880 ty = 5430180 }
GModule terrain
RefineTerrain 8 T { basename = topo } TRUE
OutputSimulation { start = end } stdout
GfsBox {}
So that the entire simulation is written on the standard output (
stdout) at the end of the simulation (
start = end). We can then do
% gerris2D karamea.gfs > end.gfs
Wait for a while and you will get a file looking like
% more end.gfs # Gerris Flow Solver 2D version 1.3.2 (090819-232634) 1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 version = 90819 variables = P,U,V ,Zb,H,Px,Py,Ux,Uy,Vx,Vy,Zbx,Zby,T0,T1,T2,T3,Te,Tn,Tdmin,Tdmax binary = 1 } { # when editing this file it is recommended to comment out the following line GfsDeferredCompilation GModule terrain GfsTime { i = 3 t = 1.79769e+308 } ....
which is a Gerris parameter file which also contains the values of all variables listed after
variables = . This file can be used to restart a simulation and can be visualised with GfsView:
% gfsview2D end.gfs
In the toolbar click on "Squares", select "Edit -> Properties" in the menu (or double-click on the icon in the left-hand pane), change "P" to "T0" in the dialog box (hit Enter when you have finished typing). You can then zoom by holding down the middle mouse button of (or using the scrollwheel), and drag by holding down the right mouse button. You should get something looking like this
Also, holding down the Ctrl key while clicking on the left mouse button will display the (x,y) coordinates and the value of the selected field (e.g. T0) in the status bar.
Isolines can also be useful to check that the terrain has been correctly reconstructed. Playing with the "Isoline" object and its properties, you should be able to get something like this
where the green line is the coast (T0 = 0), brown is above and blue is below sea level.
Can we save all the hard work spent setting up the visualisation within GfsView? Of course! just select "File -> Save" and type "isolines.gfv" in the "Path" dialog box and click on the "Save" button. Now select "Edit -> Clear", then "File -> Open", navigate and select "isolines.gfv" then click on "Ok" and you should be back where you started. The ".gfv" extension stands for GfsView and indicates that the file contains visualisation parameters for GfsView.
This file could also be used like this
% gfsview2D end.gfs isolines.gfv
Adaptive mesh generation
Using the "Cells" object in GfsView, you can see the mesh used to discretise the domain. As expected this is a regular Cartesian mesh with a resolution of 5600/256 ~ 22 metres. We could increase the resolution just by increasing the number of levels of refinement to, say, 10 which would give a resolution of 5600/2^10 ~ 5.5 metres. We can do better than this however and use an adaptive mesh where the resolution is increased only where necessary. To do this, just change the RefineTerrain line to
RefineTerrain 10 T { basename = topo } (Te > 0.1)
We have increased the maximum level of refinement to 10, but we have also changed the refinement condition from
TRUE to
(Te > 0.1).
Te is the least-mean-square terrain reconstruction error. This means that the mesh will be refined (but no more than 10 levels) only when the terrain reconstruction error is larger than 0.1 metre. We can now test this using
% gerris2D karamea.gfs | gfsview2D -s isolines.gfv
Be patient while Gerris creates the terrain (it will take 10-20 seconds). Here we have used another Unix pipe trick where the solution generated by Gerris is directly fed into GfsView. The "-s" option tells GfsView to "survive" even when the unix pipe is "broken" (as happens when Gerris completes).
You can now use the "Cells" object in the toolbar of GfsView to visualise the variable-resolution mesh. Another useful way of doing this is to use the "Squares" object and replace "P" with "Level" which is the local level of refinement. This gives figures like this
which are clearer for high-resolution meshes.
Note that the refinement condition is not limited to simple expressions. In fact, it can be anything from a constant (e.g.
TRUE as in our initial test) to a complex C routine returning
TRUE or
FALSE. For example, imagine we want to generate a mesh with a terrain error of 5 cm in a radius of 400 metres around the center of the Karamea township but only 0.5 metre elsewhere. In our coordinate system the center of the Karamea township is roughly at (1525440,5433192). We could then use the following
RefineTerrain 10 T { basename = topo } {
/* coordinates relative to the township center */
x -= 1525440; y -= 5433192;
if (x*x + y*y < 400*400)
return (Te > 0.05);
return (Te > 0.5);
Rerunning with
% gerris2D karamea.gfs | gfsview2D -s isolines.gfv
will give something like this
(how to draw the white circle around the township is left as an exercise for the reader...)
Setting inflow conditions
The inflow is defined by the
flow.asc file which describes the variation in time of the river flow. However it is often a good idea to start with the simplest possible simulation and to add complexity bit by bit. In this spirit, we will start by imposing a constant inflow (no variation in time) of 2000 cumecs. This can be done using GfsDischargeElevation to compute the water level along a boundary which will ensure a given discharge. This water level can then be imposed as a boundary condition to obtain the discharge sought. This can be done using the following parameter file
1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
PhysicalParams { L = 5600 g = 9.81 }
MapTransform { tx = 1523880 ty = 5430180 }
GModule terrain
RefineTerrain 8 T { basename = topo } (Te > 0.1)
Init {} { Zb = T0 }
DischargeElevation E 2000
OutputTime { istep = 1 } stderr
OutputSimulation { step = 10 } stdout
GfsBox {
right = Boundary {
BcDirichlet P MAX(E - Zb,0.)
In addition to the terrain generation we already know, we added five lines:
Init...: the variable which defines the topography for a GfsRiver simulation is called
Zb. We just set this variable to be equal to
T0. We do that only once at the start of the simulation.
DischargeElevation: defines a new variable (called
E) containing the water level we need to set on the boundary to obtained a discharge of 2000 cumecs.
OutputTime...: the time is written to standard error at every timestep.
OutputSimulation...: we have changed when outputs of the simulation are performed. They are now done every 10 seconds (of simulated time).
BcDirichlet P MAX(E - Zb,0.): here we set the water level on the right-hand-side boundary to
E. Because the water level is only a diagnostic variable, we do this indirectly by setting the water depth
E - Zb. The
MAXfunction just chops off any (non-physical) negative values.
If we now save this as
karamea.gfs and do
% gerris2D karamea.gfs | gfsview2D isolines.gfv
we will get an output looking like
step: 0 t: 0.00000000 dt: 1.000000e+01 cpu: 0.00000000 real: 0.00000300 step: 1 t: 10.00000000 dt: 1.111111e+00 cpu: 0.17000000 real: 0.23817900 step: 2 t: 11.11111111 dt: 1.269841e+00 cpu: 0.34000000 real: 0.67936700 step: 3 t: 12.38095238 dt: 1.523810e+00 cpu: 0.46000000 real: 0.80351100 ...
GfsView will receive new simulations every 10 seconds of simulated time. We can display the evolving solution by selecting "Squares", which will display "P" (the water depth) by default. Selecting "Vectors" will display the flux vectors. We need to pan and zoom to display the upstream boundary (the terrain is still "dry" downstream) and we get something like this
which looks alright although we may not have expected the river to fill as much of the riverbed close to the inflow. We will need to visualise this flow again later, so save the GfsView parameter file as
We can have more control over how the specified discharge is distributed along the boundary. As explained in the documentation for DischargeElevation, we can specify an optional reference water level. For example, if we want to restrict the discharge to the main river channel, we can define the reference level to zero in the main channel and a large negative value elsewhere, so that the water level at the boundary will always be below the level of the topography outside of the main channel. The reference level is defined using a function of the spatial coordinates (x,y) along the boundary. We could work out what this function is using geographical coordinates, however for this particular example it is simpler to just visualise the terrain and construct this function interactively using GfsView. To do this we can use the
end.gfs simulation we generated above and visualise it using GfsView:
% gfsview2D end.gfs isolines.gfv
We want to impose the inflow close to the right-hand-side boundary of the domain. Pan and zoom to display this part of the domain, then select "Objects -> Mesh -> Boundaries", click on "Squares", change "P" to "T0" and you should get something looking like this
which shows the right-hand-side boundary together with the upper reaches of the river. We see that the riverbed is naturally bounded by steep topography in the upper part along the boundary. In the lower part along the boundary the main river channel is bounded by a ridge with an elevation of ~9 metres. To find the corresponding y-coordinate hold the "Ctrl" key of your keyboard while clicking on the left mouse button. The coordinates of the mouse cursor are then displayed in the status bar of GfsView (see screenshot above): a lower y-coordinate value of 5431400 seems appropriate. To test whether this is OK, replace "T0" in the "Scalar" text entry of the "Squares" property dialog with "y > 5431400" and you will get
We can now use this function to restrict how the discharge will be distributed. To do this we need to modify both the line computing the water level to
DischargeElevation E 2000 (y > 5431400 ? 0 : -1000)
and the line imposing the water level boundary condition to
BcDirichlet P (y > 5431400 ? MAX(E - Zb, 0) : -1000)
where we have used the C ternary operator. Testing this new boundary condition
% gerris2D karamea.gfs | gfsview2D -s flow.gfv
we get
This looks good but how can we check that the boundary conditions really does what we want it to do? (i.e. impose a constant discharge of 2000 cumecs). A simple check is to look at the evolution with time of the total volume contained within the domain. It should start from zero (dry terrain) and increase linearly at a rate of 2000 cumecs. To record this evolution, we can add the following line
OutputScalarSum { istep = 1 } volume { v = P }
As explained in the documentation, this will record in file 'volume', at every timestep, the (surface) integral of
P (the fluid depth) i.e. the total volume (in cubic metres in our system of units). If we now restart the simulation and open another terminal, we can use the unix 'tail' command to see what is being written in the file
% tail -f volume P time: 0 sum: 0.000000e+00 P time: 10 sum: 2.006861e+04 P time: 10.7692 sum: 2.220302e+04 P time: 11.6084 sum: 2.275096e+04 ...
just use Ctrl-C to exit the tail command. This text file can be plotted using your favourite plotting tool. Using gnuplot for example:
% gnuplot gnuplot> set xlabel 'Time (s)' gnuplot> set ylabel 'Total volume (m^3)' gnuplot> set key bottom right gnuplot> plot 'volume' u 3:5 w l,2000*x
will give this graph
which confirms that everything works as expected.
Time-dependent inflow
The flow we have defined is constant at 2000 cumecs. What if we want to define a time-dependent flow? If we look at the syntax reference for DischargeElevation, we find that the constant value of 2000 we specified is actually a particular case of GfsFunction. We can then replace it with any of the other forms a GfsFunction can take. For example:
DischargeElevation E (2000*MIN(1,t/3600)) (y > 5431400 ? 0 : -1000)
would define a flow ramping up linearly over one hour (3600 seconds) before saturating at 2000 cumecs.
In the case of the Karamea flood, the flow is not an analytical function but is given by the
flow.asc file:
% more flow.asc 0.00 151.5 1.00 176.63 2.00 463.7 ...
The simplest way to use this file to define the value of the flow is to use the Cartesian Grid Data (CGD) file format for the GfsFunction. We first need to convert this file to the CGD file format.
The file will only have one dimension (time). We also need the number of data points contained in the
flow.asc file. This is easily obtained using:
% wc -l flow.asc 25 flow.asc
wc --help or
man wc to learn more about the
wc command). Now open your text editor and type
1 t 25
and save the file as
flow.cgd. We now need to add the values for the time coordinate. Because we chose to use seconds as our time unit, these times need to be specified in seconds. We can easily extract and convert the times in the
flow.asc file using the following awk script
% awk 'BEGIN{ ORS=" " }{ print $1*3600. }END{ print "\n" }' < flow.asc >> flow.cgd
flow.cgd file now looks like
% more flow.cgd 1 t 25 0 3600 7200 10800 14400 18000 21600 25200 28800 32400 36000 39600 43200...
We now need to append the values of the flow rate (in cumecs), which can be done using
% awk '{ print $2 }' < flow.asc >> flow.cgd
The file is now ready to use. Following the documentation we can just replace the DischargeElevation line in
karamea.gfs with
DischargeElevation E flow.cgd (y > 5431400 ? 0 : -1000)
and check that everything works using
% gerris2D karamea.gfs | gfsview2D flow.gfv
Adding friction
The simulation we have set up so far does not include any model for bottom friction. The friction term is of course essential for river flows as it ultimately controls the relationship between flow rate and pressure gradient (slope). Gerris does not come with predefined friction models (although it could) but rather provides several generic objects which allow a simple implementation of a wide range of friction models.
We will see how to implement the "Smart, Duncan and Walsh (2002)" (SDW) friction model. To do this, we need to add a "source" term (or more correctly a "sink" term) to each of the components of the flux (variables
U and
V in Gerris). This can easily be done within Gerris using the GfsSource object and its descendants. For example
Source U 1
Source V 1
would add a constant source term (with units: [units of
U]/[unit of time]) to both components of the flux. Of course in the case of a friction model, the source term is not constant but depends on: the fluid velocity (or flux
V), the water depth (
P) and the "hydraulic roughness" of the bed (
Z0). Gerris provides an object - descendant of GfsSource - which is specialised for the definition of source terms applied to a velocity (or flux) field, and which depend on the velocity field itself. This object implements specific integration routines which guarantee the stability of such "self-dependent" source terms. The main application of this object is the integration of Coriolis force source terms, for example
SourceCoriolis 1e-4
is equivalent to
Source U -1e-4*V
Source V 1e-4*U
(but uses a robust integration scheme).
1e-4 is the value (units of 1/[unit of time]) of the Coriolis coefficient. We see that a general friction term will have a form which can be expressed (in Gerris syntax) as
Source U -f(U,V,P,Z0)*U
Source V -f(U,V,P,Z0)*V
which is similar to the Coriolis force. A natural extension of the SourceCoriolis syntax is then
SourceCoriolis 0 f(U,V,P,Z0)
where the Coriolis coefficient is now zero and the additional "friction coefficient" is given by the friction model. In the case of the SDW friction model, this friction coefficient is given by
<math> f(U,V,P,Z0)={\sqrt{U^2+V^2}\over P^2r^2} </math>
with <math>r=5\,(\log(a) - 1 + 1.359/a)/2</math> if <math>a<e</math>, <math>r=0.46\,a</math> if <math>a\geq e</math> and <math>a=P/Z0</math>. Using the C syntax of Gerris, this can be written in the parameter file as
SourceCoriolis 0 {
/* r = U/U^\star */
double Z0 = 0.01; /* 10 mm */
if (P < 1e-6 || Z0 < 1e-6)
return 1e10;
double a = P/Z0;
double r = a > 2.718 ? 2.5*(log (a) - 1. + 1.359/a) :
return sqrt(U*U+V*V)/(P*P*r*r);
where care has been taken to avoid division by zero. Note also that for now we have fixed the hydraulic roughness to a constant of 0.01 metres.
Variable hydraulic roughness
To use a variable hydraulic roughness we just need to define a new variable
Z0 initialised with some roughness data. I will assume that the roughness was deduced from post-processing of lidar "hits" and that the result is contained in an ASCII, compressed file called
Z0.txt.gz. The file looks like this:
% zcat Z0.txt.gz | more 1533443.88,5433375.97, 18.88,0.0032 1533443.85,5433375.06, 18.87,0.0032 1533443.79,5433373.24, 18.77,0.0032 ...
where the first two columns are the coordinates (in the same coordinate system as the topography
topo.asc), the third column is the elevation and the last column is the roughness length scale (in metres). We can import this dataset using a technique similar to what we used to import the topography file
topo.asc. We first need to create a "terrain" database using as before the xyz2kdt command, combined with awk to convert the file to the correct format. The following command will do just this
% zcat Z0.txt.gz | \ awk 'BEGIN{FS=","}{ if ($4 > 0.) print $1, $2, $4; }' | \ xyz2kdt -v z0
Note that we have redefined the
FS variable of awk, so that fields are separated by commas rather than spaces.
Once the new terrain database has been created, we can initialise the corresponding variable by adding
VariableTerrain Z0 { basename = z0 }
in the
karamea.gfs file. This line needs to be added before the line where we use the
Z0 variable in SourceCoriolis.
Note that VariableTerrain is an object we have not used before. The main difference with RefineTerrain is that this object only defines a single variable (the average value of the terrain) and does not modify the mesh. Furthermore this object also updates the value of the variable whenever the mesh changes (always using the highest-possible resolution available in the corresponding terrain database). We will see later that this is useful when using adaptive mesh refinement.
For now, let's try to run our modified
karamea.gfs simulation. If we do
% gerris2D karamea.gfs | gfsview2D flow.gfv
we get the following message from Gerris
gerris: file `karamea.gfs' is not a valid simulation file karamea.16:22: error compiling expression In function `f': 18: error: redeclaration of `Z0' /tmp/gfsx9MabT:12: error: `Z0' previously declared here gfsview: <stdin>: Broken pipe
Error messages in Gerris almost always contain a line starting with something like
karamea.16:22:.... The first part is the name of the file which contains the error, the first number is the line in this file at which the error occured and the second number is the column at which the error occured. Any decent text editor should allow you to navigate quickly to this line/column position in the
karamea.gfs file. If you do this, you will see that the error occured when reading the GfsFunction part of the line starting with SourceCoriolis. The next lines in the message tell you more precisely what the problem is i.e.
18: error: redeclaration of `Z0'
at line 18 in the parameter file. Gerris complains about the inconsistency of defining a new variable
Z0 (with the VariableTerrain line we have added) and then trying to use another (constant) variable with the same name. Fixing the problem is simple, just remove the line
double Z0 = 0.01; /* 10 mm */
and Gerris will use the new
Z0 variable as should be.
It is a good idea to check that the value of
Z0 is indeed correct. We can easily do this using
% gerris2D karamea.gfs | gfsview2D
and displaying
Z0 using e.g. the "Squares" object in GfsView. We get
which looks consistent with our dataset i.e. a minimum roughness of 2 mm and a maximum of 0.5 metre.
Using adaptivity
So far we have only used static mesh refinement, not true adaptivity where the resolution continually changes to appropriately resolve the solution as it evolves. The goal is of course to reduce the total number of grid points and thus the total runtime.
For the case of river flows, a first simple use of adaptivity is to only refine the mesh where there is water. The dry terrain will use the coarsest possible resolution. This can be done by adding
AdaptFunction { istep = 1 } { cmax = 0 maxlevel = 8 } (P > 0)
to the parameter file. This tells Gerris to adapt the mesh at every timestep (
{ istep = 1 }) using a maximum of 8 levels of refinement (
maxlevel = 8). The mesh will be refined whenever the cost function
(P > 0) is larger than
cmax. Here we use the C convention that
(P > 0) is equal to one whenever
P (the water depth) is larger than zero and is equal to zero otherwise. We see that this forces Gerris to refine to eight levels of refinement whenever the flow depth is larger than zero.
If we now run the modified simulation
% gerris2D karamea.gfs | gfsview2D flow.gfv
and select "Cells" in GfsView to visualise the mesh, we get something like this
wich doesn't look good. What is happening?
We first see that the mesh is refined - as it should - only for the wet terrain, however the water depth does not look right: the riverbed is too wide. This is even more obvious if we display
Zb (the topographic height) rather than
The problem is that by default Gerris initialises the values of variables (including
Zb) by linearly interpolating the coarser mesh values. This is appropriate in most cases (i.e. when the value of the variable is part of the solution being sought). The topography
Zb is not part of the solution however. What we need is an initialisation procedure which always uses the finest-scale topography data to define values of
Zb in the new cells being created. This is exactly what the GfsVariableTerrain object we have introduced before does.
To use it we need to replace
RefineTerrain 8 T { basename = topo } (Te > 0.1)
Refine 8
VariableTerrain Zb { basename = topo }
The first line will create an (initial) uniform mesh with 8 levels of refinement and the second line will ensure that
Zb is always defined using the finest relevant data in the
topo terrain database. We also need to remove
Init {} { Zb = T0 }
since this was only relevant when
RefineTerrain was used.
If we now run the simulation again
% gerris2D karamea.gfs | gfsview2D flow.gfv
we get something like
which looks definitely better. The simulation is also significantly faster than when using only static mesh refinement.
You may have noticed that the first few timesteps are much slower than subsequent ones. This is because we have defined an uniformly-refined initial mesh. The simulation starts with 256 x 256 cells, the vast majority of which cover dry terrain. Over the first few timesteps this number is quickly reduced to just a few hundred cells (concentrated in the "wet" inflow close to the right-hand-side boundary). Although this initially-slow calculation is not a big issue when compared with the total runtime of the simulation, the memory usage associated with the initial mesh could be an issue (not really for a 256 x 256 mesh but will become if we increase the maximum resolution). We can improve this by replacing
Refine 8
Refine 5
Refine (x > 1529380 && y > 5431460 && y < 5431560 ? 8 : 5)
The first line defines a 32 x 32 uniform grid. In the second line, we have used a function which uses the C conditional operator to define a level of refinement of 8 within the inflow area and 5 elsewhere.
Better adaptivity
At the moment we only adapt the mesh to a constant (maximum) resolution in wet areas. We can do better by only refining the mesh in the wet areas where it is "necessary" to resolve small-scale details. Of course the definition of "necessary" depends on many considerations and the "optimal" criterion (or combination of criteria) can only be found after experimentation. For flooding simulations, a critical aspect is that some areas such as stop-banks need to be sufficiently resolved to act as proper barriers to the flow in the simulation. This can be ensured using for example the following adaptation criterion
AdaptFunction { istep = 1 } {
cmax = 0
minlevel = (t > 0 ? 0 : 8)
maxlevel = 11
} (P > 0 && Zbn > 1 ? MAX(Zbdmax - H, 0) : 0)
Zbn and
Zbdmax are defined by VariableTerrain. This is similar to the criterion we have used before. First of all we have added the condition
Zbn > 1 i.e. we will refine the mesh only if it is coarse enough to contain at least
two terrain database samples. If both conditions are verified, the cost of adaptation is set to
Zbdmax - H if this is positive or zero otherwise. As described in the VariableTerrain documentation,
Zbdmax is the maximum elevation of any database sample contained within the cell.
H is the water elevation, so that the cost function is the maximum height above the local water level of any database sample. We set
cmax to zero, so we will adapt to the maximum resolution (
maxlevel = 11) whenever a wet cell contains at least one "dry" sample.
If we now restart the simulation using this criterion instead of the previous one, we get something looking like
i.e. the mesh is adaptively refined to follow the "water's edge" at the highest resolution. Flooded areas are resolved at the coarsest possible resolution.
How much did we "gain" by using this criterion compared to, say, using a constant resolution? We can use OutputBalance to find out. Adding
OutputBalance { istep = 10 } stderr
to the simulation file will outputs lines looking like
Balance summary: 1 PE domain min: 2254 avg: 2254 | 0 max: 2254
which tells you that you are running on a single processor (
1 PE) and that the simulation contains 2254 cells. This number can be compared to the number of cells of a constant-resolution domain with the same maximum resolution i.e. 2^11^2 = 2^22 ~ 4.2 million.
Tidal boundary conditions
As you may have noticed if you know the area around Karamea, for the moment the "sea" is empty in our model. Before we look at tides, we need to fill the sea in. By default all variables in Gerris are set to zero at initialisation. This includes the depth
P which is why the domain is initially dry in our simulation. To fill the sea, assuming that the sealevel is at
Zb = 0, we need to set the initial fluid depth so that the water level
P + Zb is equal to zero when Zb is negative. This is easily done using
Init {} {
P = MAX(-Zb, 0)
P is zero (dry) when
Zb is positive and the water level
P + Zb is equal to zero when Zb is negative.
For simplicity, we will impose tidal boundary conditions only on the left-hand-side boundary of the domain. To start with, we will assume that the sealevel on this boundary is given by
<math> H(t) = A\sin(2\pi t/T_0) </math>
where <math>A</math> is the tidal amplitude (say 1 metre) and <math>T_0</math> is the tidal period (433512 seconds for the M2 tide). We can impose this water level on the left-hand-side boundary using
left = Boundary {
BcSubcritical U MAX(1.*sin(2.*M_PI*t/433512.) - Zb, 0)
Note that the first argument of BcSubcritical must be the component of the flux normal to the boundary (
U for left/right and
V for top/bottom). The second argument specifies the water depth we want to impose (not the water level), so we have used the same trick as used previously for the inflow condition.
The GfsRiver solver also requires explicit boundary conditions on the top and bottom boundaries (which are now wet). We can use the default symmetry conditions of GfsBoundary (i.e. normal velocity/flux is zero on the boundary, all other quantities are symmetrical). Altogether this gives the following conditions:
GfsBox {
right = Boundary {
BcDirichlet P (y > 5431400 ? MAX(E - Zb, 0) : -1000)
left = Boundary {
BcSubcritical U MAX(1.*sin(2.*M_PI*t/433512.) - Zb, 0)
top = Boundary
bottom = Boundary
If we now restart the simulation, we can check that the sea (and branches of the estuary) are indeed filled in
Of course refining the sea/land transition according to our adaptive refinement criterion requires more cells as indicated by the code output
... Balance summary: 1 PE domain min: 32764 avg: 32764 | 0 max: 32764 ...
and the runtime is noticeably larger.
Importing the results into a GIS application
The simplest way to import the results into a GIS application is to convert them into a gridded (or raster) dataset. Using a regular grid rather than the adaptive quadtree mesh will result in (much) larger files but GIS systems are usually designed to be able to deal with large raster datasets. A standard GIS raster file format is the ESRI grid ASCII format (which we used as input for the terrain). The GfsOutputGRD Gerris object can be used to export fields using this format. For example
OutputGRD { step = 600 } p-%g.asc { v = P }
will create files called:
p-1200.asc, ... (at 10 minutes intervals) which describe the evolution of the fluid depth
P. These files can be imported directly into a GIS application.
Optimising the simulation
There are several things we can do to optimise the simulation.
By default GfsRiver uses a second-order time integration scheme. This is important for phenomena which have physical time scales comparable to the integration timestep (e.g. tsunamis). Using first-order-in-time schemes for such phenomena would lead to excessive numerical damping. In our river flood case, we saw that the timestep required for stability (at the maximum resolution we used) is around 0.2 seconds. This is much shorter than any (transient) phenomena we are interested in (indeed if we are interested only in the stationary regime then there is no physical timescale at all), so that we can safely use the first-order time integration scheme. Following the GfsRiver manual, this is done simply by adding
} { time_order = 1 }
in the right spot. This should speed up the run by up to a factor of two.
Another parameter which is worth controlling is the water level below which the terrain is considered "dry", By default this is set to <math>10^{-6}</math> times the size of the box i.e. in our case: <math>10^{-6}\times 5600=5.6</math> millimetres. To be consistent, we should use this value, rather than zero whenever we need to distinguish "wet" from "dry" cells. It is simplest to do this by defining a text macro using
Define DRY 1e-3
and use it where we need the depth of dry cells, for example:
SourceCoriolis 0 {
/* r = U/U^\star */
if (P < DRY || Z0 < 1e-6)
return 1e10;
double a = P/Z0;
double r = a > 2.718 ? 2.5*(log (a) - 1. + 1.359/a) :
return sqrt(U*U+V*V)/(P*P*r*r);
Because we chose a value different from the default of 5.6 mm, we also need to tell GfsRiver to use it, which can be done with
} { time_order = 1 dry = DRY }
The final simulation file
If you have followed the tutorial, you should end up with something close to the following
Define DRY 1e-3
1 0 GfsRiver GfsBox GfsGEdge { x = 0.5 y = 0.5 } {
PhysicalParams { L = 5600 g = 9.81 }
MapTransform { tx = 1523880 ty = 5430180 }
GModule terrain
Refine 8
VariableTerrain Zb { basename = topo }
VariableTerrain Z0 { basename = z0 }
SourceCoriolis 0 {
/* r = U/U^\star */
if (P < DRY || Z0 < 1e-6)
return 1e10;
double a = P/Z0;
double r = a > 2.718 ? 2.5*(log (a) - 1. + 1.359/a) :
return sqrt(U*U+V*V)/(P*P*r*r);
Init {} {
P = MAX(-Zb, 0)
DischargeElevation E flow.cgd (y > 5431400 ? 0 : -1000)
AdaptFunction { istep = 1 } {
cmax = 0
minlevel = (t > 0 ? 0 : 8)
maxlevel = 11
} (P > DRY && Zbn > 1 ? MAX(Zbdmax - H, 0) : 0)
OutputTime { istep = 10 } stderr
OutputBalance { istep = 10 } stderr
OutputSimulation { step = 10 } stdout
OutputScalarSum { istep = 10 } volume { v = P }
} {
time_order = 1
dry = DRY
GfsBox {
right = Boundary {
BcDirichlet P (y > 5431400 ? MAX(E - Zb, 0) : -1000)
left = Boundary {
BcSubcritical U MAX(1.*sin(2.*M_PI*t/433512.) - Zb, 0)
top = Boundary
bottom = Boundary
which you can run using
% gerris2D -m karamea.gfs | gfsview2D flow.gfv
Alternative way of imposing inflow conditions
GfsDischargeElevation can only be used where the river channel intersects a boundary of the simulation domain. It is sometimes useful to be able to impose an inflow in the middle of the domain (i.e. a "spring"). This can be done using the GfsSourceFlux object of Gerris. The following describes how to use GfsSourceFlux to impose an inflow condition.
Reading the documentation, we find that aside from the flow value we need to define the area on which the flow will be imposed. This area is defined using a function of the spatial coordinates (x and y) of our simulation domain.
We could work out what this function is using geographical coordinates, however for this particular example it is simpler to just visualise the terrain and construct this function interactively using GfsView. To do this we can use the
end.gfs simulation we generated above and visualise it using GfsView:
% gfsview2D end.gfs isolines.gfv
We want to impose the inflow close to the right-hand-side boundary of the domain. Pan and zoom to display this part of the domain, then select "Objects -> Mesh -> Boundaries", click on "Squares", change "P" to "T0" and you should get something looking like this
which shows the right-hand-side boundary together with the upper reaches of the river. We now want to define a rectangular box within which to impose the inflow. To find the value of the left-hand-side (or lower value) x-coordinate of this box, hold the "Ctrl" key of your keyboard while clicking on the left mouse button. The coordinates of the mouse cursor are then displayed in the status bar of GfsView (see screenshot above): a lower x-coordinate value of 1529380 seems appropriate. To test whether this is OK, replace "T0" in the "Scalar" text entry of the "Squares" property dialog with "x > 1529380" and you will get
i.e. we have defined a band along the right-hand-side boundary. We would like to restrict this band vertically to coincide with the river bed. Using the "Ctrl-click" technique we find that values of the y-coordinate between 5431460 and 5431560 are appropriate. To test this replace "x > 1529380" with
(x > 1529380 && y > 5431460 && y < 5431560)
where "&&" is the logical "AND" operator in C. This will give something like
which gives a visual check that everything is OK. We could also adjust the box coordinates by directly editing the values in the formula above. Note also that we are not restricted to square boxes, any function can be used so that almost any shape can be generated (for example we could use the function for the township refinement above to define a circular inflow area).
This function can now be used in GfsSourceFlux as:
SourceFlux P 2000 (x > 1529380 && y > 5431460 && y < 5431560)
Adding culverts
From a modelling point of view culverts are a coupled sink and source of mass and/or momentum. They are modelled as segments connecting two discretisation cells. The flow rate between these two cells is then controlled by a "culvert model" which takes as input the water depths and momentum at either ends of the segment, any intrinsic properties of the culvert (e.g. length, width, height, roughness etc.) and returns the flow rate.
We will consider as an example an underground pipe connecting either sides of a road embankment in the Karamea terrain model. To start with we will consider a flooding scenario without the pipe. We will start from the previous file but at a coarser resolution to speed things up. Open the
karamea.gfs file and replace the lines
DischargeElevation E flow.cgd (y > 5431400 ? 0 : -1000)
maxlevel = 11
DischargeElevation E 1500 (y > 5431400 ? 0 : -1000)
maxlevel = 9
Then rerun the simulation with
% gerris2D -m karamea.gfs | gfsview2D flow.gfv
Wait until the simulation has run to a bit more than four hours simulated time and, playing with the parameters of GfsView, you should be able to get a figure looking like this (tip: use
P > 1e-3 ? P : NODATA as scalar value)
Adding the bathymetry (
Zb) with a grayscale and zooming on the center of the image reveals that a flooded branch is contained by an embankment: the light band between water and a deeper (darker) valley on the right-hand-side in the image below
What would happen if a culvert traversed the embankment at this location? We first need to find the coordinates of both ends of the culvert. We can do this for example by Ctrl-clicking on the GfsView display (in a more realistic scenario the culvert geographic coordinates would of course be given from e.g. field data). This gives for our example the following pair of coordinates
(1526896,5432714) (1526922,5432735)
Rather than rerun the simulation from the start after adding the culvert, we will restart the simulation from where we are at. We can save the state of the simulation from GfsView (an alternative would have been to save the state of the simulation at regular intervals using GfsOutputSimulation in the parameter file). Click on the File -> Save menu in GfsView (or type Ctrl-S) and type
snapshot.gfs in the 'Path' dialog, then click on the 'Save' button. You can now stop the simulation using either Ctrl-C in the terminal where you started it or using the File -> Quit menu (Ctrl-Q) in GfsView. If you now reopen the saved snapshot using
% gfsview2D snapshot.gfs
you should recover the same visualisation. If you now open
snapshot.gfs with a text editor, you will see that it looks like (and is) a regular parameter file. To add the culvert just add
SourcePipe *culvert (1526896,5432714) (1526922,5432735) 2
for example before the
GfsDischargeElevation line. The parameters are in order: a symbolic name (optional), the coordinates of both ends of the culvert and the pipe diameter (in metres). Have a look at the documentation of GfsSourcePipe for details. To check that the culvert is correctly defined, save the file and reopen it with GfsView
% gfsview2D snapshot.gfs
then select the Objects -> Special -> Pipes menu. Zooming in you should see
The length and width of the red rectangle match the end points and diameter given in the parameter file. You can now restart the simulation using
% gerris2D snapshot.gfs | gfsview2D flow.gfv
After about 7 hours of simulated time, the valley on the right-hand-side of the embankment is now flooded by water flowing through the culvert
More realistic culverts can be modelled using the culvert module.
- Syntax reference for Gerris.
- Gerris terrain databases at NIWA.
- Relatively rough flow resistance equations Graeme M. Smart; Maurice J. Duncan; and Jeremy M. Walsh - JOURNAL OF HYDRAULIC ENGINEERING, 2002, 568-578. PDF


text:
Root Causes of Project Abandonment in Tertiary Institutions in Nigeria
This article explores the root causes of project abandonment in Tertiary Institutions in Nigeria. Structured questionnaires were distributed to targeted officials playing a role in the administration of project management in the Institutions, namely, bursars, internal auditors, directors of works, directors of physical planning, quantity surveyors in the physical planning and works Units. Four hundred and seventy five completed questionnaires returned were analyzed and tested using relative important index (R.I.I.) and simple percentages. The result from the study showed that the root causes of project abandonment in tertiary Institutions in Nigeria like any other government establishment are, the lack of articulated vision and objectives, lack of adequate planning for the project at inception, lack of adequate funds and budgetary allocation before projects are embarked upon, Inefficient and effective legal system, poor contract documentation, corruption and compromises, lack of municipal services, non release of government white papers on investigations carried out on abandonment of projects, lack of true leadership, lack of continuity and Institutions' long term strategic plans to drive the Institutions, ambiguity in contract documentations. The study concludes that any reason for project abandonment can be related directly or remotely to compromises on the above root causes.
Full Text:PDF
DOI: https://doi.org/10.5539/ibr.v6n11p149
This work is licensed under a Creative Commons Attribution 4.0 International License.
International Business Research ISSN 1913-9004 (Print), ISSN 1913-9012 (Online)
Copyright © Canadian Center of Science and Education
To make sure that you can receive messages from us, please add the 'ccsenet.org' domain to your e-mail 'safe list'. If you do not receive e-mail in your 'inbox', check your 'bulk mail' or 'junk mail' folders.


text:
BALTIMORE — Bring on the Patriots, already. Do the Broncos have to bother playing out these predictable regular-season games?
The schedule says they must, even if the NFL's Any Given Sunday mantra has long disappeared from the Broncos' season.
The Broncos have etched out their own motto, which is to become the superior team Every Single Week. At least for nine games in a row they have been.
On Sunday, the Broncos methodically and thoroughly destroyed Baltimore, 34-17, on an overcast, winter afternoon before a crowd of more than 71,000 in Baltimore.
The Broncos are 11-3 with seemingly two gimme games remaining in the 2012 calendar year, against Cleveland (5-9) and Kansas City (2-11). Both of those games will be played at Sports Authority Field at Mile High, where the Broncos will open play in the AFC postseason tournament.
If the Broncos can't lose in Baltimore, when will they? Until Sunday, the Broncos were 0-5 lifetime against the Ravens in Baltimore, losing by an average score of 28-11. But all historical trends regarding the Broncos prior to March 20 have been rendered moot.
The quarterback who signed on with the Broncos that magical day, Peyton Manning, was never afraid of Baltimore. He had won four consecutive games at M&T Bank Stadium during his long tenure with the Indianapolis Colts, eight consecutive games overall.
One of those trends had to give. When's the last time anyone saw Peyton Manning give in on anything?
One trend busted; another one started. The Broncos with Manning are now 1-0 at Baltimore.
The Ravens, banged up on defense and pathetic on offense, lost their third in a row. With a 9-5 record, the Ravens are no longer a threat to the Broncos' quest for a No. 2 playoff seed.
Between having Manning on offense and a Denver defense that more closely resembles the mighty Ravens of yesteryear, the Broncos are ready for bigger challenges.
Like the playoffs. Like either the Houston Texans or New England Patriots in January. Or both. The Broncos lost to both teams earlier in the season. Way earlier. In game 3, the Broncos fell behind Houston 31-11 in the fourth quarter and lost 31-25. In game 5, they trailed New England, 31-7, late in the third quarter and lost 31-21.
The Texans, 12-2 after defeating the Colts on Sunday, and Patriots, who took a 10-3 record into their game Sunday night against the San Francisco 49ers, appear to be the teams in the way of the Broncos' quest to eventually reach Manning's hometown of New Orleans for Super Bowl XLVII.
No other team has given the Broncos much of a test. The Ravens were supposed to be a challenge, but hardly. They made the unusual move of firing their offensive coordinator last week despite a 9-4 record and only three games remaining.
All the switch from Cam Cameron to Jim Caldwell did was bring the Ravens' offense a lost fumble on their third play of the game, followed by four consecutive three-and-outs. With the Ravens seemingly about to get back in the game late in the first half with a first-and-goal at the 4, quarterback Joe Flacco opted not to spike the ball with 30 seconds remaining but to try and catch the Broncos' defense napping.
Chris Harris only pretended to sleep. When Flacco threw to the left sideline, Harris' eyes bulged. The Broncos' cornerback stepped up, picked off the pass then raced 98 yards for a touchdown, barely outpacing Flacco. It was the longest regular-season interception return in Broncos history, besting the 93-yard mark set by the great Randy Gradishar in 1980.
The pick was a 14-point swing. Instead of the Broncos taking a 10-7 lead into halftime, they were up 17-0. A gorgeous 51-yard touchdown pass from Manning to Eric Decker early in the second half clinched victory and another Manning-led touchdown drive that was finished off by a Knowshon Moreno run lifted the Broncos to a 31-3 advantage before the midway point of the third quarter.
It was as if the Broncos released a lifetime of Baltimore frustration in one game. Then again, with Manning at quarterback, there is no dark Broncos history that has meaning.
During their current nine-game winning streak, the Broncos have outscored their opponents by a combined 114 points, or an average margin of victory of 12.7 points.
The point has been made. The regular-season schedule has stopped challenging the Broncos long ago. Not to rush through the holidays or anything, but bring on football January.
Mike Klis: 303-954-1055, email@example.com or twitter.com/mikeklis


text:
By the medieval period, ayurvedic practitioners developed a number of medicinal preparations and surgical procedures for the treatment of various ailments.* Current practices derived (or reportedly derived) from ayurvedic medicine are regarded as part of complementary and alternative medicine,* and, along with siddha and Traditional Chinese medicine, form the basis for systems medicine.*Safety concerns have been raised about Ayurveda; for instance, two U.S. studies found that about 20 percent of Ayurvedic US and Indian-manufactured patent medicines sold via internet contained toxic levels of heavy metals such as lead, Mercury (element)|mercury and arsenic. Other concerns include the use of herbs containing toxic compounds and the lack of quality control in Ayurvedic facilities.*In classical Sanskrit literature, Ayurveda was called "the science of eight components" (Sanskrit a?a?ga ?), a classification that became canonical for ayurveda. They are:*
Principles and terminologySince Ayurveda is really the generic term for "traditional medicine" in India, actual practice may be widely divergent. Descriptively, one may either focus on the historical foundation from the evidence of the earliest ayurvedic texts of the early centuries of the Common Era, or alternatively a description may take an ethnographic approach and focus on the forms of traditional medicine prevalent across India today.
Much like the medicine of classical antiquity, Ayurveda has historically taken the approach of enumerating bodily substances in the framework of the five Classical element#Classical elements in Hinduism|classical elements (Sanskrit [maha]panchabhuta [?] ?), viz. Prithvi|earth, Ap (water)|water, fire, Vayu|air and Akasa|aether, considering the seven "tissues" Dhatu (Ayurveda)|dhatu (Devanagari: saptadhatu ? of plasma (rasa dhatu), blood (rakta dhatu), flesh (ma?sa dhatu), adipose (medha dhatu), bone (asthi dhatu), Bone marrow|marrow (majja dhatu), and reproductive (sukra dhatu).*
Ayurveda stresses a balance of three elemental substances (do?a ?), analogous to classical humorism: Vayu / vata (air & space � "wind"), pitta (fire & water � "bile") and kapha (water & earth � "phlegm"). One ayurvedic theory asserts that each human possesses a unique combination of do?as that define that person's temperament and characteristics. Each person has a natural systems state, or natural combination of the three elements, and should seek balance by structuring their behavior or environment to provide more of the element(s) they lack.* Another view, also present in the ancient literature, asserts that humoral equality is identical to health, and that persons with preponderances of humours are proportionately unhealthy, and that this is not their natural temperament.
In Ayurveda there are 20 fundamental qualities ( gu?a ?) inherent in all substances, arranged in ten pairs of antonyms: heavy/light, cold/hot, unctuous/dry, dull/sharp, stable/mobile, soft/hard, non-slimy/slimy, smooth/coarse, minute/gross, viscous/liquid.*Ensuring the proper functions of channels (srotas) that transport fluids from one point to another is a vital goal of ayurvedic medicine, because the lack of healthy srotas is thought to cause rheumatism, epilepsy, autism, paralysis, convulsions, and insanity. Practitioners induce sweating, which is termed as Svedana and prescribe steam-based treatments as a means to open up the channels and dilute the do?as that cause the blockages and lead to disease.*Prakriti is an important concept in Ayurveda.
Hinduism and Buddhism have been an influence on the development of many of ayurveda's central ideas � particularly its fascination with balance, known in Buddhism as Madhyathmaka (Sanskrit madhyatmika ?).* Balance is emphasized; suppressing natural urges is seen to be unhealthy, and doing so claimed to lead to illness.* However, people are cautioned to stay within the limits of reasonable balance and measure.* For example, emphasis is placed on moderation of food intake,* sleep, sexual intercourse.*
PracticeAyurvedic practitioners approach diagnosis by using five senses.* Hearing is used to observe the condition of breathing and speech.* The study of the lethal points or marman marma is of special importance.* Ayurvedic doctors regard physical and mental existence together with personality as a unit, each element having the capacity to influence the others. One of the fundamental aspects of ayurvedic medicine is to take this into account during diagnosis and therapy. Concepts of Dinacharya are followed in Ayurveda. Practices like Oil pulling are practiced.
Hygiene is a central practice of ayurvedic medicine. Hygienic living involves regular bathing, cleansing of teeth, skin care, and eye washing.*
Ayurveda stresses the use of plant-based medicines and treatments. Hundreds of plant-based medicines are employed, including cardamom and cinnamon. Some animal products may also be used, for example milk, bones, and gallstones. In addition, fats are used both for consumption and for external use. Minerals, including sulfur, arsenic, lead, copper sulfate and gold are also consumed as prescribed.* This practice of adding minerals to herbal medicine is known as rasa shastra.
In some cases, alcohol was used as a narcotic for the patient undergoing an operation. The advent of Islam introduced opium as a narcotic.* Both oil and tar were used to stop bleeding.* Traumatic bleeding was said to be stopped by four different methods: ligature (medicine)|ligation of the blood vessel; cauterisation by heat; using different herbal or animal preparations locally which could facilitate Blood clot|clotting; and different medical preparations which could Vasoconstriction|constrict the bleeding or oozing vessels. Various oils could be used in a number of ways, including regular consumption as a part of food, anointing, smearing, head massage, and prescribed application to infected areas.*
While two of the eight branches of classical Ayurveda deal with surgery ( Salya-cikitsa, Salakya-tantra), contemporary Ayurvedic theory tends to emphasise that building a healthy metabolism|metabolic system, attaining good digestion, and proper excretion lead to vitality.* Ayurveda also focuses on exercise, yoga, and meditation.* In ayurveda, liquids may be poured on the patient's forehead, a technique which is called Shirodhara. To maintain health, a Sattvic diet is prescribed to the patient.
PanchakarmaAccording to some experts, the practice of panchakarma (Devanagari: ?)) is a therapeutic way of eliminating toxic elements from the body.* Panchakarma includes Vamana, Virechana, Basti (Panchakarma)|Basti, Nasya and Raktamokshana.
DiagnosisAyurveda has 8 ways of diagnosis. They are Nadi (Pulse), Mootra (Urine), Malas (Ayurveda)| Mala (Stool), Jinvha (Tongue), Shabda (Speech), Sparsha (Touch), Druk (Vision), Aakruti (Appearance).*
HistoryAyurveda is a discipline of the upaveda or "auxiliary knowledge". It is treated as a supplement or appendix of the Vedas themselves, usually either the Rigveda or the Atharvaveda. The samhita of the Atharvaveda itself contains 114 hymns or incantations for the magical cure of diseases. There are various legendary accounts of the "origin of ayurveda", e.g. that the science was received by Dhanvantari (or Divodasa) from Brahma * Tradition also holds that a lost text written by the sage Agnivesh, a student of the sage Bharadwaja, influenced the writings of ayurveda.*There are three principal early texts on Ayurveda, all dating to the early centuries of the Common Era. These are the Charaka Samhita, the Sushruta Samhita and the medical portions of the Bower Manuscript (a.k.a.. the Bheda Samhita). The relative chronology of these texts is not entirely clear. The Charaka Samhita is often cited as primary; although it survives in a recension of about the 4th or 5th century, it may be based on an original written between 100 BCE and 100 CE, which would have predated the other two texts. The Sushruta Samhita was written in the 3rd or 4th century. The Bower Manuscript is of particular interest because in this case the manuscript itself is ancient, dated to the early 6th century.* The earliest surviving mention of the name Sushruta is from the Bower Manuscript.* The medical portions of the Bower Manuscript constitutes a collection of recipes which are connected to numerous ancient authorities, and may be based on an older medical tradition practiced during the Maurya period, antedating both the Charaka and the Sushruta Samhitas.
The Bower Manuscript is also of special interest to historians due to the presence of Indian medicine and its concepts in Central Asian Buddhism. A. F. R. Hoernle in his 1897 edition identified the scribe of the medical portions of the manuscript as a native of India, using a northern variant of the Gupta script, who had migrated and become a Buddhist monk in a monastery in Kucha. The Chinese pilgrim Fa Hsien (ca. 337�422 AD) wrote about the health care system of the Gupta empire (320�550) and described the institutional approach of Indian medicine, also visible in the works of Charaka, who mentions a clinic and how it should be equipped.*Other early texts, sometimes mentioned alongside the Sushruta, Chakaka and Bheda texts, are the Kasyapa Samhita|Kasyapa and the Harita Samhita|Harita samhitas, presumably dating to the later Gupta period (ca. 6th century). Ayurvedic authors of the 7th or 8th century include Vagbhata* and Madhava.
Underwood & Rhodes (2008) hold that this early phase of traditional Indian medicine identified "fever (takman), cough, Tuberculosis|consumption, diarrhea, dropsy, abscesses, seizures, tumours, and skin diseases (including leprosy)".* Treatment of complex ailments, including angina pectoris, diabetes, hypertension, and Calculus (medicine)|stones, also ensued during this period.* Plastic surgery, couching (ophthalmology)|couching (a form of cataract surgery), puncturing to release fluids in the abdomen, extraction of foreign elements, treatment of anal fistulas, treating fractures, amputations, cesarean sections, and stitching of wounds were known.* The use of herbs and surgical instruments became widespread.*The field of Ayurveda flourished throughout the Indian Middle Ages; Dalhana (fl. 1200), Sarngadhara (fl. 1300) and Bhavamisra (fl. 1500) compiled works on Indian medicine.*The medical works of both Sushruta and Charaka were also translated into the Arabic language during the 8th century.* The 9th-century Persian physician Muhammad ibn Zakariya al-Razi|Rhazes was familiar with the text.* The Arabic works derived from the Gupta era Indian texts eventually also reached a European audience by the end of the medieval period.* In Renaissance Italy, the Branca family of Sicily and Gaspare Tagliacozzi (Bologna) are known to have been influenced by the Arabic reception of the surgical techniques of Sushruta.*British physicians traveled to India to see rhinoplasty being performed by native methods.* Reports on Indian rhinoplasty were published in the Gentleman's Magazine in 1794.* Joseph Constantine Carpue spent 20 years in India studying local plastic surgery methods.* Carpue was able to perform the first major surgery in the western world in 1815.* Instruments described in the Sushruta Samhita were further modified in the Western World.* Joseph Constantine Carpue based on this article was able to perform the "Indian" method of nose reconstruction and publish it in 1815.;*
Current status
IndiaAccording to some sources up to 80 percent of people in India use some form of traditional medicines, a category which includes Ayurveda.*In 1970, the Indian Medical Central Council Act which aims to standardizequalifications for ayurveda and provide accredited institutions for its study and research was passed by the Parliament of India.* In India, over 100 colleges offer degrees in traditional ayurvedic medicine.* The Indian government supports research and teaching in ayurveda through many channels at both the national and state levels, and helps institutionalize traditional medicine so that it can be studied in major towns and cities.* The state-sponsored AYUSH|Central Council for Research in Ayurvedic Sciences (CCRAS) has been set up to research the subject.* To fight biopiracy and unethical patents, the Government of India, in 2001, set up the Traditional Knowledge Digital Library as repository of 1200 formulations of various systems of Indian medicine, such as ayurveda, unani and Siddha medicine|siddha.* The library also has 50 traditional ayurveda books digitized and available online.*Central Council of Indian Medicine (CCIM) a statutory body established in 1971, under AYUSH|Department of Ayurveda, Yoga and Naturopathy, Unani, Siddha and Homoeopathy (AYUSH), Ministry of Health and Family Welfare, Government of India, monitors higher education in ayurveda.* Many clinics in urban and rural areas are run by professionals who qualify from these institutes.*
Sri LankaThe Sri Lankan tradition of Ayurveda is very similar to the Indian tradition. Practitioners of Ayurveda in Sri Lanka refer to texts on the subject written in Sanskrit, which are common to both countries. However, they do differ in some aspects, particularly in the herbs used.
The Sri Lankan government has established a Ministry of Indigenous Medicine (established in 1980) to revive and regulate the practice within the country* The Institute of Indigenous Medicine (affiliated to the University of Colombo) currently offers undergraduate, postgraduate, and MD degrees in the practice of Ayurveda Medicine and Surgery, and similar degrees in unani medicine.*There are currently 62 Ayurvedic Hospitals and 208 central dispensaries in the public system, and they served almost 3 million people (approximately 11 percent of Sri Lanka's total population) in 2010. In total there are currently approximately 20,000 registered practitioners of Ayurveda in the country.*According to the Mahavamsa, the ancient chronicle of Sinhalese people|Sinhalese royalty, written in the sixth century A.D., King Pandukabhaya of Sri Lanka (reigned 437 BC to 367 BC) had lying-in-homes and Ayurvedic hospitals (Sivikasotthi-Sala) built in various parts of the country. This is the earliest documentary evidence we have of institutions specifically dedicated to the care of the sick anywhere in the world.* Mihintale Hospital is the oldest in the world.*Many Sri Lankan hotels and resorts offer Ayurveda themed packages, where guests are treated to a wide array of Ayurveda treatments during their stay.
Outside South AsiaAyurveda is a system of traditional medicine developed during antiquity and the medieval period, and as such comparable to pre-modern traditional Chinese medicine|Chinese and Medieval medicine of Western Europe|European systems of medicine. However, beginning in the 1960s, Ayurveda has begun to be advertised as "alternative medicine" in the West. Due to different laws and medical regulations in the rest of the world, the unregulated practice and commercialization of ayurvedic medicine has raised ethical and legal issues. In some instances, ayurvedic practices or terminology have also been adapted specifically for Western consumption, notably in the case of "Maharishi Vedic Approach to Health|Maharishi Ayurveda" in the 1980s; in some cases, this has involved active fraud on the part of proponents of Ayurveda in an attempt to falsely represent the system as amenable to the standards of modern medical research.*
Scientific appraisalAs a traditional medicine, many ayurveda products have not been tested in rigorous scientific studies and clinical trials. In India, research in ayurveda is undertaken by the statutory body of the Government of India|Central Government, the Central Council for Research in Ayurveda and Siddha (CCRAS), through a national network of research institutes.* A systematic review of ayurveda treatments for rheumatoid arthritis concluded that there was insufficient evidence, as most of the trials were not done properly, and the one high-quality trial showed no benefits.* A review of ayurveda and cardiovascular disease concluded that the evidence for ayurveda was not convincing, though some herbs seemed promising.*Two varieties of Salvia have been tested in small trials; one trial provided evidence that Salvia lavandulifolia (Spanish sage) may improve word recall in young adults,* and another provided evidence that Salvia officinalis (Common sage) may improve symptoms in Alzheimer's disease|Alzheimer's patients.* Many plants used as rasayana (rejuvenation) medications are potent antioxidants.* Neem appears to have beneficial pharmacological properties.* Turmeric and curcumin have shown effectiveness in preventing cancer in vitro.*Recently, there are some PubMed indexed journals being published in the field of Ayurveda.*
Use of toxic metals in AyurvedaRasa shastra, the practice of adding metals, minerals or gems to herbs, may have toxic heavy metals such as lead, Mercury (element)|mercury and arsenic.* Adverse reactions to herbs due to their pharmacology are described in traditional ayurvedic texts, but ayurvedic practitioners are reluctant to admit that herbs could be toxic and that reliable information on herbal toxicity is not readily available; there is communication gap between modern medicine practitioners and Ayurvedic practitioners. *According to a 1990 study on ayurvedic medicines in India, 41 percent of the products tested contained arsenic, and 64 percent contained lead and mercury.* A 2004 study found toxic levels of heavy metals in 20 percent of ayurvedic preparations made in South Asia and sold in the Boston area, and concluded that ayurvedic products posed serious health risks and should be tested for heavy-metal contamination.* A 2008 study of more than 230 products found that approximately 20 percent of remedies (and 40 percent of rasa shastra medicines) purchased over the Internet from both US and Indian suppliers contained lead, mercury or arsenic.* In 2012 the U.S. Centers for Disease Control and Prevention (CDC) stated that Ayurvedic drugs have been linked to lead poisoning on the basis of some cases where pregnant women had taken Ayurvedic drugs and toxic materials were found in their blood.*Ayurvedic proponents believe that the toxicity of these materials is reduced through purification processes such as Samskara (ayurvedic)|samskaras or shodhanas (formetals), similar to the Chinese pao zhi, although the ayurvedic technique is more complex and may involve prayers as well as physical pharmacy techniques. However, these products have nonetheless caused severe lead poisoning and other toxic effects.*Due to these concerns, the Government of India ruled that ayurvedic products must specify their metallic content directly on the labels of the product,* but, writing on the subject for Current Science, a publication of the Indian Academy of Sciences, M. S. Valiathan noted that "the absence of post-market surveillance and the paucity of test laboratory facilities [in India] make the quality control of Ayurvedic medicines exceedingly difficult at this time.*
World Health Organisation on AyurvedaAyurveda is not only a system of medicine, but also a way of living. It is used to both prevent and cure diseases. The most commonly reported reasons for using traditional and complementary/alternative medicine such as Ayurveda are that it is more affordable, more closely corresponds to the patient's ideology, and is less paternalistic than allopathic medicine. Regardless of why an individual uses it, traditional and complementary/alternative medicine provides an important health care service to persons both with and without geographic or financial access to allopathic medicine.Traditional and complementary/alternative medicine has demonstrated efficacy in areas such as mental health, disease prevention, treatment of non-communicable diseases, and improvement of the quality of life for persons living with chronic diseases as well as for the ageing population. Although further research, clinical trials, and evaluations are needed, traditional and complementary/alternative medicine has shown great potential to meet a broad spectrum of health care needs.In some countries, the legal standing of complementary/alternative medicine is equivalent to that of allopathic medicine, many practitioners are certified in both complementary/alternative medicine and allopathic medicine, and the primary care provider for many patients is a complementary/alternative practitioner.
Legal Status of Traditional Medicine and Complementary/Alternative Medicine:
A Worldwide Review-
World Health Organization 2001 Report .
World Health Organization: Benchmarks for Training in Ayurveda: http://apps.who.int/medicinedocs/documents/s17552en/s17552en.pdf


text:
A sweet and succulent peach pie filling topped with oat and brown sugar crumbs. That's what a crumble is made of. Fruit and lots of sweet, floury crumbs. Like a pie without it's crust.
Don't you worry at all about missing the crust because this has a double crumb topping that more than makes up for it. The plus side being it's quicker and easier to make. It will get to your belly faster.
On hot summer days I dream of desserts just like this with a big scoop of vanilla ice cream to cool me off. Kind of, sort of like a consolation prize for making it through the day without melting into a puddle.
So when the scent of fresh peaches wafts your way in the market and calls your name don't hesitate to take a big bag of them home. Tell them I sent you.
Sweet and succulent peaches topped with oat and brown sugar crumbs.
- In a large bowl mix together the flour, both sugars and salt. Mix the butter in so it's coated with flour then use a pastry blender or fork to cut the butter into the flour until it resembles coarse crumbs.
- Mix in the oats and squeeze with your hands until you get large clumps. Remove 3/4 cup of the mixture and set aside. Cover with plastic wrap and place in the freezer.
- Preheat the oven to 375 degrees F. and place a baking sheet on the bottom rack to catch any drips. Generously grease an 8x8-inch square baking pan.
- You can peel the peaches or leave the skin on - whatever you prefer. For easier peeling you can plunge the peaches into boiling water for 15 - 20 seconds then allow to cool.
- Toss the cubed peaches with the cinnamon and the 3/4 cup mixture you set aside earlier. Pour into the prepared pan and sprinkle the top with the crumbs.
- Bake about 30 minutes or until golden on top and bubbly. May be served warm, at room temperature or cold with ice cream or whipped cream.
Copyright ©2013 Cinnamon Spice and Everything Nice by Reeni Pisano All Rights Reserved.


text:
Earl of Kent played by Bruce Alexander
King Lear (2001)
Written by: William Shakespeare
Bruce Alexander played the Duke of Kent in the 2001 production of King Lear.
latest updates
This is Bruce's final blog post. This week he reflects on how the play has progressed from the earliest stages of rehearsals and looks ahead to taking King Lear to the Tokyo Globe.
In his penultimate blog post, Bruce discusses the differences between performing in matinees and evening shows, and the differences between different audiences.
In Bruce's fourth blog post he discusses the final stage of rehearsals, the first performances and the experience of performing at the Globe.
In his third blog post, Bruce discusses running the play, his further thoughts on Kent's disguise and bringing the play onto the Globe stage.
In his second blog post, Bruce discusses how discussing the text has helped him develop his character, what effect Kent's disguise has and how the cast will create the storm on stage.
This is Bruce's first blog post. This week he discusses acting on the Globe stage, his costume and how he prepares for the role of Kent.


text:
Find accommodations in Canal Winchester with the hotel list provided below. Search for cheap and discounted hotel and motel rates in or close to Canal Winchester, OH for your upcoming individual or group travel. Explore the most favored Canal Winchester Ohio hotel rooms. Review the Canal Winchester hotel list below to find the perfect lodging. We also have a map of the Canal Winchester hotels. Planning a group? Lock in Canal Winchester Group Hotel Deals
The Canal Winchester center point is approximately 4 miles southwest of Pickerington Central Softball Complex and 6 miles southwest of Pickerington North Softball Complex.
How should we direct your call?


text:
Currency Displayed in
Hover over image to zoom
Brand new 30x40 inch UK Quad movie poster of Bringing Down the House featuring Steve Martin and Queen Latifah
About this poster: Uk Quad
Copyright 2018 Moviestore Inc.. All Rights Reserved. Sitemap |
Bigcommerce Premium Themes by PSDCenter
All prices are in USD.
Compare Now
Click the button below to add the BRINGING DOWN THE HOUSE 788567 UK QUAD POSTER to your wish list.


text:
Annuities have somehow gotten a bad name. Life annuities are an important product for retirement income and are truly more friend than foe.
The dictionary meaning of the word annuity is an amount payable at regular intervals for a certain or an uncertain period. In this article, the word "annuity" will refer to " life annuity," where the regular payment is made for the life of the annuity contract owner.
During retirement, people need to convert a pot of accumulated assets into a stream of regular cash flow akin to the monthly paycheck they received during their workdays. A commonly used practice is to generate retirement income cash flow first from the interest and dividend distribution of the investment portfolio. If the required income is not completely met, then liquidate part of the principal. This approach is called "systematic withdrawal."
Such an approach can't guarantee that the desired retirement income will be there for as long as you live as you may exhaust your assets while you are still alive. What if there was a magical, endless source of cash flow that will keep flowing till you die? That's exactly what life annuities are.
Is this magical source yet another fraudulent scheme that is too good to be true? No, they are not meant to cheat investors. Annuities are products with investors' well-being at heart. Life annuities are based on similar principles of common pooling of risk through insurance as is done in life insurance. In a typical life insurance, people who are afraid of the financial consequences for their family if they were to die young decide to put money regularly in a common pot. The pot is used to pay survivors of the unfortunate ones who die early.
Life annuities insure the reverse risk: the risk of dying too late. The longer you live, the more money you need for those additional years. Life annuities also function like a common pot, where retirees pool part of their assets and the ones who live longer collect the money from the pot. The ones who die early are the unfortunate ones — not just unfortunate enough to die early but also unfortunate that their heirs lose access to the money they put in the common pool.
It is this aspect — the fact that you permanently give up access or claim to the principal amount you contributed to the common pool — gives life annuities a bad name. Even the insurance firms providing these products are evaluated sometimes as if the firms are cheating retirees by taking away their principal if the retiree dies shortly after buying the contract. Insurance firms are merely providing the mechanics of pooling the risk of living too long and running out of money because of the extra years of life.
To get payments that last for your life, you will need to contribute to the common pool and be ready to lose access to the capital base. This implication is psychologically difficult to accept for retirees and rightly so. Having patiently saved capital for over 30 years and then losing access to it in the snap of a finger rightly makes you nervous. But the alternative way of thinking about it can help you see the reasonableness of the contract.
The assets you accumulated and grew over your working life are meant to provide you retirement income. At retirement, you seriously need to think through whether you would like to continue to see the pleasure of seeing a few thousand or few million dollars, a big amount, in your account statement but bear the risk of returns on those assets and also the risk of self-insuring how long you live. Or offload both those risks by converting part of your assets through the common pooling mechanics of life annuity to generate a payment stream for life.
Converting part of the assets is a key point. Since life annuities lead to irreversible loss of access to the capital, you will never use all your assets to purchase them.
Secondly, you don't need to purchase all the life annuities you need right at the onset of retirement. The regular purchase of a small amount of life annuities is likely to be more psychologically acceptable and keeps your options open in the future, such as buying a single life annuity if your partner's life expectation becomes shorter for medical reasons. Single life annuity means the payments are made for life of only one of the spouses. Joint life annuity by contrast makes payments for life for both the spouses.
In my follow up articles, I will elaborate on various approaches for evaluating strategies to purchase life annuities. Those discussions will use specific contracts that are available in the market.
This article is for information purposes only and is not investment advice. Please consult your financial adviser to evaluate benefit of life annuities in your retirement income plan. The author and his firm neither sell life annuities nor are compensated in any way by the sale of life annuities.


text:
'Stop obscuring the night sky'
Each week a global thinker from the worlds of philosophy, science, psychology or the arts is given a minute to put forward a radical, inspiring or controversial idea – no matter how improbable – that they believe would change the world.
This week the UK's Public Astronomer, Marek Kukula
"If I rule the world I would replace old inefficient street lights all over the planet with modern efficient designs that only put the light where it is needed – down on the streets.
Instead of wasting it by shining it up into the sky where all it does is blot out the stars – that orange glow that mean city dwellers never see a dark sky.
Think of the difference that this would make. We would still have safe, well lit streets, but for the first time in decades people in towns and cities would be able to look up and see the wonder of the night sky. And it would not just would-be stargazers that would benefit. Less wasted light, means less waster electricity, less wasted money and a reduced carbon footprint.
Migrating birds and animals would also benefit – they would be able to navigate more easily using the moon and stars and there is even some benefit that human health would benefit from a more natural cycle of light and dark in urban areas.
So we would see many practical benefits and a natural wonder that should belong to everyone would be restored. I think this would make the world a better place because everyone would have a chance to see the stars and appreciate our place in the Universe."
You can listen to Marek discuss his idea with American photographer Rachel Sussman and high-performance coach Rasmus Ankersen in more detail on the BBC World Service programme The Forum, where you can also download more 60-second ideas.
If you have a 60-second idea or would like to comment on this story, head over to our Facebook page or message us on Twitter.