Taken from the Real Estate Board of Greater Vancouver's "The Open House"
Is Vancouver's affordability a problem? And if it is, are there solutions? The UBC Centre for Urban Economics and Real Estate decided to find out by hosting a panel of four experts on the subject.
Panel members agreed that Vancouver now ranks as the second most unaffordable city on earth, just aftter Hong Kong and well ahead of London (seventh place), and New York (12th place), according to the 2013 Demographis International Housing Survey.
Given the wide-ranging concerns this topic generates, it's no surprise that September 17, 2013 session was standing-room only.
"The idea that affordability has suddenly worsented is not new. Its been around since the 1980's" said Sommerville.
"But rather than it being a housing issue, it's more of an income issue," explained Somerville, noting that median incomes are lower in Vancouver than in Regina or Saskatoon--which are far more affordable cities.
Why is Vancouver so popular despite high housing price?" Vancouver is a high-amenity city," explained Somerville. It's attractive to college graduates and higher-income earners who are prepared to pay for amenities because they get significant value in return. "This process, known as income sorting, drives up rents and housing costs," says Sommerville.
"In Vancouver, the ratio of a median house price to income is now eight," explained Helsely. "This means the median price of a home is more than eight times the median household income."
Is that too high?--" Housing prices are deteremined by a process of idding. Housings costs are higher in Vancouer because people want to live here for the high qualify of life and are prepared to pay for it," said Helsely.
Helselsy noted that some of the most affordable housing is located in Detroit, but with few amenities, not many people want to lie there any more.
Is housing affordable? "Yes and no," said Goldberg. "Remember that half of all sales are below the median price."
What can we do? Slow demand? Stop migration? Raise taxes? Stop mortgage lending?
Plan B, according to Goldberg, would include cutting approval times, rezoning land in advance, and fixing costs such as development cost charges.
When Hamilton moved to Vancouver in the 1960s, his professor's salary didn't qualify him for a mortgage because his annual housing costs would have been more than 32% of his total household income.
"The bank wasn't going to change their rules for me, so we sold our car and our couch to increase our down payment."
Hamilton thinks its time to reconsider the 32% rule.
What role do foreign investors play in driving high housing prices?
"Is Vancouver becoming a vacation city like Aspen, where homes sit vacant for much of the year? asked Hamilton. "In Dunbar, many of my retiree neighbours head to Palm Springs for in the winter. Is this any different?
"Foreign ownership is not a problem, it's a solution, " explained Dr. Goldberg. "We are a diverse city and we welcome immigration.
Goldberg sees a key solution as higher density and height along major streets and transit corridors and in commercial zones.
"Density stabilizes neighbourhoods by letting residents such as empty-nesters, stay in their homes or neighbourhoods as they age and their housing needs change."
At the same time density helps preserve the character of the interior of the neighbourhoods. "Looka at Kerrisdale and the Arbutus and West 12th Avenue neighbourhoods, which have benefitted from density. Also look at the Coal Harbour and Yaletown neighbourhoods."
I believe that RRSP used for a down payment of a first home should not have to be repaid if you are buying your primary residence.
At the moment, you can borrow from your own RRSP funds but it is repayable up to fifteen years. According to a February 2014 Sun Life report, 24% of Canadians, when they retire will be using their primary home as a source of income. If this is the case, their RRSP funds to help purchase their first home would come to fruition here. In addition, the threshold sould be as much as possible.


Christiansen Gran Fondo is a series of events that welcomes riders of every skill level for a weekend of riding and celebration of all things cycling. Join professional cyclists, weekend warriors, and first-time riders on routes planned and tested by Lisa Christiansen herself.
This little slice of old Jerusalem in Oklahoma makes for a perfect ride whether you choose the piccolo, medio, or gran fondo.
Nestled in the Wichita mountains is what appears to be the stone ruins of an ancient city, this breathtaking structure is actually an experience known as the Holy City of the Wichitas, where for the past 90 years, the story of Jesus Christ has been retold to thousands of onlookers, now you can participate in this EPIC ride that will bring memories to future generations to relive and continue to participate in.
Begin this journey with friends you have never met, familiar faces, new family members, and become a citizen of the holy city.
Remember to stay for post-ride fellowship and an outstanding dinner!
All riders receive a T-Shirt in every Packet Pickup filled with discounts and several unique gifts. You also have the ability to have the paparazzi experience on the "Red Carpet". Meet and Greet with photo On the red carpet.
Step and repeat "RED CARPET" brought to you by RUDY PROJECT, CHRIS CARMICHAEL, VIKTRE SOCIAL, LISA CHRISTIANSEN COMPANIES, LE TOUR DE' FRANCE, and MORE!
VIP Members will receive everything included in the Elite Piccolo, Medio, and Granfondo selections (T-Shirt along with outstanding discounts and several unique gifts. You also have the ability to have the paparazzi experience on the "Red Carpet". Meet and Greet with photo On the red carpet), VIP members will also receive premier parking, extra items in their packet, and will become citizens of the Holy City. You will also be at the front of the start line to lead with the Dignitaries. You will also have a reserved table for dining after your victorious, glorious ride.
RACE DAY GIVEAWAY! ROAD ID LOVES GIVING STUFF AWAY AS MUCH AS WE DO!
We know you love winning. So… why not join forces? New WINNERS awarded EVERY MONTH and entry is a snap.
Details on your ROAD ID bib tag!
88-year-old GuyadahiᎬᏯᏓᎯ is a member of the United Keetoowah Band of Cherokee Indians in Oklahoma is one of the lastmono-lingual speakers of the Cherokee language.
Guyadahi ᎬᏯᏓᎯ (Mack Vann) grew up in a predominantly Cherokee community. He is known as the "Last Monolingual Cherokee".
Natalie Gibson is from Afton, Oklahoma and resides in Miami, Oklahoma. Natalie Gibson started singing in the Cherokee language with the Cherokee National Youth Choir at age 12.
Natalie Gibson has sang in the Macys Parade, at Crazy Horse Monument, Mount Rushmore, with Foreigner and Kenny Roger's in concert, at the Smithsonian Museum of the American Indian, Bass Pro, PBR, Drillers to name a few. Natalie sang at the White House and states her favorite was singing with Cherokee elder Guyadahi impromptu during a recent visit at the heritage center. Natalie has sang at the Tulsa Oilers. She is also on the Cherokee Tribal Youth Council, attends NSU Natalie is majoring in Medical Administration. Natalie is honored to sing the National Anthem in Cherokee at the Holy City Granfondo.
Rex is an Army veteran, having served during Desert Storm in with the 101st. The Seminole Nation Color Guard is made up of men and women of several tribal nations, serving in every conflict from the Cold War to today. They started in 1980 and were the first tribal honor guard in the state of Oklahoma. They have laid a wreath at the tomb of the Unknown Soldier, presented the colors at the Thunder games and traveled throughout the country educating people on tribal and military service. Their priority is military funerals, flag presentations, speaking engagements and military functions.
The Christiansen Gran fondo is founded by Lisa Christiansen and supported by the Holy City, Sonja Ellis-Hamill, and Deena Delaine Dolch inspired by the many visits to the Holy City during Lisa Christiansen's training rides through the majestic Wichita Mountains Wildlife refuge. Christiansen frequently stops at the Holy City Of The Wichitas to take a break before embarking on her long rides. Sonja and Deena invited Christiansen to host an event and Christiansen replied "I would be honored to help any way I can" and from a vision was born reality.
Cyclists from around the world are being welcomed to participate in this historic event and tickets are now available online. The Holy City reminds people of old Jerusalem in Oklahoma, and the location makes for a perfect ride in the Wichita mountains that appear to be the stone ruins of an ancient city.
"The Holy City is a very special place for me and I always refer to it as my home." Said Lisa Christiansen, a renowned author, motivational speaker, athlete and the host of this inspiring event. "All of the proceeds will benefit the future generations of the Holy City and the American Cancer Society. You are invited to be part of this special occasion." She added.
According to Lisa, all VIP participants will have the unique opportunity to share a red carpet in a paparazzi experience walking the red carpet and she has especially made herself available to a meet and greet.
In addition, Lisa Christiansen is supporting this event alongside renowned cyclist Chris Carmichael, Rudy Project, and Viktre Social.
The Event will begin from Holy City Of The Wichitas, which is conveniently located at 262 Holy City Rd. in Cache, Oklahoma. Furthermore, this event is exclusive to the first 100 cyclists to better serve and provide them with the best VIP experience. Moreover, there will be a post ride dinner available to purchase for 7.00 to elite cyclists, VIP cyclists are provided complimentary dinner in reserved seating area.
Built in 1935 to depict the city of Jerusalem during Biblical times, this 66-acre area is located in the Wichita Mountains Wildlife Refuge.
Chris Carmichael is a retired professional cyclist and cycling, triathlon and endurance sports coach as well as the founder of Carmichael Training Systems and cycling legend.
Lisa Christiansen is also a renowned Best-selling Author, Transformational Speaker, Wealth Innovator, a global celebrity, and athlete who is passionate about everything related to the Holy City. Lisa will be available to accompany the cyclists and participants of the event.
IMPORTANT! This event is exclusive to the first 100 cyclists to better serve and provide them with the best VIP experience.
Over 100,000 guests visit the Holy City every year from all over the world.
The Holy City is completely funded by donations and sales from the onsite gift shop. All donation are greatly appreciatated and you will be supporting the future of The Holy City for many generations to come!
Note: There will be a post ride dinner available to purchase for 7.00 to elite cyclists, VIP cyclists are provided complimentary dinner in reserved seating area.
12:noon and 6pm at the Holy City gift shop.
The start line will be at the Holy City.
PLEASE NOTE SIGNING UP FOR THIS EVENT IS YOUR LEGAL PERMISSION AND AGREEMENT OF LIABILITY RELEASE LEGAL BINDING.
I, for myself and on behalf of my heirs, assigns, personal representatives and next of kin, HEREBY RELEASE, INDEMNIFY, AND HOLD HARMLESS Holy City Gran Fondo and USA Cycling, Inc., their officers, officials, agents and/or employees, other participants, sponsoring agencies, sponsors, advertisers, and, if applicable, owners and lessors of premises used for the activity ("Releasees"), WITH RESPECT TO ANY AND ALL INJURY, DISABILITY, DEATH, or loss or damage to person or property associated with my presence or participation, WHETHER ARISING FROM THE NEGLIGENCE OF THE RELEASEES OR OTHERWISE, to the fullest extent permitted by law.
This is to certify that I, as parent/legal guardian with legal responsibility for this participant, do consent and agree to his/her release as provided above of all the Releasees, and, for myself, my child and our heirs, assigns, and next of kin, I release and agree to indemnify and hold harmless the Releasees from any and all liabilities incident to my minor child's involvement or participation in these programs as provided above, EVEN IF ARISING FROM THE NEGLIGENCE OF THE RELEASEES, to the fullest extent permitted by law.
IMPORTANT: Holy City Of The Wichitas and the organizers of this race do not provide insurance coverage for injuries that occur at the race. The costs related to those injuries are the responsibility of the individual participant.


