The terms "we", "our" and "us" and "IPv6Now" refer to IPv6 Now Pty Ltd, ACN 126 460 955. The terms "you" and "your" refer to the person or organisation making a booking for IPv6Now training. All IPv6Now Training course bookings are subject to the following terms and conditions unless otherwise agreed in writing. By making a booking, you are agreeing to these terms and conditions.
No booking is confirmed until either a purchase order (in the case of Government departments and similar organisations) or payment in full (in all other cases) has been received and acknowledged by IPv6Now.
A course may be cancelled by IPv6Now after your booking has been confirmed. You should not commit to additional costs (such as travel or accommodation) until you have received explicit advice from IPv6Now that the course will proceed. We will provide such advice as early as possible, but in any case no later than five business days before the course is due to begin.
It is your responsibility to ensure that courses you book meet your needs. If you are unsure, please contact IPv6Now well in advance to assist you.
It is your responsibility to ensure that persons attending an IPv6Now course meet any prerequisites for that course. If you are unsure, please contact IPv6Now well in advance to assist you.
We reserve the right to refuse any booking at our absolute discretion.
Our terms are 14 days nett from date of invoice. Fees may be payable if you cancel a booking less than ten days before the scheduled start date. In such cases we will invoice you.
We reserve the right to reschedule, and/or change the location, content or course materials of any course at any time. We will use our best efforts to advise you of any such changes in good time.
We require a minimum of four booked students in order to run a course.
We permit a maximum of 12 students in any hands-on or computer-based course.
If we cancel part of a course, for any reason, a pro-rata refund will be made within fourteen days of receipt of a pro forma invoice from you.
If you cancel your booking more than ten business days before the scheduled course start, no fees are payable and a full refund of any monies you may already have paid will be made within fourteen days of receipt of a pro forma invoice from you.
If you cancel a booking ten or fewer business days before the scheduled course start, we will charge you 25% of the course fee.
If you cancel a booking five or fewer business days before the scheduled course start, we will charge you 50% of the course fee.
If you cancel a booking less than two business days before the scheduled course start, no refund will be made, and you remain liable for the full course fee.
You are welcome to make substitutes. If the course has prerequisites, any substitutes should meet those prerequisites.
We will advise you as soon as practicable (generally within five working days after the last scheduled day of a course) of the amount of refund due, if any.
We will pay any refund within fourteen days of receipt of a pro forma invoice from you.
No refund is payable if a person fails to attend the course, or leaves partway through a course. You remain liable for the remainder of any fees in respect of such cases.


text:
Other Off-Campus Study Opportunities
Houghton College > Academics > Off-Campus Studies > Other Off-Campus Study Opportunities
For your convenience the following programs are listed alphabetically. In addition to these fine programs other options can be investigated through the Houghton Office of Off Campus Studies.
Au Sable Institute of Environmental Studies
Au Sable Institute of Environmental Studies provides university-level courses with transferable credits to over 50 colleges and universities, the framework and services for sustainable community-building, environmental education and restoration for school children and adults, facilities for community and environmental organizations, community and regional conferences and retreats, and outreach services.
BCA Legacy: Amizade Study Abroad
Rooted in the values of peace and justice, BCA promotes international understanding, awareness of global citizenship, and academic scholarship through educational exchanges. BCA operates twelve international academic Study Centers in the following ten countries: Belgium, China, Ecuador, England, France, Germany, Ireland, New Zealand, Spain, and Trinidad & Tobago. **BCA is not offering semester abroad study during the 2020-2021 academic year due to Covid-19.
The Budapest Semesters in Mathematics program offers a study abroad opportunity to mathematics and computer science majors during either their junior or senior year. Using local Hungarian professors who are familiar with North American education, students are exposed to a rich mathematical tradition. Courses are small and are taught in English.
Chez Vous Summer! is a relational experience that really helps you to connect with French people, culture, history, faith, and daily life of Normandy, France.
How? The daily rhythm of Chez Vous includes either class and/or cultural activities, substantial "French Only" speaking periods (though not ALL day), along with regular "down-time" to enjoy the beach or local cafés and shops. This environment, along with moderate limitations on home-culture contact, helps you to absorb rapidly the language and culture around you.
The Creation Care Study Program is a Christian organization whose mission is to educate students to be a part of, and agents for, God's shalom particularly through understanding and caring for Creation. Houghton Students may participate in one of two options:
CCSP Belize. As an english speaking country in Central America, Belize offers homestays, engagement with diverse cultural groups, a tropical environment, and a variety of internship opportunities while studying God's creation from a Christian perspective.
CCSP New Zealand. Through ecological field studies, homestays, and participation in a diversity of cultural activities students explore the ecological and cultural diversity of New Zealand.
Daystar University
Daystar University, located in Nairobi, Kenya, is non-denominational and the largest Christian liberal arts college in Africa. Daystar University exists to provide low cost, high quality education for students from across Africa. Daystar's faculty sees its primary task as training leaders of integrity and equipping them with the tools necessary to face the serious challenges of a developing continent. With more than 1,900 full-time students, Daystar University has become a shining star of hope for Africans of all backgrounds by offering fully-accredited degrees to a growing number of students. Daystar offers B.A. and M.A. programs, plus a variety of practical extension and short courses to assist those already involved in Christian ministries.
Under the auspices of the Christian College Consortium, join over 1,800 Africans from more than 25 countries who are studying at Daystar University, the only accredited evangelical Christian liberal arts college in all of Black, English-speaking Africa. At Daystar, where one of its strengths is its indigenous nature as an African university offering instruction primarily to African nationals, you will have the privilege of being immersed in African culture.
Gordon College: Global Education
Through a special agreement Houghton students are able to participate in Gordon's semester in Orvieto, Italy. Houghton students need to notify Houghton's Off-Campus Studies office before applying, but apply to these programs directly. The OCS office can inform you of the procedures and information about financial aid. The Orvieto program offers courses in art, history and literature.
International Business Institute
The International Business Institute is a cooperative overseas program in international economics and business designed to give students a distinctive opportunity for study that incorporates the international dimension. An essential purpose of the program is to encourage and facilitate the integration of academic study with an international field experience. The academic work is conducted in a variety of settings from the usual classroom to corporate headquarters, manufacturing plants, governmental and international agencies.
Leaders in Further Training LIFT
LIFT trains young leaders to become faithful ambassadors of Jesus Christ in accordance with their unique gifts and calling. It equips students to think through critical issues of life and culture from a profoundly Christian perspective. Students also learn servant-leadership through weekly service projects. Located in New York's Adirondack mountains LIFT offers a variety of outdoor adventures, and includes a 2-week mission trip, to the Dominican Republic in the Fall and Ecuador in the Spring.
NOLS: National Outdoor Leadership School
The National Outdoor Leadership School-NOLS, has been the leader in wilderness education since 1965. At NOLS you will learn technical outdoor skills, leadership, and environmental ethics in some of the world's wildest and most awe-inspiring classrooms. With courses ranging from 10 days to a full academic year, we attract highly motivated students who want to learn how to lead.
Oregon Extension
Dates: Fall Semester
Location: Ashland, Oregon
Overview: The Oregon Extension offers a fall semester of accredited college studies for the student who wants a more down to earth, honest, lively and deeply engaged learning experience in an intentional community setting – the student who does not want to say, on graduation day, "It happened so fast. I know a lot of things, but I'm not clear on why they matter or what I can do about any of it." Settle into our mountain hideaway in the southern Oregon Cascades for a four-month conversation with professors and peers who love to read books, ask big questions, and confront big ideas. Move out of the current where you can think about issues that tug at you, cultivate friendships, feel the touch of the breeze in the forest, listen to the stream in the canyon, and reach some understanding about what things mean and why they are worth caring about. Explore this unique alternative semester for Christian college students and other honest seekers.
Semester in Spain, a program of Trinity Christian College, has offered Spanish courses in Seville since 1977. Our program combines challenging academic study (beginning, intermediate, and advanced levels) with practical opportunities for students to practice what they learn. With its location in Seville, Semester in Spain is designed to provide a rich academic and cultural experience as well as foster lasting relationships between our students and the Spanish people.
Spanish Studies Abroad
Spanish Studies Abroad has provided a unique learning experience for students in the historic city of Seville, Spain, since 1969. They offer semester, academic-year, January term and summer programs grounded in the cultural richness of Seville, Barcelona, and Allicante Spain and Cordoba Argentina. Students choose their courses from a broad curriculum embracing a wide variety of disciplines, and receive personalized attention as they pursue their goals and move beyond the classroom into the surrounding culture.
Université Laval, whose experience in teaching French goes as far back as 1937, is situated in beautiful Quebec City at the crossroads of the French-speaking Global community. It offers you the best of both worlds: European charm and North American efficiency. Its campus is home to 37,000 students, including some 2,000 Canadian and foreign students registering annually in French as a Second Language. The programs, designed to meet students' specific needs, include year-round, spring, fall and two summer sessions. Highly qualified teachers provide instruction for students at all levels, from beginner to superior. The programs bring together a diverse clientele – undergraduate and graduate students, historians, diplomats, writers, missionaries, and of course French teachers.
Houghton College Utica
Applying to Houghton Utica
About Houghton Utica
Financial Aid for Houghton Utica
Contact Houghton Utica
Houghton College Buffalo
Houghton College Buffalo – East Side
Houghton College Buffalo – Symphony Circle
Applying to Houghton Buffalo
Financial Aid for Houghton Buffalo
Contact Houghton Buffalo
Houghton's Opportunities
Houghton East Africa
East Africa Faculty
East Africa Location
Program Information and Costs
Applying for Houghton in East Africa
CCCU Programs
Resources and Scholarship Information
Why Honors at Houghton?
Honors in London
Science Honors
Applying to the Honors Program
Center for Faith Justice and Global Engagement
Kindschi Faith and Justice Symposium
Faith and Justice Speaker Profiles
Faith and Justice Symposium Registration
Center for Data Science Analytics
Data Science FAQ
WestSen Analytics
Center for Sustainability
Summer Research Institute
Faculty at Houghton
Faculty Lecture Series
Three-Year Option
Three-Year Option Details
Three-Year Option Success Stories
Request a Book Purchase
Ask the Archives
Discovery/Databases
Interlibrary Loan Book Request
Interlibrary Loan Magazine/Journal Request
Interlibrary Loan Renewal Request
Buffalo AA Book Request Form
Houghton Online Book Request Form
Utica AA Book Request Form
Reserve Request
Work Study Job Application Form
2020-21 Catalog

