text:
Self-optimisation and model-based design of experiments for developing a C–H activation flow process
Alexander Echtermeyer1,2,
Yehia Amar2,
Jacek Zakrzewski2 and
Alexei Lapkin2,§
Alexander Echtermeyer
Aachener Verfahrenstechnik – Process Systems Engineering, RWTH Aachen University, Aachen, Germany
Department of Chemical Engineering and Biotechnology, University of Cambridge, Cambridge, United Kingdom
Yehia Amar
Jacek Zakrzewski
Alexei Lapkin
1Aachener Verfahrenstechnik – Process Systems Engineering, RWTH Aachen University, Aachen, Germany
2Department of Chemical Engineering and Biotechnology, University of Cambridge, Cambridge, United Kingdom
§ + 44 1223 334796
This article is part of the Thematic Series "Automated chemical synthesis".
Guest Editor: I. R. Baxendale
Beilstein J. Org. Chem. 2017, 13, 150–163. doi:10.3762/bjoc.13.18
Received 31 Oct 2016, Accepted 05 Jan 2017, Published 24 Jan 2017
A recently described C(sp3)–H activation reaction to synthesise aziridines was used as a model reaction to demonstrate the methodology of developing a process model using model-based design of experiments (MBDoE) and self-optimisation approaches in flow. The two approaches are compared in terms of experimental efficiency. The self-optimisation approach required the least number of experiments to reach the specified objectives of cost and product yield, whereas the MBDoE approach enabled a rapid generation of a process model.
Keywords: automated reaction system; C–H activation; design of experiments; flow chemistry; process modelling; self-optimisation
The development of manufacturing processes to produce functional molecules, such as pharmaceuticals or fine chemicals, often relies on experience and trial-and-error, rather than on mechanistic process models [1]. The only reason for this is the complexity of chemistry and the duration of time required for the development of good mechanistic models. A game changer in this area is the recently emerged field of automated continuous-flow experiments driven by algorithms for sequential design of experiments (DoE), which significantly reduce the effort in running routine reactions and generating data for optimisation of reaction conditions [2-7]. An illustration of the concept is shown in Figure 1.
Figure 1: A framework of closed-loop or self-optimisation combining smart DoE algorithms, process analytics, chemoinformatics and automated reactor systems.
Figure 1: A framework of closed-loop or self-optimisation combining smart DoE algorithms, process analytics, ...
Mainly, self-optimisation experimental platforms are used to rapidly obtain optimal reaction conditions using either flow [8-10] or batch experiments [11]. In these cases, the optimisation is driven by the global or target optimisation towards the selected performance criteria. This is rather different from the objectives of model development. In the case of model development, the key criterions are the ability of a model to describe the observed experimental data and to predict process performance under unseen conditions. Thus, experiments required for model development are frequently what would be considered as 'bad' experiments in the case of optimisation.
A model-development framework has been demonstrated on the basis of an automated microreactor experimental system for several complex reactions [8,12,13]. The framework uses factorial design of experiments to obtain an initial data set for parameter estimation, followed by an iterative search with online model discrimination and parameter estimation, guided by D-optimal design. In a different approach, transient data from continuous-flow experiments were used to identify parameters of a known mechanistic scheme to discriminate between several alternative model structures and to identify model parameters, but no specific design of experiments method was used [14].
The framework proposed in the present publication is using a model-based design of experiments method (MBDoE) [15-17], which incorporates the model with its parameters, as well as details of the experimental setup, such as measurement accuracy and experimental limitations, to design the most informative experiments. This approach requires some model structures to be known a priori which may restrict the methodology to reactions with known mechanism, or to empirical parametric models. A discussion of how a priori knowledge of chemistry, i.e., reaction mechanisms, is included in self-optimisation and model-development frameworks is not well documented in the literature. Very recently we have shown that a priori knowledge in the form of density functional theory level (DFT) mechanistic calculations can be used to propose process models and to perform in silico design of novel flow processes [18]. In this publication, we present an extension of this methodology, in which an initial process model is developed through a MBDoE methodology coupled with an automated self-optimisation flow system.
This approach was tested on the Pd-catalysed C–H activation reaction of 1 resulting in the formation of an aziridine 2 (Scheme 1) [19]. The reaction was recently discovered [20] and its mechanism studied [21] and later proven [18]. A simplified mechanism is shown in Scheme 2. In the reaction of interest, the starting material 1, an aliphatic secondary amine, is converted into an intermediate species B in a catalytic first step and consecutively transformed to product 2 in the second step, which comprises the C–H activation. In addition to the main reaction pathway, B can form the relatively unreactive resting state complex A, and compound 1 can also form a coordinated species 1∙HOAc upon protonation with a molecule of acetic acid. This limits the formation of A due to reduced concentration of 1.
Scheme 1: Catalytic reaction scheme showing C–H activation of an aliphatic secondary amine 1 to form the aziridine product 2 [19,20]. Orange rings show C–H and C–N bonds in the substrate and the product, respectively, indicating the location of the C–H activation.
Scheme 1: Catalytic reaction scheme showing C–H activation of an aliphatic secondary amine 1 to form the azir...
Scheme 2: A simplified reaction mechanism based on literature [21], showing intermediate B and the side reaction compounds 1∙HOAc and A. The key step includes the C–H activation. 1: starting material, 1∙HOAc: coordinated starting material, Pd(OAc)2: catalyst, 2: product, PhI(OAc)2: oxidant.
Scheme 2: A simplified reaction mechanism based on literature [21], showing intermediate B and the side reaction ...
Table 1 gives an overview of the a priori knowledge used in this study. Fast reaction steps were lumped into a single one, containing the critical C–H activation, and described by reaction rate constant k3 in Scheme 2. Empirical information provided constraints of process conditions, such as temperature and concentration ranges, whereas initial values of kinetic parameters were estimated based on a DFT model. Further details can be found in Supporting Information File 1.
Table 1: Details of information considered as a priori knowledge in this study and source of this knowledge.
A priori knowledge
reaction mechanism, concentration constraints of species due to degradation of starting material and product. [21]
Gibbs free energies of reaction, obtained from DFT study. [18]
target values based on best results from previous experimental study. [18]
physical constraints (maximum oxidant concentration to prevent crystallisation, maximum temperature to prevent excessive catalyst decomposition). empirical
technical details of experimental set-up (e.g., variance of gas chromatography (GC) used in variance model for MBDoE, minimum and maximum flow rates). empirical
Here we demonstrate an MBDoE approach on the basis of the model structure and the initial model parameters from DFT calculations and using automated flow experiments. We then use the obtained process model to develop a surrogate model for optimisation, and compare the different methodologies: classical kinetic modeling approach, MBDoE with automated flow experiments and black-box optimisation in achieving the different objectives of the methods.
Experimental system for model development and optimisation in flow
Although a number of experimental systems for self-optimisation were reported in the literature, this number is fairly small and very few examples of using flow experiments for model development are reported [8,9]. In this study a commercial Vapourtec R2+/R4 system was used with a standard 10 mL coiled reactor. To save on expensive reagents, reagents and catalyst were injected using 2 mL sample loops, with the solvent being continuously pumped between the reaction slugs. The two employed sample loops were filled with the same reaction mixture (further information on sample preparation is given in Supporting Information File 1) to avoid potential experimental errors due to inaccuracies of generating mixtures with specific concentrations by pumps. Laminar flow through long pipes will necessarily cause dispersion, which dictates the minimum reaction slug length that can be used. This was determined experimentally, which also allowed to develop the method of detection of the reaction slugs (by a flow UV cell) and the protocol for GC sampling. A schematic depiction of the experimental system is shown in Figure 2.
Figure 2: Schematics of the automated continuous-flow system used for model development and 'black-box' sequential optimisation.
Figure 2: Schematics of the automated continuous-flow system used for model development and 'black-box' seque...
Physical model generation and refinement
The initial model structure and parameters were taken from the earlier published DFT study of the reaction [18]. Performing MBDoE in the process modelling software gPROMS [22] resulted in a design indicating the experimental conditions, the reaction times and the number of samples required in each experiment for the estimation of a particular parameter or the combination of parameters. Table 2 shows the different experiments conducted for estimation of the given parameters. Each experiment refers to a particular composition of the reaction mixture, but with various reaction times for each sample within the experiment. Neither in the MBDoE step for kj,ref nor in the step for Ea,j could an experiment be designed for the estimation of all parameters simultaneously. This is likely due to correlations between the parameters, which is common for reaction networks and consecutive reactions. To overcome this problem, sophisticated decoupling techniques and special design criteria considering direct measures of correlation could be used [23,24]. However, as shown by Franceschini and Macchietto, a simple design-by-grouping method can also yield reasonable results [25]. Following this approach experiments were designed for either a single or groups of parameters. Parameters, which showed a maximum in their normalised local sensitivity curves in the same time interval were grouped together. This is reasonable, as a sample taken in this time interval likely yields sensible data for the estimation of the respective parameters. As can be seen from Figure S9 (Supporting Information File 1), all parameters of the same type showed maximum sensitivity in approximately the same time interval. Hence, all possible combinations of single and grouped parameters were tested in the two MBDoE steps and those with the lowest correlation, maximum number of included parameters and a t-value larger than a reference t-value were selected. It is worth noting, that this method overcomes problems with parameter correlations during the experimental design for parameter subgroups and the subsequent estimation. The effects of the neglected parameter correlation may reoccur during the overall parameter estimation, but can be reduced due to the refinement of the parameters in the subgroups.
Table 2: Results of the MBDoE for kinetic parameters, showing the number of samples needed in the experiment and the statistical t-test results.
Parameter(s)
t-value
1 k0,ref 7 76.19 2.92
4 k0,ref, k2,ref, k3,ref 11 5.34, 0.03, 6.42 1.94
5 Ea,0, Ea,2, Ea,3 11 0.05, 0.04, 2.88 1.94
7 Ea,0, Ea,2 10 2.79, 17.1 2.02
The best possible design with minimum analytical effort was selected. It can be seen from Table 2 that the t-test is successful for the experiments 1–3. This is not surprising as possible correlations between the parameters are neglected by splitting them into subgroups or even singles. For the experiments 4, 5 and 6 (Table 2) not all parameters pass the t-test. The best possible experimental design was selected. Due to failed estimability analysis, no experiment design included parameters for the reaction j = 1. Experimental conditions associated with each experiment sequence are given in Supporting Information File 1, Table S4 and Table S5.
Parameter estimation and comparison of effort
For the investigated reaction in Scheme 2, Zakrzewski et al. generated and validated a kinetic model using a classical kinetic approach [18]. For this they used 38 batch experiments, each comprising approximately 10 sample points at different reaction times, which in total resulted in more than 400 sample points used for the estimation of kinetic model parameters. In contrast to that, we used MBDoE and flow experiments. As Table 2 shows, the MBDoE resulted in 8 experiments with a total of 71 samples required to determine the model parameters. These numbers highlight the benefit of MBDoE for parameter estimation, reducing the consumption of materials, cost and time associated with sample generation. Due to some failed experiments only 64 experimental sample points were used for the model development.
The parameter estimation was employed to obtain estimates of the kinetic parameters kj,ref and Ea,j, where j {0, 1, 2, 3} in a two-step procedure using standard solver settings in gPROMS. By applying the initial guesses for the parameters, each experiment was first used to estimate only the parameter for which it was designed, while keeping the others fixed at their current values. Afterwards, all experiments were included in an overall estimation with the parameter values obtained from the previous estimations as new initial guesses to account for possible parameter correlations, which were neglected by grouping the parameters. Even though no experiment design comprised the parameters for reaction j = 1 specifically, they were still included in the overall estimation to refine their initial values as much as possible. To avoid stopping the estimation at undesired local optima, several such estimation runs were performed. The final results of the obtained parameter values are shown in Table 3. The final values of parameters k1,ref and Ea,1 do not differ much from the initial guesses, which is not surprising as the estimability analysis had already predicted a weak influence of k1,ref and Ea,1 on the model output, i.e., this cannot be estimated with precision. However, this was not necessary, as the parameters do not change the model prediction. Therefore, also the very large 95% confidence interval can be explained. For all other parameters, the difference between initial guess and final value is significant, which might be caused be the simplifications employed for computing the guesses and the uncertainty of the DFT calculation in the exponentially amplified van't Hoff equation. The 95% confidence intervals for the parameters of reaction j = 0 are both one magnitude smaller than the final parameter values indicating sufficiently low uncertainty and good significance. The confidence intervals for the parameters of reaction j {2, 3} are larger than the final parameter value. However, as the values for kj,ref and Ea,j can only be positive, this indicates still some level of uncertainty in the parameters estimates. This uncertainty is further revealed by a comparison of the t-values and the reference t-values. For the overall estimation of kj,ref it was impossible to attain t-values exceeding the reference t-value, even though k0,ref comes close. Furthermore, the predicted t-values from the MBDoE, shown in Table 2, could not be reached. In the overall estimation of Ea,j three out of four parameters could not be estimated with high statistical significance. Only for Ea,0 the t-test was satisfied with a t-value close to the predicted one in Table 2. The problem of diminished statistical significance of the estimates is likely due to practical identifiability issues as the measurement data employed for the estimation was affected by experimental errors. Additionally, parameter correlation effects reappeared during the overall estimation making it more difficult to obtain useful results.
Table 3: Results of the parameter estimation showing the final values, initial guesses, 95% confidence intervals (CI) and t-values for each of the 8 parameters.
Initial guess
95% CI
t-values
k0,ref 3.019 3.035 L mol−1 s−1 ±0.396 1.403a
k1,ref 2,551,604 2,728,600 L mol−1 s−1 ±4.817∙1011 2.49∙10−6 a
k2,ref 8,591 16,997 L mol−1 s−1 ±6.282∙105 0.012a
k3,ref 0.001756 0.140378 s−1 ±8.175 0.012a
Ea,0 84,132 128,517 J mol−1 ±5.152∙104 2.495b
Ea,1 45,019 44,941 J mol−1 ±1.709∙1010 2.63∙10−6 b
Ea,2 59,508 20,995 J mol−1 ±3.525∙106 0.006b
aRefers to tref = 1.725 and brefers to tref =1.688.
Figure 3 shows a comparison of the simulated model response incorporating the final parameter values vs the experimentally observed product concentrations for the experiments 4 and 8 of the MBDoE in Table 2. These show a reasonably good model fit. Only experiments suggested by MBDoE were conducted to generate data for parameter estimation. Thus, as the method did not suggest samples to be taken at reaction times longer than 50 minutes in experiment 4, Figure 3a, or between zero and 24 minutes in experiment 8, Figure 3b, there was no data collected. In total, 8 such experiments were conducted, four for each of the two parameter types (shown in Supporting Information File 1).
Figure 3: Results of experiments from the MBDoE in Table 2, conducted for parameter estimation, and their corresponding simulated model responses based on the estimated parameters. The only experiments conducted were those calculated by the MBDoE, defined by the sampling times and recipes suggested. (a) Experiment 4 conducted at a reference temperature of 70 ºC to estimate rate constants. (b) Experiment 8 used for determining activation energies, at 75 ºC.
Figure 3: Results of experiments from the MBDoE in Table 2, conducted for parameter estimation, and their correspond...
Despite the remaining uncertainty in some of the parameters, indicated by the large 95% confidence intervals, the quality of model prediction was considered to be good-enough for the purpose of in silico training of the smart DoE algorithm for target optimisation. Thus, the final parameter values in Table 3 were accepted and used in the model employed for the subsequent in silico target optimisation steps.
Improvement of process conditions using an a priori model and in silico optimisation
Access to automated experimental systems allows to perform black-box sequential optimisation using sequential DoE algorithms. However, if a process model is available, there exist two more options for optimisation: optimisation using the available process model directly, or optimisation using a surrogate model. The latter is frequently used in expensive computer experiments, and in the case of large-scale process simulations, when evaluations of process models is computationally too expensive. In the case of our test reaction the MBDoE approach enabled us to develop a reasonably good process model in a small number of flow experiments. We can use this process model to perform optimisation. Although this model is not expensive to evaluate we resorted to building a surrogate model, which allowed us to use an efficient target optimisation algorithm we have demonstrated earlier [11,26]. Target optimisation is significantly easier compared to global optimisation as the optimiser is allowed to stop after finding only few conditions that satisfy a target, compared to the problem of finding a global optimal.
The target functions and their corresponding values in the optimisation presented below were the yield, y, of 2 defined in Equation 2, with a desired value of 100%, and a specific cost function given in Equation 3 with a target value of 2,108 £ h kg−1. This cost function was selected to account for the material and energy consumption, and the reaction time with respect to the amount of product 2. Thus, costel and costi represent the electricity and material costs, whereas Wel and mi,0 denote the consumed electricity and materials, respectively. The product output with
combines the amount of product 2 with the necessary reaction time. The cost target value was derived based on a reaction with the shortest reaction time and highest yield, identified from a series of prior experiments (see Table S2 and Figure S5 in Supporting Information File 1 for further details) [18].
The surrogate model was trained on the 64 experimental points obtained for model parameter identification. In case of an unknown mechanism, the experiments for mechanism discovery could also be included in the training set, which leads to a data-efficient approach. However, they might not be the most informative for training the surrogate. The output of the surrogate model is the suggested next experiment to perform, which was used as an input to the process model. Upon reaching the targets in silico after a number of optimisation iterations, the successful input conditions were verified experimentally, to confirm the predictions.
The in silico results for the optimisation target cost and yields are shown in Figure 4 and Table 4. It can be seen that out of 174 iterations, several points were very close to the targets and two optimal sets of conditions satisfy both targets (these iterations are marked with stars). The simulation results of the two identified successful sets of conditions both predict a yield of 98.72%. The experimentally obtained yields in the validation of the two sets of conditions were determined to be >99%, which is caused by the uncertainty of the applied GC method including sample preparation, which lead to ±1% variance in the yield value. The algorithm is not expected to exhibit fast convergence, since it is exploring the reaction space to develop a better statistical model. The physical experiments performed thereafter confirmed prediction of the successfully attained target values. Hence, only the successful predicted experimental conditions Xopt were tested in real experiments, which saved time, cost and material, otherwise associated with testing false predicted reactions.
Figure 4: Results of in silico iterations of the multi-objective active learner (MOAL) algorithm [26]. Each iteration produces two resulting values, one for yield and one for the cost function. Targets were 100% for yield and 2,108 k£ h kg−1 for the cost function. Green stars signify experiments that satisfy the selected targets.
Figure 4: Results of in silico iterations of the multi-objective active learner (MOAL) algorithm [26]. Each itera...
Table 4: Experimental conditions and results of the experimental validation of the two successful predictions that met the target specifications.a
T [ºC]
treaction [min]
Racid-1
Rcat-1
Yield [%]
Cost [k£ h kg−1]
66 107 9 46.1 0.077 >99
(98.72) 1.79
174 101 10 41.4 0.077 >99
aRacid-1: ratio of the concentrations of acetic acid and compound 1, Rcat-1: ratio of the concentrations of catalyst and compound 1. Values in brackets are the predicted values by the physical model. Further information regarding the experimental conditions is given in Supporting Information File 1, Table S6.
The cost target was more difficult to reach than the yield target, which was already fulfilled after the first iteration and later for most of the proposed experiments. This can be seen by the large fluctuation in the cost values for the proposed experiments over the 174 iterations. One possible reason might be the structure of the cost function with many input variables and strong sensitivity with regards to product amount and reaction time. The reaction conditions shown in Table 4 indicate relatively similar conditions with respect to temperature, reaction time as well as acid and catalyst loading, and do not at this stage demonstrate a case of multimodality.
We have also applied the same target optimisation algorithm for direct improvement of this chemical system as a 'black-box' sequential optimisation. For this approach five experiments were used as a training set, using Latin Hypercube space filling algorithm; the results are shown in Supporting Information File 1, Table S7 (Expt. 1–5). Figure 5 shows results of the initial set of experiments on the left side of the plot. It is noted that two of the five training experiments did incidentally meet the target value for yield at the conditions set. All outputs, regardless whether they reached the desired target values, were included into the training set and the algorithm was re-trained on the updated set once more. This iterative process was conducted six times. After a single iteration, the results of the first suggested set of conditions were already more promising than any of the training points. The target for yield has been met, as perhaps expected as it was optimal for two of the training examples as well, and the value for cost has been significantly reduced, getting closer to the pre-defined target. Whilst it is observed that experiments 7 and 9 have a large margin of error with regards to the targets, this is due to the exploration function of the algorithm.
Figure 5: Results of the optimisation driven by a statistical algorithm and in the absence of a physical process model. Results of the training set and of sequential optimisation are shown. Information regarding the experimental conditions is given in Supporting Information File 1, Table S7.
Figure 5: Results of the optimisation driven by a statistical algorithm and in the absence of a physical proc...
Four of the new suggested experimental conditions achieved high yields with the accepted accuracy and had lower cost scores than even the lowest that was found in the initial set. The recipe at the 6th and final iteration following the training set corresponds to a temperature of 102 ºC, reaction time of 15 minutes, acid–substrate ratio of 27.85 and catalyst–substrate ratio of 0.084. With these final conditions, the algorithm converged as both targets were met simultaneously for the first time.
Comparison of the two optimisation approaches
In this work we used the automated flow set-up combined with MBDoE approach to rapidly develop a good-enough process model, which was then used to train a surrogate model and perform a target optimisation. This resulted in two new sets of reaction conditions which both provided better results than the ones obtained previously. In our second approach we used the experimental flow system as a 'black-box' and employed the same statistical target optimisation algorithm to experimentally find the conditions that satisfy the set targets. In this specific case the 'black-box' target optimisation is extremely efficient and found suitable reaction conditions within a very small number of experiments. However, no knowledge about the system was generated. The approach of using automated flow experiments in combination with MBDoE allows to minimise experimental effort compared to classical kinetic studies, but results in a process model that can be directly used in optimisation. This approach is clearly preferred for the cases when a model structure could be identified. There would be many practical cases when due to complexity of chemistry it would be unrealistic to develop a physical model within a reasonable timescale. Then the 'black-box' approach is a viable option.
In conclusion, we present an approach of using model-based design of experiments, based on the first principles model structure, in automated flow experiments, and coupling of the process models with a statistical machine learning based target optimisation. We demonstrate that MBDoE offers a significant potential for efficient and rapid generation of process models in flow experiments. The developed process model enables in silico training of the optimisation surrogate model and cost effective determination of process conditions that satisfy the set performance targets. While this is certainly faster than physical experiments, we also show that the self-optimisation works well when trained on a space-filling method to avoid many necessary experiments for model generation. This results in a set of experiments that reach the pre-defined targets in six iterations, although it does not provide any process knowledge. Hence, a combined approach, leading to generation of a surrogate model and a physical model has unique advantages of rapid optimisation and simultaneous generation of process knowledge.
Reaction system and analysis
All reactions were performed in continuous segmented flow using the R2+/R4 system by Vapourtec, see Figure 2. The reaction mixture segments and the solvent were pumped through a 10 mL polytetrafluoroethylene (PTFE) tubular reactor and quenched in an ice bath at the reactor outlet. A minimum segment volume of 2 mL was found to be necessary to avoid dispersion effects in the centre of the segment. The segments were detected using the in-line UV cell, which allowed automatic triggering of the GC (Agilent 6850) to sample the segment at its centre. The flow GC vial was designed by Daniel Geier and Ralf Thelen from the Institut für Technische und Makromolekulare Chemie (ITMC) at RWTH Aachen University and manufactured in-house in Cambridge. GC analysis was performed for product 2 with an accuracy of ±0.0005 mol L−1. Due to the decomposition of 1∙HOAc, B and A to 1 during sampling following a reaction, the reaction mixture was analysed for species 1 prior to beginning a reaction, with an accuracy of ±0.0003 mol L−1. All communication between instruments was custom-coded in LabVIEW and communication with Vapourtec was via its proprietary Excel interface. Further details of the set-up and the on-line auto-sampling strategy, as well as a protocol for sample preparation and experiment execution are provided in Supporting Information File 1.
Toluene (Sigma-Aldrich, anhydrous, 99.8%), acetic acid (Sigma-Aldrich, ReagentPlus, ≥99.0%), acetic anhydride (Sigma-Aldrich, ReagentPlus, ≥99.0%), 1,1,2,2-tetrachloroethane (Sigma-Aldrich, reagent grade, ≥98.0%), palladium(II) acetate (Sigma-Aldrich, reagent grade, 98.0%, no further purification steps were applied, the same batch was used for all experiments, stored according to manufacturer's suggestions), (diacetoxyiodo)benzene (Sigma-Aldrich, ≥98.0%) were all used as received. 3,3,5,5-Tetramethylmorpholin-2-one was synthesised as described elsewhere [18].
Model development and analysis
A process model was developed on the basis of the previously discussed reaction mechanism and DFT estimates of the rate constants (see Table S1, Supporting Information File 1) [18]. The kinetic model was developed as a well-stirred tank reactor. The model includes kinetic equations, energy and material balances as well as constitutive equations. A lumped model was created as each reaction segment was assumed to be ideally mixed; thus no excess volume was considered for mixing. As the reaction takes place in a homogeneous liquid phase, and as the tube dimensions are small, there was no need to account for mass transfer effects. For simplicity, the slightly endothermic nature and hence the heat of reaction for the C–H activation was neglected.
The temperature effect in the reaction steps shown in Scheme 2 were expressed using the Arrhenius equation in its re-parametrised form, shown in Equation 4 and Equation 5 [27,28]. This facilitates subsequent parameter estimation by decoupling the kinetic parameters of each reaction. Assuming equilibrium for the three reversible reaction steps in Scheme 2, the 8 kinetic parameters of interest in this reaction sequence were the reference reaction rate constants (kj,ref) and activation energies (Ea,j), where j {0, 1, 2, 3,} given by Equation 4 and Equation 5).
The temperature-dependent volumetric reaction rates of compound i in the reaction j were modelled by Equation 6, in which νi,j are the stoichiometric coefficients of a compound i in the reaction j, ci denotes the molar concentration of the compound i, kj represents the reaction rate constant of the reaction j and ni,j gives the order of the reaction. All reaction steps in Scheme 2 were found to be first order with respect of the participating compounds, except for the oxidant PhI(OAc)2 which is of zero-order dependency [21].
In addition, the overall and the component mole balances, Equation 7 and Equation 8, were written for the process model, where V denotes the reaction volume.
The balances were constructed for a single reaction mixture segment, which was assumed to behave as a batch reactor, as samples were taken in the dispersion-free centre of the segment.
For the purpose of calculating the cost associated with heating the system, a steady state energy balance, Equation 9, was established.
were ηheat denotes an overall efficiency of conversion of electrical into thermal energy of the reaction mixture segment. This efficiency was determined experimentally for the employed reactor system by measuring the electrical power input to the Vapourtec heating system needed to increase the temperature of a reaction mixture stream with a set flowrate and of known composition, thus with known molar flow and heat capacity, from ambient temperature of approx. 20 °C to a reaction temperature of 70 °C. By inserting these values into Equation 10, the value for the energy-conversion efficiency was calculated and kept constant.
To complete the process model, simple constitutive equations were applied and initial parameter values were computed. The latter were identified based on Gibbs free energies of reaction for the chemical system, which were obtained from a priori DFT calculations with an accuracy of ±7 kJ mol−1 [18]. These values were related to kinetic parameters through the exponential van't Hoff equation.
Subsequently, the model was investigated and tested for identifiability to ensure its structural soundness, i.e., that it can be used to uniquely determine its parameters. This was done using an established method, detailed elsewhere [29,30]. It is worth noting that structural identifiability is tested under the assumption of noise-free measurement data and no uncertainty of the model. Thus, it does not necessarily imply practical identifiability as the measurement data for the parameter estimation is usually superimposed by noise and errors [31]. Thereafter, an estimability analysis, based on visual inspection of the local dynamic sensitivity curves [32], confirmed that all parameters except those for reaction with j = 1 can be determined with sufficient accuracy. For this reaction step, low sensitivity of the measurable quantity, concentration of compound 2, was found (see Supporting Information File 1, Figure S9 for further details). The local dynamic sensitivity curves of the remaining parameters were used to identify the time intervals with the maximum sensitivity of the parameters (see Supporting Information File 1, Figure S9), indicating reasonable sample points to obtain sensible measurement data for parameter estimation.
The physical model was implemented in gPROMS. The D-optimality criterion was selected to refine the model using the model-based design of experiments (MBDoE) and parameter estimation suite of gPROMS by employing standard solver settings. Further details on this procedure are given in Supporting Information File 1 together with constraints employed for the experiment control variables in the MBDoE optimisation problem (Equations S8–S21, Supporting Information File 1).
The experimental design and parameter estimation strategy included two steps. In the first step, experiments were designed at a reference temperature Tref = 70 ºC to eliminate Ea,j as a parameter in each reaction j, see Equation 4 and Equation 5). A t-test was used as a statistical method for judging the increase in precision of the predicted parameter and, hence, the statistical significance of the estimates which is attained if the predicted t-value exceeds a reference value tref. The performed experiments would therefore generate data to enable estimation of the reference reaction rate constants kj,ref independent of Ea,j. After these parameters have been determined to sufficient accuracy, they were kept constant and experiments were designed at temperatures different from Tref in the second step to obtain data for the subsequent estimation of Ea,j. The combination of MBDoE and subsequent parameter estimation was repeated twice in both steps to increase parameter precision, whilst keeping the experimental effort low. This was necessary to ensure good parameter improvement in the case of poor initial parameter guesses.
Algorithm for statistical optimisation
One key element of the proposed framework for self-optimisation of reaction conditions is the statistical multi-target optimisation method. For this purpose, the multi-objective active learner (MOAL) algorithm coded in the numerical computing environment MATLAB (v.2015b) was adopted, which combines Gaussian processes as a surrogate model with the concept of mutual information and a genetic algorithm [26]. To apply it to the chemistry under investigation, the algorithm was provided with specified targets Ytarget for the optimisation and defined experiment design variables X = [T, treaction, c1,0, cAcOH,0, ccat,0] as the degrees of freedom. The latter were bounded by the corresponding constraints (see Supporting Information File 1 for details). A set of 2,000 randomly generated candidate solutions, uniformly distributed within the allowed design space was employed, because the algorithm works with discrete evaluation techniques for the optimisation. The initial training set [Xtr, Ytr(Xtr)] contained the input variables Xtr and measurements of the corresponding target values Ytr(Xtr), which were adopted from the MBDoE approach. It was updated continuously, so that at each iteration of the algorithm, a new training point was added. Binary Gaussian process classification was included into the algorithm to account for feasible and infeasible solutions in X, hence learning the promising regions of the design space and evolving some internal process knowledge stepwise with each new iteration. An infeasible solution could occur if an experiment fails in the laboratory. Thus, each point in the training was equipped with one more value, providing information on its feasibility (1) or infeasibility (−1). The current limitation of this approach is that it does not automatically distinguish if the experiment failure identifies the region of design space where the specific reaction is not working, or the failure was due to a random fluke and the same experiment, if repeated, would be successful. There is a way of dealing with this problem, which we will implement, when the algorithm will be published.
After classification of the candidate solutions and training samples, the Gaussian process was trained by fitting the so called hyperparameters of its covariance and likelihood functions by maximising the marginal likelihood with a conjugate gradient optimiser. In this way, a statistical surrogate model was created to provide an approximated response surface for the underlying problem of investigation. This response surface was used to evaluate the feasible candidate solutions and subsequently identify a best solution with corresponding experimental conditions . As only discrete candidate solutions were evaluated by this method, the Non-dominated Sorting Genetic Algorithm-II (NSGA-II) was employed for perturbation of to explore the neighbourhood for further refinement of the generated solution. The resulting combination of input and output conditions were subsequently assessed against the targets. If the targets were attained within acceptable tolerance, the results were accepted and the statistical algorithm converged. Otherwise, the results were fed back into the training set and a new iteration was started.
In silico optimisation
The in silico optimisation process was initiated by first training the MOAL algorithm (with the data generated for the purpose of parameter estimation of the physical model described above). This enables the algorithm to construct a statistical surrogate model and suggest a set of experimental conditions which might give results that are closer to the targets. This set is then fed into the physical model to predict what outputs are expected as though the experiment had been conducted. This process is repeated until the required tolerance is reached. A margin of tolerance was included, such that results within 10 and 1.5% of the target values for cost and yield, respectively, were taken as successful, due to the expected difficulty in achieving those targets. Subsequently, the successful reaction conditions found in silico were tested experimentally. In the case of failure, the experimental results were fed back into the algorithm and the target optimisation loop starts again. Otherwise, the algorithm converged and suitable experimental conditions were identified.
In principle, standard optimisation approaches employing the physical model directly to identify optimum operating conditions could be used, but would give poor results in case of uncertainty and restricted validity of the physical model. However, by applying the MOAL algorithm, technical difficulties regarding multi-objective global optimisation can be overcome. Furthermore, the proposed optimisation procedure can deal with potential uncertainties and restricted validity in the physical model. This is achieved by the machine learning functionalities of the MOAL algorithm, which retrain the algorithm not just on the physical model but also on unsuccessful experiments, erroneously predicted as suitable by the physical model. Thus, it obtains information beyond the capabilities of the physical model. An additional point is, that the MOAL algorithm proved to be especially suited for the detection of multiple possible solutions to indicate multimodality, which is challenging for standard optimisation methods, but can yield valuable information in the current case.
Statistical closed-loop optimisation
Statistical target optimisation was performed using the MOAL algorithm. Latin hypercube sampling (LHS) was used to discretise the experimental space initially. An overview of this sampling strategy is laid out for one variable in Figure S10 in Supporting Information File 1. A uniform distribution was taken for the input variables and hence the cumulative distribution function was linear. In this case k is five and N was the number of initial experiments to be conducted, which was decided to be five. This number of initial training experiments was selected as in the previous application of the MOAL algorithm for laboratory optimisation [11], the same number of training samples was applied for an optimisation of two targets, but with a 14 dimensional design space, instead of five dimensions in the current case. Still, the algorithm converged within 17 iterations (including the five training experiments). Hence, we assumed, that for the current work with less design space dimensions, the algorithm would learn the response surface as fast as it was the case for its previous application.
Table 5: Nomenclature.
ηheat heat efficiency –
νi,j stoichiometric coefficient of component i in reaction j –
A pre-exponential factor in Arrhenius equation case dependent
cost investigated target value ₤ h kg−1
costel, costi cost of electricity, cost of material component i case dependent
ci,0 initial component concentration mol L−1
average molar heat capacity J mol−1 K−1
Ea,j activation energy of reaction j J mol−1
kj,ref reference rate of reaction in reaction j case dependent
mi, mi,0 mass of component i, initial mass of component i kg s−1
ni, n0 number of moles of component i, total number of moles initially mol
Pel,Vapoutec electrical power uptake of Vapourtec flow system W
Qheat heat J
R universal gas constant J mol−1 K−1
reaction rate of component i in reaction j mol L−1 s−1
t, treaction time, reaction time s, min
T, Tref, T0 temperature, reference temperature, initial temperature °C
V volume of system L
Wel electrical work J
X experiment design variables –
proposed suboptimal inputs –
proposed optimal inputs –
Xtr input training matrix –
y yield %
Ytarget target outputs matrix –
proposed suboptimal outputs –
proposed optimal outputs –
Ytr output training matrix –
Supporting Information File 1: Details of experimental set-up and protocols, table of a priori data taken from our previous study, details of model development, MBDoE results, and LHS results.
Yehia Amar is grateful to UCB Pharma for his Ph.D. scholarship. Jacek Zakrzewski is grateful to the Department of Chemical Engineering and Biotechnology for funding his Ph.D. scholarship within Catalysis@Cambridge programme.
Dolas, R. T.; Siddheshwar, S. S.; Somwanshi, S. B.; Merekar, A. N.; Godge, R. K.; Pattan, S. R. Int. J. Curr. Trend. Pharm. Res. 2013, 5, 137–143.
Sans, V.; Cronin, L. Chem. Soc. Rev. 2016, 45, 2032–2043. doi:10.1039/C5CS00793C
Ley, S. V.; Fitzpatrick, D. E.; Myers, R. M.; Battilocchio, C.; Ingham, R. J. Angew. Chem., Int. Ed. 2015, 54, 2–17. doi:10.1002/anie.201410932
Houben, C.; Lapkin, A. A. Curr. Opin. Chem. Eng. 2015, 9, 1–7. doi:10.1016/j.coche.2015.07.001
McMullen, J. P.; Jensen, K. F. Org. Process Res. Dev. 2010, 14, 1169–1176. doi:10.1021/op100123e
McMullen, J. P.; Stone, M. T.; Buchwald, S. L.; Jensen, K. F. Angew. Chem., Int. Ed. 2010, 49, 7076–7080. doi:10.1002/anie.201002590
McMullen, J. P.; Jensen, K. F. Annu. Rev. Anal. Chem. 2010, 3, 19–42. doi:10.1146/annurev.anchem.111808.073718
Reizman, B. J.; Jensen, K. F. Acc. Chem. Res. 2016, 49, 1786–1796. doi:10.1021/acs.accounts.6b00261
Return to citation in text: [1] [2] [3]
McMullen, J. P.; Jensen, K. F. Org. Process Res. Dev. 2011, 15, 398–407. doi:10.1021/op100300p
Parrott, A. J.; Bourne, R. A.; Akien, G. R.; Irvine, D. J.; Poliakoff, M. Angew. Chem., Int. Ed. 2011, 50, 3788–3792. doi:10.1002/anie.201100412
Houben, C.; Peremezhney, N.; Zubov, A.; Kosek, J.; Lapkin, A. A. Org. Process Res. Dev. 2015, 19, 1049–1053. doi:10.1021/acs.oprd.5b00210
Reizman, B. J.; Jensen, K. F. Org. Process Res. Dev. 2012, 16, 1770–1782. doi:10.1021/op3001838
Moore, J. S.; Jensen, K. F. Org. Process Res. Dev. 2012, 16, 1409–1415. doi:10.1021/op300099x
Hone, C. A.; Holmes, N.; Akien, G. R.; Bourne, R. A.; Muller, F. L. React. Chem. Eng. 2017. doi:10.1039/C6RE00109B
Walter, E.; Pronzato, L. Automatica 1990, 26, 195–213. doi:10.1016/0005-1098(90)90116-Y
Espie, D.; Macchietto, S. AlChE J. 1989, 35, 223–229. doi:10.1002/aic.690350206
Franceschini, G.; Macchietto, S. Chem. Eng. Sci. 2008, 63, 4846–4872. doi:10.1016/j.ces.2007.11.034
Zakrzewski, J.; Smalley, A. P.; Kabeshov, M. A.; Gaunt, M. J.; Lapkin, A. A. Angew. Chem., Int. Ed. 2016, 55, 8878–8883. doi:10.1002/anie.201602483
Return to citation in text: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
Hu, X. E. Tetrahedron 2004, 60, 2701–2743. doi:10.1016/j.tet.2004.01.042
McNally, A.; Haffemayer, B.; Collins, B. S. L.; Gaunt, M. J. Nature 2014, 510, 129–133. doi:10.1038/nature13389
Smalley, A. P.; Gaunt, M. J. J. Am. Chem. Soc. 2015, 137, 10632–10641. doi:10.1021/jacs.5b05529
Return to citation in text: [1] [2] [3] [4]
Process Systems Enterprise. gPROMS. https://www.psenterprise.com/products/gproms.
Franceschini, G.; Macchietto, S. AIChE J. 2008, 54, 1009–1024. doi:10.1002/aic.11429
Franceschini, G.; Macchietto, S. Ind. Eng. Chem. Res. 2008, 47, 2331–2348. doi:10.1021/ie071053t
Franceschini, G.; Macchietto, S. Ind. Eng. Chem. Res. 2007, 46, 220–232. doi:10.1021/ie060758c
Peremezhney, N.; Hines, E.; Lapkin, A.; Connaughton, C. Eng. Optim. 2014, 46, 1593–1607. doi:10.1080/0305215X.2014.881997
Asprey, S. P.; Naka, Y. J. Chem. Eng. Jpn. 1999, 32, 328–337. doi:10.1252/jcej.32.328
Agarwal, A. K.; Brisk, M. L. Ind. Eng. Chem. Process Des. Dev. 1985, 24, 203–207. doi:10.1021/i200028a034
Asprey, S. P.; Macchietto, S. Comput. Chem. Eng. 2000, 24, 1261–1267. doi:10.1016/S0098-1354(00)00328-8
Grewal, M.; Glover, K. IEEE Trans. Autom. Control 1976, 21, 833–837. doi:10.1109/TAC.1976.1101375
Galvanin, F.; Ballan, C. C.; Barolo, M.; Bezzo, F. J. Pharmacokinet. Pharmacodyn. 2013, 40, 451–467. doi:10.1007/s10928-013-9321-5
McLean, K. A. P.; McAuley, K. B. Can. J. Chem. Eng. 2012, 90, 351–366. doi:10.1002/cjce.20660
18. Zakrzewski, J.; Smalley, A. P.; Kabeshov, M. A.; Gaunt, M. J.; Lapkin, A. A. Angew. Chem., Int. Ed. 2016, 55, 8878–8883. doi:10.1002/anie.201602483
27. Asprey, S. P.; Naka, Y. J. Chem. Eng. Jpn. 1999, 32, 328–337. doi:10.1252/jcej.32.328
28. Agarwal, A. K.; Brisk, M. L. Ind. Eng. Chem. Process Des. Dev. 1985, 24, 203–207. doi:10.1021/i200028a034
21. Smalley, A. P.; Gaunt, M. J. J. Am. Chem. Soc. 2015, 137, 10632–10641. doi:10.1021/jacs.5b05529
1. Dolas, R. T.; Siddheshwar, S. S.; Somwanshi, S. B.; Merekar, A. N.; Godge, R. K.; Pattan, S. R. Int. J. Curr. Trend. Pharm. Res. 2013, 5, 137–143.
References 8,12,13
8. Reizman, B. J.; Jensen, K. F. Acc. Chem. Res. 2016, 49, 1786–1796. doi:10.1021/acs.accounts.6b00261
12. Reizman, B. J.; Jensen, K. F. Org. Process Res. Dev. 2012, 16, 1770–1782. doi:10.1021/op3001838
13. Moore, J. S.; Jensen, K. F. Org. Process Res. Dev. 2012, 16, 1409–1415. doi:10.1021/op300099x
Go to references 8,12,13
11. Houben, C.; Peremezhney, N.; Zubov, A.; Kosek, J.; Lapkin, A. A. Org. Process Res. Dev. 2015, 19, 1049–1053. doi:10.1021/acs.oprd.5b00210
9. McMullen, J. P.; Jensen, K. F. Org. Process Res. Dev. 2011, 15, 398–407. doi:10.1021/op100300p
10. Parrott, A. J.; Bourne, R. A.; Akien, G. R.; Irvine, D. J.; Poliakoff, M. Angew. Chem., Int. Ed. 2011, 50, 3788–3792. doi:10.1002/anie.201100412
19. Hu, X. E. Tetrahedron 2004, 60, 2701–2743. doi:10.1016/j.tet.2004.01.042
20. McNally, A.; Haffemayer, B.; Collins, B. S. L.; Gaunt, M. J. Nature 2014, 510, 129–133. doi:10.1038/nature13389
26. Peremezhney, N.; Hines, E.; Lapkin, A.; Connaughton, C. Eng. Optim. 2014, 46, 1593–1607. doi:10.1080/0305215X.2014.881997
2. Sans, V.; Cronin, L. Chem. Soc. Rev. 2016, 45, 2032–2043. doi:10.1039/C5CS00793C
3. Ley, S. V.; Fitzpatrick, D. E.; Myers, R. M.; Battilocchio, C.; Ingham, R. J. Angew. Chem., Int. Ed. 2015, 54, 2–17. doi:10.1002/anie.201410932
4. Houben, C.; Lapkin, A. A. Curr. Opin. Chem. Eng. 2015, 9, 1–7. doi:10.1016/j.coche.2015.07.001
5. McMullen, J. P.; Jensen, K. F. Org. Process Res. Dev. 2010, 14, 1169–1176. doi:10.1021/op100123e
6. McMullen, J. P.; Stone, M. T.; Buchwald, S. L.; Jensen, K. F. Angew. Chem., Int. Ed. 2010, 49, 7076–7080. doi:10.1002/anie.201002590
7. McMullen, J. P.; Jensen, K. F. Annu. Rev. Anal. Chem. 2010, 3, 19–42. doi:10.1146/annurev.anchem.111808.073718
31. Galvanin, F.; Ballan, C. C.; Barolo, M.; Bezzo, F. J. Pharmacokinet. Pharmacodyn. 2013, 40, 451–467. doi:10.1007/s10928-013-9321-5
32. McLean, K. A. P.; McAuley, K. B. Can. J. Chem. Eng. 2012, 90, 351–366. doi:10.1002/cjce.20660
15. Walter, E.; Pronzato, L. Automatica 1990, 26, 195–213. doi:10.1016/0005-1098(90)90116-Y
16. Espie, D.; Macchietto, S. AlChE J. 1989, 35, 223–229. doi:10.1002/aic.690350206
17. Franceschini, G.; Macchietto, S. Chem. Eng. Sci. 2008, 63, 4846–4872. doi:10.1016/j.ces.2007.11.034
14. Hone, C. A.; Holmes, N.; Akien, G. R.; Bourne, R. A.; Muller, F. L. React. Chem. Eng. 2017. doi:10.1039/C6RE00109B
29. Asprey, S. P.; Macchietto, S. Comput. Chem. Eng. 2000, 24, 1261–1267. doi:10.1016/S0098-1354(00)00328-8
30. Grewal, M.; Glover, K. IEEE Trans. Autom. Control 1976, 21, 833–837. doi:10.1109/TAC.1976.1101375
References 8,9
Go to references 8,9
25. Franceschini, G.; Macchietto, S. Ind. Eng. Chem. Res. 2007, 46, 220–232. doi:10.1021/ie060758c
22. Process Systems Enterprise. gPROMS. https://www.psenterprise.com/products/gproms.
23. Franceschini, G.; Macchietto, S. AIChE J. 2008, 54, 1009–1024. doi:10.1002/aic.11429
24. Franceschini, G.; Macchietto, S. Ind. Eng. Chem. Res. 2008, 47, 2331–2348. doi:10.1021/ie071053t
Ian R. Baxendale, Marcus Baumann and Richard Bourne
Biomimetic molecular design tools that learn, evolve, and adapt
David A Winkler
Continuous N-alkylation reactions of amino alcohols using γ-Al2O3 and supercritical CO2: unexpected formation of cyclic ureas and urethanes by reaction with CO2
Emilia S. Streng, Darren S. Lee, Michael W. George and Martyn Poliakoff
Selective formation of a zwitterion adduct and bicarbonate salt in the efficient CO2 fixation by N-benzyl cyclic guanidine under dry and wet conditions
Yoshiaki Yoshida, Naoto Aoyagi and Takeshi Endo
© 2017 Echtermeyer et al.; licensee Beilstein-Institut.
Echtermeyer, A.; Amar, Y.; Zakrzewski, J.; Lapkin, A. Beilstein J. Org. Chem. 2017, 13, 150–163. doi:10.3762/bjoc.13.18

