Sbahle on regaining her memory: ‘I know who was responsible for my accident’
Nolusindiso Mgujulwa
Cape Town - Fitness influencer Sbahle Mpisane has been recovering after she was involved in a car crash in August 2018.
Speaking to DRUM, Sbahle said she has regained 90% of her memory and she remembers who was responsible for her car crash.
“I’ve regained 90% of my memory. I would often go to the scene where the accident happened to try torecall what happened.”
The 26-year-old said she remembers who is responsible for her crash but did not want to mention names.
“I am so angry because I want him to reach out to me or to at least ask me how I’m doing. I am 100% certain about what happened, I know who was responsible for my accident.
“The past three weeks I’ve been very emotional, not because of the guy but because I’ve been reflecting a lot on what has happened and I am grateful,” she told DRUM.
Sbahle promised her fans that she has a big announcement to make on 1 December.
“I don’t want to say what it is now, but on 1 December, I’ll be sharing what I’m working on, and when I do share, I know my fans will be happy for me,” she said.


Alaska
问题描述 :
The Alaska Highway runs 1422 miles from Dawson Creek, British Columbia to Delta Junction, Alaska. Brenda would like to be the first person to drive her new electric car the length of the highway. Her car can travel up to 200 miles once charged at a special charging station. There is a charging station in Dawson Creek, where she begins her journey, and also several charging stations along the way. Can Brenda drive her car from Dawson City to Delta Juntion and back?
输入:
The input contains several scenario. Each scenario begins with a line containing n, a positive number indicating the number of charging stations. n lines follow, each giving the location of a filling station on the highway, including the one in Dawson City. The location is an integer between 0 and 1422, inclusive, indicating the distance in miles from Dawson Creek. No two filling stations are at the same location. A line containing 0 follows the last scenario.
输出:
The input contains several scenario. Each scenario begins with a line containing n, a positive number indicating the number of charging stations. n lines follow, each giving the location of a filling station on the highway, including the one in Dawson City. The location is an integer between 0 and 1422, inclusive, indicating the distance in miles from Dawson Creek. No two filling stations are at the same location. A line containing 0 follows the last scenario.
样例输入:
2 0 900 8 1400 1200 1000 800 600 400 200 0 0
样例输出:
IMPOSSIBLE POSSIBLE
#include <iostream> using namespace std; #include <cstdio> #include <cstring> #include <algorithm> #define MAX 1500 int a[MAX], n; int main(void) { while(scanf("%d", &n) && n) { int i, j; a[0] = 0; for(i = 1; i <= n; i++) scanf("%d", &a[i]); a[n+1] = 1422; n = n + 2; sort(a, a + n); int flag = 0; for(i = 0; i + 1 < n; i++) { if(a[i+1] - a[i] > 200) flag = 1; } if(a[n - 1] - a[n-2] > 100) flag = 1; if(flag == 1) puts("IMPOSSIBLE"); else puts("POSSIBLE"); } return 0; }
(adsbygoogle = window.adsbygoogle || []).push({});
万 *** *** 片高清 国产日韩 http://uVU.cc/iiMs
万 *** *** 片高清 国产日韩 http://uVU.cc/iiMs
万 *** *** 片高清 国产日韩 http://uVU.cc/iiMs
万 *** *** 片高清 国产日韩 http://uVU.cc/iiMs
很好的思路，可以借鉴
整理的很好，学习了
C语言版本的代码好像有点问题
哎，path[0]应该是从零开始吧，为什么是赋值1呢？
妈呀！这个模板好长OwQ！
分析的很专业！
失误失误，转载错了。已经改正，抱歉。
scanner改用StreamTokenizer就不超时了
已经挂掉了，给个参考呗
站长，你好！
你创办的的网站非常好，为我们学习算法练习编程提供了一个很好的平台，我想给你提个小建议，就是要能把每道题目的难度标出来就好了，这样我们学习起来会有一个循序渐进的过程！


Frank has just noted that there is one exception (NNG/TW) to the rates on the attached schedule. In the case of CIAC paid to others, the intent is to amortize it over
the life of the contract and if there is no contract, it would default to 10%.
-----Original Message-----
From: Studzinski, Betty
Sent: Friday, August 03, 2001 1:39 PM
To: Geaccone, Tracy
Cc: Cobb Jr., John
Subject: FW: ETS Depreciation Rates
This file has been updated for NBPL rates.
-----Original Message-----
From: Studzinski, Betty
Sent: Friday, August 03, 2001 11:22 AM
To: Geaccone, Tracy
Cc: Cobb Jr., John; Bayles, Timothy; Carriere, Frank
Subject: ETS Depreciation Rates
Per your request:
***********
EDRM Enron Email Data Set has been produced in EML, PST and NSF format by ZL Technologies, Inc. This Data Set is licensed under a Creative Commons Attribution 3.0 United States License <http://creativecommons.org/licenses/by/3.0/us/> . To provide attribution, please cite to "ZL Technologies, Inc. (http://www.zlti.com)."
***********
California


THERE'S SOMETHING ABOUT MARY (Fox - 1998) Starring Cameron Diaz, Matt Dillon, Ben Stiller Screenplay by Ed Decter & John J. Strauss and Peter Farrelly & Bobby Farrelly Produced by Frank Beddor, Michael Steinberg, Charles B. Wessler, Bradley Thomas Directed by Peter Farrelly & Bobby Farrelly Running time: 118 minutes
*** (out of four stars) Alternate Rating: B
Note: Some may consider portions of the following text to be spoilers. Be forewarned.
-------------------------------------------------------------
"There's something about Mary," croons comic troubadour Jonathan Richmond by way of explanation at one point in the remarkably silly film of the same name, which prompts one to take inventory: as portrayed by Cameron Diaz, perpetual object of desire Mary Jenson is gorgeous, kindly, wealthy, sunny and altogether charming. She has the propensity to change clothes while standing in front of open windows, and even watches SportsCenter, which, needless to say, induces one to ponder what's *not* to like about her? Well, okay, she's a golf aficionado -- nobody's perfect.
The ridiculously idealized Mary is the eye of the vortex in THERE'S SOMETHING ABOUT MARY, an assemblage of zany bits of scatological humour themed around -- err, stalking. Unlike the sugar-coated nastiness of last year's ADDICTED TO LOVE, though, this year's summer stalking comedy (a most improbable genre, one would have thought) has a bright, bubbly core; amidst all the crude sight gags, the decidedly-politically incorrect witticisms, and lowbrow raunchiness, the film has such an infectiously cheerful, carefree spirit that its offensive material comes across as mischievous rather than malicious. Indeed, the sibling filmmaking team of Peter and Bobby Farrelly clearly take such glee in stretching the limits of good taste that it's nigh well irresistible to simply toss decorum aside and revel in the bawdiness.
The film's (semblance of a) plot is a basic underdog tale structured around a lovelorn geeky guy named Ted Stroehmann (Ben Stiller) and his earnest attempts to woo the seriously-out-of-his-league goddess Mary while competing for her affections against a bizarro, ever-expanding collection of misfits, chief of which is the caddish Pat Healy (Matt Dillon), the private eye whom Ted hired to track Mary down. In its outline, then, it's a tried-and-true, well-worn formula which leaves no doubt where the film is headed, though familiarity isn't much of an impediment given that the narrative essentially serves as a framework for a series of gags.
There's little doubt where the film's greatest strengths lie; there are moments in THERE'S SOMETHING ABOUT MARY which are as funny as anything that's been released to theatres this year. And, as per the reputation of filmmakers, the humour isn't exactly sly and subtle -- the comedy is brazen and in many cases quite literally in-your-face, all gross sight gags and frenetic slapstick. In its best moments, the silliness is so abundant that one can't help but choke with laughter; there's one scene where the audience is lulled into complacency by madcap discussion of a certain uncomfortable circumstance that when the brothers Farrelly fling the image onscreen (in a zoom shot, no less), filling the frame in all its wince-inducing glory, it's hilarious not only in its absurdity and grotesqueness, but also for its sheer unexpectedness.
"I can't believe they *showed* that!" murmured someone behind me during one of the film's big comic moments. "That's *so mean*!" gasped the woman next to me. (The guy in front of me was too busy howling with laughter to comment.) The film's humour is so broad and unabashedly confident that it often provokes not only laughter, but bonafide audience reaction; at the screening I attended, one prime sequence left the crowd buzzing so loud and long that the dialogue in the entire subsequent scene couldn't even be heard.
However, this didn't prove to be a problem, and here lies the down side of the film. THERE'S SOMETHING ABOUT MARY is deliriously scatological, tossing practically every sick joke in the book at the screen in its attempts to elicit laughs, with a rather iffy success rate; its big moments are explosively funny, but more often than not, the gags sputter and fizzle, and in between comic crescendos the whole thing gets rather dreary. As a result, the film seems to run far too long -- some liberal trimming could have be conducted with negligent effect to the narrative while improving the overall pacing. In addition, the film curiously seems to consider its romantic angle far more sweet than it actually plays, frequently lending a sense of sincerity to scenes that isn't really merited.
Still, while wildly uneven, the film is a hoot, replete with a handful of memorably audacious moments. It left me considering which was preferable -- a carefully-modulated picture of consistent amusement, or an agreeable one peppered with instances of hilarity, like THERE'S SOMETHING ABOUT MARY. While in general I find myself leaning towards the former, I can't help but appreciate a film which takes the tired Good Times montage endemic to the romantic-comedy genre, and gives it a special hook.
 - Andrew Sarris
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Tons of functions
TheoremJS is packed up with tons of useful mathematical functions. It is composed of functions in most mathematical fields such as algebra, number theory, statistics, etc... It was designed to fit your need, whatever you are trying to do.
Fast
With TheoremJS, you won't feel the need of running the code on a server, you can run it right on the browser, or on a NodeJS notebook (Jupyter like). Even though we loose performances with BigNumber, our algorithm are well engineered and ensure decent performances on every devices.
Scalable
You can use TheoremJS for every projects, ranging from doing your math homework to launch a rocket into deep space. (Ok, maybe if you're planning to launch a rocket into space, you might want to use other tools in addition to TheoremJS)
Written in JavaScript ❤
JavaScript is an easy to use scripting language that is perfect for mathematical computation: it's fast and it has a lot of built-in functions. TheoremJS was built on top BigNumber to ensure that all the math is done with precision.
FAQ
Does it fix the floating point precision bug in JS?
Yes. We use the BigNumber library to fix that.
Can I graph some cool stuff with it? A bit like using matplotlib in Python?
Yes, but you won't be able to do it only with TheoremJS. I've built a small library for this, it's called Descartes.
Can I use it with Jupyter notebooks?
While TheoremJS doesn't have an official Jupyter kernel, it should work fine with the NodeJS kernel. It will also work fine in other "notebooks" such as RunKit.
Installation
Are you conviced? If yes, open a terminal and write down the code below.
Or if you want to do a website:


Tabular Data Starter
Simple Graph consisting of starter sklearn and pandas with Random Forest Classifier.
Image Classifier Starter
Graph to get you started on Image Classification Tasks using Keras.


B
New
Open
Save As...
Export...
Exit
Add Question
Add Info Slide
>
This is a slide with no Questions
Back
Next
Submit


Tarkwa-Nsuaem Judicial Service Staff joins indefinite nationwide strike action
by Erica Apeatua Addo, GNA
Tarkwa (W/R), Nov. 14, GNA - The Judicial Service Staff in the Tarkwa-Nsuaem Constituency have joined their colleagues nationwide to embark on the indefinite strike action over the review of their salaries.
As at about 1030hours on Wednesday when the Ghana News Agency (GNA) visited the Tarkwa High court, Circuit court, District court one and two no staff, including security personals, had reported to work.
The various offices and court rooms were locked and the workers hoisted red flags to register their displeasure over the unsettled salary review.
Some few people the GNA spotted around the Tarkwa Circuit Court and the District Court one and two who had travelled from far for their cases to be heard on Wednesday November 13 had to return home disappointed as there were no staff to attend to them.

She, therefore, appealed to the government to address all the issues raised by the aggrieved staff so that she could make enough sales to take care of her children who are in school.
GNA


API Overview ||
Making Your Mark ||
Window Shopping 1 ||
Window Shopping 2 ||
Being Stylish ||
Stret View ||
Drawing ||
Geocoding ||
Matrix API ||
Directions ||
Autocomplete 1 ||
Autocomplete 2 ||
Place Details ||
Hello Map Quiz ||
Interpreting Geocoding Responses ||
Markers Infowindow Quiz


|
CMSIS-Zone (Preview)
Version 0.0.1
System Resource Management
|
The Zone Description Format uses standard XML annotations and is defined in the schema file ZONE.xsd. It is intended to provide a tool vendor agnostic storage format for
In the following diagram the overall structure of the Storage Data Model is depicted. The storage format is derived from the model.
The storage model is developed based on the domain and can be seen as the domain model as well. Its main purpose is to capture all information about presumable embedded systems and microcontroller devices.
Todays available system-on-modules (SoM) and system-on-chips (SoC) already physically outlines the overall composition. It seems to be viable to stick with todays system structures. It's not likely that this structure will change drastically.
A detailed view on the decomposition of an arbitrary SoM is given in the diagram below.
The SoM itself (System) can be seen as a composition of one or more SoCs (Device) combined with an arbitrary amount of board-level resources, i.e. off-chip memory (Memory) and peripheral (Peripheral). In turn each SoC is a composition of one or more processor elements (Processor, PE) with chip-level resources, i.e. on-chip memory and peripheral.
Private memory and peripheral resources local to a dedicated PE has been simplified. These can also be seen as chip-level resources.
The grouping (ResourceGroup) is intended to allow structural grouping of resources elements, i.e. by type or bus structure.
name
attributes) are typically used as references and hence must be unique per class. Duplicate names are allowed if object hierarchies do not overlap. I.e. resources contained on two separate SoCs may have the same name but the name of a SoM level resource must not be reused on SoC level.Most of the Multi-Core-SoCs available today show uniform memory maps. But in principle the logical memory address used to address a certain resource may vary between multiple PEs on the same SoC. Taking this into account leads to memory map specification on both SoC and PE level, see diagram below.
The memory maps specified on SoC and PE level are additive, i.e. the PEs actual memory map is the combination of both. This split allow the specification of uniform memory maps without duplication. Only the non-uniform parts need to be specified on PE level.
Each resource can be mapped as often as needed, i.e. to reflect multiple memory aliases. By default the name
attribute is used to identify the resource to be mapped. In order to map the same resource multiple times into a PEs memory space the alias
attribute must be given to identify the resource instead. The mapping names must be unique per PE because they are used as references later.
The attributes of the mapping are merged with those of the resource mapped. This allows the mapping of an individual PE to enhance the basic attributes of a resource. For example a memory resource that is basically readable/writeable/executable might be mapped to a PE as readonly memory.
A system can be split into an arbitrary amount of project zones (PZone). And each PZone can be further split into execution zones (XZone). Resources used by an individual zone are represented using assignments (Assignment). Refer to the diagram below.
Each PZone is assigned to a dedicated PE which is selected to execute the resulting software part. The PE is referenced by the unique combination of Dname
and Pname
attributes. The XZones are contained in the PZone they belong to.
Both PZones and XZones can have arbitrary assignments to available resources visible to the assigned PE. Assignments to SoC level resources not part of the SoC the PE is located on are illegal. Such assignments cannot be represented because the unique reference is built from PZone::Dname
and Assignment::name
.
As a resource may be visible to the enclosing PE using multiple mappings the as
attribute can be used to distinguish which alias is used for access. Selecting the correct alias is significant because of the effective access attributes resulting from merging Resource.access
, MemoryMapping.access
/PeripheralMapping.access
and Assignment.access
.
Whilst peripheral resources can be assigned directly memory resources need to be split into blocks (MemoryBlock). A block can be seen as an arbitrary part of the physical memory. Individual blocks can be defined using modified access attributes, e.g. for having dedicated executable or readonly regions in RAM.
The XML schema is defined hierarchically with the following top-level elements:


Malik Jallah
Contact
(current)
Portfolio
About
Portfolio
Celebrity Fan Page
Marketing Website
Work Day Planner
Bad Movie Challenge


zoo.models.seq2seq package¶
Submodules¶
zoo.models.seq2seq.seq2seq module¶
-
class
zoo.models.seq2seq.seq2seq.
Bridge
(bridge_type, decoder_hidden_size, bridge)[source]¶ Bases:
zoo.pipeline.api.keras.base.ZooKerasLayer
defines how to transform encoder to decoder
# Arguments bridge_type: currently only support “dense | densenonlinear” decoder_hiddenSize: hidden size of decoder bridge: keras layers used to do the transformation
>>> bridge = Bridge.initialize("dense", 2) creating: createZooKerasBridge >>> dense = Dense(3) creating: createZooKerasDense >>> bridge = Bridge.initialize_from_keras_layer(dense) creating: createZooKerasBridge
-
class
zoo.models.seq2seq.seq2seq.
RNNDecoder
(rnns, embedding=None, input_shape=None)[source]¶ Bases:
zoo.pipeline.api.keras.base.ZooKerasLayer
A generic recurrent neural network decoder
# Arguments rnns: rnn layers used for decoder, support stacked rnn layers embedding: embedding layer in decoder input_shape: shape of input, not including batch
>>> decoder = RNNDecoder.initialize("lstm", 2, 3) creating: createZooKerasLSTM creating: createZooKerasLSTM creating: createZooKerasRNNDecoder
>>> lstm = LSTM(3) creating: createZooKerasLSTM >>> embedding = Embedding(1000, 32, input_length=10, name="embedding1") creating: createZooKerasEmbedding >>> encoder = RNNDecoder([lstm], embedding) creating: createZooKerasRNNDecoder
-
class
zoo.models.seq2seq.seq2seq.
RNNEncoder
(rnns, embedding=None, input_shape=None)[source]¶ Bases:
zoo.pipeline.api.keras.base.ZooKerasLayer
A generic recurrent neural network encoder
# Arguments rnns: rnn layers used for encoder, support stacked rnn layers embedding: embedding layer in encoder input_shape: shape of input, not including batch
>>> encoder = RNNEncoder.initialize("lstm", 2, 3) creating: createZooKerasLSTM creating: createZooKerasLSTM creating: createZooKerasRNNEncoder
>>> lstm = LSTM(3) creating: createZooKerasLSTM >>> embedding = Embedding(1000, 32, input_length=10, name="embedding1") creating: createZooKerasEmbedding >>> encoder = RNNEncoder([lstm], embedding) creating: createZooKerasRNNEncoder
-
class
zoo.models.seq2seq.seq2seq.
Seq2seq
(encoder, decoder, input_shape, output_shape, bridge=None, generator=None, bigdl_type='float')[source]¶ Bases:
zoo.models.common.zoo_model.ZooModel
A trainable interface for a simple, generic encoder + decoder model
# Arguments encoder: an encoder object decoder: a decoder object input_shape: shape of encoder input, for variable length, please use -1 as seq len output_shape: shape of decoder input, for variable length, please use -1 as seq len bridge: connect encoder and decoder generator: Feeding decoder output to generator to generate final result, None is supported
>>> encoder = RNNEncoder.initialize("LSTM", 1, 4) creating: createZooKerasLSTM creating: createZooKerasRNNEncoder >>> decoder = RNNDecoder.initialize("LSTM", 1, 4) creating: createZooKerasLSTM creating: createZooKerasRNNDecoder >>> bridge = Bridge.initialize("dense", 4) creating: createZooKerasBridge >>> seq2seq = Seq2seq(encoder, decoder, [2, 4], [2, 4], bridge) creating: createZooSeq2seq
-
infer
(input, start_sign, max_seq_len=30, stop_sign=None, build_output=None)[source]¶ Inference API for given input
# Arguments input: a sequence of data feed into encoder, eg: batch x seqLen x featureSize start_sign: a ndarray which represents start and is fed into decoder max_seq_len: max sequence length for final output stop_sign: a ndarray that indicates model should stop infer further if current output is the same with stopSign build_output: Feeding model output to buildOutput to generate final result
-
static
load_model
(weight_path=None, bigdl_type='float')[source]¶ Load an existing Seq2seq model (with weights).
# Arguments path: The path for the pre-defined model. Local file system, HDFS and Amazon S3 are supported. HDFS path should be like ‘hdfs://[host]:[port]/xxx’. Amazon S3 path should be like ‘s3a://bucket/xxx’. weight_path: The path for pre-trained weights if any. Default is None.
-


The QFJ version number can be determined by running the core JAR file as shown below.
$ java -jar quickfixj-core.jar Version: 1.2.0


Laravel Montréal #13 - January 28th, 2016
Thanks for comming !
Jobs
Get involved
php artisan controller:make ContactsController
$api->version('v1', function ($api) {
$api->resource('users', 'App\Http\Controllers\Api\V1\UserController');
});
class UsersController extends BaseController {
public function index() {} // GET /
public function create() {} // GET /create
public function store() {} // POST /
public function show($id) {} // GET /1
public function edit($id) {} // GET /1/edit
public function update($id) {} // PUT /1
public function destroy($id) {} // DELETE /1
}
php artisan api:routes
Let's start with Basic authentication
$api->version('v1', ['middleware' => 'api.auth'], function ($api) {
$api->resource('users', 'App\Http\Controllers\Api\V1\UserController');
});
Now what about JWT ?
$api->version('v1', ['middleware' => 'api.auth'], function ($api) {
$api->resource('users', 'App\Http\Controllers\Api\V1\UserController');
});
$api->version('v2', ['middleware' => 'api.auth', 'providers' => ['basic', 'jwt']], function ($api) {
$api->resource('users', 'App\Http\Controllers\Api\V1\UserController');
});
There's three different trees: x, prs, and vnd. The standards tree you use will
depend upon the project you're developing.
The unregistered tree (x) is primarily meant for local or private environments.
The personal tree (prs) is primarily meant for projects that are not distributed commerically.
The vendor tree (vnd) is primarily meant for projects that are publically available and distributed.
Subtypes using the personal or vendor trees are technically meant to register with the IANA.
You can configure this in your .env file.
API_STANDARDS_TREE=vnd
Accept: application/vnd.LaravelMontrealv1+json