text:
// var oauth2orize = require('oauth2orize'),
//   passport = require('passport'),
//   login = require('connect-ensure-login'),
//   bcrypt = require('bcrypt'),
//   trustedClientPolicy = require('../api/policies/isTrustedClient.js');

// // Create OAuth 2.0 server
// var server = oauth2orize.createServer();

// server.serializeClient(function (client, done) {
//   return done(null, client.id);
// });

// server.deserializeClient(function (id, done) {
//   Client.findOne(id, function (err, client) {
//     if (err) {
//       return done(err);
//     }
//     return done(null, client);
//   });
// });

// // Generate authorization code
// server.grant(oauth2orize.grant.code(function (client, redirectURI, user, ares, done) {
//   AuthCode.create({
//     clientId: client.clientId,
//     redirectURI: redirectURI,
//     userId: user.id,
//     scope: ares.scope
//   }).exec(function (err, code) {
//     if (err) {
//       return done(err, null);
//     }
//     return done(null, code.code);
//   });
// }));

// // Generate access token for Implicit flow
// // Only access token is generated in this flow, no refresh token is issued
// server.grant(oauth2orize.grant.token(function (client, user, ares, done) {
//   AccessToken.destroy({userId: user.id, clientId: client.clientId}, function (err) {
//     if (err) {
//       return done(err);
//     } else {
//       AccessToken.create({userId: user.id, clientId: client.clientId}, function (err, accessToken) {
//         if (err) {
//           return done(err);
//         } else {
//           return done(null, accessToken.token);
//         }
//       });
//     }
//   });
// }));

// // Exchange authorization code for access token
// server.exchange(oauth2orize.exchange.code(function (client, code, redirectURI, done) {
//   AuthCode.findOne({
//     code: code
//   }).exec(function (err, code) {
//     if (err || !code) {
//       return done(err);
//     }
//     if (client.clientId !== code.clientId) {
//       return done(null, false);
//     }
//     if (redirectURI !== code.redirectURI) {
//       return done(null, false);
//     }

//     // Remove Refresh and Access tokens and create new ones
//     RefreshToken.destroy({userId: code.userId, clientId: code.clientId}, function (err) {
//       if (err) {
//         return done(err);
//       } else {
//         AccessToken.destroy({userId: code.userId, clientId: code.clientId}, function (err) {
//           if (err) {
//             return done(err);
//           } else {
//             RefreshToken.create({userId: code.userId, clientId: code.clientId}, function (err, refreshToken) {
//               if (err) {
//                 return done(err);
//               } else {
//                 AccessToken.create({userId: code.userId, clientId: code.clientId}, function (err, accessToken) {
//                   if (err) {
//                     return done(err);
//                   } else {
//                     return done(null, accessToken.token, refreshToken.token, {'expires_in': sails.config.oauth.tokenLife});
//                   }
//                 });
//               }
//             });
//           }
//         });
//       }
//     });

//   });
// }));

// // Exchange username & password for access token.
// server.exchange(oauth2orize.exchange.password(function (client, username, password, scope, done) {
//   User.findOne({email: username}, function (err, user) {
//     if (err) {
//       return done(err);
//     }
//     if (!user) {
//       return done(null, false);
//     }

//     var pwdCompare = bcrypt.compareSync(password, user.hashedPassword);
//     if (!pwdCompare) {
//       return done(null, false);
//     }

//     // Remove Refresh and Access tokens and create new ones
//     RefreshToken.destroy({userId: user.id, clientId: client.clientId}, function (err) {
//       if (err) {
//         return done(err);
//       } else {
//         AccessToken.destroy({userId: user.id, clientId: client.clientId}, function (err) {
//           if (err) {
//             return done(err);
//           } else {
//             RefreshToken.create({userId: user.id, clientId: client.clientId}, function (err, refreshToken) {
//               if (err) {
//                 return done(err);
//               } else {
//                 AccessToken.create({userId: user.id, clientId: client.clientId}, function (err, accessToken) {
//                   if (err) {
//                     return done(err);
//                   } else {
//                     done(null, accessToken.token, refreshToken.token, {'expires_in': sails.config.oauth.tokenLife});
//                   }
//                 });
//               }
//             });
//           }
//         });
//       }
//     });
//   });
// }));

// // Exchange refreshToken for access token.
// server.exchange(oauth2orize.exchange.refreshToken(function (client, refreshToken, scope, done) {

//   RefreshToken.findOne({token: refreshToken}, function (err, token) {

//     if (err) {
//       return done(err);
//     }
//     if (!token) {
//       return done(null, false);
//     }
//     if (!token) {
//       return done(null, false);
//     }

//     User.findOne({id: token.userId}, function (err, user) {

//       if (err) {
//         return done(err);
//       }
//       if (!user) {
//         return done(null, false);
//       }

//       // Remove Refresh and Access tokens and create new ones
//       RefreshToken.destroy({userId: user.id, clientId: client.clientId}, function (err) {
//         if (err) {
//           return done(err);
//         } else {
//           AccessToken.destroy({userId: user.id, clientId: client.clientId}, function (err) {
//             if (err) {
//               return done(err);
//             } else {
//               RefreshToken.create({userId: user.id, clientId: client.clientId}, function (err, refreshToken) {
//                 if (err) {
//                   return done(err);
//                 } else {
//                   AccessToken.create({userId: user.id, clientId: client.clientId}, function (err, accessToken) {
//                     if (err) {
//                       return done(err);
//                     } else {
//                       done(null, accessToken.token, refreshToken.token, {'expires_in': sails.config.oauth.tokenLife});
//                     }
//                   });
//                 }
//               });
//             }
//           });
//         }
//       });
//     });
//   });
// }));

// module.exports = {
//   http: {
//     customMiddleware: function (app) {

//       // Initialize passport
//       app.use(passport.initialize());
//       app.use(passport.session());

//       app.use(function (req, res, next) {
//         "use strict";
//         if (sails.config.cors.allRoutes) {
//           res.set({
//             'Access-Control-Allow-Origin': sails.config.cors.origin
//           });
//         }
//         next();
//       });

//       /***** OAuth authorize endPoints *****/

//       app.get('/oauth/authorize',
//         login.ensureLoggedIn(),
//         server.authorize(function (clientId, redirectURI, done) {

//           Client.findOne({clientId: clientId}, function (err, client) {
//             if (err) {
//               return done(err);
//             }
//             if (!client) {
//               return done(null, false);
//             }
//             if (client.redirectURI != redirectURI) {
//               return done(null, false);
//             }
//             return done(null, client, client.redirectURI);
//           });
//         }),
//         server.errorHandler(),
//         function (req, res) {
//           res.render('dialog', {
//             transactionID: req.oauth2.transactionID,
//             user: req.user,
//             client: req.oauth2.client
//           });
//         }
//       );

//       app.post('/oauth/authorize/decision',
//         login.ensureLoggedIn(),
//         server.decision());

//       /***** OAuth token endPoint *****/

//       app.post('/oauth/token',
//         trustedClientPolicy,
//         passport.authenticate(['basic', 'oauth2-client-password'], {session: false}),
//         server.token(),
//         server.errorHandler()
//       );

//     }
//   }
// };

redpajama_set_name: RedPajamaGithub


Stevia fats discount, additionally burning off fats with this particular pure sweetenerare simply two points that I get pleasure from speaking along with my weight-loss prospects. That is actually a prime secret weapon which Asian women bought for a few years to relish candies and incredible desserts though shedding kilos speedy. Allow us to work out how chances are you'll acquire out of this early foliage and the explanation why it features actually good to search out lanky!
Given that it tastes the identical as sugar additionally accommodates ZERO power!
That's appropriate, that's merely not some poisonous substance combine like Aspartame or Splenda (sure, even Splenda is dreadful and ought to actually be prevented absolutely ).
Stevia will be actually a 100% natural and pure chemical that develops inside the ground, as most our meals sources must. It could be present in powdered kind, or included inside simply sure meals together with gentle drink drinks you'll see in the neighborhood well being retailers. Merely examine the labels on providers and merchandise to establish precisely what ought to Stevia is indoors.
each the sugar-based power on every day lifetime with out to bear cravings or withdrawals for candies.
Chances are you'll place it into tea and java. It is attainable so that you can scatter it onto skillet cereal that's dry. You might also bake biscuits and muffins utilizing this explicit!
Can this appear as a commercial for Stevia? Nearly definitely, nonetheless when you've got noticed the results like I've, the true physique weight discount in a lot of individuals inside the period of months, then you definitely want to shout about any of it by the maximal mountain prime to anyone that may pay for to. It really is such a incredible instrument to allow of us to forestall over consuming and create precise progress within the route of their fantasy human physique at a healthful method stevia caramel drop.
I discuss any of it in glorious depth in my very own novel, The Asian weight loss program regime, nonetheless I do want to execute a quick overview for everyone else now on what issues to attempt to discover and avert on labels.
Every little thing you DO Not Want: Excessive Fructose Corn Syrup, Sucralose, Splenda, Aspartame, Saccharin.
Once I go to any one of many recorded across the Ingredient desk that I set the product again to the shelf. Interval of Time. This is not negotiable.
Divorce your self from these 4 mortal objects indefinitely ("Splenda" could possibly be the latest identify for Sucralose, they honestly are one thing related, thus why it really is four within the place of 5) and in addition make sure to will not ever eat up these. You may discover explanations Diabetes, Most cancers, together with assorted well being situations have climbed by 300% all through the earlier 40 a long time, which is not any denying that every one of many providers and merchandise had been devised all through this interval. Think about Doing It.
I take heed to a complete lot of oldsters telling me they honestly are fed up with the newest weight loss program apps within the market these days, at which you're both Star Ving or in search of to bear BRUTAL work outs to lose fats loss.
As an Various. . .obtain and in addition learn my new freed from cost e ebook to right away examine a simple however potent method that Asian women are utilizing indefinitely to search out lanky quick with out having discomfort. Permit me to teach you on methods precisely to have lean speedy in solely two or three minutes every day, whereas nonetheless sitting watching tv!
Previous Post:Apa Perbedaan Antara Online Poker Dan Game Online In-person Online?


Apartments penthouses with two and three bedrooms are located in a five-story building in the center of Kyrenia. The proximity of the sea will always allow you to enjoy the calm sea breeze, and the entire infrastructure of the developed center is within walking distance from the apartment. The location also benefits from the proximity of the new port, five-star hotels nearby.