redpajama_set_name: RedPajamaCommonCrawl


Gift For Her, Brown And Orange African Print Bag and Jewelry Set is beautiful. This is the perfect gift for mom or a special lady in your life. For a wife, girlfriend, bridesmaid or co-worker, each of them will love this matching clutch and jewelry set.


This gentle walk starts from the Stableyard and takes you across a meadow into Timm's Grove - our bluebell wood.
This scenic walk takes in the Heart of England Forest and the Arden Way.
As well as the dovecote, walkers will find three historic churches on this moderate circular walk.
This walk takes you to a beautiful bluebell wood where a carved clock can be found.


Hungry for books? Join the Eric Carle Museum of Picture Book Art in celebrating the 50th birthday of The Very Hungry Caterpillar! Hear from a Carle Educator about the museum and its programs, learn about Eric Carle's collage process, and explore the making of one of the most beloved children's books of all time!


Take your event to the next level. From intimate private parties to large corporate galas, Rmax will give your guests an unparalleled experience of world-class magic, mind reading, and laughter. They'll never forget it—and they won't stop talking about it.
Rmax was self-taught from the age of 6 and at 15 he became one of the youngest ever invited to perform at the Magic Castle in Hollywood, an exclusive club for magicians. Today he's known for demonstrating expert sleight-of-hand magic and mentalism for discerning guests nationwide.
His award-winning presentations have been featured repeatedly on Fox's Masters of Illusion. And as an in-demand Los Angeles magician for hire, Rmax is celebrated for his creative approach and professional pedigree. With a dry wit and charming banter, he has become the preferred performer at upscale corporate and private events.
"Can you open my next show?
Do you want to upgrade your cocktail hour or reception and make it truly memorable? Rmax's engaging sleight-of-hand magic and mind reading is the perfect icebreaker with close up effects happening in your guests' hands for an unbelievable experience that will leave them wanting more.
Rmax's dynamic and jaw-dropping stage presentations will blow your guests' minds. His interactive stage show is the ideal after-dinner entertainment to cap off your event. No corny tricks from the 70s, no inappropriate humor. Rmax's show simply leaves guests questioning the limits of what is possible?