redpajama_set_name: RedPajamaCommonCrawl


text:
import { Injectable, Inject, Type, createNgModuleRef, NgModuleRef } from '@angular/core';
import { ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN, WithCustomElementComponent } from './element-registry';
import { LoadChildrenCallback } from '@angular/router';
import { createCustomElement } from '@angular/elements';

@Injectable()
export class ElementsLoader {
  /** Map of unregistered custom elements and their respective module paths to load. */
  private elementsToLoad: Map<string, LoadChildrenCallback>;
  /** Map of custom elements that are in the process of being loaded and registered. */
  private elementsLoading = new Map<string, Promise<void>>();
  constructor(
    private moduleRef: NgModuleRef<any>,
    @Inject(ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN) elementModulePaths: Map<string, LoadChildrenCallback>
  ) {
    this.elementsToLoad = new Map(elementModulePaths);
  }

  load(path: string) {
    if (this.elementsLoading.has(path)) {
      // The custom element is in the process of being loaded and registered.
      return this.elementsLoading.get(path) as Promise<void>;
    }

    if (this.elementsToLoad.has(path)) {
      // Load and register the custom element (for the first time).
      const modulePathLoader = this.elementsToLoad.get(path) as LoadChildrenCallback;
      const loadedAndRegistered =
        (modulePathLoader() as Promise<Type<WithCustomElementComponent>>)
          .then(elementModule => {
            const elementModuleRef = createNgModuleRef(elementModule, this.moduleRef.injector);
            const injector = elementModuleRef.injector;
            const CustomElementComponents = elementModuleRef.instance.customElementComponents;
            return Promise.all(CustomElementComponents.map(comp => {
              const selector = (comp as any).ɵcmp.selectors[0][0];
              const CustomElement = createCustomElement(comp, {injector});
              customElements.define(selector, CustomElement);
              return customElements.whenDefined(selector);
            }));

          })
          .then(() => {
            // The custom element has been successfully loaded and registered.
            // Remove from `elementsLoading` and `elementsToLoad`.
            this.elementsLoading.delete(path);
            this.elementsToLoad.delete(path);
          })
          .catch(err => {
            // The custom element has failed to load and register.
            // Remove from `elementsLoading`.
            // (Do not remove from `elementsToLoad` in case it was a temporary error.)
            this.elementsLoading.delete(path);
            return Promise.reject(err);
          });

      this.elementsLoading.set(path, loadedAndRegistered);
      return loadedAndRegistered;
    }

    // The custom element has already been loaded and registered.
    return Promise.resolve();
  }

}

redpajama_set_name: RedPajamaGithub


text:
A Partnership that Will Go the Distance
National Links Trust and National Capital Bank
Local Banking That Supports Local Business
Cap8 Doors & Hardware
The Glasgow Family of Eastern Market
A Washington, DC Institution
The Glasgows have been serving up farmers market staples, hearty breakfast, and comfort food inside DC's historic Eastern Market for decades.
"The Market Lunch has been in business for over 41 years," said Tommy Glasgow, who you can still find behind the counter, chatting up customers waiting for their famous blueberry-buckwheat pancakes on Saturdays. "With the support of the community, all of us did very well from the beginning, and each of our businesses has grown throughout the years."
Purchased from its original owner in 1973, The Market Lunch opened five years later on March 28th. "My dad was in the seafood business, so we went with fish sandwiches and crab cakes," said Tommy, speaking to the original menu items the cafeteria-style breakfast and lunch spot is still known for today.
In fact, The Market Lunch has been a staple establishment for locals and visitors for over four decades, amassing praise for its fresh, no-frills menu from The New York Times, The Washington Post, Conde Nast Traveler, Food & Wine Magazine, and more. One of the things Tommy enjoys most about his job: working alongside his siblings and sister-in-law. Today the family of merchants operates four stalls in Eastern Market, including Union Meat, Southern Maryland Seafood, Fine Sweet Shop, and The Market Lunch.
It's such an esteemed community bank. A lot of people that live on Capitol Hill and bank at NCB take pride in the fact that their bank does so much for their community.
Tommy Glasgow
The Market Lunch
A familial history and spirit are also what drew The Glasgows to NCB. "My dad started banking with NCB in the late '50s, so our history goes way back. When we opened our businesses in Eastern Market, it was a natural choice," said Tommy. Since then, The Glasgows' relationship with NCB has continued to develop and evolve. "I have a pretty distinctive voice, and it's funny — I can call the bank, and they know it's me right away, without having to ask," Tommy noted with a laugh. That sense of family is why The Glasgows recommend NCB to other local businesses.
"It's a great service institution — a throwback to the banking style of yesteryear that I think is still really attractive to people today," Tommy said.


Keesha presents Vibrant Vibes with the rest of the gang a two hour radio show dedicated to All things African & Caribbean - fortnightly on a Saturday - Keesha enjoys the majority of music played on Vibrant Vibes and loves to share music from her favourite genres - Neo Soul, Roots Reggae, Dub, R'n'B, Hip Hop, Dancehall, Jazz, & Classical.
Born in Southampton, Keesha is of Jamaican & Louisianan parentage and enjoys trips to the grandparents abroad. She enjoys using creativity whether it's painting, playing bass guitar, or writing radio scripts. She attended Southampton Solent Uni and now runs a Popcorn Concessions business Sun-Fri, and is also a co presenter on VoiceFM Radio. When it's time to unwind a Swim at her local leisure centre is all that's needed.
Keesha would describe herself as adventurous and easy going, like most Aquarians. She loves being a volunteer radio presenter offering a voice to Southampton's African & Caribbean community on Air.


Paperwork, packing, labeling, and whiny kids – you'd have to deal with these challenges during moving.
But no one talks about one of the biggest challenges involved – 'deep' cleaning your new home.
know what kind of chemical residues and fumes must be lurking in the air and on the surface.
empty, however, it is difficult to decide where to begin and how to proceed.
as soon as you are done. Don't let anyone go inside unless necessary.
some disinfectant to remove chemical residues.
reliable. Use it for your microwave and stove.
You can soak your oven racks and pans in ammonia overnight to remove the stubborn black grime.
areas. You might need a strong degreaser to remove it from every nook and corner.
homemade disinfectant and let the tub soak in it for a while. You can scrub the stains off later.
toothbrush to remove stubborn grime.
Go For a Clean Start!
ensure a happy and healthy new life for you and your family.
Jenny Harrison is a passionate home and lifestyle blogger. She loves to engage with readers who are seeking home and lifestyle-related information on the internet. She is a featured blogger at various high authority blogs and magazines in which she shared her research and experience with the vast online community. Currently, she is associated with NYC moving company 'All Around Moving Services Company Inc.' Specializes in arranging and assembling services of professional and skilled local movers locally in New York City as well as areas in New Jersey, Connecticut and the Miami Dale area in South Florida. Follow her on twitter @MJennyHarrison for more updates.


^ Gibbons, Christia (August 21, 2007). "US Airways pilots at odds over contract". The Arizona Republic. p. 29. Retrieved October 22, 2015. (Subscription required (help)).
This page was last edited on 27 March 2019, at 02:22 (UTC).


I don't say yes to most "summit" interview requests. .
Not because I think I'm too cool. .
It's just the topics typically sound like more marketing hot air. .
But I said YES to this one. .
Two reasons to opt into this summit: .
1) I shared quite openly about set backs in business, how I define wealth vs how others might define it, my mindset for dealing with money worry, and even some best practices for saving and earning well with a #smallisthenewbig business model. .
2) It's going to be chock full of different conversations about money management for entrepreneurs.
We don't have regular jobs, and a "regular" money management conversation won't do.
Join in for free and start thinking differently about money, taxes, savings, retirement and more right here.