The grep utility searches the input, selecting lines matching a pattern; the types of patterns are controlled by the options specified.
By default, an input line is selected if any pattern, treated as an entire regular expression matches any part of the line excluding the terminating newline character(s). By default, each selected input line is written to the output.
Regular expression matching is based on text lines. Since newline character(s) separate or terminate patterns, regular expressions cannot contain newline character(s). Similarly, since patterns are matched against individual lines (excluding the terminating newline character(s)) of the input, there is no way for a pattern to match newline character(s) found in the input.
Regular expressions used in this command must be based on the {@link java.util.regex.Pattern Java regular expression syntax}.


"""
Particle Size Models
====================
Compute particle size distributions for jets of oil and gas
This module provides an interface to available empirical models for bubble
and droplet size distributions for jet releases. The empirical model
functions are in `psf.py`; this module provides an object-oriented interface
to these functions. Gas bubble size distributions can be created from:
* Li et al. (2017)
* Wang et al. (2018)
Oil droplet size distributions can be created from:
* Johansen et al. (2013)
* Li et al. (2017)
All models support log-normal and Rosin-Rammler distributions.
Notes
-----
The particle size computational algorithms are contained in the module
`psf.py` - Particle Size Fuctions
This module is a function library used by the objects in this module. In
general, the `psf` module can be replace by any module having the same
application programming interface, whether programmed in Python, or another
language and wrapped in Python.
See Also
--------
To date, only simple, analytical equations have been implemented in the
partice size functions. More complex, physics-based models using a population
dynamic approach are also often used. These may be added in the future. See,
for example:
Zhao, L., Boufadel, M. C., Socolofsky, S. A., Adams, E., King, T., and
Lee, K. (2014). "Evolution of droplets in subsea oil and gas blowouts:
Development and validation of the numerical model VDROP-J." Mar Pollut
Bull, 83(1), 58-69.
"""
# S. Socolofsky, March 2020, Texas A&M University<EMAIL_ADDRESS>from __future__ import (absolute_import, division, print_function)
from tamoc import psf, seawater, dbm
import numpy as np
# import matplotlib.pyplot as plt
[docs]class ModelBase(object):
"""
Master class object for interfacing with functions in the `psf` module
This base model class contains the attributes necessary to directly call
the functions in the `psf` module. This class is also initialized with
these fluid properties; hence, this class can be used independently of
``TAMOC`` or the discrete particle module (`dbm`) in TAMOC.
Parameters
----------
rho_gas : float
Density of the gas phase released from the jet (kg/m^3)
mu_gas : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_gas : float
Interfacial tension between the gas phase released from the jet and
the continuous-phase receiving fluid (N/m)
rho_oil : float
Density of the liquid phase released from the jet (kg/m^3)
mu_oil : float
Dynamic viscosity of the liquid phase released from the jet (Pa s)
sigma_oil : float
Interfacial tension between the liquid phase released from the jet
and the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
Attributes
----------
rho_gas : float
Density of the gas phase released from the jet (kg/m^3)
mu_gas : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_gas : float
Interfacial tension between the gas phase released from the jet and
the continuous-phase receiving fluid (N/m)
rho_oil : float
Density of the liquid phase released from the jet (kg/m^3)
mu_oil : float
Dynamic viscosity of the liquid phase released from the jet (Pa s)
sigma_oil : float
Interfacial tension between the liquid phase released from the jet
and the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
sim_stored : bool
Flag indicating whether or not the particle size distribution
algorithm has been calculated since the last property update.
distribution_stored : bool
Flag indicating whether or not the particle size distribution has
been computed and stored since the last property update.
d0 : float
Equivalent circular diameter of the release orifice (m)
m_gas : float
Mass flow rate of gas released from the jet (kg/s)
m_oil : float
Mass flow rate of liquid released from the jet (kg/s)
model_gas : str
Name of the model used for computing the gas bubble size
distribution. Choices are 'wang_etal' or 'li_etal':.
model_oil : str
Name of the model used for computing the oil droplet size
distribution. Choices are 'sintef' or 'li_etal'.
pdf_gas : str
Probability density function to use for the gas bubble size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
pdf_oil : str
Probability density function to use for the oil droplet size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
d50_gas : float
Median equivalent spherical diameter of gas bubbles (m)
de_max_gas : float
Maximum stable bubble size (equivalent spherical diameter) of gas
bubbles (m).
de_gas : ndarray
Array of equivalent spherical diameters of bubbles in the bubble
size distribution (log-distributed, m)
vf_gas : ndarray
Array of volume fractions of gas corresponding to each bubble size
in the `de_gas` bubble size distribution (--)
d50_oil : float
Median equivalent spherical diameter of oil droplets (m)
de_max_oil : float
Maximum stable droplet size (equivalent spherical diameter) of oil
droplets (m).
de_oil : ndarray
Array of equivalent spherical diameters of droplets in the droplet
size distribution (log-distributed, m)
vf_oil : ndarray
Array of volume fractions of oil corresponding to each droplet size
in the `de_oil` droplet size distribution (--)
See Also
--------
PureJet, Model
Notes
-----
This class should only be used is the chemical properties are not going
to be computed using the ``TAMOC`` `dbm`. If the `dbm` is going to be
used, then the regular `Model` class should be used instead.
"""
[docs] def __init__(self, rho_gas, mu_gas, sigma_gas, rho_oil, mu_oil,
sigma_oil, rho, mu):
super(ModelBase, self).__init__()
# Record the release properties
self.update_properties(rho_gas, mu_gas, sigma_gas, rho_oil, mu_oil,
sigma_oil, rho, mu)
[docs] def update_properties(self, rho_gas, mu_gas, sigma_gas, rho_oil, mu_oil,
sigma_oil, rho, mu):
"""
Set the thermodynamic properties of the released and receiving fluids
Store the density, viscosity, and interfacial tension of the fluids
involved in a jet breakup scenario.
Parameters
----------
rho_gas : float
Density of the gas phase released from the jet (kg/m^3)
mu_gas : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_gas : float
Interfacial tension between the gas phase released from the jet
and the continuous-phase receiving fluid (N/m)
rho_oil : float
Density of the liquid phase released from the jet (kg/m^3)
mu_oil : float
Dynamic viscosity of the liquid phase released from the jet (Pa s)
sigma_oil : float
Interfacial tension between the liquid phase released from the
jet and the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
"""
# Set the flags initially to False
self.sim_stored = False
self.distribution_stored = False
# Record the properties
self.rho_gas = rho_gas
self.mu_gas = mu_gas
self.sigma_gas = sigma_gas
self.rho_oil = rho_oil
self.mu_oil = mu_oil
self.sigma_oil = sigma_oil
self.rho = rho
self.mu = mu
[docs] def simulate(self, d0, m_gas, m_oil, model_gas='wang_etal',
model_oil='sintef', pdf_gas='lognormal',
pdf_oil='rosin-rammler', Pa=4.e6, Ta=288.15):
"""
Compute the parameters of the particle size distribution
Computes the median bubble and droplet sizes and the spread
of the selected size distributions. Models for gas bubble median
size are `wang_etal` or `li_etal`; models for oil droplet median
size are `sintef` or `li_etal`. Size distributions are either
`lognormal` or `rosin-rammler`. No matter what model is selected,
the `d_95`-rule is used when the predicted size distribution would
exceed the maximum stable bubble or droplet size. Under that rule,
the 95-percentile of the volume size distribution is set to the
maximum stable size, and the median size is adjusted downward.
Parameters
----------
d0 : float
Equivalent circular diameter of the release orifice (m)
m_gas : float
Mass flow rate of gas released from the jet (kg/s)
m_oil : float
Mass flow rate of liquid released from the jet (kg/s)
model_gas : str, default='wang_etal'
Name of the model used for computing the gas bubble size
distribution. Choices are 'wang_etal' or 'li_etal':.
model_oil : str, default='sintef'
Name of the model used for computing the oil droplet size
distribution. Choices are 'sintef' or 'li_etal'.
pdf_gas : str, default='lognormal'
Probability density function to use for the gas bubble size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
pdf_oil : str, default='rosin-rammler'
Probability density function to use for the oil droplet size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
Pa : float, default=4.e6
Pressure at the release point. Used to compute the speed of
sound in gas.
Ta : float, default=288.15
Temperature of the released fluids. Used to compute the
speed of sound of gas.
Notes
-----
This method does not return any values. Instead, the computed values
are stored as attributes of the class object. To report the computed
values, use the `get`-methods.
See Also
--------
get_d50, get_de_max, get_distributions
"""
# Record the state of the release
self.d0 = d0
self.m_gas = m_gas
self.m_oil = m_oil
self.model_gas = model_gas
self.model_oil = model_oil
self.pdf_gas = pdf_gas
self.pdf_oil = pdf_oil
# Get the gas bubble size distribution
if model_gas == 'wang_etal':
# Get the parameters of the distribution
self.d50_gas, m_gas, m_oil, self.de_max_gas, self.sigma_ln_gas = \
psf.wang_etal(
self.d0, self.m_gas, self.rho_gas, self.mu_gas,
self.sigma_gas, self.rho, self.mu, m_l=self.m_oil,
rho_l=self.rho_oil, P=Pa, T=Ta
)
if pdf_gas == 'rosin-rammler':
# Convert lognormal parameters to Rosin-Rammler
self.d50_gas, self.k_gas, self.sigma_gas = psf.ln2rr(
self.d50_gas, self.sigma_ln_gas
)
elif model_gas == 'li_etal':
# Get the parameters of the distribution
self.d50_gas, self.de_max_gas, self.k_gas, self.alpha_gas = \
psf.li_etal(
self.d0, self.m_gas, self.rho_gas, self.m_oil,
self.rho_oil, self.mu_gas, self.sigma_gas, self.rho,
self.mu, fp_type=0
)
if pdf_gas == 'lognormal':
# Convert Rosin-Rammler parameters to lognormal
self.d50_gas, self.sigma_ln_gas = psf.rr2ln(
self.d50_gas, self.k_gas, self.alpha_gas
)
# Get the oil droplet size distribution
if model_oil == 'sintef':
# Get the parameters of the distribution
self.d50_oil, self.de_max_oil, self.k_oil, self.alpha_oil = \
psf.sintef(
self.d0, self.m_gas, self.rho_gas, self.m_oil,
self.rho_oil, self.mu_oil, self.sigma_oil, self.rho,
self.mu, fp_type=1
)
elif model_oil == 'li_etal':
# Get the parameters of the distribution
self.d50_oil, self.de_max_oil, self.k_oil, self.alpha_oil = \
psf.li_etal(
self.d0, self.m_gas, self.rho_gas, self.m_oil,
self.rho_oil, self.mu_oil, self.sigma_oil, self.rho,
self.mu, fp_type=1
)
if pdf_oil == 'lognormal':
# Convert Rosin-Rammler parameters to lognormal
self.d50_oil, self.sigma_ln_oil = psf.rr2ln(
self.d50_oil, self.k_oil, self.alpha_oil
)
# Set the simulation flag to True
self.sim_stored = True
[docs] def get_de_max(self, fp_type):
"""
Report the maximum stable particle size of a fluid at the release
Parameters
----------
fp_type : int
Fluid for which the maximum stable particle size is desired:
0 = gas, 1 = liquid.
Returns
-------
de_max : float
Equivalent spherical diameter of the maximum stable particle
size (m)
"""
if self.sim_stored:
# Use the simulated values stored in the present object
if fp_type == 0:
de_max = self.de_max_gas
else:
de_max = self.de_max_oil
else:
# Compute new values since these are independent of orifice
# conditions
if fp_type == 0:
# Get maximum stable particle size for gas
de_max = psf.grace(self.rho, self.rho_gas, self.mu,
self.mu_gas, self.sigma_gas, fp_type)
elif fp_type == 1:
# Get the maximum stable particle size for oil
de_max = psf.de_max_oil(self.rho_oil, self.sigma_oil,
self.rho)
return de_max
[docs] def get_d50(self, fp_type):
"""
Report the median particle size of a fluid at the release
Parameters
----------
fp_type : int
Fluid for which the maximum stable particle size is desired:
0 = gas, 1 = liquid.
Returns
-------
d50 : float
Equivalent spherical diameter of the median particle size of
the volume size distribution (m)
Notes
-----
This method uses the parameters of the particle size distributions
determined by the `simulate()` method of the object. You must
run this method before calling this method to create the particle
size distributions.
"""
if self.sim_stored:
if fp_type == 0:
d50 = self.d50_gas
elif fp_type == 1:
d50 = self.d50_oil
return d50
else:
print("You should run the .simulate() method first")
return 0
[docs] def get_distributions(self, nbins_gas, nbins_oil):
"""
Report the bubble and droplet size distributions
Parameters
----------
nbins_gas : int
Number of bin sizes to use in the gas bubble volume size
distribution
nbins_oil : int
Number of bin sizes to use in the oil droplet volume size
distribution
Returns
-------
de_gas : ndarray
Array of equivalent spherical diameters of bubbles in the bubble
size distribution (log-distributed, m)
vf_gas : ndarray
Array of volume fractions of gas corresponding to each bubble size
in the `de_gas` bubble size distribution (--)
de_oil : ndarray
Array of equivalent spherical diameters of droplets in the droplet
size distribution (log-distributed, m)
vf_oil : ndarray
Array of volume fractions of oil corresponding to each droplet
size in the `de_oil` droplet size distribution (--)
Notes
-----
This method uses the parameters of the particle size distributions
determined by the `simulate()` method of the object. You must
run this method before calling this method to create the particle
size distributions.
"""
if self.sim_stored:
# Record the input parameters
self.nbins_gas = nbins_gas
self.nbins_oil = nbins_oil
if self.pdf_gas == 'rosin-rammler':
# Use Rosin-Rammler directly
self.de_gas, self.vf_gas = psf.rosin_rammler(self.nbins_gas,
self.d50_gas, self.k_gas, self.alpha_gas
)
elif self.pdf_gas == 'lognormal':
# Use the fitted lognormal distribution
self.de_gas, self.vf_gas = psf.log_normal(self.nbins_gas,
self.d50_gas, self.sigma_ln_gas
)
if self.pdf_oil == 'rosin-rammler':
# Use Rosin-Rammler directly
self.de_oil, self.vf_oil = psf.rosin_rammler(self.nbins_oil,
self.d50_oil, self.k_oil, self.alpha_oil
)
elif self.pdf_oil == 'lognormal':
# Use the fitted lognormal distribution
self.de_oil, self.vf_oil = psf.log_normal(self.nbins_oil,
self.d50_oil, self.sigma_ln_oil
)
# Set the distribution flag to true
self.distribution_stored = True
else:
print("You should run the .simulate() method first")
return 0
return (self.de_gas, self.vf_gas, self.de_oil, self.vf_oil)
[docs] def plot_psd(self, fig=1, fp_type=None):
"""
Create plots of the bubble and droplet size distribution
Plots a standard presentation of the present gas bubble and oil
droplet size distributions
Parameters
----------
fig : int, default=1
Figure number to plot
fp_type : int, default=None
Fluid to plot. If `fp_type` = None, then both the gas bubbles
and liquid droplets are plotted. Otherwise, only the
distribution defined by this parameter is plotted: 0 = gas,
1 = liquid.
Notes
-----
This method relies on the distribution already being computed,
which requires first calling the methods `simulate()` and
`get_distributions()`. If these have not been computed, an
error message will display and not plots will be created.
"""
import matplotlib.pyplot as plt
if self.sim_stored:
if not self.distribution_stored:
# Prepare to plot d50 only
self.get_distributions(1, 1)
# Create the standard plots for gas and oil size distributions
plt.figure(fig)
plt.clf()
title_font = {'fontsize': 10,
'fontweight' : 1,
'verticalalignment': 'baseline',
'horizontalalignment': 'left'}
# Gas bubble distribution
if fp_type == 0 or fp_type == None:
plt.subplot(211)
plot_phase(self.nbins_gas, self.de_gas, self.vf_gas, 'b')
plt.xlabel('Gas bubble diameter (mm)')
plt.ylabel('Gas mass flux (kg/s)')
fig_title = ' Gas model = ' + self.model_gas + \
'; PDF = ' + self.pdf_gas + \
'; d_50 = ' + \
'%2.2f mm' % (self.get_d50(0) * 1000.)
plt.title(fig_title, loc='left', fontdict=title_font, pad=-35)
# Oil droplet distribution
if fp_type == 1 or fp_type == None:
if fp_type == 1:
plt.subplot(211)
elif fp_type == None:
plt.subplot(212)
plot_phase(self.nbins_oil, self.de_oil, self.vf_oil, 'r')
plt.xlabel('Oil droplet diameter (mm)')
plt.ylabel('Oil mass flux (kg/s)')
fig_title = ' Oil model = ' + self.model_oil + \
'; PDF = ' + self.pdf_oil + \
'; d_50 = ' + \
'%2.2f mm' % (self.get_d50(1) * 1000.)
plt.title(fig_title, loc='left', fontdict=title_font,
pad=-35)
plt.show()
else:
print("You should run the .simulate() and .get_distribution()")
print("methods first")
[docs]class PureJet(ModelBase):
"""
Class object for pure gas or pure oil plumes
This class uses the `ModelBase` class, but provides an interface that
only expects one released fluid (based on `fp_type`; 0 = gas,
1 = liquid).
Parameters
----------
rho_p : float
Density of the gas phase released from the jet (kg/m^3)
mu_p : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_p : float
Interfacial tension between the gas phase released from the jet and
the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
fp_type : int, default=1
Phase of the released fluid; 0 = gas, 1 = liquid.
Attributes
----------
rho_gas : float
Density of the gas phase released from the jet (kg/m^3)
mu_gas : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_gas : float
Interfacial tension between the gas phase released from the jet and
the continuous-phase receiving fluid (N/m)
rho_oil : float
Density of the liquid phase released from the jet (kg/m^3)
mu_oil : float
Dynamic viscosity of the liquid phase released from the jet (Pa s)
sigma_oil : float
Interfacial tension between the liquid phase released from the jet
and the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
sim_stored : bool
Flag indicating whether or not the particle size distribution
algorithm has been calculated since the last property update.
distribution_stored : bool
Flag indicating whether or not the particle size distribution has
been computed and stored since the last property update.
d0 : float
Equivalent circular diameter of the release orifice (m)
m_gas : float
Mass flow rate of gas released from the jet (kg/s)
m_oil : float
Mass flow rate of liquid released from the jet (kg/s)
model_gas : str
Name of the model used for computing the gas bubble size
distribution. Choices are 'wang_etal' or 'li_etal':.
model_oil : str
Name of the model used for computing the oil droplet size
distribution. Choices are 'sintef' or 'li_etal'.
pdf_gas : str
Probability density function to use for the gas bubble size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
pdf_oil : str
Probability density function to use for the oil droplet size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
d50_gas : float
Median equivalent spherical diameter of gas bubbles (m)
de_max_gas : float
Maximum stable bubble size (equivalent spherical diameter) of gas
bubbles (m).
de_gas : ndarray
Array of equivalent spherical diameters of bubbles in the bubble
size distribution (log-distributed, m)
vf_gas : ndarray
Array of volume fractions of gas corresponding to each bubble size
in the `de_gas` bubble size distribution (--)
d50_oil : float
Median equivalent spherical diameter of oil droplets (m)
de_max_oil : float
Maximum stable droplet size (equivalent spherical diameter) of oil
droplets (m).
de_oil : ndarray
Array of equivalent spherical diameters of droplets in the droplet
size distribution (log-distributed, m)
vf_oil : ndarray
Array of volume fractions of oil corresponding to each droplet size
in the `de_oil` droplet size distribution (--)
See Also
--------
ModelBase, Model
Notes
-----
In the attributes above, the attributes attached to the fluid phase of
interest will have values; whereas, the other phase will contain `None`.
For example, if this is a pure oil release, `rho_oil` will have a value,
but `rho_gas` will store `None`.
"""
[docs] def __init__(self, rho_p, mu_p, sigma_p, rho, mu, fp_type=1):
# Send the particle properties to the correct phase
self.update_properties(rho_p, mu_p, sigma_p, rho, mu, fp_type)
[docs] def update_properties(self, rho_p, mu_p, sigma_p, rho, mu, fp_type):
"""
Set the thermodynamic properties of the release and receiving fluids
Parameters
----------
rho_p : float
Density of the gas phase released from the jet (kg/m^3)
mu_p : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_p : float
Interfacial tension between the gas phase released from the jet
and the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
fp_type : int, default=1
Phase of the released fluid; 0 = gas, 1 = liquid.
"""
# Set the flags initially to False
self.sim_stored = False
self.distribution_stored = False
# Record the fluid type
self.fp_type = fp_type
# Send the particle properties to the correct phase
if fp_type == 0:
ModelBase.update_properties(self, rho_p, mu_p, sigma_p, None,
None, None, rho, mu)
elif fp_type == 1:
ModelBase.update_properties(self, None, None, None, rho_p, mu_p,
sigma_p, rho, mu)
[docs] def simulate(self, d0, m, model='sintef', pdf='rosin-rammler'):
"""
Compute the parameters of the particle size distribution
Computes the median bubble or droplet sizes and the spread
of the selected size distributions. Models for gas bubble median
size are `wang_etal` or `li_etal`; models for oil droplet median
size are `sintef` or `li_etal`. Size distributions are either
`lognormal` or `rosin-rammler`. No matter what model is selected,
the `d_95`-rule is used when the predicted size distribution would
exceed the maximum stable bubble or droplet size. Under that rule,
the 95-percentile of the volume size distribution is set to the
maximum stable size, and the median size is adjusted downward.
This method only computes size distribution values for the fluid
type selected by the class attribute fp_type (0 = gas, 1 = liquid).
Parameters
----------
d0 : float
Equivalent circular diameter of the release orifice (m)
m : float
Mass flow rate of fluid released from the jet (kg/s)
model : str, default='wang_etal'
Name of the model used for computing the particle size
distribution. Choices are 'wang_etal', 'li_etal', or 'sintef'.
Note that the model choice must agree with the fluid of interest;
see paragraph above for details.
pdf : str, default='rosin-rammler'
Probability density function to use for the particle size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
Notes
-----
This method does not return any values. Instead, the computed values
are stored as attributes of the class object. To report the computed
values, use the `get`-methods.
See Also
--------
get_d50, get_de_max, get_distributions
"""
if self.fp_type == 0:
ModelBase.simulate(self, d0, m, np.array([0.]), model_gas=model,
pdf_gas=pdf)
elif self.fp_type == 1:
ModelBase.simulate(self, d0, np.array([0.]), m, model_oil=model,
pdf_oil=pdf)
[docs] def get_de_max(self, fp_type=None):
"""
Report the maximum stable particle size of the fluid at the release
Returns
-------
de_max : float
Equivalent spherical diameter of the maximum stable particle
size (m)
"""
return ModelBase.get_de_max(self, self.fp_type)
[docs] def get_d50(self, fp_type=None):
"""
Report the median particle size of a fluid at the release
Returns
-------
d50 : float
Equivalent spherical diameter of the median particle size of
the volume size distribution (m)
Notes
-----
This method uses the parameters of the particle size distributions
determined by the `simulate()` method of the object. You must
run this method before calling this method to create the particle
size distributions.
"""
return ModelBase.get_d50(self, self.fp_type)
[docs] def get_distributions(self, nbins):
"""
Report the particle size distributions
Parameters
----------
nbins : int
Number of bin sizes to use in the volume size distribution
Returns
-------
de : ndarray
Array of equivalent spherical diameters of particles in the
volume size distribution (log-distributed, m)
vf : ndarray
Array of volume fractions of particles corresponding to each
particle size in the `de` volume size distribution (--)
Notes
-----
This method uses the parameters of the particle size distributions
determined by the `simulate()` method of the object. You must
run this method before calling this method to create the particle
size distributions.
"""
# Compute the appropriate distribution
if self.fp_type == 0:
de, vf, de_none, vf_none = ModelBase.get_distributions(
self, nbins, 0
)
elif self.fp_type == 1:
de_none, vf_none, de, vf = ModelBase.get_distributions(
self, 0, nbins
)
return (de, vf)
[docs] def plot_psd(self, fig_num):
"""
Create a plot of the particle size distribution
Plots a standard presentation of the present particle size
distribution
Parameters
----------
fig_num : int, default=1
Figure number to plot
Notes
-----
This method relies on the distribution already being computed,
which requires first calling the methods `simulate()` and
`get_distributions()`. If these have not been computed, an
error message will display and not plots will be created.
"""
ModelBase.plot_psd(self, fig_num, self.fp_type)
[docs]class Model(ModelBase):
"""
Master lass object for computing bubble and droplet size distributions
This model class contains handles the interface to the `ModelBase`,
allowing particle size distributions to be easily computed given a
`dbm.FluidMixture` description of the released fluids. This is the
main class object that should be used to compute bubble and droplet
size distributions for the plume models in ``TAMOC``.
Parameters
----------
profile : `ambient.Profile` object
Profile containing ambient CTD data
oil_mixture : `dbm.FluidMixture` object
A `dbm.FluidMixture` object that contains the chemical description
of an oil mixture.
m_mixture : ndarray
An array of mass fluxes (kg/s) of each pseudo-component in the live-
oil mixture.
z0 : float
Release point of the jet orifice (m)
Tj : float
Temperature of the released fluids (K)
Attributes
----------
profile : `ambient.Profile` object
Profile containing ambient CTD data
oil_mixture : `dbm.FluidMixture` object
A `dbm.FluidMixture` object that contains the chemical description
of an oil mixture.
m_mixture : ndarray
An array of mass fluxes (kg/s) of each pseudo-component in the live-
oil mixture.
z0 : float
Release point of the jet orifice (m)
Tj : float
Temperature of the released fluids (K)
T : float
Temperature of the receiving fluid at the release (K)
S : float
Salinity of the receiving fluid at the release (psu)
P : float
Pressure of the receiving fluid at the release (Pa)
gas : `dbm.FluidParticle` object
A `dbm.FluidParticle` object for the gas phase fluid at the
release
m_gas : ndarray
An array of mass fluxes (kg/s) of each pseudo-component in the gas
phase of the released fluids.
rho_gas : float
Density of the gas phase released from the jet (kg/m^3)
mu_gas : float
Dynamic viscosity of the gas phase released from the jet (Pa s)
sigma_gas : float
Interfacial tension between the gas phase released from the jet and
the continuous-phase receiving fluid (N/m)
oil : `dbm.FluidParticle` object
A `dbm.FluidParticle` object for the liquid phase fluid at the
release
m_oil : ndarray
An array of mass fluxes (kg/s) of each pseudo-component in the liquid
phase of the released fluids.
rho_oil : float
Density of the liquid phase released from the jet (kg/m^3)
mu_oil : float
Dynamic viscosity of the liquid phase released from the jet (Pa s)
sigma_oil : float
Interfacial tension between the liquid phase released from the jet
and the continuous-phase receiving fluid (N/m)
rho : float
Density of the continuous-phase receiving fluid (kg/m^3)
mu : float
Dynamic viscosity of the continuous-phase receiving fluid (Pa s)
sim_stored : bool
Flag indicating whether or not the particle size distribution
algorithm has been calculated since the last property update.
distribution_stored : bool
Flag indicating whether or not the particle size distribution has
been computed and stored since the last property update.
d0 : float
Equivalent circular diameter of the release orifice (m)
m_gas : float
Mass flow rate of gas released from the jet (kg/s)
m_oil : float
Mass flow rate of liquid released from the jet (kg/s)
model_gas : str
Name of the model used for computing the gas bubble size
distribution. Choices are 'wang_etal' or 'li_etal':.
model_oil : str
Name of the model used for computing the oil droplet size
distribution. Choices are 'sintef' or 'li_etal'.
pdf_gas : str
Probability density function to use for the gas bubble size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
pdf_oil : str
Probability density function to use for the oil droplet size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
d50_gas : float
Median equivalent spherical diameter of gas bubbles (m)
de_max_gas : float
Maximum stable bubble size (equivalent spherical diameter) of gas
bubbles (m).
de_gas : ndarray
Array of equivalent spherical diameters of bubbles in the bubble
size distribution (log-distributed, m)
vf_gas : ndarray
Array of volume fractions of gas corresponding to each bubble size
in the `de_gas` bubble size distribution (--)
d50_oil : float
Median equivalent spherical diameter of oil droplets (m)
de_max_oil : float
Maximum stable droplet size (equivalent spherical diameter) of oil
droplets (m).
de_oil : ndarray
Array of equivalent spherical diameters of droplets in the droplet
size distribution (log-distributed, m)
vf_oil : ndarray
Array of volume fractions of oil corresponding to each droplet size
in the `de_oil` droplet size distribution (--)
See Also
--------
ModelBase
Notes
-----
This is the main class object that should be used for particle size
distributions using the ``TAMOC`` plume models.
"""
[docs] def __init__(self, profile, oil, m, z0, Tj=None):
# Compute and store the oil properties
self.update_properties(profile, oil, m, z0, Tj)
[docs] def update_properties(self, profile, oil_mixture, m_mixture, z0, Tj=None):
"""
Set the thermodynamic properties of the released and receiving fluids
Store the density, viscosity, and interfacial tension of the fluids
involved in a jet breakup scenario.
Parameters
----------
profile : `ambient.Profile` object
Profile containing ambient CTD data
oil_mixture : `dbm.FluidMixture` object
A `dbm.FluidMixture` object that contains the chemical description
of an oil mixture.
m_mixture : ndarray
An array of mass fluxes (kg/s) of each pseudo-component in the
live-oil mixture.
z0 : float
Release point of the jet orifice (m)
Tj : float
Temperature of the released fluids (K)
Notes
-----
This method allows the complete release to be redefined. If you
only want to update the release depth or release temperature, use
`.update_z0()` or `update_Tj()`, instead.
"""
# Set the flags initially to False
self.sim_stored = False
self.distribution_stored = False
# Record the input parameters
self.profile = profile
self.oil_mixture = oil_mixture
self.m_mixture = m_mixture
self.z0 = z0
self.Tj = Tj
# Compute the properties of seawater
self.T, self.S, self.P = self.profile.get_values(self.z0,
['temperature', 'salinity', 'pressure']
)
self.rho = seawater.density(self.T, self.S, self.P)
self.mu = seawater.mu(self.T, self.S, self.P)
# Set jet temperature either to ambient or input value
if Tj == None:
# Use ambient temperature
self.Tj = self.T
else:
# Use input temperature
self.Tj = Tj
# Compute the gas/liquid equilibrium
m_eq, xi, K = self.oil_mixture.equilibrium(self.m_mixture, self.Tj,
self.P)
# Compute the gas phase properties
if np.sum(m_eq[0,:]) == 0:
self.gas = None
self.m_gas = m_eq[0,:]
self.rho_gas = None
self.mu_gas = None
self.sigma_gas = None
else:
self.gas = dbm.FluidParticle(self.oil_mixture.composition,
fp_type=0,
delta=oil_mixture.delta,
user_data=oil_mixture.user_data)
self.m_gas = m_eq[0,:]
self.rho_gas = self.gas.density(self.m_gas, self.Tj, self.P)
self.mu_gas = self.gas.viscosity(self.m_gas, self.Tj, self.P)
self.sigma_gas = self.gas.interface_tension(self.m_gas, self.Tj,
self.S, self.P)
# Compute the liquid phase properties
if np.sum(m_eq[1,:]) == 0:
self.oil = None
self.m_oil = m_eq[1,:]
self.rho_oil = None
self.mu_oil = None
self.sigma_oil = None
else:
self.oil = dbm.FluidParticle(self.oil_mixture.composition,
fp_type=1,
delta=oil_mixture.delta,
user_data=oil_mixture.user_data)
self.m_oil = m_eq[1,:]
self.rho_oil = self.oil.density(self.m_oil, self.Tj, self.P)
self.mu_oil = self.oil.viscosity(self.m_oil, self.Tj, self.P)
self.sigma_oil = self.oil.interface_tension(self.m_oil, self.Tj,
self.S, self.P)
[docs] def update_z0(self, z0):
"""
Update the release depth of the jet
Parameters
----------
z0 : float
Release point of the jet orifice (m)
"""
self.z0 = z0
self.update_properties(self.profile, self.oil_mixture,
self.m_mixture, self.z0, self.Tj)
[docs] def update_Tj(self, Tj):
"""
Update the temperature of the released fluids in the jet
Parameters
----------
Tj : float
Temperature of the released fluids (K)
"""
self.Tj = Tj
self.update_properties(self.profile, self.oil_mixture,
self.m_mixture, self.z0, self.Tj)
[docs] def update_m_mixture(self, m_mixture):
"""
Update the total mass flux of the released fluids in the jet
Parameters
----------
m_mixture : float
An array of mass fluxes (kg/s) of each pseudo-component in the
live-oil mixture.
"""
self.m_mixture = m_mixture
self.update_properties(self.profile, self.oil_mixture,
self.m_mixture, self.z0, self.Tj)
[docs] def simulate(self, d0, model_gas='wang_etal', pdf_gas='lognormal',
model_oil='sintef', pdf_oil='rosin-rammler'):
"""
Compute the parameters of the particle size distribution
Computes the median bubble and droplet sizes and the spread
of the selected size distributions. Models for gas bubble median
size are `wang_etal` or `li_etal`; models for oil droplet median
size are `sintef` or `li_etal`. Size distributions are either
`lognormal` or `rosin-rammler`. No matter what model is selected,
the `d_95`-rule is used when the predicted size distribution would
exceed the maximum stable bubble or droplet size. Under that rule,
the 95-percentile of the volume size distribution is set to the
maximum stable size, and the median size is adjusted downward.
Parameters
----------
d0 : float
Equivalent circular diameter of the release orifice (m)
model_gas : str, default='wang_etal'
Name of the model used for computing the gas bubble size
distribution. Choices are 'wang_etal' or 'li_etal':.
model_oil : str, default='sintef'
Name of the model used for computing the oil droplet size
distribution. Choices are 'sintef' or 'li_etal'.
pdf_gas : str, default='lognormal'
Probability density function to use for the gas bubble size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
pdf_oil : str, default='rosin-rammler'
Probability density function to use for the oil droplet size
distribution. Choices are 'lognormal' or 'rosin-rammler'.
Notes
-----
This method does not return any values. Instead, the computed values
are stored as attributes of the class object. To report the computed
values, use the `get`-methods.
See Also
--------
get_d50, get_de_max, get_distributions
"""
ModelBase.simulate(self, d0, self.m_gas, self.m_oil,
model_gas=model_gas, model_oil=model_oil,
pdf_gas=pdf_gas, pdf_oil=pdf_oil, Pa=self.P,
Ta=self.Tj)
[docs]def plot_phase(nbins, de, vf, color):
"""
docstring for plot_phase
"""
import matplotlib.pyplot as plt
# Prepare data for plotting
if np.sum(vf) > 0:
index = np.arange(nbins)
bar_width = 0.75
opacity = 0.4
plt.bar(index, vf, bar_width, alpha=opacity, color=color)
ntics = 10
ticlocs = np.linspace(0, nbins, ntics)
ticnums = []
for i in range(ntics-1):
x0 = int(ticlocs[i])
x1 = x0 + 1
y0 = de[x0]
y1 = de[x1]
num = (y1 - y0) / (x1 - x0) * (ticlocs[i] - x0) + y0
ticnums.append('%2.2f' % (num * 1000))
plt.xticks(ticlocs, ticnums)