text:
Citrix employees in Dublin give back to their community
Chris Richter
At Citrix, volunteering is core to our culture. Giving back in the communities where we work and live is part of who we are and what we do. In fact, we provide employees with two days off each year to volunteer with a nonprofit organization of their choice. That's in addition to our corporate giving program, which provides grant dollars and matches employee donations, and our myriad other global volunteer programs.
Recently, Citrix employees Evin Scully, Asif Syed, Antoin Carroll, and Richard Mann volunteered with Merchants Quay Ireland (MQI), a Dublin, Ireland, volunteer organization that provides services to the homeless and those who are struggling with drug addiction and mental illness. This includes everything from access to dentists and doctors to showers, clothes, and an overnight shelter. The Citrix employees helped the MQI staff distribute meals and snacks and prepare for the evening's dinner service.
"It was so busy, with everyone coming through and the staff getting ready for the many, many people who come in at night for a meal," said Evin Scully, an Associate Technical Support Engineer. "I was proud to work side by side with my coworkers and do our part to pitch in and help MQI."
Giving back to our communities, like our team members in Dublin did with MQI, is just one way we come together as a global company and serve others. Learn more about our community outreach programs.
MQI recently released a short film documenting the reality of those in Ireland who are homeless or dealing from addiction and mental illness and how the organization is responding to help. Watch it below.
Preparing the next generation of engineering leaders
Think back to your school days. I bet you can recall someone who shaped the course of your life. Maybe…
Roger R Cruz
Why 250 Citrix employees learnt the harmonica
You're probably wondering about the chain of events that led to me hiring a harmonica tutor and asking him to…
Michelle Senecal de Fonseca
My Citrix Workspace story: A better way to work
I was going to start this blog by talking about the evolution of technology and how the workplace is rapidly…
Temmy Sulemon
Drawn to cities for career success, U.S. professionals now want out
Citrites scaling UK's tallest peaks (and gaming) for charity
People and technology: Driving the future of work at Citrix Synergy
Battle Bots are back at Citrix Synergy 2019!
Citrix celebrates the launch of the Citrix Cycle bikeshare program
Citrix Innovation Diaries: In pursuit of patents
Citrix named a Best Place to Work for LGBTQ Equality for the 3rd year in a row!