This work compares the performance of two Lagrangian turbulent particle dispersion models: the standard model (e.g., that presented in Sommerfeld et al. (1993)), in which the fluctuating fluid velocity experienced by the particle is composed of two components, one correlated with the previous time step and a second one randomly sampled from a Wiener process, and the model proposed by Minier and Peirano (2001), which is based on the PDF approach and performs closure at the level of acceleration of the fluid experienced by the particle. Formulation of a Langevin equation model for the increments of fluid velocity seen by the particle allows capturing some underlying physics of particle dispersion in general turbulent flows while keeping the mathematical manipulation of the stochastic model simple, thereby avoiding some pitfalls and simplifying the derivation of macroscopic relations. The performance of both dispersion models is tested in the configurations of grid-generated turbulence (Wells and Stock (1983) experiments), simple shear flow (Hyland et al., 1999) and confined axisymmetric jet flow laden with solids (Hishida and Maeda (1987) experiments).
Keywords: Turbulence; Two-phase flow; Turbulent particle dispersion; Lagrangian approach.
In order to describe the dispersed phase in a two-phase flow (solid, droplet or bubble suspensions), two approaches are mainly used. In the so-called Lagrangian method, the discrete elements are tracked through a random fluid field by solving their equations of motion. In the second methodology, both phases are handled as two interpenetrating continua and are governed by a set of differential equations representing conservation laws; this approach is referred to as Eulerian. In the later context, there are two possibilities. First, the second phase is considered as a fluid for all effects. This corresponds to the well-known two-fluid model. Second, the non-continuous phase is thought of as a cloud of material elements, whose behaviour is driven by a probability density function (PDF), depending on variables of each element, which responds to a kinetic transport equation similar to the Maxwell-Boltzmann one. The continuum equations for the second phase are obtained as the statistical moments of this PDF-evolution equation.
However, the traditional closures, even giving approximated values for the mean fields, fail to predict the turbulent quantities of dispersed elements, specially in non-uniform flows. To overcome this limitation, during the last few years considerable effort has been devoted to developing turbulence closures at the level of second moments of the particulate phase (Reeks, 1993; Zaichik, 1997; Hyland et al., 1998; Février and Simonin, 1998), allowing the obtention of exact solutions in the case of simple shear flow (Hyland et al., 1999). In the case of turbulent round jets laden with solids, Laín and Aliod (2003) using a Reynolds stress model for the solid phase in a two-fluid-like approach, were able to capture the asymmetry of particle normal Reynolds stresses which is much higher than that of the gas phase in the Mostafa et al. (1989) experiments. However, the development of a second-order model for the dispersed phase necessarily implies the formulation of new constitutive hypotheses. One possibility to avoid this is to use a Lagrangian description for the particulate phase, but unfortunately in highly non-uniform flows such as jets laden with solids, the particle normal stress anisotropy is not well reproduced (Laín and Kohnen, 1999).
The ultimate objective pursued in this work is to elucidate if a physically well-posed Lagrangian model for turbulent particle dispersion, such as that of Minier and Peirano (2001), is able to reproduce reasonably well the anisotropy of the particle fluctuating velocities in the configuration of a turbulent jet laden with solids. With this objective in mind, the implementation of the Minier and Peirano model is validated first against the grid turbulence experiments of Wells and Stock (1983) and, qualitatively, in a simple shear flow configuration. Finally, the particle dispersion in the jet flow of Hishida and Maeda (1987) is addressed by means of the Minier and Peirano model and the results are compared with those obtained with the standard model.
where Fi stands for forces other than drag and weight – buoyancy acting on the particles, such as added mass or transverse lift forces, relevant to the motion of bubbles or light solids. Here xpi are the coordinates of the particle position; upi are the velocity components; Dp is the particle diameter, and rp is the particle density, which is assumed to be constant at present. In this work only the dispersion of solid particles in a gaseous continuous phase is addressed (rp >> r); therefore, the most relevant forces are just the drag and the weight, with Fi = 0.
where Rep = r Dp |u – up|/µ is the particle Reynolds number.
The fluid driving velocity in (2) is the instantaneous velocity of successive fluid particles that cross the solid particle trajectory xp(t); hence u(t) = u(xp(t), t) hereafter will be called fluid velocity experienced or seen by the particle. The main difficulty lies in predicting accurately u in a general turbulent flow. However, the usual Reynolds averaging of fluid turbulence results in transport equations for the mean variables; therefore, detailed information about instantaneous fluid structures is lost. The Lagrangian approach to particle dispersion requires reconstruction somehow of the instantaneous fluid velocities seen by the particles as the composition of a mean component (obtained from the continuous phase computation and interpolated at the particle location) and a fluctuating part, which has to be modelled. The modelling of u is cumbersome due to the existence of two effects that cause the fluid element and particle trajectories to differ: particle inertia, which induces a relatively instantaneous motion of particles with regard to their fluid neighbourhood, and mean particle drift due to gravity, the so-called crossing-trajectories effect. To be more specific, the particle P and the fluid element (fluid particle), whose positions coincide at some time instant, say tn, F = P, will generally separate during the next time interval, tn+1, with the solid particle located at P' and the fluid particle at F' (Figure 1).
where CT is a coefficient and dW are independent Wiener processes with a zero mean and a variance equal to the time interval Dt.
which depends on Dr = |un – upn| Dt, the relative displacement between particle and fluid element, and LE(r), the Eulerian length scale. dW' again denotes independent Wiener processes.
In order to compare with the dispersion model given in Minier and Peirano (2001), the two-step Lagrangian approach employed by Sommerfeld et al. (1993), hereafter called standard dispersion model, is presented.
and the repeated index i does not represent a sum.
with and CT = 0.24.
with the factor l given as l = 3Tr(H R)/2kTr(H), where Tr(H) denotes the trace of the matrix Hij and Rij the fluid Reynolds stress tensor.
Gaussian probability functions obtained in homogeneous turbulence and deviations of the Gaussianity in non-homogeneous turbulence are results of the model.
There is an absence of spurious drifts.
The form of the autocorrelation functions is derived from the model instead of assuming a certain form beforehand.
Correct particle dispersion coefficients are obtained for limiting cases.
Tchen's formulae for equilibrium values of fluid and particle turbulent kinetic energies are recovered in the case of isotropic turbulence.
All these properties reflect that the Langevin M&P-like models are able to capture interesting physics of particle dispersion in general turbulent flows, while relatively simple mathematical manipulation of the stochastic model allows avoidance of some pitfalls and simplification of the derivation of macroscopic relations.
In this section the performance of both particle dispersion models, the standard and the M&P, is compared to those of three experimental configurations: grid-generated turbulence, simple shear flow and confined jet flow laden with solids. In the first two, the particles are tracked in a prescribed turbulent flow field, whilst in the last one the fluid phase is described using a Reynolds stress model also taking into account the two-way coupling.
For calculation of particle dispersion these flow properties along the wind tunnel are prescribed for the cases considered.
where fD = 1 + 0.15 Rep0.687 is the non-linear term of the drag coefficient and Vs is the effective drift velocity or terminal velocity.
In order to build up the statistics for the mean square displacement y2, 20000 particles were injected at the location x/M = 10 with a mean streamwise velocity of 6.55 m/s and an initial mean fluctuating velocity of 0.5 m/s, as suggested in the test case of the ERCOFTAC Summer School entitled "Experiments, Modelling and Numerical Calculations for Dispersed Multiphase Flow" held at Martin Luther University Halle-Wittenberg (Germany) from the 16th to the 19th of July 2001.
Once the relevant fluid properties had been prescribed, Eqs. (20)-(21), the particles were tracked through the flow field with the particle equations of motion, Eqs. (1) and (2), using both particle dispersion models: the standard and the M&P models.
The simulation results are presented in Figure 2. The left plot shows the results for the small 5 µm particles. There it can be readily seen that in the case without external forces (Vs = 0) both models, standard and M&P, provide essentially the same results. However, when a mean drift velocity is present (Vs = 0.17), only the M&P model fits the experimental curve; in this case, the standard model underestimates the particle dispersion. This ability of the M&P model is not surprising because it explicitly incorporates the crossing-trajectory effect through the presence of the mean drift velocity in the modified fluid Lagragian time scale seen by the particles (Equation (16)).
The right plot in Figure 2 contains the results for the inertial 57 µm particles where the effects of particle inertia and crossing-trajectories are expected to be more pronounced. In this case, the experiments show distinguishable dependence of particle dispersion on the applied external field due to the slower response of the particles to the fluid fluctuating velocity. Again, the M&P model is able to capture the experimental points satisfactorily, but the results obtained with the standard model show some differences with the experiments. It is necessary to point out that the level of agreement with the Wells and Stock measurements obtained in this work using the M&P model is comparable to that reported by Pozorski and Minier (1998). However, due to the factor á u ñ that appears in the Langevin model for the velocity increments, Eq. (14), the M&P model needs to be worked out iteratively because in the beginning the statistics for fluid velocity seen by the particles u are still unknown. Nevertheless, a good initial estimation is the fluid mean velocity. Consequently, the CPU time necessary for the M&P model is remarkably higher than that for the standard model.
Here a is the shear gradient, which is taken as constant. The fluid velocity fluctuations are written as Gaussian processes whose variances are the Reynolds stresses in the corresponding direction. The magnitude of these Reynolds stresses is prescribed from the beginning.
As this was a numerical experiment, the simulations performed were inspired by those presented in Hyland et al. (1999), where the topology of particle concentration profiles were analysed for shear gradient strength and turbulent fluid shear stresses. However, the particle sizes considered were those in the experiments of Wells and Stock (1983), namely Dp = 5, 57 µm. The normal Reynolds stresses were prescribed to be one, = 1, whilst the effect of the turbulent shear stresses on particle concentration was be investigated. In the simulations, the particles were injected into the center of the domain with zero initial velocity and were tracked during a total time of 5 s. No external forces were considered in the calculations.
Figure 3 shows the small particle (Dp = 5 µm) concentration profiles when there is no mean shear present. The left plot shows the case without turbulent shear stress, = 0. In this case, it is known that the particle concentration profiles are concentric circles centered at the origin. Therefore, due to the isotropy of turbulence, the particles diffuse equally from the point source in all directions with the maximum concentration found at the center of the domain. It is necessary to point out that the lines are not exactly circles becuase the number of parcels used in the statistics was set as 104 in order to limit the CPU time. As the number of trajectories increases, the contours tend to become circular. When the turbulence is not isotropic (Figure 3, right), e.g., = -0.5, the concentration profiles become concentric ellipses rotated -45º, as is also shown in Hyland et al. (1999).
When, a ¹ 0,i.e., shear is present and turbulence is isotropic (Figure 4, top left) the particle concentration profiles become concentric, rotated ellipses, this time a positive angle. As the shear increases, these ellipses stretch and rotate (Figure 4, top right). In addition, as the time increases, the ellipses expand due to diffusion. In the case of larger particles, Dp = 57 µm, the ellipses diffuse and expand less (Figure 4, bottom left). When a mean shear is combined with non-isotropic turbulence, =-0.5, two rotational trends concur (Figure 4, bottom right): the turbulent shear stresses prevail near the center of the domain (where the mean velocity module is small), whilst the mean shear governs as we move further away. These results are in line with those presented in Hyland et al. (1999).
It is worth emphasising that the former results are roughly the same for both particle dispersion models, standard and M&P, due to the absence of mean drift.
The last experimental configuration considered is a confined axisymmetric jet flow laden with solids. This is a non-idealized flow frequently found in industrial processes, so the quality of the results obtained provide an idea of the ability of the numerical models used to predict real industrial flows. Moreover, the single-phase flow is well-known and the usual turbulence models provide good fit to the single-phase data; the geometry is relatively simple with a number of symmetries and well-defined boundary conditions; there are several experiments that provide a complete set of data for both fluid and dispersed phase variables; and this flow configuration has historically been used to calibrate turbulent two-phase flow models since the sixties.
An important characteristic of the jet flow configuration is its high non-uniformity and anisotropy of the turbulent Reynolds stresses. For instance, in a single-phase axisymmetric round jet it is known that normal radial and azimuthal stresses are half of the normal axial stresses, a situation which is more or less maintained for the gas phase in the two-phase flow case. On the other hand, the quotient of axial and radial stresses for the particle phase, , is typically larger than 10, which means that the anisotropy of the dispersed phase is much higher than that of the gas phase. This fact has also been found in a simple shear flow where Reeks (1993) showed that the particle normal Reynolds stresses for long times are anisotropic in spite of the fact that the fluid Reynolds stresses were imposed isotropically and homogeneously. Such particle turbulence anisotropy is not well captured by the Lagrangian approaches to the dispersed phase (Laín & Kohnen, 1999). One reason could be that the standard Langevin models used to describe particle turbulent dispersion in the Lagrangian approach are still too simplified. Therefore, given that the M&P model more accurately reflects the underlying physics than the standard models, it is worth applying it in an attempt to improve estimation of particle turbulence anisotropy.
The experimental configuration used was that of Hishida and Maeda, which is characterised by an air jet laden with glass particles flowing downwards without inlet swirl, issuing from a 13 mm diameter nozzle into a tube with a 60 mm diameter (Figure 5). The primary stream is confined by an annular flow in order to prevent recirculation. Details of the experimental set-up are given in Hishida and Maeda (1987).
In the selected case, the velocity at the centerline of the inner pipe was 30 m/s and the velocity of the secondary flow, 15 m/s. The glass particle mean diameter was 64.4 mm and its density, rp = 2590 kg/m3. The mass loading ratio was 0.3, which corresponds to a mean volume fraction ap = 1.4×10-4.
The simulation was carried out with the axisymmetric two-dimensional Reynolds stress model presented in Laín and Sommerfeld (2003), considering the influence of the particles on the fluid turbulence, i.e., the so-called two-way coupling. Hence, in the calculations symmetry conditions were used and only half of the flow domain was calculated. Therefore, the computational domain considered was 520 mm in the streamwise and 30 mm in the radial direction and it was discretised with a non-uniform mesh of 150×60 control volumes in the axial and radial directions, respectively. This resolution was found to be sufficient to produce grid independent results. The profiles measured at x = 0 were used as initial conditions, while at x = 520 mm an outlet condition was established. At r = 0 a symmetry axis condition was imposed and at r = 30 mm a non-slip condition due to the solid wall was implemented. For the rather small particles considered drag and gravity were the most relevant forces, hence transverse lift forces were neglected in this case. Statistics were based on 25000 particle trajectories. The comparison between measurements and calculations at x = 130 mm downstream from the nozzle is illustrated in dimensional values, i.e., x/D = 10 where D is the diameter of the nozzle.
The results obtained in the jet flow of Hishida and Maeda with both particle dispersion models, standard and M&P, are discussed below. In Figure 6 the comparison of calculations and experimental data for mean velocities and Reynolds stresses of both phases at x/D = 10 is presented. It can be readily seen that the results for the fluid properties are fairly similar for both particle dispersion strategies, where the two-way coupling was taken into account. Moreover, agreement with the fluid experimental data is satisfactory enough. Regarding the particle properties, the M&P model provided mean velocity values slightly above those in the results of the standard model (Figure 6 top left). This difference is due to the fact that the mean fluid velocity seen by the particles was higher in the M&P model than in the standard one, which in the latter cases coincided with the unconditional mean fluid velocity (see Figure 7). In the case of the particle Reynolds stresses, the M&P model had larger velocity fluctuations of and than the standard model. In the case of the shear stresses the increment was large enough to capture the experimental value, but it was not in the case of the axial stresses, which still lay below those in the experiments. Also, both dispersion models gave roughly the same results for particle radial stresses due to the fact that the radial direction was approximately homogeneous and particle and fluid stresses attained the equilibrium values (Lain and Aliod, 2003). It is necessary to point out that the underestimation of particle axial stresses typically occurs when a Lagrangian approach is applied to the dispersed phase in the jet flow, despite the careful implementation of particle inlet conditions (Lain and Kohnen, 1999). Therefore, the M&P model improved the estimations of particle stresses in the jet flow, as expected, but the improvement was not large enough to capture the particle turbulence anisotropy.
One possible way to improve the performance of the M&P model would be to extend the drift vector in Equation (14) to include the gradients of particle mean velocity. The idea behind this proposal is that in simple shear flow the particle axial stresses contain contributions proportional to the particle mean velocity gradients (see, for instance, Zaichik (1997)). Moreover, using an Eulerian second-order model for the particles, Lain and Aliod (2003), showed that in the particle Reynolds stress equations there is an intrinsic source proportional to the particle mean velocity gradients, finally making it possible to reproduce the particle phase anisotropy in the jet flow of Mostafa et al. (1989). This idea is currently being investigated.
In this article the performance of the turbulent particle dispersion model presented in Minier and Peirano (2001), which is based on a Langevin model for the acceleration of the fluid velocity seen by the particles, was evaluated and compared with the model reported in Sommerfeld et al. (1993), representative of what we call a standard turbulent particle dispersion model. The tests comprised three flow configurations: grid-generated turbulence (Wells and Stock, 1983), simple shear flow (Hyland et al., 1999) and axisymmetric round jet flow (Hishida and Maeda, 1987). In general, the Minier and Peirano model provided better results than the standard model because its construction better reflects the underlying physics of particle dispersion for general turbulent flows, but at the expense of a higher computational cost. In particular, the Minier and Peirano model provides estimations closer to the particle Reynolds stresses in the axisymmetric jet of Hishida and Maeda (1987) than the standard model, but still underestimated the particle axial stresses. Modification of the Langevin model to include terms proportional to the gradient of particle mean velocity could result in an improvement of the results for strongly non-uniform flows, such as the jet configuration.
The financial support of the Vicerrectoría de Investigaciones y Desarrollo Tecnológico of the Universidad Autónoma de Occidente through the project "Dispersión de partículas sólidas en flujos bifásicos turbulentos de interés industrial" is gratefully acknowledged.