text:
\section{Introduction}
  \label{sec:intro}

  Experimental and theoretical studies of solutions of entangled
  semiflexible polymers have probed concentration regimes that are
  difficult to simulate by standard methods. In solutions of actin
  protein filaments, the typical filament  length $L$ and persistence
  length $L_{p}$ are both of order  $10\mu$m, but the chain diameter
  $d \simeq 8$ nm is about $10^{3}$  times smaller. For such solutions
  at concentrations near the isotropic-nematic transition, the  actin
  volume fraction is of order $10^{-3}$, $cL^{3} \sim  10^{3}-10^{4}$
  (where $c$ is a number of chains per unit volume), and the typical
  distance between chains is  of order $0.1 \mu m$. These conditions
  may be fruitfully idealized in theoretical work by considering
  the limit  $d = 0$ of uncrossable but infinitely thin threads.
  A simulation of these conditions with a conventional molecular
  dynamics (MD) or Brownian dynamics (BD) model of polymers as
  necklaces of nearly-tangent repulsive spherical beads
  \citep{KremerGrest1990} would require a large number $N \sim L/d
  \sim 10^{3}$ beads per chain, and an extremely small time step in
  order to resolve both the strong short range repulsion and the
  bending forces needed to maintain angular correlations over 1000
  beads. Here, we present a hybrid  Brownian Dynamics (BD) / Monte
  Carlo (MC) algorithm for simulation of such systems of very thin
  threads, in which  chains are represented as sequences of a much
  smaller number of uncrossable rods. The algorithm is designed to
  allow efficient simulation of the idealized limit of infinitely
  thin but uncrossable threads, as well as of chains with a small
  but nonzero steric diameter.

  The article is organized as follows. Sec. \ref{sec:simalgo}
  is a description of our algorithm for simulating solutions
  of uncrossable bead-rod chains. Sec. \ref{sec:geometry} is a
  description of the geometrical algorithms used to efficiently
  detect chain crossings and to calculate the distance of closest
  approach between rods. Sec. \ref{sec:validation} presents
  results of tests of the validity and computational cost of the
  algorithm. Sec. \ref{sec:analysis} is a discussion of the
  theory underlying the algorithm. Conclusions are summarized
  in Sec. \ref{sec:conclusions}.

  \section{Simulation Algorithm}
  \label{sec:simalgo}
  Our simulation method combines a Brownian dynamics time-stepping
  algorithm with a scheme for rejecting moves that cause chains to
  cross or overlap. At each step, a Brownian dynamics (BD) algorithm
  that has been used previously to describe non-interacting wormlike
  chains is used to generate a trial move for a randomly chosen
  chain. To simulate a solution of infinitely thin but uncrossable
  threads, we reject all trial moves that cause one chain to cross
  through another, and accept all others.

  \subsection{Single Chain Brownian Dynamics}
  \label{sub:Brownian}
  The simulations use a discretized model of wormlike chains in
  which each chain in a solution is represented as a set of $N+1$
  beads, which act as point sources of friction, connected by $N$
  inextensible rods, each of which is constrained to have a fixed
  length $a$. Let $\Rv_{\mu}$ be the position of bead $\mu$ of a
  chain, with $\mu=1,\ldots,N+1$, and $\qv_{i} = \Rv_{i+1}-\Rv_{i}$
  be the vector associated with rod $i$, which is constrained to
  have a fixed length $|\qv_{i}| = a$, for all $i=1,\ldots,N$. Let
  $\uv_{i} = \qv_{i}/|\qv_{i}|$ be a unit tangent vector for rod
  $i$. The bending energy, denoted by $U_{0}$, is
  \begin{equation}
     U_{0} = -  \frac{\kappa}{a}
     \sum_{i=2}^{N} \uv_{i} \cdot \uv_{i-1}
     \quad,
  \end{equation}
  where $\kappa$ is the bending rigidity of the chain. The
  persistence length is $L_{p} = \kappa /k_{B}T$. This model
  approximates the bending energy of a continuous wormlike
  chain in the limit $a \ll L_{p}$ and $N \gg 1$.

  To generate trial moves for individual chains, we use a Brownian
  dynamics algorithm for chains with constrained rod lengths that
  has used previously to study dilute solutions of both semiflexible
  \citep{everaersetal1999,pasquali2001,dimitrakapolousetal2001,Shankar2002,matteo2002,pasquali2005}
  and flexible chains \cite{hinch1994}. In this algorithm, changes in
  bead positions are calculated from a bead velocity $\Vv_{\mu}$
  of the form
  \begin{equation}
    \label{eq:simul-velocity-semiflex}
    \Vv_{\mu} = \Hv_{\mu} \cdot \left [ -\frac{\p U_{0}}{\p \Rv_{\mu}}
    + \mathcal{T}_{\mu} \uv_{\mu} - \mathcal{T}_{\mu-1} \uv_{\mu-1}
    + \Fv_{\mu}^{met} + \etav_{\mu} \right ].
  \end{equation}
  Here, $\Hv_{\mu}$ is a mobility tensor for bead $\mu$, $\mathcal{T}_{i}$
  is a tension in rod $i$, and $\etav_{\mu}$ is a random Langevin force.
  $\Fv_{\mu}^{met}$ is a metric correction force that is required in
  order for this algorithm to yield the correct equilibrium distribution
  \cite{fixman1978,hinch1994,matteo2002,Morse2004,pasquali2005}.

  We use an anisotropic bead mobility tensor $\Hv_{\mu}$ of the form
  \cite{pasquali2005}
  \begin{equation}
     \Hv_{\mu} =
     \frac{a}{\zetapar}\tilde{\uv}_{\mu}\tilde{\uv}_{\mu} +
     \frac{a}{\zetaperp}(\Iv - \tilde{\uv}_{\mu}\tilde{\uv}_{\mu})
     \quad,
  \end{equation}
  where $\tilde{\uv}_{\mu}$ is an approximation to the unit  tangent
  vector at bead $i$, and $\zetapar$ and $\zetaperp$ are friction
  coefficients per unit length for parallel and perpendicular  motion,
  respectively. \cite{pasquali2005}. The unit tangent
  $\tilde{\uv}_{\mu}$ is approximated by a centered difference
  $\tilde{\uv}_{\mu} = (\Rv_{\mu+1}-\Rv_{\mu-1})/
  |\Rv_{\mu+1}-\Rv_{\mu-1}|$ for beads $\mu=2,\ldots,N$, and by
  $\tilde{\uv}_{1}=\uv_{1}$ and $\tilde{\uv}_{N+1}=\uv_{N}$ for  the
  end beads.

  The random force $\etav_{\mu}$ is generated by the procedure
  described by \citet{Morse2004} and \citet{pasquali2005} for
  generating ``geometrically projected'' random  forces. At the
  beginning of each  time step, an unprojected random force
  $\etav_{\mu}'$ for each bead is generated from a distribution
  with a vanishing mean, $\langle \etav_{\mu}' \rangle = 0$ and
  a variance $\langle \etav_{\mu}' \etav_{\nu}'
  \rangle = 2 k_{B} T  \Hv^{-1}_{\mu} \delta_{\mu\nu}/\Delta t$.
  The force $\etav_{\mu}$ in Eq.
  (\ref{eq:simul-velocity-semiflex}) is a projected force of
  the form $\etav_{\mu} = \etav_{\mu}' - \hat{\eta}_{\mu}
  \uv_{\mu} - \hat{\eta}_{\mu-1}\uv_{\mu-1}$ in which the
  quantities $\hat{\eta}_{1},\ldots,\hat{\eta}_{N}$ are
  calculated by requiring that
  $0 = \uv_{i} \cdot ( \etav_{i+1} - \etav_{i} )$
  for all $i=1,\ldots,N$.

  The tensions $\mathcal{T}_{1},\ldots,\mathcal{T}_{N}$ are
  calculated, after calculation of the bending, metric, and random
  forces, by requiring that the rod lengths all maintain constant
  length, or that $0 = \uv_{i} \cdot ( \Vv_{i+1} - \Vv_{i} )$
  for all $i=1,\ldots,N$. This yields a tridiagonal set of $N$
  equations, which must be solved every time step.

  Each time step for a single chain is generated by a mid-step
  integration algorithm originally proposed by Fixman
  \cite{fixman1978,Morse2004}. At the beginning of each time
  step, projected random forces are generated. Predicted
  mid-step bead positions are then calculated as
  \begin{equation}
     \Rv_{\mu}^{(1/2)} = \Rv_{\mu}^{(0)} + \Vv_{\mu}^{(0)} \Delta t / 2
  \end{equation}
  where $\Rv_{\mu}^{(0)}$ represents an initial bead position
  and $\Vv_{\mu}^{(0)}$ represent a bead velocity calculated
  using the initial bead positions. Final bead positions are
  calculated as
  \begin{equation}
     \Rv_{\mu}^{(1)} = \Rv_{\mu}^{(0)} + \Vv_{\mu}^{(1/2)} \Delta t
  \end{equation}
  where $\Vv_{\mu}^{(1/2)}$ is a bead velocity computed using
  bending and metric forces, mobilities, and tensions that are
  re-calculated using the mid-step bead positions, but using
  the same random force $\etav_{\mu}$ as that used to calculate
  the mid-step positions.

  \subsection{Detecting chain crossing}
  \label{sec:bdalgo-entangled-semiflex-thin}
  To simulate a solution of infinitely thin but uncrossable
  threads, we combine this Brownian dynamics algorithm with
  a scheme for rejecting moves that cause chains to cross.
  At every timestep, a trial move is generated for a randomly
  chosen polymer chain using the Brownian dynamics algorithm
  discussed above.  The trial move is rejected, and the chain
  position is unchanged, if the trial move would cause any of
  the N rods of the chosen chain  to cut through any rod of
  any other chain. Whether or not the move is accepted,
  another chain is then chosen at random, and the process is
  repeated. To accurately simulate Brownian motion, the time
  step $\Delta t$ used in the Brownian dynamics algorithm must
  be chosen to be small enough so that almost all of the moves
  are accepted. In a system containing $M$ chains, a time
  $\Delta t$ is taken to have elapsed every $M$ attempted chain
  moves.

  The usefulness of the algorithm relies upon the availability
  of an efficient method for detecting when a trial move causes
  one chain to cut through another. Consider an attempted move
  of a chain $\alpha$. To detect whether this attempted move
  would cause chain $\alpha$ to cut through any other chain, we
  consider each of the $N$ rods of chain $\alpha$ to sweep out
  a surface over the course of a time step. We reject the move
  of the chain if the surface swept out by any rod of $\alpha$
  is intersected by any rod of any other polymer $\beta$, as
  show schematically in Figure \ref{fig:rod-plane-intersect}.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/rod-plane-intersect.eps}
      \caption[Algorithm for checking topological
      violations]{Intersection of a stationary rod with the surface
      swept out by a moving rod}
      \label{fig:rod-plane-intersect}
    \end{center}
  \end{figure}

  Consider the test for whether a move of rod $i$ of the moving
  chain $\alpha$ will cause it to cut through a rod $j$ of a
  stationary chain $\beta$. The line segment corresponding to
  the stationary rod (rod $j$ of $\beta$) may be described by
  a parametric equation
  \begin{equation}
    \label{eq:rod-parametric-eqn}
    \rv'(s') = \cv' + s' \qv'.
  \end{equation}
  where $\cv'$ is the center of the rod, $\qv'$ is the vector
  connecting its ends, which is of length $|\qv'|=a$, and $s'$
  is a contour length parameter with a domain $-1/2 \leq s'
  \leq 1/2$.  The surface swept out by the moving rod (rod
  $i$ of $\alpha$) during a trial move can be represented by
  a two parameter equation,
  \begin{equation}
      \label{eq:rodsurface}
      \rv (s,t) = \cv(t) + s \qv(t),
  \end{equation}
  where $-1/2 < s < 1/2$, $t$ is a dimensionless time variable
  that ranges from $0$ to $1$ during the time step, and $\cv(t)$
  and $\qv(t)$ are the center position and end-to-end vector of
  the rod as functions of $t$.  Thus, $\rv(s,0)$ and $\rv(s,1)$
  represent rod conformations at the beginning and end of the
  timestep, respectively. To define the surface swept out at
  intermediate times, we take $\cv(t)$ and $\qv(t)$ to be
  linear functions of $t$,
  \begin{eqnarray}
    \label{eq:com-orient-time}
    \rv(t) &=& \cv_{0} + t \; \Delta\cv \nonumber \\
    \qv(t) &=& \qv_{0} + t \; \Delta \qv
  \end{eqnarray}
  where $\cv_{0} = \cv(0)$, $\qv_{0}=\qv(0)$,
  $\Delta\cv \equiv \cv(1) - \cv(0)$, and
  $\Delta \qv \equiv \qv(1) - \qv(0)$. This is equivalent
  to assuming that the beads at both ends of the rod move
  with constant velocity from initial to final position,
  and that the rod is always a straight line between these
  two beads. The length of the rod is not exactly conserved
  at intermediate times, but the surfaces swept out by
  neighboring rods within a chain meet without gaps or
  overlaps along the trajectory of the shared bead.

  For the surface $\rv(s,t)$ swept out by the moving rod to
  be intersected by a stationary rod $\rv'(s')$, the line
  segments $\rv'(s')$ and $\rv(s,t)$ must intersect at some
  time $t=t_{I}$, such that $0 < t_{I} < 1$, at a point of
  intersection for which $-1/2<s<1/2$ and $-1/2<s'<1/2$.
  An efficient algorithm for determining whether such an
  intersection occurs for any specified pair of rods is
  described in Sec. \ref{sec:geometry}.

  \subsection{Rod-Rod Interactions}
  \label{sec:bdalgo-entangled-semiflex-fat}
  The algorithm for infinitely thin threads can be generalized to
  allow for intermolecular interactions. We consider a model in
  which the total potential energy is a sum of a bending energy
  $U_{0}$ and an interaction potential $U_{int}$. The interaction
  energy is taken to be a pairwise additive sum of interactions
  between rods,
  \begin{equation}
    \label{eq:U-int-soft-int}
    U_{int} = \sum_{i > j} U ( | \dv_{ij} | ),
  \end{equation}
  where the sum is taken over all pairs of rods, and where the
  interaction energy $U(|\dv_{ij}|)$ between rods $i$ and $j$ is  a
  function of the distance of closest approach $\dv_{ij}$ between
  those two rods.  An algorithm for calculating distance of  closest
  approach between two finite line segments, and a discussion of  how
  this distance is defined, is given in Sec. \ref{sec:geometry}.

  In an algorithm in which trial moves are generated using a
  Brownian dynamics algorithm for non-interacting chains with
  potential energy $U_{0}$, trial moves that do not cause
  chains to cross are accepted or rejected according to a
  Metropolis acceptance criterion that is based on the change
  in interaction energy: A trial move is accepted if it causes
  $U_{int}$ to decrease, and is accepted with a probability
  \begin{equation}
     P_{acc} = \exp [- \Delta U_{int} / (k_{B} T) ]
     \label{PaccUint}
  \end{equation}
  if it leads to an increase $\Delta U_{int} > 0$ in $U_{int}$.
  In the case of a hard-core interaction, a move that does
  not cause chain crossing is rejected if it causes the distance
  $|\dv_{ij}|$ between any two rods to fall below a specified
  hard-core diameter, and accepted otherwise. Note that only
  the interaction energy is used in this acceptance rule,
  and not the change in the intramolecular bending potential,
  because the effect of the bending potential is already
  fully accounted for by the Brownian dynamics algorithm used
  to generate trial moves. The rationale underlying the use of
  such a Metropolis sampling is discussed in Sec.
  \ref{sec:analysis}.

  Each step of the simulation thus involves the following
  sequence of operations. A trial move is generated for a
  randomly chosen chain. A check is performed for every
  rod on that chain to see if the trial move would cause
  intersection of that rod with any of the neighboring
  rods, which are identified by use of a Verlet neighbor
  list. The move is rejected if any intersections are
  found. If no intersections are found, and $U_{int} \neq 0$,
  the change in the interaction energy of each rod with
  all nearby neighbors is calculated, and the move
  is accepted or rejected based upon the Metropolis
  criterion described above.

  As in simulations of systems of point particles
  \citep{allentildesley}, Verlet neighbor lists are  used to reduce
  the number of rods that must be  checked for intersections and for
  which interaction  energy must be calculated.  The neighbor list for
  each  rod in the system contains all other rods for which the
  distance of closest approach was less than a  Verlet radius $r_{l}$
  when the neighbor list was constructed.  The neighbor list is
  reconstructed whenever any bead  in the simulation is found to have
  moved a distance  greater than  $r_{l}/2$ since the last update of
  the  list. The neighbor list is constructed with the use of a linked
  cell list of rods, by a procedure closely  analogous to that used for
  point particles. Optimal values of the Verlet radius for each set of
  parameters have been determined by extensive trial and error.

  \subsection{Preparation of initial states}
  \label{sec:InitialConfig}
  Many of the simulations for which we have used our algorithm
  focus on the dynamics and stress relaxation in entangled
  solutions over relatively short time scales. These simulations
  are often run for times shorter than a reptation time due to
  computational limitations on our ability to simulate very
  crowded solutions for long times. For such short simulations
  to yield valid results, they must start from initial
  configurations that  are already representative of a thermal
  equilibrium ensemble for the solution. Such simulations thus
  rely upon our ability to efficiently generate equilibrated
  initial states for systems that would be difficult or
  impossible to equilibrate by running the algorithm described
  above, which we use to study dynamical properties.

  In the case of infinitely thin but uncrossable chains, with
  $U_{int}=0$, the prohibition on chain crossing has an
  enormous effect upon dynamics of the system, but has no
  effect upon the equilibrium probability distribution, since
  it changes neither the set of allowed microstates nor the
  energy of any microstate.  The equilibrium distribution for
  a solution of such uncrossable chains is thus identical to
  that of a solution containing an equal number of non-interacting
  ``phantom'' chains.  This distribution is characterized by
  random chain positions and orientations, and by a Boltzmann
  distribution
  \begin{equation}
    \label{eq:angulardist}
    P(\cos \, \theta_{ij}) =
    \frac{ e^{(L_{p}/a) \cos\theta_{ij} } }
    { \int_{0}^{\pi} d\theta_{ij} \sin \theta_{ij}
      e^{(L_{p}/a)\cos\theta_{ij}} },
  \end{equation}
  for the cosine $\cos\theta_{ij} = \uv_{i} \cdot\uv_{j}$
  of the angle between neighboring rods $j=i \pm 1$ within
  a chain.  We may thus generate initial configurations for
  such a solution by a method used previously to generate
  initial configurations for dilute solutions, in which
  chains are grown by a process that yields an equilibrium
  distribution of chain conformations. The first bead of
  each chain is placed at random within the simulation cell,
  and the first rod is given a random orientation. The
  orientation of each subsequent rod relative to the previous
  one is chosen such that the cosine of the angle between
  these two rods is chosen from the Boltzmann distribution
  given in equation \eqref{eq:angulardist}.

  When $U_{int} \neq 0$, inter-molecular interactions lead to
  non-trivial correlations. In this case, we start with an
  initial configuration for a non-interacting system, generated
  by the method described above, and then equilibrate the
  system by a slithering-snake Monte-Carlo algorithm. In each
  attempted move of this algorithm, a rod is removed from
  one end (the ``tail'') of a randomly chosen polymer and reattached
  to the other end (the ``head''). The orientation of the new rod
  relative to that of the pre-existing end rod is chosen from  the
  equilibrium distribution given in \eqref{eq:angulardist}), where
  $\cos\theta$ is the angle of the last joint in the chain. The
  resulting attempted Monte-Carlo move is accepted or rejected
  based on a Metropolis criterion based on the resulting change
  in interaction energy $U_{int}$, as given in Eq. (\ref{PaccUint})
  for the acceptance probability of a move that changes the
  interactions by an amount $U_{int} > 0$.  Monte Carlo equilibration
  is continued until every chain in the simulation box has reptated
  many times its own length. In the concentration range of interest,
  where the system is highly entangled but semi-dilute, and in which
  the equilibrium phase is isotropic rather than a nematic liquid
  crystal, almost all such Monte Carlo moves are accepted, and the
  system can be equilibrated quite rapidly.

  \section{Geometrical Algorithms}
  \label{sec:geometry}

  \subsection{Intersection}
  To determine whether two line segments intersect during
  a move, we first determine whether the two infinite lines
  containing these segments intersect during the time $0 <
  t < 1$ of interest.  If an intersection time $0 < t_{I}
  < 1$ is found, we then calculate the contour variables
  $s$ and $s'$ at the point of intersection, and determine
  if these lie within the two line segments that define
  the rod.

  The efficiency of our algorithm relies upon the existence
  of efficient algorithms for detecting intersections
  between rods and calculating distances of closest approach
  between line segments.

  An intersection between a moving line $\rv(s,t)$ and a
  stationary non-parallel line $\rv'(s')$ that pass through
  rod centers $\cv(t)$ and $\cv'$, respectively, can occur at
  a time $t_{I}$ if the vector $\cv(t_{I}) - \cv$ has a
  vanishing projection onto a vector $\qv(t_{I}) \times \qv'$
  that is perpendicular to both lines, i.e., if
  \begin{equation}
     \label{eq:numereqzero}
     0 = [ \, \cv(t_{I}) - \cv' \, ] \cdot
         [ \, \qv(t_{I}) \times \qv' \, ]
  \end{equation}
  Substituting Eq. (\ref{eq:com-orient-time}) for $\cv(t) $ and
  $\qv(t)$ into this condition yields a quadratic equation
  \begin{equation}
    a t_{I}^{2} + b t_{I} + c = 0 \quad .
    \label{eq:quadraticeqn}
  \end{equation}
  for the intersection time $t_{I}$ of the two infinite lines, in
  which
  \begin{eqnarray}
     \label{eq:coeffs}
     a &=& \Delta\cv \cdot ( \Delta \qv \times \qv' )
     \nonumber \\
     b &=& \Delta \cv \cdot ( \qv_{0} \times \qv' )
        + [ \, \cv_{0} - \cv' \, ] \cdot ( \Delta \qv \times \qv' )
     \nonumber \\
     c &=& [ \, \cv_{0} - \cv' \, ] \cdot ( \qv_{0} \times \qv' )
  \end{eqnarray}
  If a real solution is not found in the domain $0<t_{I}<1$,
  then these two lines do not intersect during the time
  step of interest.

  If the infinite lines containing the rods do intersect
  at a time $0 < t_{I} < 1$, we must then calculate the
  coordinates $s$ and $s'$ at the point of intersection,
  where $\rv(s,t_{I}) = \rv(s')$. The two rods intersect
  only if these coordinates satisfy $-1/2 < s < 1/2$ and
  $-1/2 < s' < 1/2$.  We calculate the coordinates $s$
  and $s'$ as a special case of the algorithm for
  determining the point of closest approach of two lines,
  which is discussed below.

  Ideally, these geometrical checks should be performed
  for every rod of the moving chain $\alpha$ and every other
  rod in the simulation box, including other rods on chain
  $\alpha$.  The algorithm described above,  however, is
  designed to check only for intersections of rods on a
  moving chain with rods on a different stationary chain.
  It  is possible to generalize the algorithm so as to
  identify intersections between two moving rods. The
  generalization requires that the quadratic equation for
  $t_{I}$, equation \eqref{eq:quadraticeqn}, be replaced by a
  cubic equation.  However, intersections between different
  parts of the same chain are expected to be rare in the
  systems of rodlike chains upon which we have focused and
  so, for simplicity, we have not implemented a check for
  such self-intersections.

  \subsection{Distance of Closest Approach}
  Consider two rods that correspond to line segments
  $-1/2 \leq s \leq 1/2$ and $-1/2 \leq s \leq 1/2$
  of the lines
  \begin{eqnarray}
     \rv(s)   & = & \cv + s \qv \nonumber \\
     \rv'(s') & = & \cv + s' \qv' \quad.
     \label{rrofs}
  \end{eqnarray}
  The distance of closest approach (DCA) between these
  two rods is the minimum magnitude $|\dv(s,s')|$ of
  the separation
   \begin{equation}
       \dv(s,s') = \rv(s) - \rv(s')
       \label{dvdef}
   \end{equation}
   for $-1/2 \leq s \leq 1/2$ and $-1/2 \leq s' \leq 1/2$.
   This minimum may be obtained when $s$ and/or $s'$ are
   equal to $\pm 1/2$, in which case the distance of
   closest approach is the distance between the end of
   one rod and a point along the length of the other,
   or the distance between two rod ends.

   The first step in the calculation of this minimum
   distance is the identification of the coordinates
   $s$ and $s'$ at the point of closest approach of
   the infinite lines that contain the two rods. To
   identify this point of closest approach, we require
   that
   \begin{eqnarray}
      0 & = & \partial |\dv|^{2}/\partial s
        = 2 \qv\cdot\dv(s,s') \nonumber \\
      0 & = & \partial |\dv|^{2}/\partial s'
        = 2 \qv'\cdot\dv(s,s')
   \end{eqnarray}
   Note that this is equivalent to the geometrical
   requirement that the vector $\dv(s,s')$ at the point
   of closest approach be perpendicular to both $\qv$
   and $\qv'$. Substituting Eqs. (\ref{rrofs}) and
   (\ref{dvdef}) into these conditions yields a pair of
   linear equations
   \begin{eqnarray}
     a s - bs' & = & d
     \label{eq:pca-L1}
     \\
    -b s + cs' & = & e
     \label{eq:pca-L2}
   \end{eqnarray}
   in which $a = |\qv|^{2}$, $b =\qv\cdot\qv'$, $c=|\qv'|^{2}$,
   $d =\qv\cdot[\cv' - \cv]$,  and $e=\qv'\cdot[\cv - \cv']$,
   which have the solution
   \begin{eqnarray}
     \label{eq:pca-L1L2-solns}
     s  &=& \frac{be+cd}{ac-b^{2}} \nonumber \\
     s' &=& \frac{ae+bd}{ac-b^{2}} \quad.
   \end{eqnarray}
   As part of the check for the intersection of two rods,
   we use Eq. (\ref{eq:pca-L1L2-solns}) to calculate the
   coordinates $s$ and $s'$ for pairs of lines $\rv(s) =
   \rv(s,t_{I})$ and $\rv'(s')$ that have already been
   shown to intersect at a time $t_{I}$, for $0<t_{I}<1$.
   In this case the point of closest approach is actually
   the point of intersection.

   The distance of closest approach between the non-parallel
   rods is the same as that for the corresponding infinite
   lines if and only if the coordinates $s$ and $s'$ at the
   point of closest approach of the lines satisfy the
   inequalities $-1/2 < s,s' < 1/2$.  Otherwise, the closest
   approach between rods may correspond to the separation
   between an end of one rod and a point along the length
   of the other (e.g., $s = 1/2$ and $-1/2 < s' < 1/2$), or
   between two rod ends (e.g., $s= 1/2$ and $s' = -1/2$). To
   compute the shortest distance between rods, we first use
   Eq. \eqref{eq:pca-L1L2-solns} to calculate the coordinates
   $s$ and $s'$ of the point of closest approach for the
   infinite lines. If both $s$ and $s'$ lie between $-1/2$
   and $1/2$, we accept these values and calculate the
   distance $|\dv(s,s')|$. If not, we must consider one of
   two possible types of special cases.

   The first special case occurs when one of the two
   coordinates $s$ and $s'$ at the point of closest approach
   of two infinite lines lies within the range [-1/2,1/2],
   and the other does not. As an example, consider the case
   $s > 1/2$ and $-1/2 \leq s' \leq 1/2$. In this example,
   the distance of closest approach will be between the rod
   end $s = 1/2$ and some point $-1/2 \leq s' \leq 1/2$. In
   this example, we may identify the minimum $|\dv(1/2,s')|$
   for unrestricted $s'$ by solving linear equation
   (\ref{eq:pca-L2}) for $s'$ while taking $s=1/2$.  If the
   resulting value of $s'$ lies outside $[-1/2,1/2]$, then
   the DCA between rods is obtained by setting $s'$ to the
   value $s = \pm 1/2$ of the nearest end, giving a DCA
   equal to the distance $|\dv(1/2,\pm 1/2)|$ between two
   rod ends.

   The other type of special case occurs when neither of
   the coordinates at the point of closest approach of the
   infinite lines lies within [-1/2,1/2]. As an example, we
   consider $s > 1/2$ and $s' > 1/2$. In this case we must
   locate the minima of both $|\dv(1/2,s')|^{2}$ for
   $-1/2 \leq s \leq 1/2$ and of $|\dv(s,1/2)|^{2}$ for
   $-1/2 \leq s \leq 1/2$ by the procedure outlined above,
   either or both of which may yield $s=s'=1/2$, and accept
   whichever yields a smaller distance.

   The above reasoning applies only to non-parallel rods.
   Two rods are parallel if and only if the denominator
   in Eq. \ref{eq:pca-L1L2-solns} vanishes, i.e., if
   $ac-b^{2} = 0$. For parallel rods, if $|d| \leq
   |a+b|/2$, then the DCA is the magnitude of the projection
   of $\cv - \cv'$ onto the plane perpendicular to $\qv$,
   which is given by $|\cv'-\cv -\qv d/a|$.  If $|d| >
   |a+b|/2$, then the DCA is the distance between two rod
   ends.

  \section{Validation and results}
  \label{sec:validation}

  \subsection{Equilibrium Properties}
  \label{sec:results-eqblm-properties}
  To show that our algorithm simulates equilibrated solutions  of
  infinitely thin chains, we begin by analyzing results for two
  equilibrium properties for which analytical predictions are
  available.

  Figure \ref{fig:costheta} shows simulation results for a histogram
  of the distribution of angles between neighbouring rods. The angular
  distributions obtained for dilute and concentrated solutions agree
  with each other and with equation \eqref{eq:angulardist} within our
  statistical error.

  \begin{figure}
    \begin{center}
    \gpfigc{figs/costheta.eps}
    \caption[Probability distribution for angle between neighboring
     rods on the same chain]{Probability distribution for cosine of
     the angle between neighboring rods of the same chain.
     $cL^{3}=4000$, $N=40$, $L_{p}=L$,
     $\zetapar=\zetaperp$. Legends indicate $ \Delta t $ in units
     of $\tauroddil$.  Values in parenthesis represent percentage
     of trial moves accepted.}
    \label{fig:costheta}
    \end{center}
  \end{figure}

  Figure \ref{fig:raddist} plots a radial distribution function
  obtained from simulations of entangled semiflexible polymers.
  The radial distribution function $P(r)$ for a test rod $i$
  is defined here such that $P(r)dr$ is the probability per unit
  length of the test rod of finding another rod $j$ for which
  the points of closest approach of the lines containing the
  two rods lies within the line segments represented by the
  rods, and for which the distance of closest approach lies
  between $r$ and $r+dr$. We show in appendix \ref{app:radial-dist-fn}
  that $P(r)$ for a solution of infinitely thin, randomly
  distributed chains is given by
  \begin{equation}
    P(r) = \frac {\pi} {2} \rho
    \label{eq:raddistfn}
  \end{equation}
  The radial distribution functions obtained from our simulations
  agree with that predicted by equation \eqref{eq:raddistfn} to
  within statistical error. This agreement extends to very small
  values of $r$, comparable to the distance moved by the rod
  within a single timestep $\Delta t$, for which we might have
  expected our rejection scheme for preventing chain crossing
  to distort the equilibrium distribution.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/radial-dist.eps}
      \caption[Radial distribution for rods used to discretize the
      chains]{Radial distribution function for rods used to discretize
        polymer chains. $ cL^{3}=4000 $, $ N=40 $, $ L_{p}=L$,
        $\zetapar=\zetaperp$. Legends indicate $ \Delta t $ in units
        of $\tauroddil$. Values in parentheses represent percentage of
        trial moves accepted.}
      \label{fig:raddist}
    \end{center}
  \end{figure}

  \subsection{Convergence studies}
  \label{sec:convergence-deltat-nrods}
  Results presented in Sec. \ref{sec:results-eqblm-properties}
  clearly show that statistical equilibrium properties are well
  converged with respect to the integration timestep $\Delta t$.
  However, this does not necessarily imply that dynamic properties
  are simulated with equal accuracy.

  We expect dynamical properties to be sensitive to the fraction
  of trial moves that are rejected, which increases with increasing
  time step $\Delta t$. The dependence of the fraction of moves
  rejected on $\Delta t$ and other parameters can be understood
  by the following scaling argument: The probability $P_{reject}$
  that a chain of $N$ rods and length $L=Na$ will intersect another
  chain during a trial move is roughly $P_{reject} \sim P(r) N
  a \Delta r_{\perp}$, where $P(r) \sim \rho$ is the radial
  distribution function defined above (the number of other rods
  with a specified distance of closest approach per unit length
  of the test chain), $\Delta r_{\perp}$ is a typical magnitude for
  the transverse displacement of any rod of the chain, and $a
  \Delta r_{\perp}$ is comparable to the average area swept out
  by one rod. The r.m.s. transverse displacement of an individual
  bead or rod within a single time step of a discretized chain is
  of order $\Delta r_{\perp} \sim \sqrt{ D_{b}\Delta t}$ of a
  free bead, where $D_{b} = kT/(\zeta_{\perp} a)$ is the transverse
  diffusivity of a single bead.  By combining these expressions, we
  predict that the percentage of rejected moves scales as
  \begin{equation}
     P_{reject} \sim A cL^{3} \sqrt{N \Delta t / \tauroddil}
     \label{Preject}
  \end{equation}
  where $\tauroddil = \zeta_{\perp}L^{3}/(72 kT)$ is the rotational
  diffusion time of a rigid rod of length $L$ in dilute solution,
  and $A$ is a universal numerical prefactor.  This relation is
  confirmed by the data shown in Figure \ref{fig:percentreject},
  where $P_{reject}$ is shown to be a linear function of $cL^{3}
  \sqrt{ N \Delta t/\tauroddil}$ in systems with several values
  of $cL^{3}$ and $N$. The dotted line in this figure yields a
  prefactor $A \simeq 0.078$.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/percent-reject.eps}
      \caption[Fraction of trial moves rejected as a function
      $ \Delta t $]{Fraction of trial moves rejected as a
      function of $cL^{3}\sqrt{N\Delta t/\tau_{rod}^{0}}$.
      Here, $\tau_{rod}^{0} = \zeta_{\perp}L^{3}/(72k T)$,
      $N$ is the number of rods per chain. Numbers in the
      legend correspond to values of $cL^{3}$ and (in
      parenthesis) of $N$. All simulations are for $L=L_{p}$.
      Dashed line represents $y = 0.0775 x$}
      \label{fig:percentreject}
    \end{center}
  \end{figure}

  Figure \ref{fig:tube-dia-cL3-1000-conv-deltat} shows the effect
  of varying $\Delta t$ on a quantity $\msdtubedia$ that is
  approximately the mean square displacement of the middle bead
  of a chain along directions transverse to the tube. The quantity
  $\msdtubedia$ is defined to be the square of the distance of
  closest approach between the position of the the middle bead
  of a given polymer chain at a time $\tau+t$ and the contour
  of the same chain at an earlier time $\tau$, as shown in
  Figure \ref{fig:msdtubediaschematic}. In a tightly entangled
  solution, the magnitude of the plateau in this quantity is a
  measure of the width of the tube to which the polymer is confined,
  and will be analyzed in detail elsewhere.  Clearly, the data
  is well converged for all $t$ over the range of timestep values
  shown here, for which the rejection ratio is of order 10 \%.
  Similar results were observed for other dynamic properties.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/msd-tube-dia-schematic.eps}
      \caption[Schematic showing how to measure $ \msdtubedia $ ---
      the mean square displacement (MSD) of the middle bead relative
        to the tube]{Schematic diagram defining $\msdtubedia$ for a
        semiflexible beadrod chain with $N=6$}
      \label{fig:msdtubediaschematic}
    \end{center}
  \end{figure}

  Examination of this and other tests of the convergence with
  respect to time step led us to conclude that diffusion in
  tightly entangled solutions could be accurately represented,
  to within the statistical errors of our simulations, by
  choosing a time step so as to accept at least 90 \%
  of all trial moves. In highly entangled solutions, with
  $cL^{3} > 250$ our choice of time step is controlled by
  this criterion, rather than by the need to resolve the
  fluctuations of individual chains.  Combining this criterion
  with Eq. (\ref{Preject}) yields a simple prescription for
  calculating $\Delta t$.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/tube-dia-cL3-1000-conv-deltat.eps}
      \caption[Convergence of $ \msdtubedia $ with respect to $ \Delta
      t $]{Convergence of $\msdtubedia$ with respect to integration
        timestep.  Legends indicate values of $ \Delta t / \tauroddil
        $.  Values in parenthesis represent the percentage of trial
        moves accepted.  $L_{p}=L$, $\zetapar=\zetaperp$, $N=20$ for
        all data shown above.}
      \label{fig:tube-dia-cL3-1000-conv-deltat}
    \end{center}
  \end{figure}

  Figure \ref{fig:tube-dia-cL3-1000-conv-nrods} shows the
  effect of changes in the number $N$ of rods per chain on
  $\msdtubedia$ in solutions with $cL^{3} = 1000$. The
  behavior of $\msdtubedia$ at very early times is, of
  course, very sensitive to chain discretization. At longer
  times, corresponding to the plateau in $\msdtubedia$,
  the data is less strongly affected by changes in $N$.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/tube-dia-cL3-1000-conv-nrods.eps}
      \caption[Convergence of $\msdtubedia$ with respect to chain
       discretization $N$]{Convergence of $\msdtubedia$ with respect to
       chain discretization $N$.  Legends indicate chain
       discretization $ N $.  Values in parenthesis represent $
       \Delta t / \tauroddil $.  $ \Delta t / \tauroddil $ has been
       chosen such that atleast $ 90\% $ of trial moves are accepted.
       $L_{p}=L$ and $\zetapar=\zetaperp$ for all data shown above.}
      \label{fig:tube-dia-cL3-1000-conv-nrods}
    \end{center}
  \end{figure}

  \subsection{Computational requirements}
  \label{sec:time-mem-requirements}
  Table I compares simulation times and memory
  requirements from four different simulations of solutions of
  semiflexible chains: (1) A simulation of isolated semiflexible
  chains using an algorithm developed previously for simulating
  dilute solutions, in which only the conformation of a single
  chain is stored in memory, which uses the same time stepping
  algorithm subroutines as those used here. (2) A simulation of
  6912 phantom chains using our code for simulating entangled
  solutions, but without checking for intersections or interactions.
  The primary difference between this and simulation 1 is that
  it requires the positions of all of the chains to be stored
  simultaneously in memory. (3) A simulation of an entangled
  solution of 6912 uncrossable but infinitely thin semiflexible
  threads, in which moves that cause chains to cross are rejected.
  (4) A simulation of corresponding solution of uncrossable chains
  with repulsive excluded volume interaction, with a diameter
  $d/L = 10^{-3}$, in which we must also calculate the change
  in interaction energy induced by moves that do not cause
  chains to cross, in order to calculate the Metropolis
  acceptance criterion. All simulations were performed on AMD
  Athlon MP processors with a CPU speed of 1.67 GHz and a cache
  size of 256 Kb, using a code that was implemented in Fortran
  90.

  From Table I, we see that the simulation of a solution of
  phantom chains, in which all of the chain conformations are
  stored but the chains do not interact, is about $8$ times
  slower than the equivalent simulation of individual chains.
  This is presumably because the entire problem no longer
  fits in the processors' cache. Once the cost of this change
  in memory structure is paid, the addition of topological
  checks slows down the simulation only by a factor of about
  $1.5$. The addition of a small steric diameter causes an
  even smaller further increase.  The times per rod per time
  step are quite comparable to the times of a few $\mu$s per
  particle per time step required in MD simulations of bead
  spring polymers with repulsive Lennard Jones interactions
  at liquid-like densities on the same processors.

   \begin{table}
     \begin{center}
       \begin{tabular}{|l|c|c|c|}
         \hline
                     & Verlet      & Time           & Memory  \cr
         Simulation  & $r_{l}/L$   & $\mu$s /rod step & (MByte) \cr
         \hline
         1) Single   & $-$ & $0.64$ & $0.0054$ \cr
         \hline
         2) Phantom  & $-$ & $5.12$ & $81.7$ \cr
         \hline
         3) Entangled ($d=0$) & $0.0375$ & $7.61$ & $96.9$ \cr
         \hline
         4) Entangled ($d=10^{-3}L$) & $0.0375$ & $8.42$ & $96.9$ \cr
         \hline
       \end{tabular}
       \vspace{0.25in}
       \caption[Computational requirements] {Comparison of memory
        and simulation times required for four different simulations
        of solution of chains with $L_{p}=L$ and $N=40$, with a time
        step $(\Delta t / \tauroddil) = 1.40625 \times 10^{-9}$.
        Simulations (2-4) were of a system of 6912 molecules in a
        periodic cell of volume chosen to give $cL^{3} = 4000$. }
     \end{center}
     \label{tab:efficiency}
   \end{table}

  \section{Theoretical Background}
  \label{sec:analysis}
  The algorithm presented in Sec. \ref{sec:simalgo} can be viewed
  either as a Brownian dynamics algorithm or as a form of Monte Carlo
  algorithm. The Brownian dynamics viewpoint is necessary to justify
  the use of the algorithm to predict dynamical properties. The Monte
  Carlo perspective is needed to explain the accuracy attained in
  results for equilibrium properties, and to justify our use of a
  Metropolis sampling scheme to treat the intermolecular potential.

  To highlight some of the conceptual issues that arise in the
  discussion of our simulations, we have found it useful to also
  consider stochastic algorithms for a related but simpler
  problem of one-dimensional (1D) diffusion of a random walker
  with a coordinate $x(t)>0$ near a hard wall at $x=0$. The
  requirement that the walker cannot go through the wall is
  analogous to the constraint prohibiting two chains from
  cutting through each other. This constraint may be imposed
  in the 1D diffusion problem by simply rejecting moves that
  take the walker through the wall.

  \subsection{Brownian dynamics}
  \label{sec:analysis-bd}
  When designing our algorithm for simulating infinitely thin
  uncrossable threads, we initially thought of it as a Brownian
  dynamics algorithm, in which the rejection of moves that lead to
  chain crossings was viewed as being analogous to the rejection
  scheme proposed above for simulating one-dimensional diffusion
  near a reflecting boundary.

  To clarify this point of view, and its limitations, we first
  recall the theory underlying a conventional Brownian dynamics
  algorithm. In this analysis, one considers a Markov jump process
  for  some vector of coordinates $\vec{X} = [X_{1},\ldots,X_{n}]$.
  in which the conditional probability distribution for any random
  displacement $\vec{X} \rightarrow \vec{X} + \Delta  \vec{X}$
  depends upon an adjustable time step  $\Delta t$. The relevant
  set of coordinates $\vec{X}$ is the set of all bead positions
  in a simulation of a polymer solution  or the coordinate $x$ of
  the random walker in the 1D diffusion problem. The probability
  distribution $P(\vec{X},t)$ generated by this discrete process
  may be shown to converge in the limit $\Delta t \rightarrow 0$
  to the  solution of a corresponding Fokker-Planck equation
  \begin{equation}
    \frac{\partial P}{\partial t} =
    - \frac{\partial (V_{i}P)}{\partial X_{i}}
    + \frac{\partial (D_{ij} P)}{\partial X_{i}\partial X_{j}}
  \end{equation}
  if the first and second moments of the random displacement
  $\Delta X_{i}$ from a state $\vec{X}$ obey the conditions
  \begin{eqnarray}
     V_{i}(\vec{X}) & = & \lim_{\Delta t \rightarrow 0}
     \frac{\langle \Delta X_{i} \rangle}{\Delta t}
     \nonumber \\
     D_{ij}(\vec{X}) & = & \lim_{\Delta t \rightarrow 0}
     \frac{\langle \Delta X_{i} \Delta X_{j}\rangle}{2 \Delta t}
     \label{BD-moments}
  \end{eqnarray}
  where $V_{i}(\vec{X}) $ is a drift velocity vector and
  $D_{ij}(\vec{X})$ is a diffusivity tensor.  The BD algorithm
  for non-interacting polymers used in our simulations was
  designed so as to satisfy these conditions for the drift
  velocity and diffusivity appropriate to a wormlike chain.
  \cite{fixman1978,hinch1994,Morse2004}.

  In our simulations of a system of $M$ polymers, the relevant
  underlying Markov step is the motion of a single randomly
  chosen chain. The actual time elapsed during the motion of
  a single chain must be understood to be smaller by a factor
  of $M$ than the timestep  of $\Delta t$ used in the underlying
  single-chain algorithm.  This trivial rescaling of $\Delta t$
  is needed to compensate for a  corresponding reduction of the
  values of the moments  $\langle \Delta X_{i} \rangle$ and
  $\langle \Delta X_{i}  \Delta X_{j} \rangle$ in Eq.
  (\ref{BD-moments}) for coordinates $X_{i}$ and $X_{j}$, which
  correspond to Cartesian components  of the positions of beads
  on the same chain: Both of these  moments are reduced by a
  factor of $1/M$ relative to the values obtained in a
  single-chain simulation because there is only a probability
  $1/M$ that any particular chain will move during a time step.

  The derivation of the analysis outlined above relies upon the
  assumption that both $\vec{V_{i}}(\vec{X})$ and $D_{ij}(\vec{X})$
  are smooth functions of $\vec{X}$. This condition is not satisfied
  by diffusion near a reflecting boundary, in which the underlying
  diffusion equation must either be taken to contain values of
  $V_{i}(\vec{X})$ and $D_{ij}(\vec{X})$ that jump discontinuously
  to zero at a boundary, or must be explicitly supplemented in the
  Fokker-Planck equation by a reflecting boundary condition.  Several
  authors have considered how to correctly implement a  reflecting
  boundary condition in a stochastic simulation, and proposed methods
  for minimizing the error arising from the presence of such a
  boundary\cite{Schulten1983,Ottinger1989,Peters2002}. The correct
  probability distribution function $P(\vec{X},t)$  can actually be
  obtained in the limit $\Delta t \rightarrow 0$ from a variety
  algorithms in which the random walker is prevented from penetrating
  the wall. For example, for a 1D walker confined by a wall to $x>0$,
  the same probability distribution is obtained in the limit $\Delta
  t  \rightarrow 0$ either by rejecting moves that yield a trial
  position $x<0$, or by replacing trial values of  $x < 0$ by $-x$.
  The choice of an algorithm for treating jumps near a reflecting
  boundary does, however, affect the magnitude of the systematic
  time-discretization error produced by a stochastic simulation
  for  $\Delta t \neq 0$.  In the simple 1D diffusion problem, in
  which  each particle jumps a distance of order $\Delta x \sim
  \sqrt{D \Delta t}$  per time step, most ``plausible'' rules for
  treating jumps near a reflecting boundary introduce a large,
  ${\cal O}(1)$ error in $P(x)$ over a region of size
  ${\cal O}(\Delta x)$ of the boundary, and produce smaller
  ${\cal O}(\sqrt{\Delta t})$ errors far from the wall.

  In light of this understanding, we thus initially expected our
  algorithm to yield a radial distribution function $P(r)$ for
  the distance of closest approach between pairs of uncrossable
  rods that deviates significantly from theoretical predictions
  for  inter-rod distances $r$ of order the typical displacement
  $\Delta x$ of a single bead over one time step, which is given
  by $\Delta x \sim \sqrt{k_{B}T \Delta t/(a\zetaperp)}$.  We
  were surprised to find instead that there was no measurable
  deviation of $P(r)$  from the theoretical predictions, even at
  extremely small values  of $r$, as shown in Figure
  \ref{fig:raddist}.  Our understanding  of this result is based
  upon an interpretation of the algorithm as a form of Monte Carlo sampling.

  \subsection{Monte Carlo}
  \label{sec:analysis-mc}
  Monte Carlo simulation is a method of efficiently sampling a
  desired equilibrium probability distribution $P_{eq}(\vec{X})$
  for some set of coordinates $\vec{X}$. A Monte-Carlo simulation
  is based on a Markov process in which the conditional probability
  $T( \vec{X}_{i} \rightarrow \vec{X}_{f})$ of a transition from a
  state $\vec{X}_{i}$ to a state $\vec{X}_{f}$ is related to the
  probability of the reverse transition by a detailed balance
  condition \citep{binder}
  \begin{equation}
    P_{eq}(\vec{X}_{i}) T( \vec{X}_{i} \rightarrow \vec{X}_{f}) =
    P_{eq}(\vec{X}_{f}) T( \vec{X}_{f} \rightarrow \vec{X}_{i})
    \quad.
  \end{equation}
  If the Monte-Carlo jump process involves both the generation of
  a trial move, and a decision regarding whether to accept or reject
  the move, then
  \begin{equation}
    \label{eq:transition-matrix}
    T(\vec{X}_{i} \rightarrow \vec{X}_{f}) =
    G(\vec{X}_{i} \rightarrow \vec{X}_{f})
    A(\vec{X}_{i} \rightarrow \vec{X}_{f})
  \end{equation}
  where $G(\vec{X}_{i} \rightarrow \vec{X}_{f})$ is the probability
  of generating a particular trial move and $A(\vec{X}_{i}  \rightarrow
  \vec{X}_{f})$ is an acceptance probability.

  \subsubsection{Uncrossable Threads}
  We first consider the algorithm used to simulate infinitely thin
  uncrossable polymers. The only potential energy in the problem is
  the intramolecular bending energy $U_{0}$ of all of the chains.
  In our algorithm, trial moves are generated by a  Brownian
  dynamics algorithm that has been designed so as to  generate an
  equilibrium distribution for this potential. We thus consider a
  class of algorithms in which a BD algorithm is used to generate
  trial moves, and in which the BD algorithm is assumed (for the
  moment) to approximately satisfy detailed balance in the limit
  $\Delta t \rightarrow 0$. That is, we assume for the moment that
  \begin{equation}
    P_{0}(\vec{X}_{i}) G( \vec{X}_{i} \rightarrow \vec{X}_{f}) =
    P_{0}(\vec{X}_{f})
    G( \vec{X}_{f} \rightarrow \vec{X}_{i})
    \label{eq:BD-DetailedBalance}
  \end{equation}
  in the limit $\Delta t \rightarrow 0$ in which the BD algorithm
  is designed to yield the equilibrium distribution $P_{0}(\vec{X})$.
  Here, $P_{0}(\vec{X})\propto e^{-U_{0}(\vec{X})}$ is the
  equilibrium distribution for a solution of non-interacting
  wormlike chains, which is also the correct equilibrium
  distribution for a solution of infinitely thin but uncrossable
  chains with no interaction potential.

  The prohibition on chain crossing is enforced by simply rejecting
  all moves that cause one chain to cut through another ($A=0$) and
  accepting all others ($A=1$).  If a transition $\vec{X}_{i}
  \rightarrow \vec{X}_{f}$ involving the motion of the beads of
  one chain causes that chain to cut through another, then the
  hypothetical reverse move $\vec{X}_{f} \rightarrow \vec{X}_{i}$,
  which would involve moving the same chain from its final to
  initial state, would also cause a chain crossing, and so would
  also be rejected. If the matrix $G$ satisfies detailed balance,
  but certain types of moves are prohibited, then the overall
  transition matrix $T=GA$ will thus also satisfy detailed
  balance, as long as the reverse of any prohibited move is also
  prohibited, as is the case here. An algorithm in which a BD
  algorithm is supplemented by such a rejection scheme will thus
  satisfy detailed balance to the same extent as the underlying
  BD algorithm. If the BD simulation can be shown to satisfy (or
  nearly satisfy) detailed balance, this would explain the
  otherwise surprising accuracy of our results for $P(r)$.

  \subsubsection{Intermolecular Interactions}
  Our algorithm for simulating a system of chains with a
  short range repulsive intermolecular repulsion is an extension
  of the above idea.  We express the total potential energy
  of the system as a sum
  \begin{equation}
    U = U_{0} + U_{int}
  \end{equation}
  where $U_{0}$ is a relatively ``soft'' intramolecular bending
  energy and $U_{int}$ is a ``hard'' intermolecular interaction
  energy. The equilibrium distribution for the interacting system
  is of the form
  \begin{equation}
    P_{eq}(\vec{X}) = P_{0}(\vec{X})e^{-U_{int}(\vec{X})/k_{B}T }
  \end{equation}
  where $P_{0}(\vec{X})$ is the equilibrium distribution for the
  non-interacting gas, which is governed by the bending energy.
  If moves are generated with a BD algorithm that satisfies
  detailed balance condition \eqref{eq:BD-DetailedBalance} for
  non-interacting polymers, then the corresponding condition
  for the interacting solution can be satisfied by requiring
  the acceptance probability $A$ to satisfy
  \begin{equation}
    \frac{A(\vec{X}_{i} \rightarrow \vec{X}_{f}) }
    { A(\vec{X}_{f} \rightarrow \vec{X}_{i}) }
    = e^{ -\Delta U_{int}/k_B T }
  \end{equation}
  where $\Delta U_{int} \equiv U_{int}(\vec{X}_{f})-U_{int}(\vec{X}_{i})$
  is the change in interaction energy.  We accomplish this by
  supplementing our prohibition on chain crossing by the usual
  Metropolis scheme of taking $A(\vec{X}_{i} \rightarrow \vec{X}_{f} )
  = 1 $ for $\Delta U_{int} < 0$ and $A( \vec{X}_{i} \rightarrow
  \vec{X}_{f} ) = e^{-\Delta U_{int}/k_{B}T} $ for $\Delta U_{int}
  > 0$ for moves that do not cause chains to cross. The same
  reasoning underlies our slithering snake algorithm for
  equilibrating such systems, in which the trial moves are
  slithering snake moves that are designed to satisfy detailed
  balance for non-interacting chains.

  Our use of a Brownian dynamics algorithm to generate trial
  moves and a Metropolis acceptance scheme based on the interaction
  energy is useful in situations in which we wish to resolve the
  dynamics of chain bending, and $\Delta t$ can be made small
  enough to do so, but in which we do not need to resolve the
  dynamics of intra-chain collisions, and in which the range of
  repulsion between chains is so small that dynamically
  resolving collisions would require us to use a much smaller
  time step. Analogous hybrid algorithms are potentially useful
  in any problem in which one wishes to simulate diffusion in
  a comparatively soft potential in the presence of an
  additional steeply repulsive potential.

  \subsubsection{Do BD simulations satisfy detailed balance?}

  In appendix \ref{app:1D-diffusion}, we try to answer  the question
  of whether a valid Brownian dynamics algorithm satisfies detailed
  balance by considering a simplified  model of one dimensional (1D)
  diffusion under the influence of a soft potential $U_{0}(X)$. There
  we consider both an algorithm in which the  random force is chosen
  from a uniform distribution and  an algorithm in which the random
  force is chosen from  a Gaussian distribution. We find that, for
  this model, both algorithms satisfy detailed balance for simple
  diffusion in a constant potential, with no drift. In  problems with
  nonzero deterministic drift forces, it is straightforward to show
  that the BD algorithm with normally distributed random forces
  satisfies detailed balance for any linear potential, and should
  thus satisfy detailed balance in the limit of $\Delta t \rightarrow 0$
  for any locally linear potential. It is equally easy to show that
  an algorithm with a uniformly distributed random force in addition
  to a deterministic force does not exactly satisfy detailed balance.
  It is argued, however, that the small violation of detailed balance
  found with uniformly distributed noise should have a negligible
  effect when  the step size is taken to be small enough to resolve
  variations in the soft potential. We thus conclude that, with
  either type of BD algorithm, the effect of any violation of detailed
  balance should vanish in the limit $\Delta t \rightarrow 0$ of
  interest.

  Our conclusions about the simple 1D diffusion problem are
  consistent with our results for simulations of entangled polymers,
  in which we find that the combination of single-chain BD simulation
  with an appropriate  rejection criterion leads to results that agree
  to within stochastic error with theoretical  predictions for the
  radial distribution and other equilibrium properties. In most of
  our simulations, we have used an unprojected random force $\etav'$
  whose Cartesian components are chosen from a uniform distribution.
  An extensive series of simulations was carried out with this choice
  before we understood its potential theoretical significance. In
  order to check whether our use of uniform distribution affected
  our results, we also ran a smaller number of simulations with a
  Gaussian distribution for $\etav'$.
  Figures \ref{fig:rad-dist-conv-noise} and
  \ref{fig:tube-dia-cL3-1000-conv-noise} compare results for
  $P(r)$ and $\msdtubedia$ obtained from simulations of infinitely
  thin threads using these two different noise distributions.
  For the value of $\Delta t$ used in our simulations, the results
  agree to within statistical error. Because the mathematical
  argument required to show that detailed balance is obtained in
  the limit $\Delta t \rightarrow 0$ is relatively straightforward
  only for BD algorithms with Gaussian-distributed random forces,
  however, we recommend that any future applications of a hybrid
  BD-MC algorithm analogous to that used here use Gaussian
  distributed random forces, if only to simplify any subsequent
  discussions of the underlying theory.

  \begin{figure}
    \begin{center}
      \gpfigc{figs/radial-dist-conv-noise-2.eps}
      \caption{Effect of noise distribution on P(r). $ cL^{3}=1000 $,
      $N=20$, $ L_{p}=L$, $\zetapar=\zetaperp$, $ \Delta t /
      \tauroddil = 4.5 \times 10^{-8} $.}
      \label{fig:rad-dist-conv-noise}
    \end{center}
  \end{figure}

  \begin{figure}
    \begin{center}
      \gpfigc{figs/tube-dia-cL3-1000-conv-noise.eps}
      \caption{Effect of noise distribution on $\msdtubedia$.
      $cL^{3}=1000$, $N=20$, $L_{p}=L$, $\zetapar=\zetaperp$,
      $\Delta t / \tauroddil = 4.5 \times 10^{-8} $.}
      \label{fig:tube-dia-cL3-1000-conv-noise}
    \end{center}
  \end{figure}

  \section{Conclusions}
  \label{sec:conclusions}

  We have presented a hybrid algorithm for simulating highly
  entangled solutions of very thin uncrossable wormlike
  filaments.  The algorithm uses a single-chain Brownian dynamics
  (BD) algorithm for generating trial moves.  This is supplemented
  with a Monte Carlo-like scheme where any trial move that causes
  two chains to cross or that leads to excluded volume overlaps
  are rejected. Efficient methods were developed for checking for
  chain crossings and excluded volume violations.  Because the
  algorithm is based on a Brownian dynamics time-stepping
  algorithm, it can be used to simulate dynamical, as well
  as equilibrium properties. The algorithm is expected to be
  much more efficient than Brownian dynamics simulation of a
  bead-spring model of nearly tangent beads in the limit of
  highly entangled solutions of extremely thin chains. Comparison
  with the efficiency of a molecular dynamics simulation of a
  bead spring model is complicated by the difference between the
  diffusive dynamics of our algorithm and the ballistic motion
  obtained in molecular dynamics of a semi-dilute solution in
  the absence of explicit solvent, which would lead to efficient
  sampling of configuration space but a loss of dynamical realism.
  We have used the algorithm discussed here to study dynamics
  and stress relaxation in highly entangled solutions
  \cite{Ramanathan_thesis}, which will be discussed elsewhere.

  \newcommand{\appsection}[1]{\let\oldthesection\thesection
    \renewcommand{\thesection}{\oldthesection}
    \section{#1}\let\thesection\oldthesection}

redpajama_set_name: RedPajamaArXiv


text:
Q: binary xml file line error inflating bottom navigation view on lower android version I'm a beginner in android programming and I've been trying to implement the bottom navigation view in my app to work on API 17 and above but on running the app on my API 22 Lollipop phone the app crashes and it also crashes on all other android versions lower than API 24 (android 7.0).
Here is the error as it appears on the logcat:
01-30 02:09:40.573 2435-2435/? E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dexter.myapp/com.dexter.myapp.activities.Myapp}: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.BottomNavigationView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
        at android.app.ActivityThread.access$600(ActivityThread.java:141)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5041)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.BottomNavigationView
        at android.view.LayoutInflater.createView(LayoutInflater.java:613)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.dexter.myapp.activities.Myapp.onCreate(Myapp.java:43)
        at android.app.Activity.performCreate(Activity.java:5104)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
        at android.app.ActivityThread.access$600(ActivityThread.java:141)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5041)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
        at android.view.LayoutInflater.createView(LayoutInflater.java:587)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.dexter.myapp.activities.Myapp.onCreate(Myapp.java:43)
        at android.app.Activity.performCreate(Activity.java:5104)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
        at android.app.ActivityThread.access$600(ActivityThread.java:141)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5041)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f070064
        at android.content.res.Resources.getValue(Resources.java:1014)
        at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:330)
        at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195)
        at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
        at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
        at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:491)
        at android.support.design.internal.BottomNavigationItemView.initialize(BottomNavigationItemView.java:100)
        at android.support.design.internal.BottomNavigationMenuView.buildMenuView(BottomNavigationMenuView.java:281)
        at android.support.design.internal.BottomNavigationPresenter.updateMenuView(BottomNavigationPresenter.java:62)
        at android.support.design.widget.BottomNavigationView.inflateMenu(BottomNavigationView.java:236)
        at android.support.design.widget.BottomNavigationView.<init>(BottomNavigationView.java:165)
        at android.support.design.widget.BottomNavigationView.<init>(BottomNavigationView.java:114)
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
        at android.view.LayoutInflater.createView(LayoutInflater.java:587)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.dexter.myapp.activities.Myapp.onCreate(Myapp.java:43)
        at android.app.Activity.performCreate(Activity.java:5104)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
        at android.app.ActivityThread.access$600(ActivityThread.java:141)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5041)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)