48; 12022 H.E.
First of all, I have to say that I absolutely loved it. I was pleased to watch the anime adaptation of Komi Can’t Communicate. It’s on Netflix, so go check it out! This review will be succinct; you will see why.
Starting the show was a little rough for me. The beginning feels a little dull due to us not being well acquainted with Tadano Hitohito and Komi Shouko. We’re thrown into this wild high school life, where everyone is almost a caricature of a specific persona type. For whatever reason, the first couple of episodes were something I just had to get myself through, hoping that it would hook me better along the way.
And you know what? I adore it. I have a weak spot for the Slice of Life shows and feelings. One of my favorite parts of Neon Genesis Evangelion is the one with the alternate reality, which is just so (not) wholesome. Komi struck that beautiful note of having a lightweight and simply endearing atmosphere.
Shouko has one single purpose, and that is to make 100 friends. Hitohito is her classmate that sincerely wants to help her. Interestingly, all done without an inherited romantic ploy to get to her. I can go on describing small moments I enjoyed, but that would border on retelling the story, so it would be better for you to read the manga or watch the show.
Finally, I need to say that my favorite character is Osana Najimi. She has good energy and good vibes. Well, he? She? They prefer anything; canonically, their gender is simply “Najimi.” Thanks to her incredible communication skills and pure talent, she is the complete polar opposite of Komi. There is something about Najimi-chan whom I utmost admire. The positive energy and sincerity with people that matter to her/him. Most importantly...
I live for Osana Najimi. ❤🔥
I am obsessed with good YT edits, so please enjoy some of them below.
Najimi Osana adapts to things. ◼