text:
Jurgen Klopp sends Liverpool stars key message amid title race with Man City
The Reds have dropped points against Man Utd and Everton in their last two games as the Premier League title race hots up
David MaddockNorthern football correspondent
Jurgen Klopp has urged his players to hold their nerve as the title race hots up.
After dropping points against Manchester United and Everton , Liverpool have been accused of bottling it as they bid to end a 29-year wait for the title.
But Klopp believes that if the Mersey men can stay calm while the pressure rises, they will be crowned champions in May.
The Reds entertain Burnley on Sunday just a single point behind Manchester City with nine games to go.
Bookies make City red-hot favourites to retain their crown but Klopp fancies Liverpool's chances – and says that they will resist the urge to throw caution to the wind until the last couple of matches.
Jurgen Klopp has urged his players to hold their nerves (Image: PA)
"We are not in a bad position," he said. "To cope with all situations in the season, that is the art. And if you do that you are in a position that pretty much all the other teams want to be in.
"If there is a final match and we go for it, wonderful. If there are two matches, wonderful. But we have nine matches and if we go against Burnley with all we have – and give them the chance to score – then they defend like they can, then that makes life quite uncomfortable."
Critics have said Klopp hasn't been bold enough in recent games.
After the 0-0 draw with Everton at Goodison, he exploded in the post-match press conference when quizzed about his apparent lack of ambition.
Critics have hit out at Liverpool's lack of attacking flair in recent matches (Image: Getty Images)
He remains convinced that to panic and change things at the first setback will undermine everything his squad have worked for.
"Look. I was a bit disappointed (with that question) because we don't play PlayStation football," he said.
"It is a sign of desperation to say 'try that way. Oh it doesn't work, so let's try this way.' The target is to win the game, not to go nuts in the game. That means we don't throw 11 players in their box, hope we score, and meet them at the halfway line. That is not how it works."
Liverpool have lost only one Premier League game all season (Image: PA)
Liverpool have lost only one Premier League game all season, compared to four defeats for City, but four draws in their last six have seen them knocked off top spot.
Spurs and Chelsea still have to come to Anfield, while City's most testing time will come in late April when they play Tottenham at home and Manchester United away.
Klopp hit back at suggestions he has lost faith in Kop midfielders Naby Keita and Xherdan Shaqiri, who rarely get a place in the Liverpool starting line-up.
"There are only three positions (in midfield). Somebody has to be left out but it's all good. They are all fit and we can use them all," he said. "It is about what is needed individually for the next opponent. It is not that we think about only one system."