text:
from typing import Dict, List, Optional, TYPE_CHECKING, Union

from ... import _serialization

if TYPE_CHECKING:
    # pylint: disable=unused-import,ungrouped-imports
    from .. import models as _models

class AccessUri(_serialization.Model):
    """A disk access SAS uri.

    Variables are only populated by the server, and will be ignored when sending a request.

    :ivar access_sas: A SAS uri for accessing a disk.
    :vartype access_sas: str
    """

    _validation = {
        "access_sas": {"readonly": True},
    }

    _attribute_map = {
        "access_sas": {"key": "accessSAS", "type": "str"},
    }

    def __init__(self, **kwargs):
        """ """
        super().__init__(**kwargs)
        self.access_sas = None

class CreationData(_serialization.Model):
    """Data used when creating a disk.

    All required parameters must be populated in order to send to Azure.

    :ivar create_option: This enumerates the possible sources of a disk's creation. Required. Known
     values are: "Empty", "Attach", "FromImage", "Import", "Copy", "Restore", and "Upload".
    :vartype create_option: str or ~azure.mgmt.compute.v2018_09_30.models.DiskCreateOption
    :ivar storage_account_id: If createOption is Import, the Azure Resource Manager identifier of
     the storage account containing the blob to import as a disk. Required only if the blob is in a
     different subscription.
    :vartype storage_account_id: str
    :ivar image_reference: Disk source information.
    :vartype image_reference: ~azure.mgmt.compute.v2018_09_30.models.ImageDiskReference
    :ivar source_uri: If createOption is Import, this is the URI of a blob to be imported into a
     managed disk.
    :vartype source_uri: str
    :ivar source_resource_id: If createOption is Copy, this is the ARM id of the source snapshot or
     disk.
    :vartype source_resource_id: str
    """

    _validation = {
        "create_option": {"required": True},
    }

    _attribute_map = {
        "create_option": {"key": "createOption", "type": "str"},
        "storage_account_id": {"key": "storageAccountId", "type": "str"},
        "image_reference": {"key": "imageReference", "type": "ImageDiskReference"},
        "source_uri": {"key": "sourceUri", "type": "str"},
        "source_resource_id": {"key": "sourceResourceId", "type": "str"},
    }

    def __init__(
        self,
        *,
        create_option: Union[str, "_models.DiskCreateOption"],
        storage_account_id: Optional[str] = None,
        image_reference: Optional["_models.ImageDiskReference"] = None,
        source_uri: Optional[str] = None,
        source_resource_id: Optional[str] = None,
        **kwargs
    ):
        """
        :keyword create_option: This enumerates the possible sources of a disk's creation. Required.
         Known values are: "Empty", "Attach", "FromImage", "Import", "Copy", "Restore", and "Upload".
        :paramtype create_option: str or ~azure.mgmt.compute.v2018_09_30.models.DiskCreateOption
        :keyword storage_account_id: If createOption is Import, the Azure Resource Manager identifier
         of the storage account containing the blob to import as a disk. Required only if the blob is in
         a different subscription.
        :paramtype storage_account_id: str
        :keyword image_reference: Disk source information.
        :paramtype image_reference: ~azure.mgmt.compute.v2018_09_30.models.ImageDiskReference
        :keyword source_uri: If createOption is Import, this is the URI of a blob to be imported into a
         managed disk.
        :paramtype source_uri: str
        :keyword source_resource_id: If createOption is Copy, this is the ARM id of the source snapshot
         or disk.
        :paramtype source_resource_id: str
        """
        super().__init__(**kwargs)
        self.create_option = create_option
        self.storage_account_id = storage_account_id
        self.image_reference = image_reference
        self.source_uri = source_uri
        self.source_resource_id = source_resource_id