[Several independent studies have shown this poorly lipidated apoE increases amyloid burden in mouse models of AD, demonstrating that apoE lipidation by ABCA1 affects key steps in amyloid deposition or clearance.]. Sentence from MEDLINE/PubMed, a database of the U.S. National Library of Medicine. (gene-disease biomarker association) ABCA1 ATP binding cassette subfamily A member 1 [Homo sapiens (human)] - Amyloidosis
Abstract:
Several lines of evidence suggest that dysregulated lipid metabolism may
participate in the pathogenesis of Alzheimer's disease (AD). Epidemiologic
studies suggest that elevated mid-life plasma cholesterol levels may be
associated with an increased risk of AD and that statin use may reduce the
prevalence of AD. Cellular studies have shown that the levels and distribution of
intracellular cholesterol markedly affect the processing of amyloid precursor
protein into A beta peptides, which are the toxic species that accumulate as
amyloid plaques in the AD brain. Most importantly, genetic evidence identifies
apolipoprotein E, the major cholesterol carrier in the central nervous system, as
the primary genetic risk factor for sporadic AD. In humans, apoE exists as three
major alleles (apoE2, apoE3, and apoE4), and inheritance of the apoE4 allele
increases the risk of developing AD at an earlier age. However, exactly how apoE
functions in the pathogenesis of AD remains to be fully determined. Our studies
have identified that the cholesterol transporter ABCA1 is a crucial regulator of
apoE levels and lipidation in the brain. Deficiency of ABCA1 leads to the loss of
approximately 80% of apoE in the brain, and the residual 20% that remains is
poorly lipidated. Several independent studies have shown this poorly lipidated
apoE increases amyloid burden in mouse models of AD, demonstrating that apoE
lipidation by ABCA1 affects key steps in amyloid deposition or clearance.
Conversely, robust overexpression of ABCA1 in the brain promotes apoE lipidation
and nearly eliminates the formation of mature amyloid plaques. These studies show
that the lipid binding capacity of apoE is a major mechanism of its function in
the pathogenesis of AD, and suggest that increasing apoE lipidation may be of
therapeutic importance for this devastating disease.