text:
Boards Cards Dice
Best 4 Player Board Games- The Perfect Number
I've looked at several of the best 4 player board games. My top pick? Ticket to Ride.
For your information: When you buy through links on Boards Cards Dice, we may earn a commission.
Four players are the perfect number for many board games. It's an even number, and you can play individually or in two teams of two people. But deciding which game will appeal to all four people can be more challenging.
Ticket to Ride is my top pick because it's engaging, challenging, and great for playing over and over again.
In this article, I've detailed the features, pros and cons of some of the best 4 player board games. You'll be able to pick the perfect game for your next game night.
Ready to get started? Let's jump right in.
1 At a Glance
1.1 Resource Management Game
1.2 Good for a Game Night/Party
1.3 Strategy Game
1.4 Empire Building Game
1.5 Good for Young Children
2 Best 4 Player Board Game Reviews
2.1 Ticket to Ride: Best Four-Player Board Game
2.2 Star Wars Risk: Best Combat Game
2.3 Catan: Best Civilization Building Game
2.4 Small World: Best Territory Control Game
2.5 Power Grid Recharged: Best Eurogame
2.6 Pandemic: Best Cooperative Game
2.7 Once Upon a Time: Best Fairy Tale Game
2.8 Dixit: Best Storytelling Party Game
2.9 Takenoko: Best for Young Kids
2.10 Age of Civilization: Best Card-Based Civilization Game
2.11 Spy Alley: Best Deduction Game for Young Kids
2.12 Concept: Best Party Game
3 4 Player Board Game Buying Guide
4 Best Board Game for 4 Players: Last Word
Deciding among 4 player board games can be a challenge if you don't know what you're looking for. But if you know what type of game you enjoy, choosing between games is a snap. Here are a few common features of 4 player board games that make them must-haves:
Resource Management Game
Many competitive gamers enjoy games that require players to manage resources. If you want a resource management game, I'd go with Catan, Ticket to Ride, Takenoko, or Age of Civilization.
Good for a Game Night/Party
If you're planning a party, you want games that involve light strategy, a lot of player interaction, and can accommodate several players.
Dixit, Concept, and Once Upon a Time are all four-player board games that fit that description.
If your family or gaming group enjoys using brainpower to win games, you'll want a game with plenty of strategy.
Pandemic, Spy Alley, Catan, Power Grid, Small World, and Ticket to Ride all require strategic planning.
Empire Building Game
If you enjoy expanding across a territory or building an empire, look for games with that element. Ticket to Ride, Star Wars Risk, Catan, Small World, and Age of Civilization are all good choices for empire-building.
Good for Young Children
If you have a family of four with younger kids, you want a game that's family-friendly and suitable for younger players.
Simple rules, faster-paced gameplay, and wholesome themes are all better for children. Spy Alley, Dixit, Once Upon a Time, Takenoko, and Ticket to Ride are all great for kids and families.
Best 4 Player Board Game Reviews
Ticket to Ride: Best Four-Player Board Game
Playing time: 30-60 minutes
Publisher: Days of Wonder
Ticket to Ride is an award-winning adventure game with plenty of strategy and expansion. Players attempt to connect cities across the 20th century USA and build train routes to earn points.
This cross-country train adventure game features plenty of player interaction. The game begins with players collecting and playing matching train cards to claim railway routes connecting cities throughout North America.
As the game progresses, players earn points for longer train routes. Players can gain additional points if they fulfill their Destination Tickets, and the player with the longest continuous railway also gains extra points.
Even though this board game involves tactical depth, it has elegantly simple gameplay. You can easily learn the rules in 15 minutes. And since this game has high replayability, you can enjoy it for hours and hours.
If you're ready to connect destinations in other countries, multiple expansions are available.
Ticket to Ride got rave reviews from board game reviewers. They found this game to be great as an entry-level strategy game but challenging enough to be fun for advanced players.
Several customers did say that while the game pieces are of solid quality, there are a lot of them. You'll have to spend a little time setting up and breaking down the game board and pieces each time.
But overall, storing pieces is a minor issue overshadowed by the pure entertainment value of this game. It's great for families, game nights, and all types of gamers.
The easy-to-learn rules, exciting gameplay, fun train theme, and high replay value are all reasons Ticket to Wonder is such a popular game.
Fun adventure game
Good strategy
Versatile, includes variation
Has a lot of pieces to store
Star Wars Risk: Best Combat Game
Players: 2 or 4
Publisher: Hasbro
If you're a fan of Risk and Star Wars, why not have both in one fun board game? This Star Wars Risk Edition adds a sci-fi twist to this modern classic game. It can work as a head-to-head two-player game or a four-player board game.
Players begin by choosing their sides. Will they go to the dark side or fight for the Rebel Alliance? The Rebel mission is to destroy the Death Star, while the Galactic Empire seeks to defend it.
Since you are either on the Rebel or Galactic Empire side, this game is best played as two teams of two. If you have a family of four, I recommend one adult and one child on each team.
There are three stages of combat in which the side clash in epic battles. The main battle is in the center of the board, centering on the Death Star. At the same time, Luke and Vader face off on the Death Star, while Han, Chewie, and Leia are on Endor, trying to take the shield generator down.
This game includes a TIE fighter silhouette game board and good-quality miniatures. Tie fighters, X-wings, Y-wings, and B-wings are all included, and people were happy with these plastic minis.
However, the cardboard tokens, such as the one used to represent the Millenium Falcon, are not high quality. That was one of the biggest customer complaints. I personally think at this price point, some cardboard is reasonable, and nothing is stopping you from buying a small Millenium Falcon model yourself to use in the game if that matters to you.
This Star Wars edition is not as lengthy as the original Risk. The setup is faster, as well as the overall gameplay. Buyers liked that o.
They also liked the cinematic feel of the game. With the gameplay happening in the final scenes from Return of the Jedi, there's a strong correlation to the movies, which adds to the fun.
If you like tactical combat games and enjoy Star Wars, this is a great game for you. And since it's family-friendly, this is perfect for a family of four.
Cinematic feel
Simple rules
Cardboard tokens are flimsy
Needs exactly 2 or 4 players
Catan: Best Civilization Building Game
Playing time: 60+ minutes
Publisher: Catan Studios
Catan is one of the most popular tabletop games in recent years, and it's one of my top four player games. In this board game (formerly called Settlers of Catan), players trade, build and settle the fictional island of Catan.
Players gain resources, buy development cards, and establish cities across the island, all in an attempt to achieve victory points. The first player to achieve 10 victory points is the winner.
The modular hex board has a high replay value, allowing you to play a unique game each time. Even though this game has a lot of moving parts, it's relatively simple to learn. You can pick up the mechanics in a matter of minutes.
And while Catan is more expensive than your average board game, it provides hours and hours of entertainment with wide-ranging appeal.
I like the opportunities for player interaction. If you're looking to create quality time, Catan is tough to beat.
Civilization building
Strategy & resource management
High replay value
Interactive gameplay
Has a lot of pieces
Small World: Best Territory Control Game
Small Wonder, published by Days of Wonder, is a super fun board game where players compete for territory in a race for victory points.
Players choose to lead one of 12 fantasy races competing for control. This zany cast of characters includes dwarves, wizards, elves, humans, and more.
Choose from a variety of special abilities to accompany your race. Picking the right combination is the challenge! From there, players decide whether to expand or whether to put their race in decline and try another tack.
Customers enjoyed this entertaining board game. They liked the colorful artwork, although one buyer noted that with the pieces on the board, it can get too "busy" visually.
Even though there is plenty of variation, due to the almost countless combinations of characters and abilities, there are expansions available when you're ready for a new challenge.
Small World is a simple game that's easy to learn. It's great for families and game nights, but don't let the whimsical theme fool you. It is intensely competitive.
Colorful artwork
Expansions available
Artwork is a little "busy"
Lacks tactical depth
Power Grid Recharged: Best Eurogame
Publisher: Rio Grande Games
Power Grid Recharged is a slightly modified, updated version of the original game Power Grid. This board game is an economic strategy game of resource management.
This revised version allows two additional players, updates the meeples and instruction booklet, and a few minor map changes.
This board game challenges players to earn income by establishing a power grid across multiple cities in 1950s Germany or the U.S. Players must decide which type of energy to use, whether it be nuclear, coal, or even burning garbage.
From there, players collect resources, purchase development cards, and establish power plants. The player that can build the largest power network and keep it running is the winner.
Power Grid Rechaged includes a double-sided map, with Germany on one side and the U.S.A. on the other. It also comes with wooden meeples, cards, money, and a rulebook.
Buyers enjoyed this four-player board game. They liked the medium-heavy strategy and the Euro-style mechanics. A few people found the board game too complicated, but others liked that element.
And while this board game has good replay value, there are plenty of expansions for those who want an extra challenge.
If you like Eurogames, economics, or strategic board games, Power Grid is the board game for you.
Strategic planning game
Euro-style economic game
Expansion available
Complex rules
Pandemic: Best Cooperative Game
Playing time: 45 minutes
Publisher: Z-Man Games
I was introduced to Pandemic by Z-Man Games several years ago, and it's still one of my favorites. And even though this game might have entirely different relevance in a post-2020 world, it's still one of the best 4-player board games.
This is a stellar cooperative game that features strategic planning. In Pandemic, four diseases threaten the world, and your elite team of specialists must find a cure for each of them before it's too late.
Players must work together, applying their unique character skills to benefit the team, to plan a strategy of eradicating the diseases before they overwhelm the world with ever-increasing outbreaks.
Starting in the Atlanta CDC, players spread out across the globe to establish research centers, develop treatments, and distribute cures. But watch out! There could be another outbreak just around the corner.
Customers love this game. They enjoy the cooperative strategy as players race against the clock. The board game components are of excellent quality and feature colorful artwork.
Buyers did say that there's a learning curve to the board game. Some found it too complicated, while others enjoyed meaty games. But either way, be prepared to take time for learning the rules.
They also warned that the winning percentage rate is low. But it's so much fun that you'll want to play again and again. Who knew losing could be addictive?
Pandemic is a thrilling game with plenty of exciting moments. I would highly recommend it for those who love meaty games or advanced gamers.
Fully cooperative game
High-quality artwork
Involves dice rolls & strategy
Low winning percentage
Once Upon a Time: Best Fairy Tale Game
Publisher: Atlas Games
What do you get when you combine a light card game, storytelling, and fantasy components? An endlessly adaptive game that's entertaining and great for gatherings.
Publish by Atlas Games, Once Upon a Time is full of wicked queens, talking cauldrons, and lucky boys who happen to stumble upon magic objects. But unlike traditional fairy tales, you control the action.
Players tell a tale based on random topics that match the cards in their hands, all to steer the story toward their secret conclusion.
This game is semi-cooperative. Everyone works together to create a new fairy tale using elements from their cards, but each player is trying to achieve their own goal. To win the game, play all of your story cards and steer the story to your ending.
Fair warning, this game is not for advanced players seeking a highly competitive contest. Many happy customers say they enjoy playing just for the storytelling.
Buyers liked the artwork on the cards and the fantasy elements. They also liked the laid-back, casual feel of the game. And since it's easy to learn, you can start playing almost right away.
But you do need the right gaming group for this game. Players need to enjoy telling and listening to stories. If they don't, they'll find the game quite boring.
Also, be prepared to create your own storage system. There's no way to store the cards, so they just slide around in the box. I'd suggest a rubber band or card storage system.
Once Upon a Time is a great family card game if you enjoy storytelling.
Quick gameplay
Fairy-tale storytelling game
Light, casual feel
Beautiful artwork
Not super competitive
No storage for cards
Dixit: Best Storytelling Party Game
Publisher: Libellud
Dixit is a simple, lighthearted game of storytelling and guesswork where your imagination unlocks the tale. Every picture tells a story, but you get to decide what story your picture will tell.
Playing the game is simple. Each round, one player selects a card and thinks up a clue inspired by the card. The other players all choose cards they think match the clue.
The cards are shuffled and then revealed. Players secretly vote for the card that best matches the narrator's story. The player whose card is chosen scores points.
Dixit is similar to Apples to Apples, Balderdash, or Atlas Once Upon a Time. This board game features 84 cards with original artwork by Marie Cardouat. Buyers loved the stunning imaginative artwork.
Customers also liked the recent updates to the game. While the original version featured numbered voting tokens, this updated version features individual spinners. To vote for a card, players move the arrow to the number of the card they wish to vote for.
Also, the original version only allowed for six players, whereas the updated Dixit provides for up to eight players.
For those who want intense competition? You may want to pass. But for imaginative, laid-back storytelling fun, the party game Dixit can't be topped.
Updated voting spinner
Not ideal for competitors
Takenoko: Best for Young Kids
Publisher: Matagot
In the Japanese game Takenoko, players tackle competitive panda husbandry to serve the Emperor and grow the perfect bamboo plantation.
Players must farm and irrigate parcels of land growing green, yellow, and pink bamboo. The goal? Complete various objectives and win the Emperor's favor.
Each turn, players determine the weather by rolling the weather die. Each side has a weather condition with an effect that the player applies before moving to the next part of their turn.
After determining the weather, the player can take two actions. Those include getting a new plot of land, digging irrigation channels, growing bamboo, feeding the panda, or drawing an objective card.
At the end of the game, whichever player has earned the most objective points wins.
Buyers find this game to be fun to play. They like the pace of play, as well as the balance. They also like the beautiful artwork on the hex tiles and colorful miniatures.
But some people find the game to be a little boring after a while. They don't see themselves playing this one over and over again. Others report issues with missing or damaged pieces.
This is a good game for kids. It's colorful, entertaining, and has a cute panda miniature that's fun to move.
Good pacing & balance
Charming game pieces
Beautiful aesthetics
Reports of missing pieces
Low replayability
Age of Civilization: Best Card-Based Civilization Game
Publisher: Ice Makes
Age of Civilization is a popular worker placement game. It's the streamlined pocket card game version of the popular civilization game. Unlike other card games, each player can play as 3 civilizations in 30 minutes.
In Age of Civilization, players collect resources, research technologies, build wonders, and prepare for war.
This game features built-in variation since every game's setup is different. Players have to analyze the characteristics of every era and make the best choice for kingdom development.
Throughout multiple rounds, players must choose a civilization, place workers, take actions based on those workers, and build their civilizations.
The player with the most points at the end of six rounds is the winner.
Buyers enjoy this compact, quick game. They like the strategy involved, as well as the short duration. They do say it has an initial learning curve, so be prepared for that.
They also like the historical nature of the game. This doesn't include the details of other educational games like 7 Wonders, for instance. But it can spark interest in learning about ancient civilizations, which is always a plus for this parent.
Involves strategy
Built-in variation
Spy Alley: Best Deduction Game for Young Kids
Playing time: ~45 minutes
Publisher: Spy Alley
Spy Alley is a fun, family adventure-style game. Full of spies, secrets, and intrigue, this game could be the next big hit on family game night.
Players assume a secret identity and use their wit to unmask and eliminate the enemy spies. The manufacturer advertises Spy Alley as a game of logic, deduction, and reasoning skills.
And even though it has a spy theme, this game is also family-friendly. Even better? It has high replayability. No two games are ever the same.
Spy Alley is an easy game to learn. It's pretty straightforward and moves along at a quick pace, so you can get started in no time. Buyers liked how quickly they could go from opening the box to playing the game.
With that being said, some users felt that the gameplay was a bit boring. Players roll and move, so there's not much strategy.
And even though you can try to deduce the identity of your opponents, several customers said you end up just taking a wild guess. There isn't a systematic way to rule out possibilities.
Several buyers recommended this game for younger players, ages 8-10. They consistently said it wasn't challenging enough for adults. And with lower quality paper components, it doesn't pack as much value as you might like.
My suggestion? If you have a kid who's into spy-themed things, this game would be fun for them. Otherwise, I would go with something else.
Fun spy theme
Good for younger kids
Roll and move, not much strategy
Some found it boring
Flimsy paper components
Concept: Best Party Game
Players: 4-12
Publisher: Repos Production
Concept is an easy-to-learn but challenging game of communication. Players must guess hundreds of objects, characters, and titles by combining icons… and without speaking!
This interactive guessing game features a game board covered in icons that can represent everything from a computer motherboard to the color blue. Players silently attempt to convey concepts such as "dinosaur," Eiffel Tower," or "Sigmund Freud."
This game has a similar feel to Charades. Players play in teams. The first player to correctly guess the word or phrase receives 2 individual victory points, while the team receives points, as well. The player with the most points wins the game.
But honestly? This is one of those laid-back games where you might find yourself not keeping track of the score. Several buyers played casually, and they enjoyed just playing for fun.
Buyers who attempted to include the competitive element were left frustrated at the clunky mechanics. I recommend using this as a simple party game.
This game is also flexible with the groupings. Even though it's great for four players, you could easily play this with a room full of people. As long as everyone can physically see the board, you should have no problem.
If guessing games like Articulate, Pictionary, or Charades are some of your favorite games? You'll love Concept.
Great game for parties
Flexible groupings
Ideal for casual play
Competitive mode confusing
4 Player Board Game Buying Guide
With so many games on the market, it can be difficult to decide among them. Most board games have at least some elements that make them appealing.
But if you're looking for the best four-player games, it's important to consider a few things:
First, you want to make sure your game has high-quality pieces. That way the game can hold up for a long time to come. You also want a game with high replay value so you can get your money's worth.
Lastly, narrow your search to board games that fit your gaming style. For example, a campaign-style game would not be the best for someone who enjoys a quick game with a lot of luck involved. A highly competitive person may not enjoy a cooperative game. It just depends on the person.
If you need extra help deciding, you can always visit a board game blog or game review site, like this one. You can ask game store owners, or you can ask your gamer friends.
Best Board Game for 4 Players: Last Word
Which of these four-player board games is the best one? My recommendation is Ticket to Ride. It has a wide-ranging appeal and combines a lot of fun elements. This is one of the best 4 player board games available.
But rest assured that whatever your preferences are, there's a board game for you and three of your closest friends or family.
Categories Board Games Information
Best 5 Player Board Games: That Awkward Number
Best 3 Player Board Games – When Three's Not a Crowd
I'm Jason McKee and this is my site. I've loved board games since I was a child. I've spent many evenings playing with family or friends and I enjoy them thoroughly.
Have a read around my site and see if I can inspire you to play.
Board Games Like Betrayal at House on the Hill
Games Like Pandemic: What to Play Next in 2022
Best 6 Player Board Games: Which 6 Player Game is For You?
Best Dungeon Crawl Board Games and Card Games for 2022
Small World Board Game and Alternatives
Games Like Gloomhaven: More Cooperative Horror
Best War Board Games
Games Like Monopoly: Build Your Empire
7 Best Risk Board Game Versions Based On Real Player Reviews
Board Games like Risk: The Best War Strategy Alternatives
Copyright Boards Cards Dice 2021. All Rights Reserved.