class Resource(_serialization.Model):
    """The Resource model definition.

    Variables are only populated by the server, and will be ignored when sending a request.

    All required parameters must be populated in order to send to Azure.

    :ivar id: Resource Id.
    :vartype id: str
    :ivar name: Resource name.
    :vartype name: str
    :ivar type: Resource type.
    :vartype type: str
    :ivar location: Resource location. Required.
    :vartype location: str
    :ivar tags: Resource tags.
    :vartype tags: dict[str, str]
    """

    _validation = {
        "id": {"readonly": True},
        "name": {"readonly": True},
        "type": {"readonly": True},
        "location": {"required": True},
    }

    _attribute_map = {
        "id": {"key": "id", "type": "str"},
        "name": {"key": "name", "type": "str"},
        "type": {"key": "type", "type": "str"},
        "location": {"key": "location", "type": "str"},
        "tags": {"key": "tags", "type": "{str}"},
    }

    def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs):
        """
        :keyword location: Resource location. Required.
        :paramtype location: str
        :keyword tags: Resource tags.
        :paramtype tags: dict[str, str]
        """
        super().__init__(**kwargs)
        self.id = None
        self.name = None
        self.type = None
        self.location = location
        self.tags = tags

class Disk(Resource):  # pylint: disable=too-many-instance-attributes
    """Disk resource.

    Variables are only populated by the server, and will be ignored when sending a request.

    All required parameters must be populated in order to send to Azure.

    :ivar id: Resource Id.
    :vartype id: str
    :ivar name: Resource name.
    :vartype name: str
    :ivar type: Resource type.
    :vartype type: str
    :ivar location: Resource location. Required.
    :vartype location: str
    :ivar tags: Resource tags.
    :vartype tags: dict[str, str]
    :ivar managed_by: A relative URI containing the ID of the VM that has the disk attached.
    :vartype managed_by: str
    :ivar sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or
     UltraSSD_LRS.
    :vartype sku: ~azure.mgmt.compute.v2018_09_30.models.DiskSku
    :ivar zones: The Logical zone list for Disk.
    :vartype zones: list[str]
    :ivar time_created: The time when the disk was created.
    :vartype time_created: ~datetime.datetime
    :ivar os_type: The Operating System type. Known values are: "Windows" and "Linux".
    :vartype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
    :ivar hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS
     disks only. Known values are: "V1" and "V2".
    :vartype hyper_v_generation: str or ~azure.mgmt.compute.v2018_09_30.models.HyperVGeneration
    :ivar creation_data: Disk source information. CreationData information cannot be changed after
     the disk has been created.
    :vartype creation_data: ~azure.mgmt.compute.v2018_09_30.models.CreationData
    :ivar disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
     indicates the size of the VHD to create. If this field is present for updates or creation with
     other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
     running VM, and can only increase the disk's size.
    :vartype disk_size_gb: int
    :ivar encryption_settings_collection: Encryption settings collection used for Azure Disk
     Encryption, can contain multiple encryption settings per disk or snapshot.
    :vartype encryption_settings_collection:
     ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
    :ivar provisioning_state: The disk provisioning state.
    :vartype provisioning_state: str
    :ivar disk_iops_read_write: The number of IOPS allowed for this disk; only settable for
     UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    :vartype disk_iops_read_write: int
    :ivar disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD
     disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of
     10.
    :vartype disk_m_bps_read_write: int
    :ivar disk_state: The state of the disk. Known values are: "Unattached", "Attached",
     "Reserved", "ActiveSAS", "ReadyToUpload", and "ActiveUpload".
    :vartype disk_state: str or ~azure.mgmt.compute.v2018_09_30.models.DiskState
    """

    _validation = {
        "id": {"readonly": True},
        "name": {"readonly": True},
        "type": {"readonly": True},
        "location": {"required": True},
        "managed_by": {"readonly": True},
        "time_created": {"readonly": True},
        "provisioning_state": {"readonly": True},
        "disk_state": {"readonly": True},
    }

    _attribute_map = {
        "id": {"key": "id", "type": "str"},
        "name": {"key": "name", "type": "str"},
        "type": {"key": "type", "type": "str"},
        "location": {"key": "location", "type": "str"},
        "tags": {"key": "tags", "type": "{str}"},
        "managed_by": {"key": "managedBy", "type": "str"},
        "sku": {"key": "sku", "type": "DiskSku"},
        "zones": {"key": "zones", "type": "[str]"},
        "time_created": {"key": "properties.timeCreated", "type": "iso-8601"},
        "os_type": {"key": "properties.osType", "type": "str"},
        "hyper_v_generation": {"key": "properties.hyperVGeneration", "type": "str"},
        "creation_data": {"key": "properties.creationData", "type": "CreationData"},
        "disk_size_gb": {"key": "properties.diskSizeGB", "type": "int"},
        "encryption_settings_collection": {
            "key": "properties.encryptionSettingsCollection",
            "type": "EncryptionSettingsCollection",
        },
        "provisioning_state": {"key": "properties.provisioningState", "type": "str"},
        "disk_iops_read_write": {"key": "properties.diskIOPSReadWrite", "type": "int"},
        "disk_m_bps_read_write": {"key": "properties.diskMBpsReadWrite", "type": "int"},
        "disk_state": {"key": "properties.diskState", "type": "str"},
    }

    def __init__(
        self,
        *,
        location: str,
        tags: Optional[Dict[str, str]] = None,
        sku: Optional["_models.DiskSku"] = None,
        zones: Optional[List[str]] = None,
        os_type: Optional[Union[str, "_models.OperatingSystemTypes"]] = None,
        hyper_v_generation: Optional[Union[str, "_models.HyperVGeneration"]] = None,
        creation_data: Optional["_models.CreationData"] = None,
        disk_size_gb: Optional[int] = None,
        encryption_settings_collection: Optional["_models.EncryptionSettingsCollection"] = None,
        disk_iops_read_write: Optional[int] = None,
        disk_m_bps_read_write: Optional[int] = None,
        **kwargs
    ):
        """
        :keyword location: Resource location. Required.
        :paramtype location: str
        :keyword tags: Resource tags.
        :paramtype tags: dict[str, str]
        :keyword sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or
         UltraSSD_LRS.
        :paramtype sku: ~azure.mgmt.compute.v2018_09_30.models.DiskSku
        :keyword zones: The Logical zone list for Disk.
        :paramtype zones: list[str]
        :keyword os_type: The Operating System type. Known values are: "Windows" and "Linux".
        :paramtype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
        :keyword hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS
         disks only. Known values are: "V1" and "V2".
        :paramtype hyper_v_generation: str or ~azure.mgmt.compute.v2018_09_30.models.HyperVGeneration
        :keyword creation_data: Disk source information. CreationData information cannot be changed
         after the disk has been created.
        :paramtype creation_data: ~azure.mgmt.compute.v2018_09_30.models.CreationData
        :keyword disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
         indicates the size of the VHD to create. If this field is present for updates or creation with
         other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
         running VM, and can only increase the disk's size.
        :paramtype disk_size_gb: int
        :keyword encryption_settings_collection: Encryption settings collection used for Azure Disk
         Encryption, can contain multiple encryption settings per disk or snapshot.
        :paramtype encryption_settings_collection:
         ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
        :keyword disk_iops_read_write: The number of IOPS allowed for this disk; only settable for
         UltraSSD disks. One operation can transfer between 4k and 256k bytes.
        :paramtype disk_iops_read_write: int
        :keyword disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD
         disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of
         10.
        :paramtype disk_m_bps_read_write: int
        """
        super().__init__(location=location, tags=tags, **kwargs)
        self.managed_by = None
        self.sku = sku
        self.zones = zones
        self.time_created = None
        self.os_type = os_type
        self.hyper_v_generation = hyper_v_generation
        self.creation_data = creation_data
        self.disk_size_gb = disk_size_gb
        self.encryption_settings_collection = encryption_settings_collection
        self.provisioning_state = None
        self.disk_iops_read_write = disk_iops_read_write
        self.disk_m_bps_read_write = disk_m_bps_read_write
        self.disk_state = None

class DiskList(_serialization.Model):
    """The List Disks operation response.

    All required parameters must be populated in order to send to Azure.

    :ivar value: A list of disks. Required.
    :vartype value: list[~azure.mgmt.compute.v2018_09_30.models.Disk]
    :ivar next_link: The uri to fetch the next page of disks. Call ListNext() with this to fetch
     the next page of disks.
    :vartype next_link: str
    """

    _validation = {
        "value": {"required": True},
    }

    _attribute_map = {
        "value": {"key": "value", "type": "[Disk]"},
        "next_link": {"key": "nextLink", "type": "str"},
    }

    def __init__(self, *, value: List["_models.Disk"], next_link: Optional[str] = None, **kwargs):
        """
        :keyword value: A list of disks. Required.
        :paramtype value: list[~azure.mgmt.compute.v2018_09_30.models.Disk]
        :keyword next_link: The uri to fetch the next page of disks. Call ListNext() with this to fetch
         the next page of disks.
        :paramtype next_link: str
        """
        super().__init__(**kwargs)
        self.value = value
        self.next_link = next_link

class DiskSku(_serialization.Model):
    """The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or UltraSSD_LRS.

    Variables are only populated by the server, and will be ignored when sending a request.

    :ivar name: The sku name. Known values are: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS",
     and "UltraSSD_LRS".
    :vartype name: str or ~azure.mgmt.compute.v2018_09_30.models.DiskStorageAccountTypes
    :ivar tier: The sku tier.
    :vartype tier: str
    """

    _validation = {
        "tier": {"readonly": True},
    }

    _attribute_map = {
        "name": {"key": "name", "type": "str"},
        "tier": {"key": "tier", "type": "str"},
    }

    def __init__(self, *, name: Optional[Union[str, "_models.DiskStorageAccountTypes"]] = None, **kwargs):
        """
        :keyword name: The sku name. Known values are: "Standard_LRS", "Premium_LRS",
         "StandardSSD_LRS", and "UltraSSD_LRS".
        :paramtype name: str or ~azure.mgmt.compute.v2018_09_30.models.DiskStorageAccountTypes
        """
        super().__init__(**kwargs)
        self.name = name
        self.tier = None