A sorrow's tail
-
‘A sorrow tale of woe and sidelong glances.’
-
‘You’ve got to try to think of meaning that is inherent,’ he said it with a smile on his face but with that mask on he only ever seemed menacing to me.
-
I’ve told him a million times.
-
A path must first be walked, then followed. Walked, it is only on train (?); unfollowed, it cannot be followed – it cannot be seen, and as I said it paths emerged everywhere, hills rose and seas fell; each way I turned one of these glances would catch me.
 He’s… ‘inevitable.’
-
I hung my hat on the corner of the door and held on to the edges of the table with all my strength. He’s always looking at me.
-
‘The noblest act askewed,’ he was even glorifying it of its time, but it was only ever natural.
-
‘Get ye back, behind,’ I’d yell, for ‘My toes can no longer hold with heels.’ Stepping out of my sanctuary and out into a paved road—I could never remember which one of us it was that did it first.
-
I suppose he had stayed, like I supposed I’d wandered on mumbling about beaten tracks, catching those glances everywhere now – thinking he’d caught me up already, thinking he was always only sixteen paces behind.
-
‘And now,’ he whispered it from the sky and I felt that menace again.
-
‘And now,’ I thought, we had never left each other. He and I had both fallen from my own grace, but never from his.


| Name | Artist | Genre | Lyrics by | Music by | Views | Lyrics |
|---|---|---|---|---|---|---|
| {{result["name"]}} | {{result["artist_si"]}} | {{result["genre_si"]}} | {{result["composer_si"]}} | {{result["music_si"]}} | {{result["views"]}} | {{result["lyrics"]}} |
| Name | Artist | Genre | Lyrics by | Music by | Views | Lyrics |
|---|---|---|---|---|---|---|
| {{result["name"]}} | {{result["artist_si"]}} | {{result["genre_si"]}} | {{result["composer_si"]}} | {{result["music_si"]}} | {{result["views"]}} | {{result["lyrics"]}} |


{% extends "!layout.html" %} {% set title = "Welcome To Neural Network Intelligence !!!"%} {% block document %}


DEMO START SLIDER
Version: 2.0.3
Example 1
JavaScript may be disabled in your browser settings. Please enable it and reload this page.
Example 2
JavaScript may be disabled in your browser settings. Please enable it and reload this page.
JavaScript may be disabled in your browser settings. Please enable it and reload this page.
Example 3
JavaScript may be disabled in your browser settings. Please enable it and reload this page.
Example 4
JavaScript may be disabled in your browser settings. Please enable it and reload this page.