text:
/**
 * This code was generated by
 * \ / _    _  _|   _  _
 *  | (_)\/(_)(_|\/| |(/_  v1.0.0
 *       /       /
 */

import DeployedDevices = require('../../DeployedDevices');
import Page = require('../../../../base/Page');
import Response = require('../../../../http/response');
import serialize = require('../../../../base/serialize');
import { SerializableClass } from '../../../../interfaces';

/**
 * @description Initialize the DeviceList
 * PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
 *
 * @param version - Version of the resource
 * @param fleetSid - The unique identifier of the Fleet.
 */
declare function DeviceList(version: DeployedDevices, fleetSid: string): DeviceListInstance;

/**
 * Options to pass to update
 *
 * @property deploymentSid - The unique SID of the Deployment group.
 * @property enabled - The enabled
 * @property friendlyName - A human readable description for this Device.
 * @property identity - An identifier of the Device user.
 */
interface DeviceInstanceUpdateOptions {
  deploymentSid?: string;
  enabled?: boolean;
  friendlyName?: string;
  identity?: string;
}

interface DeviceListInstance {
  /**
   * @param sid - sid of instance
   */
  (sid: string): DeviceContext;
  /**
   * create a DeviceInstance
   *
   * @param opts - Options for request
   * @param callback - Callback to handle processed record
   */
  create(opts?: DeviceListInstanceCreateOptions, callback?: (error: Error | null, item: DeviceInstance) => any): Promise<DeviceInstance>;
  /**
   * Streams DeviceInstance records from the API.
   *
   * This operation lazily loads records as efficiently as possible until the limit
   * is reached.
   *
   * The results are passed into the callback function, so this operation is memory efficient.
   *
   * If a function is passed as the first argument, it will be used as the callback function.
   *
   * @param opts - Options for request
   * @param callback - Function to process each record
   */
  each(opts?: DeviceListInstanceEachOptions, callback?: (item: DeviceInstance, done: (err?: Error) => void) => void): void;
  /**
   * Constructs a device
   *
   * @param sid - A string that uniquely identifies the Device.
   */
  get(sid: string): DeviceContext;
  /**
   * Retrieve a single target page of DeviceInstance records from the API.
   * Request is executed immediately
   *
   * If a function is passed as the first argument, it will be used as the callback function.
   *
   * @param targetUrl - API-generated URL for the requested results page
   * @param callback - Callback to handle list of records
   */
  getPage(targetUrl?: string, callback?: (error: Error | null, items: DevicePage) => any): Promise<DevicePage>;
  /**
   * Lists DeviceInstance records from the API as a list.
   *
   * If a function is passed as the first argument, it will be used as the callback function.
   *
   * @param opts - Options for request
   * @param callback - Callback to handle list of records
   */
  list(opts?: DeviceListInstanceOptions, callback?: (error: Error | null, items: DeviceInstance[]) => any): Promise<DeviceInstance[]>;
  /**
   * Retrieve a single page of DeviceInstance records from the API.
   * Request is executed immediately
   *
   * If a function is passed as the first argument, it will be used as the callback function.
   *
   * @param opts - Options for request
   * @param callback - Callback to handle list of records
   */
  page(opts?: DeviceListInstancePageOptions, callback?: (error: Error | null, items: DevicePage) => any): Promise<DevicePage>;
}