class DiskUpdate(_serialization.Model):
    """Disk update resource.

    :ivar tags: Resource tags.
    :vartype tags: dict[str, str]
    :ivar sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or
     UltraSSD_LRS.
    :vartype sku: ~azure.mgmt.compute.v2018_09_30.models.DiskSku
    :ivar os_type: the Operating System type. Known values are: "Windows" and "Linux".
    :vartype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
    :ivar disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
     indicates the size of the VHD to create. If this field is present for updates or creation with
     other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
     running VM, and can only increase the disk's size.
    :vartype disk_size_gb: int
    :ivar encryption_settings_collection: Encryption settings collection used be Azure Disk
     Encryption, can contain multiple encryption settings per disk or snapshot.
    :vartype encryption_settings_collection:
     ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
    :ivar disk_iops_read_write: The number of IOPS allowed for this disk; only settable for
     UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    :vartype disk_iops_read_write: int
    :ivar disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD
     disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of
     10.
    :vartype disk_m_bps_read_write: int
    """

    _attribute_map = {
        "tags": {"key": "tags", "type": "{str}"},
        "sku": {"key": "sku", "type": "DiskSku"},
        "os_type": {"key": "properties.osType", "type": "str"},
        "disk_size_gb": {"key": "properties.diskSizeGB", "type": "int"},
        "encryption_settings_collection": {
            "key": "properties.encryptionSettingsCollection",
            "type": "EncryptionSettingsCollection",
        },
        "disk_iops_read_write": {"key": "properties.diskIOPSReadWrite", "type": "int"},
        "disk_m_bps_read_write": {"key": "properties.diskMBpsReadWrite", "type": "int"},
    }

    def __init__(
        self,
        *,
        tags: Optional[Dict[str, str]] = None,
        sku: Optional["_models.DiskSku"] = None,
        os_type: Optional[Union[str, "_models.OperatingSystemTypes"]] = None,
        disk_size_gb: Optional[int] = None,
        encryption_settings_collection: Optional["_models.EncryptionSettingsCollection"] = None,
        disk_iops_read_write: Optional[int] = None,
        disk_m_bps_read_write: Optional[int] = None,
        **kwargs
    ):
        """
        :keyword tags: Resource tags.
        :paramtype tags: dict[str, str]
        :keyword sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or
         UltraSSD_LRS.
        :paramtype sku: ~azure.mgmt.compute.v2018_09_30.models.DiskSku
        :keyword os_type: the Operating System type. Known values are: "Windows" and "Linux".
        :paramtype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
        :keyword disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
         indicates the size of the VHD to create. If this field is present for updates or creation with
         other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
         running VM, and can only increase the disk's size.
        :paramtype disk_size_gb: int
        :keyword encryption_settings_collection: Encryption settings collection used be Azure Disk
         Encryption, can contain multiple encryption settings per disk or snapshot.
        :paramtype encryption_settings_collection:
         ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
        :keyword disk_iops_read_write: The number of IOPS allowed for this disk; only settable for
         UltraSSD disks. One operation can transfer between 4k and 256k bytes.
        :paramtype disk_iops_read_write: int
        :keyword disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD
         disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of
         10.
        :paramtype disk_m_bps_read_write: int
        """
        super().__init__(**kwargs)
        self.tags = tags
        self.sku = sku
        self.os_type = os_type
        self.disk_size_gb = disk_size_gb
        self.encryption_settings_collection = encryption_settings_collection
        self.disk_iops_read_write = disk_iops_read_write
        self.disk_m_bps_read_write = disk_m_bps_read_write

class EncryptionSettingsCollection(_serialization.Model):
    """Encryption settings for disk or snapshot.

    All required parameters must be populated in order to send to Azure.

    :ivar enabled: Set this flag to true and provide DiskEncryptionKey and optional
     KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and
     KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object,
     the existing settings remain unchanged. Required.
    :vartype enabled: bool
    :ivar encryption_settings: A collection of encryption settings, one for each disk volume.
    :vartype encryption_settings:
     list[~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsElement]
    """

    _validation = {
        "enabled": {"required": True},
    }

    _attribute_map = {
        "enabled": {"key": "enabled", "type": "bool"},
        "encryption_settings": {"key": "encryptionSettings", "type": "[EncryptionSettingsElement]"},
    }

    def __init__(
        self,
        *,
        enabled: bool,
        encryption_settings: Optional[List["_models.EncryptionSettingsElement"]] = None,
        **kwargs
    ):
        """
        :keyword enabled: Set this flag to true and provide DiskEncryptionKey and optional
         KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and
         KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object,
         the existing settings remain unchanged. Required.
        :paramtype enabled: bool
        :keyword encryption_settings: A collection of encryption settings, one for each disk volume.
        :paramtype encryption_settings:
         list[~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsElement]
        """
        super().__init__(**kwargs)
        self.enabled = enabled
        self.encryption_settings = encryption_settings

class EncryptionSettingsElement(_serialization.Model):
    """Encryption settings for one disk volume.

    :ivar disk_encryption_key: Key Vault Secret Url and vault id of the disk encryption key.
    :vartype disk_encryption_key: ~azure.mgmt.compute.v2018_09_30.models.KeyVaultAndSecretReference
    :ivar key_encryption_key: Key Vault Key Url and vault id of the key encryption key.
     KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    :vartype key_encryption_key: ~azure.mgmt.compute.v2018_09_30.models.KeyVaultAndKeyReference
    """

    _attribute_map = {
        "disk_encryption_key": {"key": "diskEncryptionKey", "type": "KeyVaultAndSecretReference"},
        "key_encryption_key": {"key": "keyEncryptionKey", "type": "KeyVaultAndKeyReference"},
    }

    def __init__(
        self,
        *,
        disk_encryption_key: Optional["_models.KeyVaultAndSecretReference"] = None,
        key_encryption_key: Optional["_models.KeyVaultAndKeyReference"] = None,
        **kwargs
    ):
        """
        :keyword disk_encryption_key: Key Vault Secret Url and vault id of the disk encryption key.
        :paramtype disk_encryption_key:
         ~azure.mgmt.compute.v2018_09_30.models.KeyVaultAndSecretReference
        :keyword key_encryption_key: Key Vault Key Url and vault id of the key encryption key.
         KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
        :paramtype key_encryption_key: ~azure.mgmt.compute.v2018_09_30.models.KeyVaultAndKeyReference
        """
        super().__init__(**kwargs)
        self.disk_encryption_key = disk_encryption_key
        self.key_encryption_key = key_encryption_key

class GrantAccessData(_serialization.Model):
    """Data used for requesting a SAS.

    All required parameters must be populated in order to send to Azure.

    :ivar access: Required. Known values are: "None", "Read", and "Write".
    :vartype access: str or ~azure.mgmt.compute.v2018_09_30.models.AccessLevel
    :ivar duration_in_seconds: Time duration in seconds until the SAS access expires. Required.
    :vartype duration_in_seconds: int
    """

    _validation = {
        "access": {"required": True},
        "duration_in_seconds": {"required": True},
    }

    _attribute_map = {
        "access": {"key": "access", "type": "str"},
        "duration_in_seconds": {"key": "durationInSeconds", "type": "int"},
    }

    def __init__(self, *, access: Union[str, "_models.AccessLevel"], duration_in_seconds: int, **kwargs):
        """
        :keyword access: Required. Known values are: "None", "Read", and "Write".
        :paramtype access: str or ~azure.mgmt.compute.v2018_09_30.models.AccessLevel
        :keyword duration_in_seconds: Time duration in seconds until the SAS access expires. Required.
        :paramtype duration_in_seconds: int
        """
        super().__init__(**kwargs)
        self.access = access
        self.duration_in_seconds = duration_in_seconds

class ImageDiskReference(_serialization.Model):
    """The source image used for creating the disk.

    All required parameters must be populated in order to send to Azure.

    :ivar id: A relative uri containing either a Platform Image Repository or user image reference.
     Required.
    :vartype id: str
    :ivar lun: If the disk is created from an image's data disk, this is an index that indicates
     which of the data disks in the image to use. For OS disks, this field is null.
    :vartype lun: int
    """

    _validation = {
        "id": {"required": True},
    }

    _attribute_map = {
        "id": {"key": "id", "type": "str"},
        "lun": {"key": "lun", "type": "int"},
    }

    def __init__(self, *, id: str, lun: Optional[int] = None, **kwargs):  # pylint: disable=redefined-builtin
        """
        :keyword id: A relative uri containing either a Platform Image Repository or user image
         reference. Required.
        :paramtype id: str
        :keyword lun: If the disk is created from an image's data disk, this is an index that indicates
         which of the data disks in the image to use. For OS disks, this field is null.
        :paramtype lun: int
        """
        super().__init__(**kwargs)
        self.id = id
        self.lun = lun

class KeyVaultAndKeyReference(_serialization.Model):
    """Key Vault Key Url and vault id of KeK, KeK is optional and when provided is used to unwrap the encryptionKey.

    All required parameters must be populated in order to send to Azure.

    :ivar source_vault: Resource id of the KeyVault containing the key or secret. Required.
    :vartype source_vault: ~azure.mgmt.compute.v2018_09_30.models.SourceVault
    :ivar key_url: Url pointing to a key or secret in KeyVault. Required.
    :vartype key_url: str
    """

    _validation = {
        "source_vault": {"required": True},
        "key_url": {"required": True},
    }

    _attribute_map = {
        "source_vault": {"key": "sourceVault", "type": "SourceVault"},
        "key_url": {"key": "keyUrl", "type": "str"},
    }

    def __init__(self, *, source_vault: "_models.SourceVault", key_url: str, **kwargs):
        """
        :keyword source_vault: Resource id of the KeyVault containing the key or secret. Required.
        :paramtype source_vault: ~azure.mgmt.compute.v2018_09_30.models.SourceVault
        :keyword key_url: Url pointing to a key or secret in KeyVault. Required.
        :paramtype key_url: str
        """
        super().__init__(**kwargs)
        self.source_vault = source_vault
        self.key_url = key_url