RECONSTRUCTION IN TEXAS
"The World Turned Upside Down: Reconstruction in Texas". Introduction: . Reconstruction; Undoing Reconstruction; Enduring Impacts of Reconstruction in Texas . These institutional and political conflicts culminated in a constitutional crisis.
http://www.austincc.edu/lpatrick/his1693/reconstr.html
Treatment for Herniated or Bulging Discs
The Texas Constitution
Texas and Coahuila established a state constitution in 1827. . When Texas reentered union after Civil War, Reconstruction required changes to state's charter. Acceptance . General Principles and Structural Impact of the Texas Constitution .
http://iws.collin.edu/rrynbrandt/PowerPoints%20and%20Reviews/11%20texas%20constitution%20-%206.3.10.ppt
CHAPTER 20 TEXAS CONSTITUTION
. reconstruction; One after reconstruction (the 1876 constitution we currently operate under) . The Texas Constitution requires acknowledgement of a belief in God: No . an election between the vote for the raise and when it goes into effect .
http://www.brazosport.edu/sites/CurrentStudents/Faculty/AnnCumba/Govt%202301/ch3S08govt2301.ppt
impact reconstruction texas constitution Herniated or Bulging Discs
113.19 - : Texas Administrative Code
Students analyze the impact of scientific discoveries and technological innovations . serve for an established tenure, and are sworn to uphold the constitution. . Early Statehood; Texas in the Civil War and Reconstruction; Cotton, Cattle, and .
http://info.sos.state.tx.us/pls/pub/readtac$ext.TacPage?sl=R&app=9&p_dir=&p_rloc=&p_tloc=&p_ploc=&pg=1&p_tac=&ti=19&pt=2&ch=113&rl=19
Reconstruction - Texas State Historical Association
For nine years following the Civil War, Texas was in turmoil, as its people . The bureau had little effect and, like the army, served to provoke whites to even . to the Reconstruction situation, however, and in the Constitutional Convention of .
http://www.tshaonline.org/handbook/online/articles/mzr01
Official Impairment Listing for Spinal Disorders
Tex1 Ch 20 flashcards | Quizlet
Vocabulary words for Tex1 Ch 20. Includes studying games and .
http://quizlet.com/11348356/tex1-ch-20-flash-cards/
- expression to watch shepherd need shepherd (narrowing of the spine)
4th Grade 4th 9 Weeks
How did railroads and barbed wire affect people . Texas. Impact of Reconstruction on Texas. Political changes: Texas secedes from . constitution was adopted .
http://www.kleinisd.net/bond2008/users/0082/2011-12%20Scope%20&%20Sequence/Social%20Studies/FourthGrade4thNineWeeks.pdfGrass-Roots Reconstruction in Texas, 1865-1880 - H-Net Reviews
The book's coverage of the basic nature and impact of Reconstruction on these . the antebellum state constitution remain in force, Texas voters nevertheless .
http://www.h-net.org/reviews/showrev.php?id=2045
The 1860s: Reconstruction - Texas State Library and Archives ...
Aug 26, 2011 . Ushering in the era of Congressional Reconstruction, the law wiped out . Texas's new constitution, ratified by voters in November 1869, gave .
https://www.tsl.state.tx.us/exhibits/forever/freedom/page5.html
Chapter 20: The Texas Constitution
1869: Reconstruction Constitution. 1876: Texas Constitution . General Principles and Structural Impact of the Texas Constitution. Shea, Green, and Smith, .
http://iws.collin.edu/zshipley/files/Ch20_TexasConstitution.ppt
Medical-Vocational Allowance for Herniated Disc
LATE NINETEENTH-CENTURY TEXAS | The Handbook of Texas ...
Between the end of Reconstruction (1876) and the beginning of the . struck in the 1870s and in the 1890s to deepen the effect of other farm problems. . Support in Texas led to a local option clause in the Constitution of 1876 and to lobbying .
http://www.tshaonline.org/handbook/online/articles/npl01
Texas v. White - Wikipedia, the free encyclopedia
The case involved a claim by the Reconstruction government of Texas that United . all the acts of the legislatures within seceding states intended to give effect to . They claimed that the section of the Constitution granting the Supreme Court .
http://en.wikipedia.org/wiki/Texas_v._White
Appealing a Denial of Benefits
Reconstruction
They even proposed an amendment to the Constitution guaranteeing that slavery . His death also had a chilling effect on potential sympathy for the South. . the matter in an important and often overlooked decision, the 1869 case of Texas v.
http://www.academicamerican.com/recongildedage/topics/reconstruction.html
Texas Constitutions
Texas Constitutions Digitization Project - Table of Contents. . The Constitution of Texas (1869) (Reconstruction Constitution) Journals of the Reconstruction .
http://tarlton.law.utexas.edu/constitutions/constitutions.html


The Text Filter works by searching for the words listed below in within the document. When it finds one of these words, it will replace it with '*'s. Also, the filter will 'expand' the words, blocking a word if any part of that word appears in the list below. In other words, if you listed 'both' as a blocked word, then the word 'bother' will also be blocked, since the word 'both' appears in 'bother'. Any websites entered into the 'Whitelisted Websites' box will not be filtered.
When entering words/websites into the above boxes, please only place one word/website per line with no punctuation. Also, please use the following format for websites: www.foxnews.com
The Image Filter works by searching an image name and search tags for any of the words listed below in the 'Words to Block Images On' box. If a match is found, then the image will be blocked. As with the Text Filter, the words are expanded, so if a listed word appears as part of a word that in the image name or tag, then the image will still be blocked. Any websites entered into the 'Whitelisted Websites' box will not be filtered.
When entering words/websites into the above boxes, please only place one word/website per line with no punctuation. Also, please use the following format for websites: www.foxnews.com
The Image Scanner is an additional option to the Image Filter. When turned on, if an image passes the Image Filter, it will be passed
into a scanner, where the number of skin pixels will be detected. Then, the number of skin pixels will be compared to the total number of pixels in the image
with the result being a percentage. If this percentage is above the percentage specified by the slider bar, then the image will be blocked.
NOTE: Due to the nature of this scanner, when it is working properly it may block close-up facial images.


$color-primary
{% extends "../components/base.html" %} {% load static %} {% block content %}
We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.
$color-primary
$color-secondary
$color-accent
$color-white
$color-black
$color-gray
$color-gray-light
$color-gray-lighter
$color-blue
$color-red
$color-yellow
$color-green
By default, labels are wrapped in a span
.
Use an anchor tag when you want a label to link to something else. These labels will automatically have a different treatment to indicate it is linked.
Welfare and Poverty Municipal and County Issues Crime OtherLabels can also be colored to illustrate status. Available color modifiers include .label--green
and .label--red
| Name | Party | District | Chamber | |
|---|---|---|---|---|
| Peter Abbate, Jr. | Democrat | District 49 | Assembly | |
| Shelley Mayer | Democrat | District 27 | Senator | |
| Kevin S. Parker | Democrat | District 21 | Senator | |
| Mary Beth Walsh | Republican | District 112 | Assembly | |
| Velmanette Montgomery | Democrat | District 25 | Senator | |
| Chris Tague | Republican | District 102 | Assembly |
| Bill Text Versions | Format |
|---|---|
| Senate: Prefiled and ordered printed; offered 01/11/17 17101850D | HTML |
| Senate: Committee substitute printed 17104579D-S1 | |
| House: Committee substitute printed 17105464D-H1 | HTML PDF |
Va. Public Procurement Act; local labor use requirement for certain construction contracts, penalty.
Child day programs; excemptions from licensure, certification of preschool or nursery school program.
Senate Box 203033
Room 172, Main Capitol
Harrisburg, PA 17120-3033
Phone<PHONE_NUMBER>
Fax<PHONE_NUMBER>
Email<EMAIL_ADDRESS>37 South Main Street Suite 200
Chambersburg, PA 17201
Phone<PHONE_NUMBER>
Fax<PHONE_NUMBER>
Email<EMAIL_ADDRESS>District 49 Boundaries
Lashrecse D. Aird voted Yes on HB 1708.
Va. Public Procurement Act; local labor use requirement for certain construction contracts, penalty.
Lashrecse D. Aird voted No on HB 1708.
Va. Public Procurement Act; local labor use requirement for certain construction contracts, penalty.
Lashrecse D. Aird voted Yes on HB 1708.
Va. Public Procurement Act; local labor use requirement for certain construction contracts, penalty.


Winter snowstorm could impact holiday travel
MINNEAPOLIS (AP) - Forecasters say a winter snowstorm could muddle Thanksgiving travel plans in southern Minnesota.
Up to 6 inches of snow is expected to begin falling Tuesday afternoon followed by strong winds on Wednesday. Minnesota Department of Transportation spokesman Jake Loesch tells the Star Tribune the agency has more than 800 snowplows ready to go and plenty of salt to make state roads safer.
The National Weather Service issued a winter storm watch for Tuesday night and Wednesday morning for the southern Minnesota. Meteorologists say another winter storm could develop after Thanksgiving into the weekend. But they say it’s too soon to tell whether that system will bring rain, snow or a mix.
Information from: Star Tribune, http://www.startribune.com
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Your message has been sent and I will respond as soon as possible.
Submit the form below and we will get back to you as soon as possible.
Enter the characters from the image above.


graph_diff.nirvana_object_model.workflow_to_dot_converter package¶
Submodules¶
graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer module¶
-
class
graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.
GraphDotColorer
[source]¶ Bases:
abc.ABC
Interface for graph workflow colorer
-
color_data_connection
(from_block: graph_diff.nirvana_object_model.workflow.block.Block, from_number: int, output_nest: str, to_block: graph_diff.nirvana_object_model.workflow.block.Block, to_number: int, input_nest: str)[source]¶
-
-
class
graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.
GraphMapDotColorer
(block_colors, data_connection_colors, exc_connection_colors)[source]¶ Bases:
graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.GraphDotColorer
Realization of GraphDotColorer that is interface over three dictionaries
-
color_data_connection
(from_block: graph_diff.nirvana_object_model.workflow.block.Block, from_number: int, output_nest: str, to_block: graph_diff.nirvana_object_model.workflow.block.Block, to_number: int, input_nest: str)[source]¶
-
-
class
graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.
StandardGraphDotColorer
[source]¶ Bases:
graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.GraphDotColorer
Standard realization of GraphDotColorer: colors all elements in standard color
-
STANDARD_COLOR
= 'black'¶
-
color_data_connection
(from_block: graph_diff.nirvana_object_model.workflow.block.Block, from_number: int, output_nest: str, to_block: graph_diff.nirvana_object_model.workflow.block.Block, to_number: int, input_nest: str)[source]¶
-
graph_diff.nirvana_object_model.workflow_to_dot_converter.workflow_to_dot_converter module¶
-
class
graph_diff.nirvana_object_model.workflow_to_dot_converter.workflow_to_dot_converter.
WorkflowToDotConverter
(separator='', graph_type='digraph', node_shape='record', general_color='black', general_style='"rounded, filled"', changed_style='"rounded, filled, bold"')[source]¶ Bases:
object
-
BY_EXC
= 'by_exc'¶
-
convert_workflow
(workflow: graph_diff.nirvana_object_model.workflow.workflow.Workflow, colors: graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.GraphDotColorer = <graph_diff.nirvana_object_model.workflow_to_dot_converter.graph_map_dot_colorer.StandardGraphDotColorer object>) → pydot.Dot[source]¶ Convert workflow to pydot.Dot. Elements of workflow will be colored with colors defined in colors object.
Parameters: - workflow – workflow to transform
- colors – colors for workflow elements
Returns: pydot representation of workflow
-
Module contents¶
Module for converting workflow to pydot format. Contains box-class for coloring elements of workflow and the converter.