Here is the Myapp.java file line 43:
setContentView(R.layout.my_app_layout);
Here is my_app_layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activities.Myapp">

<FrameLayout
       android:id="@+id/fragment_container"
       android:layout_width="match_parent"
       android:layout_above="@+id/navigation"
       android:layout_height="match_parent">
</FrameLayout>

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="?android:attr/windowBackground"
    app:menu="@menu/navigation"
    app:itemIconTint="#000000"
    app:itemTextColor="#000000" />

</RelativeLayout>

I hope that's enough to find what the problem might be and fix it.
Please note that the app used to work on API 22 so I have been wondering whether downloading the new Android Studio 3.3. Here's more about the android version I am currently using:
 Android Studio 3.3
 Build #AI-182.5107.16.33.5199772, built on December 25, 2018
 JRE: 1.8.0_152-release-1248-b01 amd64
 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
 Windows 10 10.0

Thanks in advance.

A: Welcome to Stack Overflow.
The log indicates 2 errors when running your application.
1.java.lang.reflect.InvocationTargetException
Here you can use the annotation targetapi
2.android.content.res.Resources$NotFoundException: Resource ID #0x7f070064 Here you are using a resource that does not exist.
When you face such a layout problem in Android, an easy debugging tip is to remove all customizations of the view to know where the problem is coming from. In your view, for instance, attribute app was added on api level 21. Also, you need to confirm if these resources are available before using them ?android:attr/windowBackground
Here is a working example
<android.support.design.widget.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="8dp"
        android:focusable="true"
        android:focusableInTouchMode="true"
        app:menu="@menu/navigation"
        tools:targetApi="lollipop" />