class KeyVaultAndSecretReference(_serialization.Model):
    """Key Vault Secret Url and vault id of the encryption key.

    All required parameters must be populated in order to send to Azure.

    :ivar source_vault: Resource id of the KeyVault containing the key or secret. Required.
    :vartype source_vault: ~azure.mgmt.compute.v2018_09_30.models.SourceVault
    :ivar secret_url: Url pointing to a key or secret in KeyVault. Required.
    :vartype secret_url: str
    """

    _validation = {
        "source_vault": {"required": True},
        "secret_url": {"required": True},
    }

    _attribute_map = {
        "source_vault": {"key": "sourceVault", "type": "SourceVault"},
        "secret_url": {"key": "secretUrl", "type": "str"},
    }

    def __init__(self, *, source_vault: "_models.SourceVault", secret_url: str, **kwargs):
        """
        :keyword source_vault: Resource id of the KeyVault containing the key or secret. Required.
        :paramtype source_vault: ~azure.mgmt.compute.v2018_09_30.models.SourceVault
        :keyword secret_url: Url pointing to a key or secret in KeyVault. Required.
        :paramtype secret_url: str
        """
        super().__init__(**kwargs)
        self.source_vault = source_vault
        self.secret_url = secret_url

class Snapshot(Resource):  # pylint: disable=too-many-instance-attributes
    """Snapshot resource.

    Variables are only populated by the server, and will be ignored when sending a request.

    All required parameters must be populated in order to send to Azure.

    :ivar id: Resource Id.
    :vartype id: str
    :ivar name: Resource name.
    :vartype name: str
    :ivar type: Resource type.
    :vartype type: str
    :ivar location: Resource location. Required.
    :vartype location: str
    :ivar tags: Resource tags.
    :vartype tags: dict[str, str]
    :ivar managed_by: Unused. Always Null.
    :vartype managed_by: str
    :ivar sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS.
    :vartype sku: ~azure.mgmt.compute.v2018_09_30.models.SnapshotSku
    :ivar time_created: The time when the disk was created.
    :vartype time_created: ~datetime.datetime
    :ivar os_type: The Operating System type. Known values are: "Windows" and "Linux".
    :vartype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
    :ivar hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS
     disks only. Known values are: "V1" and "V2".
    :vartype hyper_v_generation: str or ~azure.mgmt.compute.v2018_09_30.models.HyperVGeneration
    :ivar creation_data: Disk source information. CreationData information cannot be changed after
     the disk has been created.
    :vartype creation_data: ~azure.mgmt.compute.v2018_09_30.models.CreationData
    :ivar disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
     indicates the size of the VHD to create. If this field is present for updates or creation with
     other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
     running VM, and can only increase the disk's size.
    :vartype disk_size_gb: int
    :ivar encryption_settings_collection: Encryption settings collection used be Azure Disk
     Encryption, can contain multiple encryption settings per disk or snapshot.
    :vartype encryption_settings_collection:
     ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
    :ivar provisioning_state: The disk provisioning state.
    :vartype provisioning_state: str
    """

    _validation = {
        "id": {"readonly": True},
        "name": {"readonly": True},
        "type": {"readonly": True},
        "location": {"required": True},
        "managed_by": {"readonly": True},
        "time_created": {"readonly": True},
        "provisioning_state": {"readonly": True},
    }

    _attribute_map = {
        "id": {"key": "id", "type": "str"},
        "name": {"key": "name", "type": "str"},
        "type": {"key": "type", "type": "str"},
        "location": {"key": "location", "type": "str"},
        "tags": {"key": "tags", "type": "{str}"},
        "managed_by": {"key": "managedBy", "type": "str"},
        "sku": {"key": "sku", "type": "SnapshotSku"},
        "time_created": {"key": "properties.timeCreated", "type": "iso-8601"},
        "os_type": {"key": "properties.osType", "type": "str"},
        "hyper_v_generation": {"key": "properties.hyperVGeneration", "type": "str"},
        "creation_data": {"key": "properties.creationData", "type": "CreationData"},
        "disk_size_gb": {"key": "properties.diskSizeGB", "type": "int"},
        "encryption_settings_collection": {
            "key": "properties.encryptionSettingsCollection",
            "type": "EncryptionSettingsCollection",
        },
        "provisioning_state": {"key": "properties.provisioningState", "type": "str"},
    }

    def __init__(
        self,
        *,
        location: str,
        tags: Optional[Dict[str, str]] = None,
        sku: Optional["_models.SnapshotSku"] = None,
        os_type: Optional[Union[str, "_models.OperatingSystemTypes"]] = None,
        hyper_v_generation: Optional[Union[str, "_models.HyperVGeneration"]] = None,
        creation_data: Optional["_models.CreationData"] = None,
        disk_size_gb: Optional[int] = None,
        encryption_settings_collection: Optional["_models.EncryptionSettingsCollection"] = None,
        **kwargs
    ):
        """
        :keyword location: Resource location. Required.
        :paramtype location: str
        :keyword tags: Resource tags.
        :paramtype tags: dict[str, str]
        :keyword sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS.
        :paramtype sku: ~azure.mgmt.compute.v2018_09_30.models.SnapshotSku
        :keyword os_type: The Operating System type. Known values are: "Windows" and "Linux".
        :paramtype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
        :keyword hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS
         disks only. Known values are: "V1" and "V2".
        :paramtype hyper_v_generation: str or ~azure.mgmt.compute.v2018_09_30.models.HyperVGeneration
        :keyword creation_data: Disk source information. CreationData information cannot be changed
         after the disk has been created.
        :paramtype creation_data: ~azure.mgmt.compute.v2018_09_30.models.CreationData
        :keyword disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
         indicates the size of the VHD to create. If this field is present for updates or creation with
         other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
         running VM, and can only increase the disk's size.
        :paramtype disk_size_gb: int
        :keyword encryption_settings_collection: Encryption settings collection used be Azure Disk
         Encryption, can contain multiple encryption settings per disk or snapshot.
        :paramtype encryption_settings_collection:
         ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
        """
        super().__init__(location=location, tags=tags, **kwargs)
        self.managed_by = None
        self.sku = sku
        self.time_created = None
        self.os_type = os_type
        self.hyper_v_generation = hyper_v_generation
        self.creation_data = creation_data
        self.disk_size_gb = disk_size_gb
        self.encryption_settings_collection = encryption_settings_collection
        self.provisioning_state = None

class SnapshotList(_serialization.Model):
    """The List Snapshots operation response.

    All required parameters must be populated in order to send to Azure.

    :ivar value: A list of snapshots. Required.
    :vartype value: list[~azure.mgmt.compute.v2018_09_30.models.Snapshot]
    :ivar next_link: The uri to fetch the next page of snapshots. Call ListNext() with this to
     fetch the next page of snapshots.
    :vartype next_link: str
    """

    _validation = {
        "value": {"required": True},
    }

    _attribute_map = {
        "value": {"key": "value", "type": "[Snapshot]"},
        "next_link": {"key": "nextLink", "type": "str"},
    }

    def __init__(self, *, value: List["_models.Snapshot"], next_link: Optional[str] = None, **kwargs):
        """
        :keyword value: A list of snapshots. Required.
        :paramtype value: list[~azure.mgmt.compute.v2018_09_30.models.Snapshot]
        :keyword next_link: The uri to fetch the next page of snapshots. Call ListNext() with this to
         fetch the next page of snapshots.
        :paramtype next_link: str
        """
        super().__init__(**kwargs)
        self.value = value
        self.next_link = next_link

class SnapshotSku(_serialization.Model):
    """The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS.

    Variables are only populated by the server, and will be ignored when sending a request.

    :ivar name: The sku name. Known values are: "Standard_LRS", "Premium_LRS", and "Standard_ZRS".
    :vartype name: str or ~azure.mgmt.compute.v2018_09_30.models.SnapshotStorageAccountTypes
    :ivar tier: The sku tier.
    :vartype tier: str
    """

    _validation = {
        "tier": {"readonly": True},
    }

    _attribute_map = {
        "name": {"key": "name", "type": "str"},
        "tier": {"key": "tier", "type": "str"},
    }

    def __init__(self, *, name: Optional[Union[str, "_models.SnapshotStorageAccountTypes"]] = None, **kwargs):
        """
        :keyword name: The sku name. Known values are: "Standard_LRS", "Premium_LRS", and
         "Standard_ZRS".
        :paramtype name: str or ~azure.mgmt.compute.v2018_09_30.models.SnapshotStorageAccountTypes
        """
        super().__init__(**kwargs)
        self.name = name
        self.tier = None