common_schema 1.3 is released and is available for download. New and noteworthy in this version:
- Parameterized split(): take further control over huge transactions by breaking them down into smaller chunks, now manually tunable if needed
- duplicate_grantee(): copy+paste existing accounts along with their full set of privileges
- similar_grants: find which accounts share the exact same set of privileges (i.e. have the same role)
- json_to_xml(): translate any valid JSON object into its equivalent XML form
- extract_json_value(): use XPath notation to extract info from JSON data, just as you would from XML
- query_checksum(): given a query, calculate a checksum on the result set
- random_hash(): get a 40 hexadecimal digits random hash, using a reasonably large changing input
Let’s take a closer look at the above:
Parameterized split()
split takes your bulk query and automagically breaks it down into smaller pieces. So instead of one huge UPDATE or DELETE or INSERT..SELECT transaction, you get many smaller transactions, each with smaller impact on I/O, locks, CPU.
As of 1.3, split() gets more exposed: you can have some control on its execution, and you also get a lot of very interesting info during operation.
Here’s an example of split() control:
set @script := “
split({start:7015, step:2000} : UPDATE sakila.rental SET return_date = return_date + INTERVAL 1 DAY)
throttle 1;
“;
call common_schema.run(@script);
In the above we choose a split size of 2,000 rows at a time; but we also choose to only start with 7015, skipping all rows prior to that value. Just what is that value? It depends on the splitting key (and see next example for just that); but in this table we can safely assume this is the rental_id PRIMARY KEY of the table.
You don’t have to use these control parameters. But they can save you some time and effort.
Just how often do you encounter hierarchical data? Consider a table with some parent-child relation, like the this classic employee table:
CREATE TABLE employee (
employee_id INT UNSIGNED PRIMARY KEY,
employee_name VARCHAR(100),
manager_id INT UNSIGNED,
CONSTRAINT employee_manager_fk
FOREIGN KEY (manager_id) REFERENCES employee (employee_id)
) engine=innodb
;
+————-+—————+————+
| employee_id | employee_name | manager_id |
+————-+—————+————+
| 1 | Rachel | NULL |
| 2 | John | 1 |
| 3 | Stan | 1 |
| 4 | Naomi | 2 |
+————-+—————+————+
Questions like “What is the (nested) list of employees managed by Rachel?” or “Get Naomi’s managers chain of command” are classical questions. There are sometimes dependencies: if John leaves, does that mean Naomi loses her job, or does she get promoted, or something else? If John and Stan are on sick leave, does Rachel have any reason to come to work?
Hierarchical data is not limited to a single-table structure. Sometimes it takes a combination of a few tables (it’s just a JOIN) to make out the parent-child relation.
Hierarchical data is difficult to manage with SQL. This is especially true for MySQL, which does not support the WITH recursive query syntax.
Where can you find hierarchical data?
Even if you do not provide it by yourself, MySQL’s INFORMATION_SCHEMA has some for you. Partly obvious, partly implicit, here are some examples:
I'm happy to report the release of the program schedule for the next Percona Live event, April 2013. While you can see there are still some "TODO"s, and minor scheduling changes still to go, the overall reviewing process is complete, and the schedule is sound. The committee has reviewed over 250 submissions in total, sessions and tutorials. It took two months to review the sessions and finalize the schedule. There were very good submissions, and it wasn't till I started building the schedule that I realized just how many.
5.6.9-RC is out, and I was curious to see how the online DDL has improved since my 5.6.8 review. I also owe James Day this review, since he came up with results inconsistent with my own.
We both agreed the dataset I was using was too small, but I got similar results even on larger scale. Then some time passed, and 5.6.9 was announced.
So for the 5.6.9 test I took one of my real tables on production. It is not extremely large: it’s a ~ 300MB .ibd file, in the following format:
mysql> show create table tbl \G
CREATE TABLE tbl
(
id
bigint(20) unsigned NOT NULL AUTO_INCREMENT,
a
varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT “,
w
smallint(11) NOT NULL DEFAULT ‘0’,
d
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
icount
smallint(5) unsigned NOT NULL DEFAULT ‘0’,
PRIMARY KEY (id
) KEY_BLOCK_SIZE=8,
UNIQUE KEY u_idx
(a
,w
,d
) KEY_BLOCK_SIZE=8,
KEY d
(d
) KEY_BLOCK_SIZE=8
) ENGINE=InnoDB AUTO_INCREMENT=16960441 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16
Got some 2.5M rows in the table; desktop machine, 64 bit Linux, mysqlsandbox.
I have crossed several DDL statements with several DML statements. The DDL statements in this test are (ALTER TABLE…):
This post comes as response to 5 Tips for migrating your MySQL server to a Galera Cluster by Henrik Ingo (Galera), which is a good read. This post is a bit lengthy which is one of the reasons why I didn’t just comment on said post.
The Galera talk in London was indeed well crowded, judging from my own chair. I think there is an obvious interest in Galera, as well as a general thirst for information from real-life experience. I am personally very interested in production stories; either “war stories” or “peace stories” - anything to shed more light on the adoption of this technology.
For disclosure, I have not tried Galera myself as yet. Not on production nor on staging machines. But here’s a couple thoughts on Henrik’s post:
If you are familiar with both openark kit and common_schema, you’ll notice I’ve incorporated some functionality already working in openark kit into common_schema, essentially rewriting what used to be a Python script into SQL/QueryScript.
What was my reasoning for rewriting good code? I wish to explain that, and provide with a couple examples.
I’m generally interested in pushing as much functionality into the MySQL server. When using an external script, one:
- Needs the right dependencies (OS, Perl/Python version, Perl/Python modules).
- Needs to provide with connection params,
- Needs to get acquainted with a lot of command line options,
- Is limited by whatever command line options are provided.
- Has to invoke that script (duh!) to get the work done.
This last bullet is not so trivial: it means you can’t work some operation with your favorite GUI client, because it has no notion of your Perl script; does not run on the same machine where your Python code resides; simply can’t run those scripts for you.
With server-side code, functionality is accessible via any client. You run your operation via a query (e.g. CALL some_procedure). That can be done from your GUI client, your command line client, your event scheduler, your cronjob, all equally. You only need access to your MySQL server, which is trivial.
Of course, server side scripting is limited. Some stuff simply can’t be written solely on server side. If you want to consult your replicating slave; gracefully take action on user’s Ctrl+C, send data over the web, you’ll have to do it with an external tool. There are actually a lot of surprising limitations to things one would assume are possible on server side. You may already know how frustrated I am by the fact one can hardly get info from SHOW commands.
But, when it works, it shines
Let’s review a couple examples. The first one is nearly trivial. The second less so.
Committee's reviewing process for session proposals for Percona Live 2013 conference is now complete. It is now time for scheduling, checking, double checking, organizing, categorizing and publishing the session schedule. This will take some time. However, we've put together a list of 10 sessions already approved. Now, just building a list of 10 sessions is quite the task: the sessions must be rated high, present a broad range of topics, target audience, speakers...
Thank you to all who attended my talk at Percona Live London! The slides from my talk are now made available, following: [download id="2" format="1"]. Also available on slideshare. They should also be on the Percona Live site within a few days.
The issue of terminating long-time idle open InnoDB transaction has been discussed recently by many. I wish to add my share, by proposing a quick and clean solution via common_schema.
common_schema 1.2 provides with the innodb_transactions view, which relies on INNODB_TRX - one of the InnoDB Plugin views in INFORMATION_SCHEMA - as well as on PROCESSLIST, and so is able to determine with certainty that a transaction has been idle for a long time.
innodb_transactions offers us with a sql_kill_query column, which produces a ‘KILL QUERY 12345’ type of value.  This will be the first chance for me to speak about common_schema, what I believe to be an extremely useful companion to your MySQL server. I will show you how common_schema can leverage your SQL skills and give you new powers. Stuff you had to be SQL-Perl-super-expert to work through is easily attainable with common_schema and QueryScript.


|
2020 Robot Code
|
Public Member Functions | |
| MotionProfile () | |
| MotionProfile (List< MotionSegment > segments) | |
| boolean | isValid () |
| boolean | isEmpty () |
| Optional< MotionState > | stateByTime (double t) |
| MotionState | stateByTimeClamped (double t) |
| Optional< MotionState > | firstStateByPos (double pos) |
| void | trimBeforeTime (double t) |
| void | clear () |
| void | reset (MotionState initial_state) |
| void | consolidate () |
| void | appendControl (double acc, double dt) |
| void | appendSegment (MotionSegment segment) |
| void | appendProfile (MotionProfile profile) |
| int | size () |
| List< MotionSegment > | segments () |
| MotionState | startState () |
| double | startTime () |
| double | startPos () |
| MotionState | endState () |
| double | endTime () |
| double | endPos () |
| double | duration () |
| double | length () |
| String | toString () |
Protected Attributes | |
| List< MotionSegment > | mSegments |
A motion profile specifies a 1D time-parameterized trajectory. The trajectory is composed of successively coincident MotionSegments from which the desired state of motion at any given distance or time can be calculated.
| frc.lib.motion.MotionProfile.MotionProfile | ( | ) |
Create an empty MotionProfile.
| frc.lib.motion.MotionProfile.MotionProfile | ( | List< MotionSegment > | segments | ) |
Create a MotionProfile from an existing list of segments (note that validity is not checked).
| segments | The new segments of the profile. |
| void frc.lib.motion.MotionProfile.appendControl | ( | double | acc, |
| double | dt | ||
| ) |
Add to the profile by applying an acceleration control for a given time. This is appended to the previous last state.
| acc | The acceleration to apply. |
| dt | The period of time to apply the given acceleration. |
| void frc.lib.motion.MotionProfile.appendProfile | ( | MotionProfile | profile | ) |
Add to the profile by inserting a new profile after the final state. No validity checking is done.
| profile | The profile to add. |
| void frc.lib.motion.MotionProfile.appendSegment | ( | MotionSegment | segment | ) |
Add to the profile by inserting a new segment. No validity checking is done.
| segment | The segment to add. |
| void frc.lib.motion.MotionProfile.clear | ( | ) |
Remove all segments.
| void frc.lib.motion.MotionProfile.consolidate | ( | ) |
Remove redundant segments (segments whose start and end states are coincident).
| double frc.lib.motion.MotionProfile.duration | ( | ) |
| double frc.lib.motion.MotionProfile.endPos | ( | ) |
| MotionState frc.lib.motion.MotionProfile.endState | ( | ) |
| double frc.lib.motion.MotionProfile.endTime | ( | ) |
| Optional<MotionState> frc.lib.motion.MotionProfile.firstStateByPos | ( | double | pos | ) |
Get the interpolated MotionState by distance (the "pos()" field of MotionState). Note that since a profile may reverse, this method only returns the first instance of this position.
| pos | The position to query. |
| boolean frc.lib.motion.MotionProfile.isEmpty | ( | ) |
Check if the profile is empty.
| boolean frc.lib.motion.MotionProfile.isValid | ( | ) |
Checks if the given MotionProfile is valid. This checks that:
| double frc.lib.motion.MotionProfile.length | ( | ) |
| void frc.lib.motion.MotionProfile.reset | ( | MotionState | initial_state | ) |
Remove all segments and initialize to the desired state (actually a segment of length 0 that starts and ends at initial_state).
| initial_state | The MotionState to initialize to. |
| List<MotionSegment> frc.lib.motion.MotionProfile.segments | ( | ) |
| int frc.lib.motion.MotionProfile.size | ( | ) |
| double frc.lib.motion.MotionProfile.startPos | ( | ) |
| MotionState frc.lib.motion.MotionProfile.startState | ( | ) |
| double frc.lib.motion.MotionProfile.startTime | ( | ) |
| Optional<MotionState> frc.lib.motion.MotionProfile.stateByTime | ( | double | t | ) |
Get the interpolated MotionState at any given time.
| t | The time to query. |
| MotionState frc.lib.motion.MotionProfile.stateByTimeClamped | ( | double | t | ) |
Get the interpolated MotionState at any given time, clamping to the endpoints if time is out of bounds.
| t | The time to query. |
| String frc.lib.motion.MotionProfile.toString | ( | ) |
| void frc.lib.motion.MotionProfile.trimBeforeTime | ( | double | t | ) |
Remove all parts of the profile prior to the query time. This eliminates whole segments and also shortens any segments containing t.
| t | The query time. |
|
protected |