/**
 * Options to pass to create
 *
 * @property deploymentSid - The unique SID of the Deployment group.
 * @property enabled - The enabled
 * @property friendlyName - A human readable description for this Device.
 * @property identity - An identifier of the Device user.
 * @property uniqueName - A unique, addressable name of this Device.
 */
interface DeviceListInstanceCreateOptions {
  deploymentSid?: string;
  enabled?: boolean;
  friendlyName?: string;
  identity?: string;
  uniqueName?: string;
}

/**
 * Options to pass to each
 *
 * @property callback -
 *                         Function to process each record. If this and a positional
 *                         callback are passed, this one will be used
 * @property deploymentSid - Find all Devices grouped under the specified Deployment.
 * @property done - Function to be called upon completion of streaming
 * @property limit -
 *                         Upper limit for the number of records to return.
 *                         each() guarantees never to return more than limit.
 *                         Default is no limit
 * @property pageSize -
 *                         Number of records to fetch per request,
 *                         when not set will use the default value of 50 records.
 *                         If no pageSize is defined but a limit is defined,
 *                         each() will attempt to read the limit with the most efficient
 *                         page size, i.e. min(limit, 1000)
 */
interface DeviceListInstanceEachOptions {
  callback?: (item: DeviceInstance, done: (err?: Error) => void) => void;
  deploymentSid?: string;
  done?: Function;
  limit?: number;
  pageSize?: number;
}