class SnapshotUpdate(_serialization.Model):
    """Snapshot update resource.

    :ivar tags: Resource tags.
    :vartype tags: dict[str, str]
    :ivar sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS.
    :vartype sku: ~azure.mgmt.compute.v2018_09_30.models.SnapshotSku
    :ivar os_type: the Operating System type. Known values are: "Windows" and "Linux".
    :vartype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
    :ivar disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
     indicates the size of the VHD to create. If this field is present for updates or creation with
     other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
     running VM, and can only increase the disk's size.
    :vartype disk_size_gb: int
    :ivar encryption_settings_collection: Encryption settings collection used be Azure Disk
     Encryption, can contain multiple encryption settings per disk or snapshot.
    :vartype encryption_settings_collection:
     ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
    """

    _attribute_map = {
        "tags": {"key": "tags", "type": "{str}"},
        "sku": {"key": "sku", "type": "SnapshotSku"},
        "os_type": {"key": "properties.osType", "type": "str"},
        "disk_size_gb": {"key": "properties.diskSizeGB", "type": "int"},
        "encryption_settings_collection": {
            "key": "properties.encryptionSettingsCollection",
            "type": "EncryptionSettingsCollection",
        },
    }

    def __init__(
        self,
        *,
        tags: Optional[Dict[str, str]] = None,
        sku: Optional["_models.SnapshotSku"] = None,
        os_type: Optional[Union[str, "_models.OperatingSystemTypes"]] = None,
        disk_size_gb: Optional[int] = None,
        encryption_settings_collection: Optional["_models.EncryptionSettingsCollection"] = None,
        **kwargs
    ):
        """
        :keyword tags: Resource tags.
        :paramtype tags: dict[str, str]
        :keyword sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS.
        :paramtype sku: ~azure.mgmt.compute.v2018_09_30.models.SnapshotSku
        :keyword os_type: the Operating System type. Known values are: "Windows" and "Linux".
        :paramtype os_type: str or ~azure.mgmt.compute.v2018_09_30.models.OperatingSystemTypes
        :keyword disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it
         indicates the size of the VHD to create. If this field is present for updates or creation with
         other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a
         running VM, and can only increase the disk's size.
        :paramtype disk_size_gb: int
        :keyword encryption_settings_collection: Encryption settings collection used be Azure Disk
         Encryption, can contain multiple encryption settings per disk or snapshot.
        :paramtype encryption_settings_collection:
         ~azure.mgmt.compute.v2018_09_30.models.EncryptionSettingsCollection
        """
        super().__init__(**kwargs)
        self.tags = tags
        self.sku = sku
        self.os_type = os_type
        self.disk_size_gb = disk_size_gb
        self.encryption_settings_collection = encryption_settings_collection

class SourceVault(_serialization.Model):
    """The vault id is an Azure Resource Manager Resource id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}.

    :ivar id: Resource Id.
    :vartype id: str
    """

    _attribute_map = {
        "id": {"key": "id", "type": "str"},
    }

    def __init__(self, *, id: Optional[str] = None, **kwargs):  # pylint: disable=redefined-builtin
        """
        :keyword id: Resource Id.
        :paramtype id: str
        """
        super().__init__(**kwargs)
        self.id = id


Every church needs a plan. Where are we going? Where do we want to be in 2, 5, 10 years? What is our mission? What is our collective ministry? What difference do we make to ourselves, to our community, to our world? Who is it, as a church, we want to become?
So many questions and without answers we are adrift. As W. Edwards Deming said, the great total quality management guru, "If you don't know where you are going, any road will take you there."
Jim Collins and Jerry Porras, in their book, Built To Last, described visionary organizations as having a "core ideology" which is made up of organizational values and mission, a sense of purpose.
In thinking about BUUFs core values I would say a commitment to spiritual growth and satisfaction of its members and exuding compassion toward the world. It is spiritual satisfaction and compassion which will drive BUUFs development and life.
BUUF's purpose is to provide an opportunity for spiritual growth and sustenance in an ennervating environment.
Right now these are my answers to these questions about what are BUUF's core values and purpose. What are yours? Together we can combine our energy and do great things. Jesus said, "Where two or more are gathered in my name, there I will be." and St. Paul said, "If God is with you, who can be against you?"
At the Brockport Unitarian Universalist Fellowship, as with any church, we need to plan our work and work our plan.
Where do you want Unitarian Universalism to be in 2, 5, 10 years? Leave your comments on the blog.
This is article #7 in a series on birth of a congregation.
Interestingly enough I have repeatedly asked Rev. Peter Morales, now UUA President Morales, to present his credible and realistic "business plan" for just how he intends to "grow" Unitarian*Universalism from the "tiny, declining, fringe religion" that he acknowledges it is today, into "the religion for our time" within *our* time, let's say 25 to 30 years or so at most. . . To date he has not responded in any way whatsoever to this legitimate question, or indeed any of my other pertinent questions which were posed to him in comments on his "obsolete" 'Along The Campaign Trail' blog and elsewhere in the U*U blogosphere.
It seems that Rev. Morales was "personally advised" not to answer my serious questions by his fervent supporter Martin Voelker if I am to believe Martin Voelker's own testimony posted in a comment on a Denver Post article about Rev. Morales' election as President of the UUA. Blogger is not allowing me to copy and paste text so I cannot create direct links to the article and comments here. The article title was 'Unitarians elect golden pastor to presidency'. My take on it with links to the article and comments may be found in recent Emerson Avenger blog posts. In fact I posted a brand-spanking new TEA blog post once again asking Rev. Peter Morales to present his "*realistic* business plan" for how he intends to make *The* Tiny Declining Fringe Religion into the The Religion For Our Time just yesterday. Of course, as I have pointed out before, President Morales has yet to even explain exactly what he means by "the religion for our time".
I would like to see Unitarian*Universalism become a much more credible and respectable religion than it is today within a few decades. Like President Morales I would like to see it become a much more multicultural religious community than it is today. I had hoped that if the U*U religious community supported Creation Day as a U*U sponsored inter-religious event that it might have attracted many people from diverse cultural backgrounds to join the U*U religious community but we all know how U*Us fell all over themselves to allow intolerant and even bigotted "fundamentalist atheist" "Humanist" U*Us to slander Creation Day as a cult. I have being saying for years that the failure of the U*U religious community to firmly and forthrightly confront the anti-religious intolerance and bigotry of the "fundamentalist atheist" subset of Humanist U*Us is a major contributing factor as to why U*Uism has not only failed to attract more "people of color" from diverse cultural backgrounds but has even made itself less than palatable to most God believing Americans more generally. Unless this "major problem" of Unitarian*Universalism is responsibly addressed by UUA President Peter Morales his dream of U*Uism becoming "the religion of our time" will never even come close to being fulfilled. U*Uism will remain a "tiny, declining, fringe religion" as long as intolerant and abusive "obnoxious atheists" are allowed to run roughshod over believers in any number of U*U "churches". President Morales absolutely has to responsibly address this important issue and work to eliminate this "major problem" of the U*U World if he wants U*Uism to have any chance of being "the religion of our time." God believing people have better things to do with their Sunday mornings than attend a U*U "church" where they are greeted with incredulity, condescension, and even outright hostility and contempt by intolerant and abusive "fundamentalist atheist" U*Us.
David are you aware that you have a Scientology ad at the bottom of this page?


(Lat.,=made in layers), layered structure formed by the deposition of sedimentary rocks. Changes between strata are interpreted as the result of fluctuations in the intensity and persistence of the depositional agent, e.g.
high land mass projecting conspicuously above its surroundings and usually of limited width at its summit. Although isolated mountains are not unusual, mountains commonly form ranges, comprising either a single complex ridge or a series of related ridges.
..... Click the link for more information. . Porous and permeable rocks of anticlines often contain oil and gas reservoirs. Organic remains of late Paleozoic tree fern swamps were converted to anthracite coal during the folding of the Appalachian Mts.
(also flexure), a tectonic structure in which a stratum or bed is strongly bent in two opposite directions. A fold consists of five elements, namely, two bends and three limbs. Two of the limbs are outside the bends; the third, or middle, limb connects the bends. Each element is described by its own bedding parameters, and the relationships between the parameters determine the many varieties of folds.
According to the bedding of the limbs, we distinguish among simple, plunging, and cross folds; according to the inclination of the hinges of the bends, folds are classified as vertical, inclined, and nonplunging (Figure 1). The size of a fold ranges from fractions of a meter to many kilometers. The inclination of the limbs ranges from barely discernible to vertical.
Folds are found in cratons and folded regions. Especially large folds are found along the margins of cratons and the edges of syneclises. Some folds affect the accumulation of sediment and determine the distribution of the facies and thicknesses of sedimentary strata. Folds are sometimes associated with petroleum deposits.
A plication or doubling, as of various parts of the body such as membranes and other flat surfaces.
A bend in rock strata or other planar structure, usually produced by deformation; folds are recognized where layered rocks have been distorted into wavelike form.
An invisible line on a Web page that is at the bottom of the first full page on screen. See above the fold.
In conclusion, our observations suggest that EUS-FNA is a very accurate and less invasive procedure with favorable sensitivity and specificity in the diagnosis of endoscopic biopsy-negative diffuse gastrointestinal lesions appearing as exaggerated gastric folds or as flat or circumferential lesions.
To further evaluate any esophageal involvement of the scleroderma, an esogastric radioscopy was performed, which visualized two lacunar images in the pyloric antrum and hypertrophic gastric folds (Figure 4).
The GE junction is radiographically identified where the gastric folds terminate.


1 Moldovan Leu (MDL) to (NZD) New Zealand Dollar Exchange Rate - MDL/NZD Charts, History, Historical Rates, Currency Converter.
1 MDL/NZD Exchange Rate points that how much 1 Moldovan Leu in New Zealand Dollars currency is.
It is also available to check inverse of the rate as 1 New Zealand Dollar to Moldovan Leu. Exchange Rates are updated each minute at 1exchangerate.com. In addition to the exchange rate, you are also able to get Moldovan Leu and New Zealand Dollar currency to any other money exchanges. You can calculate cross rates of these two exchange rate by using the currency calculator below.


This is fun for pre-schoolers and their parents and grandparents to play together.There is a good variety of games so kids of different interests can find their favorites and also try something new. A light fun educational component is present. The best part is the treasure box where you can print out constructive "real world" activities such as masks and coloring sheets.
When I first downloaded this game it did not work - it refused to load. Finally on about the seventh attempt it loaded, and it gave me a message that it may not work on my computer, but the only thing that doesn't work are the cats - they just sit in one place and cry. It is different than the other farm frenzy games (I always skip the videos) but I do like the changes. There are many levels - most I can easily get gold, some silver, and a few just completion. I still have about 38 levels to go - will definitely play again. It makes you think to plan your next move, while letting you relax - no insane rushing.