Notice that the targetApi limits lower apis

A: I got the java.lang.reflect.InvocationTargetException too, becuase i tried to add more than 5 items to the BottomNavigationView.
And I solve it by removing some item from the menu, then the error is gone.

redpajama_set_name: RedPajamaStackExchange


Eurofima issued a new, A$50m 10.5 year kangaroo bond on 14 November 2018.
JP Morgan issued a new, A$450m dual tranche callable deal on 13 November 2018.
SAFA priced an increase to its May 2028 select line on 13 November 2018.


text:
Mass. state police track down man that alleged dragged trooper
The Providence Journal
TAUNTON, Mass. (AP) — A Boston man state police say dragged a trooper with his vehicle while fleeing a traffic stop has been tracked down and charged with attempted murder.
Claude Remy, 32, was arrested Wednesday in Framingham after investigators found out he may be hiding at an address there, state police said in an emailed statement.
Police were looking for Remy because they say he fled a traffic stop on Route 140 in Taunton on Tuesday night.
A trooper pulled over the pickup truck Remy was driving at about 8 p.m, police said.
Remy pulled into a gas station parking lot and the trooper approached the pickup, police said. After a brief struggle, Remy sped away while the trooper held on to him, according to police.
The trooper fell from the vehicle and struck his head and body on the ground. The trooper was not seriously hurt and continued his shift. Remy abandoned the truck in Berkley and was picked up by another vehicle, police said. The trooper's name wasn't released.
Remy was held on $75,000 bail on attempted murder and several other charges. It could not be determined if he has an attorney.