/**
 * Options to pass to list
 *
 * @property deploymentSid - Find all Devices grouped under the specified Deployment.
 * @property limit -
 *                         Upper limit for the number of records to return.
 *                         list() guarantees never to return more than limit.
 *                         Default is no limit
 * @property pageSize -
 *                         Number of records to fetch per request,
 *                         when not set will use the default value of 50 records.
 *                         If no page_size is defined but a limit is defined,
 *                         list() will attempt to read the limit with the most
 *                         efficient page size, i.e. min(limit, 1000)
 */
interface DeviceListInstanceOptions {
  deploymentSid?: string;
  limit?: number;
  pageSize?: number;
}

/**
 * Options to pass to page
 *
 * @property deploymentSid - Find all Devices grouped under the specified Deployment.
 * @property pageNumber - Page Number, this value is simply for client state
 * @property pageSize - Number of records to return, defaults to 50
 * @property pageToken - PageToken provided by the API
 */
interface DeviceListInstancePageOptions {
  deploymentSid?: string;
  pageNumber?: number;
  pageSize?: number;
  pageToken?: string;
}

interface DevicePayload extends DeviceResource, Page.TwilioResponsePayload {
}

interface DeviceResource {
  account_sid: string;
  date_authenticated: Date;
  date_created: Date;
  date_updated: Date;
  deployment_sid: string;
  enabled: boolean;
  fleet_sid: string;
  friendly_name: string;
  identity: string;
  sid: string;
  unique_name: string;
  url: string;
}

interface DeviceSolution {
  fleetSid?: string;
}

declare class DeviceContext {
  /**
   * Initialize the DeviceContextPLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
   *
   * @param version - Version of the resource
   * @param fleetSid - The fleet_sid
   * @param sid - A string that uniquely identifies the Device.
   */
  constructor(version: DeployedDevices, fleetSid: string, sid: string);

  /**
   * fetch a DeviceInstance
   *
   * @param callback - Callback to handle processed record
   */
  fetch(callback?: (error: Error | null, items: DeviceInstance) => any): Promise<DeviceInstance>;
  /**
   * remove a DeviceInstance
   *
   * @param callback - Callback to handle processed record
   */
  remove(callback?: (error: Error | null, items: DeviceInstance) => any): void;
  /**
   * update a DeviceInstance
   *
   * @param opts - Options for request
   * @param callback - Callback to handle processed record
   */
  update(opts?: DeviceInstanceUpdateOptions, callback?: (error: Error | null, items: DeviceInstance) => any): Promise<DeviceInstance>;
}

declare class DeviceInstance extends SerializableClass {
  /**
   * Initialize the DeviceContextPLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
   *
   * @property sid - A string that uniquely identifies this Device.
   * @property url - URL of this Device.
   * @property uniqueName - A unique, addressable name of this Device.
   * @property friendlyName - A human readable description for this Device
   * @property fleetSid - The unique identifier of the Fleet.
   * @property enabled - Device enabled flag.
   * @property accountSid - The unique SID that identifies this Account.
   * @property identity - An identifier of the Device user.
   * @property deploymentSid - The unique SID of the Deployment group.
   * @property dateCreated - The date this Device was created.
   * @property dateUpdated - The date this Device was updated.
   * @property dateAuthenticated - The date this Device was authenticated.
   *
   * @param version - Version of the resource
   * @param payload - The instance payload
   * @param fleetSid - The unique identifier of the Fleet.
   * @param sid - A string that uniquely identifies the Device.
   */
  constructor(version: DeployedDevices, payload: DevicePayload, fleetSid: string, sid: string);

  private _proxy: DeviceContext;
  accountSid: string;
  dateAuthenticated: Date;
  dateCreated: Date;
  dateUpdated: Date;
  deploymentSid: string;
  enabled: boolean;
  /**
   * fetch a DeviceInstance
   *
   * @param callback - Callback to handle processed record
   */
  fetch(callback?: (error: Error | null, items: DeviceInstance) => any): void;
  fleetSid: string;
  friendlyName: string;
  identity: string;
  /**
   * remove a DeviceInstance
   *
   * @param callback - Callback to handle processed record
   */
  remove(callback?: (error: Error | null, items: DeviceInstance) => any): void;
  sid: string;
  /**
   * Produce a plain JSON object version of the DeviceInstance for serialization.
   * Removes any circular references in the object.
   */
  toJSON(): any;
  uniqueName: string;
  /**
   * update a DeviceInstance
   *
   * @param opts - Options for request
   * @param callback - Callback to handle processed record
   */
  update(opts?: DeviceInstanceUpdateOptions, callback?: (error: Error | null, items: DeviceInstance) => any): void;
  url: string;
}

declare class DevicePage extends Page<DeployedDevices, DevicePayload, DeviceResource, DeviceInstance> {
  /**
   * Initialize the DevicePagePLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
   *
   * @param version - Version of the resource
   * @param response - Response from the API
   * @param solution - Path solution
   */
  constructor(version: DeployedDevices, response: Response<string>, solution: DeviceSolution);

  /**
   * Build an instance of DeviceInstance
   *
   * @param payload - Payload response from the API
   */
  getInstance(payload: DevicePayload): DeviceInstance;
}

export { DeviceContext, DeviceInstance, DeviceList, DeviceListInstance, DeviceListInstanceCreateOptions, DeviceListInstanceEachOptions, DeviceListInstanceOptions, DeviceListInstancePageOptions, DevicePage, DevicePayload, DeviceResource, DeviceSolution }

redpajama_set_name: RedPajamaGithub