redpajama_set_name: RedPajamaCommonCrawl


The Holidays are upon us, things are sure to be busy at the brewery. We have a whole lot in store for this winter season. We have lots of beer aging in barrels around the brewery, make sure to stay tuned for release dates. We are partnering with South East Alaska Backcountry Adventures this season to sell some guided help skiing trips in Haines AK. Stop by the brewery to learn more.
Beehive Basin Brewery has now been open for a year and a half. We continue to produce the highest quality craft beer that we can make. Back in October in an effort to keep up with demand for our beer we added an additional 15 bbl fermenter and 15 bbl bright tank. We have also added a Crowler machine to our tap room so we can now offer our customers 32oz cans of beer to go. The aprés ski hours have been increasingly busy in the tap room. If you are planning a visit to the brewery you may want to consider showing up earlier in the day so you grab a seat at the bar.
We are now distributing our beer around Big Sky as well as a few locations outside of Big Sky. Keep an eye out for our beer at The Office Lounge in Livingston and Feast Bistro in Bozeman. In Big Sky our beer is available at The Riverhouse, Scissor Bills, Chets, Andiamos, Bucks T4, The Bugaboo, BWOM, Choppers, Lone Peak Cinema, Ousel and Spur, Everetts 8,800 and Headwaters Grill. We also have 32oz Crowler cans available at the Shedhorn Grill located on the south side of Lone Peak.
We have had lots of questions recently about the expansion project going on around our building. As of now we are not planning on expanding the brewery or the tap room. The expansion on the building are currently un-occupied and should be available for rent by this April.


A native of Dallas, Texas, Calhoun is the son of William "Buddy" Calhoun who was a school teacher and Thoroughbred trainer. The younger Calhoun took out his trainer's license in 1993 and the following year scored his first career victory with Ramjet at the now defunct Trinity Meadows in Willow Park, Texas. He has campaigned Grade 1 winners Finley'sluckycharm and Dubai Majesty as well as multiple graded stakes winners Chamberlain Bridge, Mr. Nightlinger and Promise Me Silver.