text:
Grp Solid Mech \& Struct Impact, Dept Mechatron \& Mech Syst Engn, BR-05508900 Sao Paulo, Brazil.
   Bruenig, Michael, Tech Univ, Lehrstuhl Baumech Stat, D-44221 Dortmund, Germany.}},
DOI = {{10.1016/j.mechmat.2009.11.012}},
ISSN = {{0167-6636}},
EISSN = {{1872-7743}},
Keywords = {{Experiments; Aluminum alloys; Stress-triaxiality; Lode parameter}},
Keywords-Plus = {{CONTINUUM DAMAGE MECHANICS; HIGH-STRENGTH STEELS; DUCTILE FAILURE;
   STRUCTURAL-STEEL; CRACK INITIATION; STRAIN-RATE; PART I; FRACTURE;
   MODEL; CRITERION}},
Research-Areas = {{Materials Science; Mechanics}},
Web-of-Science-Categories  = {{Materials Science, Multidisciplinary; Mechanics}},
Author-Email = {{driemeie@usp.br}},
ResearcherID-Numbers = {{Micheli, Giancarlo/B-5706-2014
   Driemeier, Larissa/I-5722-2013}},
Funding-Acknowledgement = {{FAPESP {[}04/15404-0, 06/60511-5]; Deutsche Forschungsgemeinschaft
   (German Research Foundation) {[}BR1793/10-1]}},
Funding-Text = {{The Brazilian co-authors acknowledges the support Of FAPESP, a research
   funding agency from Sao Paulo state, through contracts 04/15404-0 and
   06/60511-5. Financial support for the German co-author frorn the
   Deutsche Forschungsgemeinschaft (German Research Foundation) through
   contract number BR1793/10-1 is gratefully acknowledged.}},
Number-of-Cited-References = {{32}},
Times-Cited = {{32}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{18}},
Journal-ISO = {{Mech. Mater.}},
Doc-Delivery-Number = {{560AG}},
Unique-ID = {{ISI:000274873400011}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000279993900029,
Author = {Escobedo, J. P. and Gupta, Y. M.},
Title = {{Dynamic tensile response of Zr-based bulk amorphous alloys: Fracture
   morphologies and mechanisms}},
Journal = {{JOURNAL OF APPLIED PHYSICS}},
Year = {{2010}},
Volume = {{107}},
Number = {{12}},
Month = {{JUN 15}},
Abstract = {{Plate impact experiments were conducted to examine the dynamic tensile
   response of Zr-based bulk amorphous alloys (BAAs) having a nominal
   composition of Zr56.7Cu15.3Ni12.5Nb5.0Al10.0Y0.5. The experimental
   configuration used in our work permitted soft recovery of the samples to
   allow a careful examination of the fractured samples along with
   real-time measurements of the sample free-surface velocity (FSV)
   histories. Tensile loading was preceded by elastic compressive loading
   to peak stresses in the 3.6 to 6.0 GPa range. Tensile damage in the
   recovered samples was examined using optical and electron microscopy.
   The microscopy results showed that the BAA samples exhibit a brittle
   behavior (as a glass) at the macroscopic level and a ductile behavior
   (as a metal) at the microscopic level; in addition, corrugations and
   bumps are observed at the nanoscale. The observed fracture morphologies
   are related to three key features present in our spall experiments:
   preceding compressive stress (3.6-6.0 GPa), high tensile loading rate
   (similar to 10(6)/s), high mean tensile stress (similar to 2.3 GPa); and
   are intrinsically related to the amorphous glassy structure of the BAAs
   (free volume content). We propose that the compressive stress depletes
   the free volume content. With increasing compressive stress, the
   available free volume decreases causing a suppression of shear stresses
   during tension. Thus, the mean tensile component becomes more dominant
   at higher stresses. Consequently, the observed surface morphology
   results from brittle cleavage, causing an increased damage localization
   in the recovered samples spalled at higher stresses. These observations
   support the inferences made from measurements of FSV histories. The high
   tensile loading rate is proposed to be responsible for cracking by
   multiple shear band propagation and interception, rendering the observed
   serrated surface morphology. Finally, we proposed that the corrugations
   are created due to a succession of arrest and propagation of mode I
   cracks. A subsequent dilatation, due to the effect of the tensile mean
   stress, caused the corrugations to evolve to bump-type features with
   sizes in the range of 10-100 nm. Our proposed mechanisms, although
   qualitative, constitute a systematic attempt to provide an explanation
   for the fracture morphologies observed in spalled BAA samples. (C) 2010
   American Institute of Physics. {[}doi:10.1063/1.3447751]}},
Publisher = {{AMER INST PHYSICS}},
Address = {{CIRCULATION \& FULFILLMENT DIV, 2 HUNTINGTON QUADRANGLE, STE 1 N O 1,
   MELVILLE, NY 11747-4501 USA}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Escobedo, JP (Reprint Author), Washington State Univ, Inst Shock Phys, Pullman, WA 99164 USA.
   Escobedo, J. P.; Gupta, Y. M., Washington State Univ, Inst Shock Phys, Pullman, WA 99164 USA.}},
DOI = {{10.1063/1.3447751}},
Article-Number = {{123502}},
ISSN = {{0021-8979}},
Keywords-Plus = {{SHOCK-WAVE RESPONSE; METALLIC-GLASS; FREE-VOLUME; STRAIN-RATES;
   COMPRESSION; DEFORMATION; FLOW; BEHAVIOR; TEMPERATURES; LOCALIZATION}},
Research-Areas = {{Physics}},
Web-of-Science-Categories  = {{Physics, Applied}},
Author-Email = {{ymgupta@wsu.edu}},
ResearcherID-Numbers = {{Escobedo, Juan/J-9077-2012
   }},
ORCID-Numbers = {{Escobedo-Diaz, Juan/0000-0003-2413-7119}},
Funding-Acknowledgement = {{DOE {[}DE-FG03-97SF 21388]}},
Funding-Text = {{Kent Perkins, Nathan Arganbright, and Kurt Zimmerman are thanked for
   their assistance with performing the experiments. Discussions about
   various aspects of this work with Dr. Atakan Peker were helpful. This
   work was supported by DOE Grant No. DE-FG03-97SF 21388.}},
Number-of-Cited-References = {{38}},
Times-Cited = {{31}},
Usage-Count-Last-180-days = {{4}},
Usage-Count-Since-2013 = {{42}},
Journal-ISO = {{J. Appl. Phys.}},
Doc-Delivery-Number = {{626UX}},
Unique-ID = {{ISI:000279993900029}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000279026500001,
Author = {Richard, Benjamin and Ragueneau, Frederic and Cremona, Christian and
   Adelaide, Lucas},
Title = {{Isotropic continuum damage mechanics for concrete under cyclic loading:
   Stiffness recovery, inelastic strains and frictional sliding}},
Journal = {{ENGINEERING FRACTURE MECHANICS}},
Year = {{2010}},
Volume = {{77}},
Number = {{8}},
Pages = {{1203-1223}},
Month = {{MAY}},
Abstract = {{A three dimensional set of constitutive equations for modelling
   quasi-brittle materials such as concrete is presented. It is formulated
   within the framework of irreversible processes thermodynamics in order
   to fulfill physical consistency. A single scalar damage variable has
   been introduced in order to take into account nonlinearities due to
   micro-cracking. The sliding influence and the partial stiffness recovery
   have been considered for cyclic loadings. Related numerical aspects are
   presented. Both plain and reinforced concrete structures are computed up
   to failure in order to show the efficiency and the robustness of the
   proposed model. Numerical results are both quantitatively and
   qualitatively compared to experimental data and highlight good
   agreement. The proposed constitutive equations seem accurate and robust
   enough for computing large scale structure subject not only to monotonic
   loadings but also to cyclic ones. (C) 2010 Elsevier Ltd. All rights
   reserved.}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Cremona, C (Reprint Author), Minist Ecol Energy Sustainable Dev \& Sea, Directorate Res \& Innovat, F-92055 Tour Voltaire, La Defense, France.
   Cremona, Christian, Minist Ecol Energy Sustainable Dev \& Sea, Directorate Res \& Innovat, F-92055 Tour Voltaire, La Defense, France.
   Ragueneau, Frederic, Univ Paris 6 UniverSud, CNRS, ENS Cachan, LMT Cachan, Cachan, France.
   Richard, Benjamin; Ragueneau, Frederic; Adelaide, Lucas, Univ Paris Est, Lab Cent Ponts \& Chaussees, F-75732 Paris, France.}},
DOI = {{10.1016/j.engfracmech.2010.02.010}},
ISSN = {{0013-7944}},
Keywords = {{Concrete; Damage; Frictional sliding; Partial stiffness recovery; Cyclic
   loading}},
Keywords-Plus = {{BRITTLE MATERIALS; ANISOTROPIC DAMAGE; MICROPLANE MODEL;
   FINITE-ELEMENTS; GRADIENT; LOCALIZATION; FORMULATION; LENGTH}},
Research-Areas = {{Mechanics}},
Web-of-Science-Categories  = {{Mechanics}},
Author-Email = {{Christian.Cremona@developpement-durable.gouv.fr}},
Funding-Acknowledgement = {{LCPC}},
Funding-Text = {{The authors wish express their most grateful thanks to LCPC for its
   financial supports. ENS Cachan/LMT and CEA are also thanked for their
   technical help. The authors would like to thank Alexandre Cury for his
   contribution to the paper improvement.}},
Number-of-Cited-References = {{56}},
Times-Cited = {{31}},
Usage-Count-Last-180-days = {{1}},
Usage-Count-Since-2013 = {{12}},
Journal-ISO = {{Eng. Fract. Mech.}},
Doc-Delivery-Number = {{614AG}},
Unique-ID = {{ISI:000279026500001}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000273511200004,
Author = {Bothara, Jitendra K. and Dhakal, Rajesh P. and Mander, John B.},
Title = {{Seismic performance of an unreinforced masonry building: An experimental
   investigation}},
Journal = {{EARTHQUAKE ENGINEERING \& STRUCTURAL DYNAMICS}},
Year = {{2010}},
Volume = {{39}},
Number = {{1}},
Pages = {{45-68}},
Month = {{JAN}},
Abstract = {{This paper presents the result,,, of an experimental investigation
   carried out to investigate the seismic performance of a two storey brick
   masonry house with one room ill each floor. A half-scale building
   constructed using single wythe clay brick masonry laid in cement sand
   mortar and a conventional timber floor and timber roof clad with clay
   tiles was tested under earthquake ground motions oil a shaking table,
   first ill the longitudinal direction and then in the transverse
   direction. In each direction, the building was Subjected to different
   ground motions with gradually increasing intensity. Dynamic properties
   of the system were assessed through white-noise tests after each ground
   Motion. The building suffered increasing levels of damage as the
   excitations became more severe. The damage ranged from cracking to
   global/local rocking of different piers and partial out-of-plane failure
   4 the walls. Nevertheless, the building did not collapse under base
   excitations with peak ground acceleration up to 0.8g. General behaviour
   of the tested building Model the tests is discussed, and fragility
   Curves are developed for unreinforced masonry buildings based oil the
   experimental results. Copyright (C) 2009 John Wiley \& Sons, Ltd.}},
Publisher = {{JOHN WILEY \& SONS LTD}},
Address = {{THE ATRIUM, SOUTHERN GATE, CHICHESTER PO19 8SQ, W SUSSEX, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Dhakal, RP (Reprint Author), Univ Canterbury, Dept Civil \& Nat Resources Engn, Christchurch 1, New Zealand.
   Dhakal, Rajesh P., Univ Canterbury, Dept Civil \& Nat Resources Engn, Christchurch 1, New Zealand.
   Bothara, Jitendra K., Beca Carter Hollings \& Ferner Ltd, Wellington, New Zealand.
   Mander, John B., Texas A\&M Univ, Zachry Dept Civil Engn, College Stn, TX USA.}},
DOI = {{10.1002/eqe.932}},
ISSN = {{0098-8847}},
Keywords = {{unreinforced masonry; seismic performance; shaking table test; fragility
   curves}},
Keywords-Plus = {{TESTS}},
Research-Areas = {{Engineering}},
Web-of-Science-Categories  = {{Engineering, Civil; Engineering, Geological}},
Author-Email = {{rajesh.dhakal@canterbury.ac.nz}},
Number-of-Cited-References = {{26}},
Times-Cited = {{31}},
Usage-Count-Last-180-days = {{1}},
Usage-Count-Since-2013 = {{12}},
Journal-ISO = {{Earthq. Eng. Struct. Dyn.}},
Doc-Delivery-Number = {{542QY}},
Unique-ID = {{ISI:000273511200004}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000282481900009,
Author = {AL-Shudeifat, Mohammad A. and Butcher, Eric A. and Stern, Carl R.},
Title = {{General harmonic balance solution of a cracked rotor-bearing-disk system
   for harmonic and sub-harmonic analysis: Analytical and experimental
   approach}},
Journal = {{INTERNATIONAL JOURNAL OF ENGINEERING SCIENCE}},
Year = {{2010}},
Volume = {{48}},
Number = {{10, SI}},
Pages = {{921-935}},
Month = {{OCT}},
Abstract = {{The effect of crack depth of a rotor-bearing-disk system on vibration
   amplitudes and whirl orbit shapes is investigated through a general
   harmonic balance technique and experimental verification. Two models of
   the crack, which are the breathing and the open crack models, are
   considered. Finite element models and general harmonic balance solutions
   are derived for breathing and open cracks which are valid for damped and
   undamped rotor systems. It is found via waterfall plots of the system
   with a breathing crack that there are large vibration amplitudes at
   critical values of crack depth and rotor speed for a slight unbalance in
   the system. The high vibration amplitudes at the backward whirl appear
   at earlier crack depths than those of the forward whirl for both crack
   models. Resonance peaks at the second, third and fourth subcritical
   speeds emerge as the crack depth increases. It is shown that the unique
   signature of orbits for the breathing crack model which have been
   verified experimentally can be used as an indication of a breathing
   crack in the shaft. In addition, the veering in the critical frequencies
   has been noticed in the open crack case. (C) 2010 Elsevier Ltd. All
   rights reserved.}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Butcher, EA (Reprint Author), Management Sci Inc, 6022 Constitut Ave NE, Albuquerque, NM 87110 USA.
   Stern, Carl R., Management Sci Inc, Albuquerque, NM 87110 USA.
   AL-Shudeifat, Mohammad A.; Butcher, Eric A., New Mexico State Univ, Dept Mech \& Aerosp Engn, Las Cruces, NM 88003 USA.}},
DOI = {{10.1016/j.ijengsci.2010.05.012}},
ISSN = {{0020-7225}},
Keywords = {{Damage detection; Structural health monitoring; Breathing crack model;
   Cracked rotor; Harmonic balance method}},
Keywords-Plus = {{EIGENVALUE LOCI; ROTATING SHAFT; VIBRATIONS; BEHAVIOR}},
Research-Areas = {{Engineering}},
Web-of-Science-Categories  = {{Engineering, Multidisciplinary}},
Author-Email = {{shdefat@nmsu.edu
   eab@nmsu.edu
   Carl\_Stern@mgtsciences.com}},
ResearcherID-Numbers = {{AL-Shudeifat, Mohammad/H-3537-2015}},
ORCID-Numbers = {{AL-Shudeifat, Mohammad/0000-0002-7973-2559}},
Number-of-Cited-References = {{22}},
Times-Cited = {{30}},
Usage-Count-Last-180-days = {{1}},
Usage-Count-Since-2013 = {{22}},
Journal-ISO = {{Int. J. Eng. Sci.}},
Doc-Delivery-Number = {{658HU}},
Unique-ID = {{ISI:000282481900009}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000278637300007,
Author = {Horstemeyer, M. F. and Farkas, D. and Kim, S. and Tang, T. and
   Potirniche, G.},
Title = {{Nanostructurally small cracks (NSC): A review on atomistic modeling of
   fatigue}},
Journal = {{INTERNATIONAL JOURNAL OF FATIGUE}},
Year = {{2010}},
Volume = {{32}},
Number = {{9}},
Pages = {{1473-1502}},
Month = {{SEP}},
Abstract = {{Fatigue is one of the most damaging mechanisms in structural components
   With the development of structural nanomatenals, it is imperative to
   investigate the fatigue damage phenomena at the atomic scale To study
   fatigue behavior at the nanoscale, one must apply non-continuum modeling
   frameworks, such as molecular statics (MS). molecular dynamics (MD), and
   Monte Carlo (MC) methods To date, only MD and MS simulations using
   embedded atom method (EAM) and modified embedded atom method (MEAM)
   potentials have been conducted, and this paper reviews these simulations
   of the nanoscale fatigue-crack growth in nickel and copper including
   single crystals, bicrystals, and polycrystals A nanoscale size middle
   tension (MT) specimen with the lateral side applied periodic boundary
   conditions was used to investigate the fatigue behavior in nickel and
   copper single crystals Simulation results revealed that the cyclic
   plastic deformation at the crack tip was the main influencing factor for
   fatigue-crack growth Two main nanoscale mechanisms of crack propagation
   were observed: ( I) the main cracks linked with the voids nucleated in
   front of crack tip due to high dislocation density generated by the
   cyclic loading; and (2) the main cracks broke the atomic bonds in the
   crack plane without much plasticity. For the bicrystals and
   polycrystals, the grain boundaries exerted resistance to the crack
   propagation To study the interactions between cracks and grain
   boundaries, four cases of grain boundary interfaces for copper and two
   cases of grain boundaries for nickel were simulated In copper
   bicrystals, the crack path deviated and moved from one grain to another
   for high misonentations, while there were voids nucleating at gram
   boundaries in front of the crack tip that linked back with the main
   crack Similar to macroscale fatigue, dislocation substructures were
   observed to develop in the atomic lattice during cyclic loading. In
   nickel biaystals, for large misonentations, the cracks were stopped by
   grain boundaries For small `Disorientations, the crack propagated
   through the grain boundary, but the growth rate was reduced due to the
   resistance of the grain boundary. Fatigue-crack growth rates for
   nanocracks were computed and compared with growth rates published in the
   literature for microstructurally small cracks (micron range) and long
   cracks (millimeter range) A nanostructurally small crack (NSC) was
   introduced in terms of the CTOD The quantified NSC growth rates in
   copper single crystals were very similar with those experimentally
   measured for small cracks (micron range) and with those at
   stress-intensity-factor ranges lower than the threshold for long cracks
   (millimeter range). The atomistic simulations indicated that reversible
   plastic slip along the active crystallographic directions at the crack
   tip was responsible for advancing the crack during applied cycling.
   In the case of single or double plastic slip localization at the crack
   tip, a typical Model fatigue crack arose along a slip band and then grew
   into a mixed Mode I + II crack growth mechanism For crystal orientations
   characterized by multiple slip systems concomitantly active at the crack
   tip, the crack advance mechanism was characterized by nanovoid
   nucleation in the high density nucleation region ahead of the crack tip
   and by linkage with the main crack leading to crack extension To
   facilitate observations of fatigue-crack growth, the simulation of a
   copper polycrystal was performed at low temperature 20 K as well The
   crack propagated along persistent slip bands within the grain The crack
   propagatedalong grain boundaries when the angle between the direction of
   crack propagation and the grain boundary was small, while it was impeded
   by the gram boundary when the angle was large The results obtained for
   the crack advance as a function of stress intensity amplitude are
   consistent with experimental studies and a Pans law exponent of
   approximately two (C) 2010 Elsevier Ltd. All rights reserved}},
Publisher = {{ELSEVIER SCI LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, OXON, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Horstemeyer, MF (Reprint Author), Mississippi State Univ, Ctr Adv Vehicular Syst, Mississippi State, MS 39762 USA.
   Horstemeyer, M. F.; Kim, S.; Tang, T., Mississippi State Univ, Ctr Adv Vehicular Syst, Mississippi State, MS 39762 USA.
   Farkas, D., Virginia Polytech Inst \& State Univ, Dept Mat Sci \& Engn, Blacksburg, VA 24061 USA.
   Potirniche, G., Univ Idaho, Dept Mech Engn, Moscow, ID USA.}},
DOI = {{10.1016/j.ijfatigue.2010.01.006}},
ISSN = {{0142-1123}},
Keywords = {{Embedded atom method; Fatigue; Nanostructurally small crack; Atomistic
   modeling; Structural nanomaterials}},
Keywords-Plus = {{MOLECULAR-DYNAMICS SIMULATION; COPPER SINGLE-CRYSTALS; EMBEDDED-ATOM
   POTENTIALS; TILT GRAIN-BOUNDARY; INTERATOMIC POTENTIALS;
   MECHANICAL-BEHAVIOR; LENGTH SCALE; GROWTH; METALS; NANOSCALE}},
Research-Areas = {{Engineering; Materials Science}},
Web-of-Science-Categories  = {{Engineering, Mechanical; Materials Science, Multidisciplinary}},
ORCID-Numbers = {{Horstemeyer, Mark/0000-0003-4230-0063}},
Funding-Acknowledgement = {{Center for Advanced Vehicular Systems (CAVS) at Mississippi State
   University}},
Funding-Text = {{MFH, TT, and SK would like to acknowledge the Center for Advanced
   Vehicular Systems (CAVS) at Mississippi State University for supporting
   this work.}},
Number-of-Cited-References = {{81}},
Times-Cited = {{29}},
Usage-Count-Last-180-days = {{4}},
Usage-Count-Since-2013 = {{74}},
Journal-ISO = {{Int. J. Fatigue}},
Doc-Delivery-Number = {{609EF}},
Unique-ID = {{ISI:000278637300007}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000277187100006,
Author = {Lubineau, G.},
Title = {{A Pyramidal Modeling Scheme for Laminates - Identification of Transverse
   Cracking}},
Journal = {{INTERNATIONAL JOURNAL OF DAMAGE MECHANICS}},
Year = {{2010}},
Volume = {{19}},
Number = {{4}},
Pages = {{499-518}},
Month = {{MAY}},
Abstract = {{Modern approaches to the modeling of composites are no longer limited to
   the use of a single approach for the whole structure or for all the
   degradation mechanisms. On the contrary, modern advances enable the
   definition of truly multiscale models in order to describe the
   degradation. Thus, homogenized models can be rigorously deduced from the
   underlying micromechanics. In the past few years, LMT-Cachan has made a
   number of contributions to the three key points of these multiscale
   approaches: (1) the improvement of the reference model on the fine
   scale, (2) the definition of a controlled correspondence between the
   scales, and (3) the definition of the associated homogenized model.
   Here, the complete approach is formalized as a modeling pyramid. Each
   mechanism of degradation is described on the more relevant scale within
   an `hybrid micromechanical model'. Based on the reference modeling,
   constitutive laws can be transfered within the unique framework of
   damage mechanics for being applied within commercial softwares. As an
   illustration, we focus more specifically on the homogenized law obtained
   for transverse cracking. The constitutive law and the material
   parameters issued from the homogenization, which define the model on the
   higher scale, are reviewed. Their identification is studied in detail.
   An important key point of the pyramidal approach appears here. Since it
   allows the interpretation of every quantity on different scales (both at
   the micromechanical and at the mesomechanical scales), the most relevant
   scale can be used for the identification of a chosen property. We limit
   ourselves to a `classical' identification. We mean by classical
   identification a procedure based on straight specimens. This process, to
   a certain extent, uses a parametric simulation of the nonlinear model
   based on a finite element representation of the test samples. The
   complete model is then used for the simulation of an industrial sample
   with hole. That example emphasizes the interest of underlying
   micromechanial variables for experimental validation.}},
Publisher = {{SAGE PUBLICATIONS LTD}},
Address = {{1 OLIVERS YARD, 55 CITY ROAD, LONDON EC1Y 1SP, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Lubineau, G (Reprint Author), Univ Paris 06, LMT Cachan, ENS Cachan, CNRS, 61 Ave President Wilson, F-94235 Cachan, France.
   Univ Paris 06, LMT Cachan, ENS Cachan, CNRS, F-94235 Cachan, France.}},
DOI = {{10.1177/1056789509102725}},
ISSN = {{1056-7895}},
Keywords = {{laminates; transverse cracking; multiscale modeling}},
Keywords-Plus = {{DAMAGE MESOMODEL; COMPOSITES; MICROMECHANICS; MICRO; ILLUSTRATIONS;
   INITIATION; PLY}},
Research-Areas = {{Materials Science; Mechanics}},
Web-of-Science-Categories  = {{Materials Science, Multidisciplinary; Mechanics}},
Author-Email = {{lubineau@lmt.ens-cachan.fr}},
Number-of-Cited-References = {{21}},
Times-Cited = {{29}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{11}},
Journal-ISO = {{Int. J. Damage Mech.}},
Doc-Delivery-Number = {{589XI}},
Unique-ID = {{ISI:000277187100006}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000282856200017,
Author = {Miehe, C. and Welschinger, F. and Hofacker, M.},
Title = {{A phase field model of electromechanical fracture}},
Journal = {{JOURNAL OF THE MECHANICS AND PHYSICS OF SOLIDS}},
Year = {{2010}},
Volume = {{58}},
Number = {{10}},
Pages = {{1716-1740}},
Month = {{OCT}},
Abstract = {{Structural reliability analyses of piezoelectric solids need the
   modeling of failure under coupled electromechanical actions. However,
   the numerical simulation of failure due to fracture based on sharp crack
   discontinuities may suffer in situations with complex crack topologies.
   This can be overcome by a diffusive crack modeling based on the
   introduction of a crack phase field. In this work, we develop a
   framework of diffusive fracture in piezoelectric solids. We start our
   investigation with the definition of a crack surface functional of the
   phase field that 1 converges for vanishing length-scale parameter to a
   sharp crack topology. This functional provides the basis for the
   definition of suitable dissipation functions which govern the evolution
   of the crack phase field. Based on experimental results available in the
   literature, we suggest a non-associative dissipative framework where the
   fracture phase field is driven by the mechanical part of the coupled
   electromechanical driving force. This accounts for a hierarchical view
   that considers (i) the decrease of stiffness due to mechanical rupture
   as the primary action that is followed by (ii) the decrease of electric
   permittivity due to the generated free space. The proposed definition of
   mechanical and electrical parts of the fracture driving force follows in
   a natural format from a kinematic assumption, that decomposes the total
   strains and the total electric field into energy-enthalpy-producing
   parts and fracture parts, respectively. Such an approach allows the
   insertion of well-known anisotropic piezoelectric storage functions
   without change. We end up with a three-field-problem that couples the
   displacement with the electric potential and the fracture phase field.
   The latter is governed by a micro-balance equation, which appears in a
   very transparent form in terms of a history field containing a maximum
   fracture source obtained in the time history of the electromechanical
   process. This representation allows the construction of a very robust
   algorithmic treatment based on a operator split scheme, which
   successively updates in a typical time step the history field, the crack
   phase field and finally the two piezoelectric fields. The proposed model
   is considered to be the canonically simple scheme for the simulation of
   diffusive electromechanical crack propagation in solids. We demonstrate
   its modeling capacity by means of representative numerical examples. (C)
   2010 Elsevier Ltd. All rights reserved.}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Miehe, C (Reprint Author), Univ Stuttgart, Inst Appl Mech CE Chair 1, Pfaffenwaldring 7, D-70550 Stuttgart, Germany.
   Miehe, C.; Welschinger, F.; Hofacker, M., Univ Stuttgart, Inst Appl Mech CE Chair 1, D-70550 Stuttgart, Germany.}},
DOI = {{10.1016/j.jmps.2010.06.013}},
ISSN = {{0022-5096}},
Keywords = {{Electromechanics; Piezoelectricity; Fracture; Phase fields; Gradient
   damage}},
Keywords-Plus = {{BRITTLE CRACK-PROPAGATION; PIEZOELECTRIC CERAMICS; MECHANICS; DAMAGE;
   FORCE; APPROXIMATION; COMPUTATION; ALGORITHMS; GRADIENT; CRITERIA}},
Research-Areas = {{Materials Science; Mechanics; Physics}},
Web-of-Science-Categories  = {{Materials Science, Multidisciplinary; Mechanics; Physics, Condensed
   Matter}},
Author-Email = {{cm@mechbau.uni-stuttgart.de}},
Funding-Acknowledgement = {{German Research Foundation (DFG) {[}Mi 295/11-2]; Cluster of Excellence
   Exc 310 Simulation Technology at the University of Stuttgart}},
Funding-Text = {{Support for this research was provided by the German Research Foundation
   (DFG) under Grant Mi 295/11-2 and the Cluster of Excellence Exc 310
   Simulation Technology at the University of Stuttgart.}},
Number-of-Cited-References = {{47}},
Times-Cited = {{28}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{28}},
Journal-ISO = {{J. Mech. Phys. Solids}},
Doc-Delivery-Number = {{663AU}},
Unique-ID = {{ISI:000282856200017}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000283914300011,
Author = {Yatomi, M. and Tabuchi, M.},
Title = {{Issues relating to numerical modelling of creep crack growth}},
Journal = {{ENGINEERING FRACTURE MECHANICS}},
Year = {{2010}},
Volume = {{77}},
Number = {{15, SI}},
Pages = {{3043-3052}},
Month = {{OCT}},
Abstract = {{In this paper creep crack growth behaviour of P92 welds at 923 K are
   presented. Creep crack growth behaviour for P92 welds are discussed with
   C{*} parameter. Creep crack growth behaviour of P92 welds has been
   compared with that of P91 welds with C{*} parameter. NSW and NSW-MOD
   model were compared with the experimental creep crack growth data. Plane
   strain NSW model significantly overestimates the crack growth rate, and
   plane stress NSW model underestimates it. Whilst, NSW-MOD model for
   plane stress and plane strain conditions gives lower and upper bound of
   the experimental data, respectively.
   FE analysis of creep crack growth has been conducted. Constrain effect
   for welded joints has been examined with C{*} line integrals of C(T)
   specimens. As a result, constant C{*} value using the material data of
   welded joint gives 10 times lower than that of only HAZ property.
   Whilst, the predicted CCG rates for welded joint are 10 times higher
   than those for only HAZ properties. Compared with predicted CCG rate
   from FE analysis and the experimental CCG rate, it can be suggested that
   creep crack growth tests for lower load level or for large specimen
   should be conducted, otherwise the experimental data should give
   unconservative estimation for components operated in long years. (C)
   2010 Elsevier Ltd. All rights reserved.}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Yatomi, M (Reprint Author), IHI Corp, Res Lab, Isogo Ku, 1 Shin Nakahara Cho, Yokohama, Kanagawa 2358501, Japan.
   Yatomi, M., IHI Corp, Res Lab, Isogo Ku, Yokohama, Kanagawa 2358501, Japan.
   Tabuchi, M., Natl Inst Mat Sci, Tsukuba, Ibaraki 3050047, Japan.}},
DOI = {{10.1016/j.engfracmech.2010.04.024}},
ISSN = {{0013-7944}},
Keywords = {{Creep; Crack growth; FEM; Elevated temperature; C{*}; Prediction}},
Keywords-Plus = {{CONTINUUM DAMAGE; STEEL; PREDICTION; INITIATION; RUPTURE}},
Research-Areas = {{Mechanics}},
Web-of-Science-Categories  = {{Mechanics}},
Author-Email = {{masataka\_yatomi@ihi.co.jp}},
Number-of-Cited-References = {{25}},
Times-Cited = {{28}},
Usage-Count-Last-180-days = {{0}},
Usage-Count-Since-2013 = {{6}},
Journal-ISO = {{Eng. Fract. Mech.}},
Doc-Delivery-Number = {{676LY}},
Unique-ID = {{ISI:000283914300011}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000271709700014,
Author = {Adden, Stephan and Horst, Peter},
Title = {{Stiffness degradation under fatigue in multiaxially loaded
   non-crimped-fabrics}},
Journal = {{INTERNATIONAL JOURNAL OF FATIGUE}},
Year = {{2010}},
Volume = {{32}},
Number = {{1}},
Pages = {{108-122}},
Month = {{JAN}},
Abstract = {{In this paper results on fatigue of non-crimp-fabrics are presented.
   After a short introduction to non-crimped-fabrics experimental results
   of biaxially loaded GFRP tube specimens are presented. An analytical
   engineering approach for the stiffness degradation of fatigue loaded
   laminates under arbitrary loads is shown. This approach is based on the
   classical laminate theory and calculations of cracked representative
   volume elements, in order to describe the influence of cracks on
   laminates under different conditions. The application of the model is
   shown and results are compared with the experimental results. (C) 2009
   Published by Elsevier Ltd.}},
Publisher = {{ELSEVIER SCI LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, OXON, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Horst, P (Reprint Author), Tech Univ Carolo Wilhelmina Braunschweig, Inst Aircraft Design \& Lightweight Struct, Hermann Blenk Str 35, D-38106 Braunschweig, Germany.
   Adden, Stephan; Horst, Peter, Tech Univ Carolo Wilhelmina Braunschweig, Inst Aircraft Design \& Lightweight Struct, D-38106 Braunschweig, Germany.}},
DOI = {{10.1016/j.ijfatigue.2009.02.002}},
ISSN = {{0142-1123}},
Keywords = {{Composite fatigue; Glass-fibre; Experiments; Fea; Biaxiality}},
Keywords-Plus = {{REINFORCED EPOXY; COMPOSITES; GLASS; DAMAGE; CRACKING; FAILURE}},
Research-Areas = {{Engineering; Materials Science}},
Web-of-Science-Categories  = {{Engineering, Mechanical; Materials Science, Multidisciplinary}},
Author-Email = {{p.horst@tu-braunschweig.de}},
Funding-Acknowledgement = {{German Research Foundation (DFG)}},
Funding-Text = {{The authors wish to thank the German Research Foundation (DFG) for
   funding this research within the Focus Project SPP1123 ``Textile
   Composites{''}.}},
Number-of-Cited-References = {{24}},
Times-Cited = {{28}},
Usage-Count-Last-180-days = {{1}},
Usage-Count-Since-2013 = {{8}},
Journal-ISO = {{Int. J. Fatigue}},
Doc-Delivery-Number = {{518RB}},
Unique-ID = {{ISI:000271709700014}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000273435000010,
Author = {Johannesson, Bjorn},
Title = {{Dimensional and ice content changes of hardened concrete at different
   freezing and thawing temperatures}},
Journal = {{CEMENT \& CONCRETE COMPOSITES}},
Year = {{2010}},
Volume = {{32}},
Number = {{1}},
Pages = {{73-83}},
Month = {{JAN}},
Abstract = {{Samples of concrete at different water-to-cement ratios and air contents
   subjected to freeze/thaw cycles with the lowest temperature at about -80
   degrees C are investigated. By adopting a novel technique, a scanning
   calorimeter is used to obtain data from which the ice contents at
   different freeze temperatures can be calculated. The length change
   caused by temperature and ice content changes during test is measured by
   a separate experiment using the same types of freeze-thaw cycles as in
   the calorimetric tests. In this way it was possible to compare the
   amount of formed ice at different temperatures and the corresponding
   measured length changes. The development of cracks in the material
   structure was indicated by an ultra-sonic technique by measuring on the
   samples before and after the freeze-thaw tests. Further the air void
   structure was investigated using a microscopic technique in which
   air'bubble' size distributions and the so-called spacing factor,
   indicating the mean distance between air bubbles, were measured. By
   analyzing the experimental result, it is concluded that damages occur in
   the temperature range of about -10 degrees C to -55 degrees C, when the
   air content is lower than about 4\% of the total volume. For a totally
   water-saturated concrete, damages always occur independently of the use
   of entrained air or low water-to-cement ratios. It is, further,
   concluded that the length changes of these samples correspond to the
   Calculated ice contents at different temperatures in a linear fashion. @
   2009 Elsevier Ltd. All rights reserved.}},
Publisher = {{ELSEVIER SCI LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, OXON, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Johannesson, B (Reprint Author), Tech Univ Denmark, Dept Civil Engn, Bldg 118, DK-2800 Lyngby, Denmark.
   Tech Univ Denmark, Dept Civil Engn, DK-2800 Lyngby, Denmark.}},
DOI = {{10.1016/j.cemconcomp.2009.09.001}},
ISSN = {{0958-9465}},
Keywords = {{Frost damages; Freezing; Thawing; Durability; Ice content; Scanning
   calorimeter}},
Research-Areas = {{Construction \& Building Technology; Materials Science}},
Web-of-Science-Categories  = {{Construction \& Building Technology; Materials Science, Composites}},
Author-Email = {{bjo@byg.dtu.dk}},
Funding-Acknowledgement = {{Swedish organization SBUF (Svenska Byggbranchens Utvecklingsfond);
   SKANSKA}},
Funding-Text = {{The Swedish organization SBUF (Svenska Byggbranchens Utvecklingsfond)
   and SKANSKA is kindly acknowledged for sponsoring parts of the presented
   research work.}},
Number-of-Cited-References = {{26}},
Times-Cited = {{28}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{13}},
Journal-ISO = {{Cem. Concr. Compos.}},
Doc-Delivery-Number = {{541QX}},
Unique-ID = {{ISI:000273435000010}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000284299700007,
Author = {May, Michael and Hallett, Stephen R.},
Title = {{A combined model for initiation and propagation of damage under fatigue
   loading for cohesive interface elements}},
Journal = {{COMPOSITES PART A-APPLIED SCIENCE AND MANUFACTURING}},
Year = {{2010}},
Volume = {{41}},
Number = {{12}},
Pages = {{1787-1796}},
Month = {{DEC}},
Abstract = {{A model for the simulation of damage initiation and subsequent
   propagation under cyclic loading is proposed The basis for the
   formulation is a cohesive law that combines phenomenological SN-curves
   for damage initiation with a fracture and damage mechanics approach for
   crack propagation The evolution of the damage variable is expressed as a
   function of fatigue cycles The model is independently calibrated for
   mode I and mode II loading using SN-curves and Paris-law coefficients
   obtained from simple coupon tests The model was applied to three
   initiation-driven cases Bending of 90 degrees laminates the Short Beam
   Shear test and the Double Notched Shear test The predictions for the
   first two cases showed an excellent correlation with experimental data
   Some modifications to the model were required when applying it to the
   Double Notched Shear test (C) 2010 Elsevier Ltd All rights reserved}},
Publisher = {{ELSEVIER SCI LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, OXON, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Hallett, SR (Reprint Author), Univ Bristol, Dept Aerosp Engn, Queens Bldg,Univ Walk, Bristol BS8 1TR, Avon, England.
   May, Michael; Hallett, Stephen R., Univ Bristol, Dept Aerosp Engn, Bristol BS8 1TR, Avon, England.}},
DOI = {{10.1016/j.compositesa.2010.08.015}},
ISSN = {{1359-835X}},
Keywords = {{Delamination; Fatigue; Computational modelling; Cohesive elements}},
Keywords-Plus = {{STRESS INTENSITY FACTORS; LAP BONDED JOINTS; COMPOSITE-MATERIALS;
   NUMERICAL-SIMULATION; DELAMINATION}},
Research-Areas = {{Engineering; Materials Science}},
Web-of-Science-Categories  = {{Engineering, Manufacturing; Materials Science, Composites}},
ResearcherID-Numbers = {{Hallett, Stephen/D-2573-2011}},
ORCID-Numbers = {{Hallett, Stephen/0000-0003-0751-8323}},
Funding-Acknowledgement = {{Great Western Research Rolls-Royce Plc; Agusta Westland}},
Funding-Text = {{This project has been funded by Great Western Research Rolls-Royce Plc
   and Agusta Westland}},
Number-of-Cited-References = {{32}},
Times-Cited = {{27}},
Usage-Count-Last-180-days = {{1}},
Usage-Count-Since-2013 = {{15}},
Journal-ISO = {{Compos. Pt. A-Appl. Sci. Manuf.}},
Doc-Delivery-Number = {{681GP}},
Unique-ID = {{ISI:000284299700007}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000276736200006,
Author = {Baumert, E. K. and Theillet, P-O and Pierron, O. N.},
Title = {{Investigation of the low-cycle fatigue mechanism for micron-scale
   monocrystalline silicon films}},
Journal = {{ACTA MATERIALIA}},
Year = {{2010}},
Volume = {{58}},
Number = {{8}},
Pages = {{2854-2863}},
Month = {{MAY}},
Abstract = {{This study investigated the cyclic and static fatigue properties of 10
   mu m thick, deep reactive ion etched, monocrystalline silicon films
   Stress life fatigue curves and fatigue degradation rates vs stress
   curves were generated at both 4 and 40 kHz, at 30 degrees C, 50\%
   relative humidity (RH) A significant frequency effect was observed, with
   shorter fanatic lives and faster damage accumulation rates at 4 kHz
   Static fatigue was also observed with shorter static lifetimes at 80
   degrees C, 90\% RH than at 30 degrees C, 50\% RH Fracture surface
   evaluation did not reveal any major difference between cyclically and
   statically fatigued devices These experimental results confirm that the
   fatigue of micron-scale silicon is not purely mechanical The study also
   proposes a fatigue scenario based on time-dependent subcritical crack
   growth to account for the low-cycle fatigue regime (C) 2010 Acta
   Materialia Inc Published by Elsevier Ltd All rights reserved}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Pierron, ON (Reprint Author), Georgia Inst Technol, G W Woodruff Sch Mech Engn, 771 Ferst Dr, Atlanta, GA 30332 USA.
   Baumert, E. K.; Theillet, P-O; Pierron, O. N., Georgia Inst Technol, G W Woodruff Sch Mech Engn, Atlanta, GA 30332 USA.}},
DOI = {{10.1016/j.actamat.2010.01.011}},
ISSN = {{1359-6454}},
Keywords = {{Fatigue; Monocrystalline silicon; Thin film; Static fatigue; Frequency
   effects}},
Keywords-Plus = {{SINGLE-CRYSTAL SILICON; SUBCRITICAL CRACK-GROWTH; STRESS-CORROSION
   CRACKING; POLYCRYSTALLINE SILICON; STRUCTURAL FILMS; THIN-FILMS;
   FRACTURE-TOUGHNESS; POLYSILICON MEMS; FAILURE; SPECIMENS}},
Research-Areas = {{Materials Science; Metallurgy \& Metallurgical Engineering}},
Web-of-Science-Categories  = {{Materials Science, Multidisciplinary; Metallurgy \& Metallurgical
   Engineering}},
ResearcherID-Numbers = {{Pierron, Olivier/A-3474-2011}},
Number-of-Cited-References = {{41}},
Times-Cited = {{27}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{28}},
Journal-ISO = {{Acta Mater.}},
Doc-Delivery-Number = {{584FK}},
Unique-ID = {{ISI:000276736200006}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000275800400005,
Author = {Ogi, Keiji and Okabe, Tomonaga and Takahashi, Manabu and Yashiro,
   Shigeki and Yoshimura, Akinori and Ogasawara, Toshio},
Title = {{Experimental characterization of high-speed impact damage behavior in a
   three-dimensionally woven SiC/SiC composite}},
Journal = {{COMPOSITES PART A-APPLIED SCIENCE AND MANUFACTURING}},
Year = {{2010}},
Volume = {{41}},
Number = {{4}},
Pages = {{489-498}},
Month = {{APR}},
Abstract = {{This paper discusses high-speed Impact damage in a three-dimensionally
   woven SiC/SiC composite (3D-CMC) The impact damage was introduced by a
   steel ball projectile in 3D-CMC plates with and without thermal exposure
   The surface and internal damages were observed by optical microscopy and
   X-ray CT A crater was observed on the collision surface. The X-ray CT
   measurement revealed that multiple pyramid-shaped cone cracks were
   generated beneath the crater when the impact speed was relatively low At
   an impact speed exceeding the critical speed, a spall fragment was
   ejected from the back surface, while no internal damage was observed in
   the fragment The spall fracture mode differed between the virgin and the
   thermally-exposed specimens This difference is the result of
   embrittlement of the fiber/matrix interface clue to oxidation of the
   carbon coating layer in the thermally-exposed specimen In addition, it
   is found that z-yarns improve impact resistance by constraining
   delamination (C) 2009 Elsevier Ltd All rights reserved}},
Publisher = {{ELSEVIER SCI LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, OXON, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Ogi, K (Reprint Author), Ehime Univ, 3 Bunkyocho, Matsuyama, Ehime 7908577, Japan.
   Ogi, Keiji; Takahashi, Manabu; Yashiro, Shigeki, Ehime Univ, Matsuyama, Ehime 7908577, Japan.
   Okabe, Tomonaga, Tohoku Univ, Aoba Ku, Sendai, Miyagi 9808579, Japan.
   Yoshimura, Akinori; Ogasawara, Toshio, Japan Aerosp Explorat Agcy, Tokyo 1810015, Japan.}},
DOI = {{10.1016/j.compositesa.2009.12.005}},
ISSN = {{1359-835X}},
Keywords = {{Ceramic-matrix composites (CMCs); Impact behavior; Radiography}},
Keywords-Plus = {{SIC-MATRIX COMPOSITES; CREEP-BEHAVIOR; ELEVATED-TEMPERATURES;
   RESISTANCE; CRACKING; FATIGUE; AIR}},
Research-Areas = {{Engineering; Materials Science}},
Web-of-Science-Categories  = {{Engineering, Manufacturing; Materials Science, Composites}},
ResearcherID-Numbers = {{Ogasawara, Toshio/O-1238-2014}},
ORCID-Numbers = {{Ogasawara, Toshio/0000-0003-1074-0427}},
Funding-Acknowledgement = {{Ministry of Education, Science, Sports and Culture of Japan {[}18360406,
   20760071, 21360417]}},
Funding-Text = {{The authors would like to express appreciation to Mr Terutake Matsubara
   of Kyushu University, Japan, for his technical support in the
   experiment. This research was supported by Grants-in-Aid (Nos. 18360406,
   20760071 and 21360417) for Scientific Research of the Ministry of
   Education. Science. Sports and Culture of Japan.}},
Number-of-Cited-References = {{20}},
Times-Cited = {{26}},
Usage-Count-Last-180-days = {{4}},
Usage-Count-Since-2013 = {{28}},
Journal-ISO = {{Compos. Pt. A-Appl. Sci. Manuf.}},
Doc-Delivery-Number = {{572BE}},
Unique-ID = {{ISI:000275800400005}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000277215100006,
Author = {Richard, Benjamin and Ragueneau, Frederic and Cremona, Christian and
   Adelaide, Lucas and Tailhan, Jean Louis},
Title = {{A three-dimensional steel/concrete interface model including corrosion
   effects}},
Journal = {{ENGINEERING FRACTURE MECHANICS}},
Year = {{2010}},
Volume = {{77}},
Number = {{6}},
Pages = {{951-973}},
Month = {{APR}},
Abstract = {{This paper presents a new constitutive law for modelling the
   steel/concrete interface by including main corrosion effects. A
   three-dimensional formulation has been proposed based on continuum
   damage mechanics. The theoretical framework of the thermodynamics of
   irreversible processes has been applied in order to guarantee the
   respect of both conservation and evolution principles. Results are
   presented in order to point out the main features of the proposed model.
   The identification of material parameters, one of the major points when
   invoking this model, is detailed. In order to show its efficiency,
   pull-out tests with and without the presence of corrosion have been
   simulated. The effects of corrosion on failure loads are clearly in
   accordance with experimental results. A qualitative comparison between
   the damage pattern and the experimental crack path due to corrosion is
   also included in the paper. (C) 2010 Elsevier Ltd. All rights reserved.}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Cremona, C (Reprint Author), Minist Ecol Energy Sustainable Dev \& Cty \& Town P, Directorate Res \& Innovat, F-92055 Tour Voltaire, La Defense, France.
   Cremona, Christian, Minist Ecol Energy Sustainable Dev \& Cty \& Town P, Directorate Res \& Innovat, F-92055 Tour Voltaire, La Defense, France.
   Richard, Benjamin; Adelaide, Lucas; Tailhan, Jean Louis, Univ Paris Est, Lab Cent Ponts \& Chaussees, F-75732 Paris, France.
   Ragueneau, Frederic, ENS Cachan, F-94230 Cachan, France.}},
DOI = {{10.1016/j.engfracmech.2010.01.017}},
ISSN = {{0013-7944}},
Keywords = {{Reinforce concrete; Corrosion; Steel/concrete interface; Damage
   mechanics; Finite elements method}},
Keywords-Plus = {{REINFORCED-CONCRETE STRUCTURES; COVER CRACKING; REBAR CORROSION; RC
   STRUCTURES; BOND; ELEMENT; BARS; BEHAVIOR; DYNAMICS; FRICTION}},
Research-Areas = {{Mechanics}},
Web-of-Science-Categories  = {{Mechanics}},
Author-Email = {{Christian.Cremona@developpement-durable.gouv.fr}},
Number-of-Cited-References = {{54}},
Times-Cited = {{26}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{21}},
Journal-ISO = {{Eng. Fract. Mech.}},
Doc-Delivery-Number = {{590HD}},
Unique-ID = {{ISI:000277215100006}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000284011300003,
Author = {An, Yun-Kyu and Sohn, Hoon},
Title = {{Instantaneous crack detection under varying temperature and static
   loading conditions}},
Journal = {{STRUCTURAL CONTROL \& HEALTH MONITORING}},
Year = {{2010}},
Volume = {{17}},
Number = {{7, SI}},
Pages = {{730-741}},
Month = {{NOV}},
Abstract = {{On the basis of guided wave propagation in plate-like structures, the
   authors' group previously developed a reference-free crack detection
   technique. The previous technique requires the placement of two pairs of
   collocated lead zirconate titanate (PZT) transducers on the top and
   bottom surfaces of a structure. However, as access to both surfaces can
   be limited for some structural systems, such as aircraft and pipelines,
   an improved reference-free crack detection technique is developed in
   this study to overcome this limitation. The major advancements of the
   proposed reference-free technique over the previous one are (1)
   reformulation of the reference-free technique considering energy
   distribution among Lamb wave modes to overcome the limitations of the
   previous time domain approach, (2) extension to allow the use of various
   input waveforms including broadband chirp signals and narrowband
   toneburst signals, and (3) newly designed PZT transducers for single
   surface installation and better ruggedness. Numerical simulations and
   experimental tests on aluminum plates are performed to investigate the
   performance of the proposed technique. In particular, its robustness to
   varying temperature and external loading is experimentally tested.
   Copyright (C) 2010 John Wiley \& Sons, Ltd.}},
Publisher = {{JOHN WILEY \& SONS LTD}},
Address = {{THE ATRIUM, SOUTHERN GATE, CHICHESTER PO19 8SQ, W SUSSEX, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Sohn, H (Reprint Author), Korea Adv Inst Sci \& Technol, Dept Civil \& Environm Engn, Taejon 305701, South Korea.
   An, Yun-Kyu; Sohn, Hoon, Korea Adv Inst Sci \& Technol, Dept Civil \& Environm Engn, Taejon 305701, South Korea.}},
DOI = {{10.1002/stc.394}},
ISSN = {{1545-2255}},
Keywords = {{guided wave propagation; structural health monitoring; reference-free
   crack detection; instantaneous damage diagnosis; loading and temperature
   variations}},
Keywords-Plus = {{INSPECTION}},
Research-Areas = {{Construction \& Building Technology; Engineering; Instruments \&
   Instrumentation}},
Web-of-Science-Categories  = {{Construction \& Building Technology; Engineering, Civil; Instruments \&
   Instrumentation}},
Author-Email = {{hoonsohn@kaist.ac.kr}},
ResearcherID-Numbers = {{Sohn, Hoon/A-9406-2008
   An, Yun-Kyu/B-4934-2013}},
ORCID-Numbers = {{An, Yun-Kyu/0000-0003-3852-9025}},
Funding-Acknowledgement = {{Ministry of Education, Science \& Technology (MEST)
   {[}M20703000015-07N0300-01510, 2009-0083489]}},
Funding-Text = {{This work is supported by the Radiation Technology Program
   (M20703000015-07N0300-01510) and the Nuclear Research \& Development
   Program (2009-0083489) of National Research Foundation of Korea (NRF)
   funded by Ministry of Education, Science \& Technology (MEST). Any
   opinions, findings, and conclusions or recommendations expressed in this
   material are those of the author(s) and do not necessarily reflect the
   views of the funding agencies.}},
Number-of-Cited-References = {{16}},
Times-Cited = {{25}},
Usage-Count-Last-180-days = {{1}},
Usage-Count-Since-2013 = {{10}},
Journal-ISO = {{Struct. Control. Health Monit.}},
Doc-Delivery-Number = {{677SE}},
Unique-ID = {{ISI:000284011300003}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000280610200009,
Author = {Hu, D. W. and Zhou, H. and Zhang, F. and Shao, J. F.},
Title = {{Evolution of poroelastic properties and permeability in damaged
   sandstone}},
Journal = {{INTERNATIONAL JOURNAL OF ROCK MECHANICS AND MINING SCIENCES}},
Year = {{2010}},
Volume = {{47}},
Number = {{6}},
Pages = {{962-973}},
Month = {{SEP}},
Abstract = {{This paper is devoted to experimental investigation of mechanical
   behavior, poroelastic properties and permeability in saturateds and
   stone. The emphasis is to study the evolution of Biot's coefficients and
   permeability with the growth of microcracks. Basic mechanical responses
   are first investigated through triaxial compression tests, showing
   nonlinear stress-strain relations, volumetric dilatancy, pressure
   sensitivity, elastic modulus degradation and induced anisotropy.
   Original tests are then performed for the determination of Biot's
   coefficients in the axial and radial directions at different levels of
   stress. It is shown that the evolution of Biot's coefficient is clearly
   anisotropic in nature due to the oriented closure of initial microcracks
   and growth of induced microcracks. The rock permeability in axial
   direction is also measured for different values of stress; it decreases
   in the first stage with the closure of microcracks and then
   progressively increases due to the opening of induced microcracks.
   However, the permeability significantly increases only when the
   coalescence of microcracks occurs. (C) 2010 Elsevier Ltd. All rights
   reserved.}},
Publisher = {{PERGAMON-ELSEVIER SCIENCE LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Shao, JF (Reprint Author), Univ Lille, LML, UMR8107, CNRS, Villeneuve Dascq, France.
   Hu, D. W.; Zhang, F.; Shao, J. F., Univ Lille, LML, UMR8107, CNRS, Villeneuve Dascq, France.
   Hu, D. W.; Zhou, H., Chinese Acad Sci, IRSM, Wuhan, Peoples R China.}},
DOI = {{10.1016/j.ijrmms.2010.06.007}},
ISSN = {{1365-1609}},
Keywords = {{Poroelasticity; Damage; Permeability; Microcrack; Sandstone; Porous
   media}},
Keywords-Plus = {{ELASTIC-WAVE VELOCITIES; EFFECTIVE STRESS LAW; ANISOTROPIC
   POROELASTICITY; MATERIAL COEFFICIENTS; CRACKED ROCKS; BRITTLE ROCKS;
   PORE PRESSURE; LOW-POROSITY; GRANITE; DEFORMATION}},
Research-Areas = {{Engineering; Mining \& Mineral Processing}},
Web-of-Science-Categories  = {{Engineering, Geological; Mining \& Mineral Processing}},
Author-Email = {{Jianfu.shao@univ-lille1.fr}},
Funding-Acknowledgement = {{NSFC {[}50920105908]}},
Funding-Text = {{This study is partially supported by a NSFC international cooperation
   project through the Grant no. 50920105908.}},
Number-of-Cited-References = {{45}},
Times-Cited = {{25}},
Usage-Count-Last-180-days = {{2}},
Usage-Count-Since-2013 = {{26}},
Journal-ISO = {{Int. J. Rock Mech. Min. Sci.}},
Doc-Delivery-Number = {{634UD}},
Unique-ID = {{ISI:000280610200009}},
OA = {{No}},
DA = {{2017-08-29}},
}

@article{ ISI:000282024900003,
Author = {Lin, Gang and Liu, Yinghua and Xiang, Zhihai},
Title = {{Numerical modeling for predicting service life of reinforced concrete
   structures exposed to chloride environments}},
Journal = {{CEMENT \& CONCRETE COMPOSITES}},
Year = {{2010}},
Volume = {{32}},
Number = {{8}},
Pages = {{571-579}},
Month = {{SEP}},
Abstract = {{Degradation of reinforced concrete (RC) structures due to chloride
   penetration followed by reinforcement corrosion has been a serious
   problem in civil engineering for many years. In the present paper, a
   systematic and robust model for predicting service life of RC structures
   is developed which takes environmental humidity and temperature
   fluctuations, chloride binding, diffusion and convection, as well as the
   decay of structural performance into account. The interactions between
   the decay of structural performance, heat and moisture transfer are
   considered in a coupled thermal-hygro-mechanical model. The governing
   equations of heat, moisture and chloride transport into nonsaturated
   concrete are described particularly and solved numerically by finite
   element analysis in space and time domains. Comparisons of numerical
   results with analytical solutions and experimental observations are
   conducted to establish the validity of the proposed numerical model.
   Applications of the numerical model are demonstrated by predicting
   service life of a RC slab exposed to a chloride environment. (c) 2010
   Elsevier Ltd. All rights reserved.}},
Publisher = {{ELSEVIER SCI LTD}},
Address = {{THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD OX5 1GB, OXON, ENGLAND}},
Type = {{Article}},
Language = {{English}},
Affiliation = {{Liu, YH (Reprint Author), Tsinghua Univ, Dept Engn Mech, AML, Beijing 100084, Peoples R China.
   Lin, Gang; Liu, Yinghua; Xiang, Zhihai, Tsinghua Univ, Dept Engn Mech, AML, Beijing 100084, Peoples R China.}},
DOI = {{10.1016/j.cemconcomp.2010.07.012}},
ISSN = {{0958-9465}},
Keywords = {{Service life prediction; Nonsaturated concrete; Chloride environment;
   Diffusion-convection analysis; Thermal-hygro-mechanical model}},
Keywords-Plus = {{CEMENT-BASED MATERIALS; COUPLED HEAT-TRANSFER; MOISTURE TRANSPORT; PLAIN
   CONCRETE; DAMAGE MODEL; DIFFUSION; PENETRATION; CARBONATION; CRACKING;
   WATER}},
Research-Areas = {{Construction \& Building Technology; Materials Science}},
Web-of-Science-Categories  = {{Construction \& Building Technology; Materials Science, Composites}},
Author-Email = {{yhliu@mail.tsinghua.edu.cn}},
Funding-Acknowledgement = {{Ministry of Transport of the People's Republic of China {[}20060885]}},
Funding-Text = {{This work was a part of a project on service life modeling of concrete
   structures, which was funded by the Ministry of Transport of the
   People's Republic of China (No. 20060885). The authors are grateful for
   this financial support.}},
Number-of-Cited-References = {{30}},
Times-Cited = {{25}},
Usage-Count-Last-180-days = {{4}},
Usage-Count-Since-2013 = {{31}},
Journal-ISO = {{Cem. Concr. Compos.}},
Doc-Delivery-Number = {{652QM}},
Unique-ID = {{ISI:000282024900003}},
OA = {{No}},
DA = {{2017-08-29}},
}

license_type: permissive

branch_name: refs/heads/master

extension: bib


text:
package node

import (
	"context"
	"testing"
	"time"

	"gotest.tools/assert"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func TestPodControllerExitOnContextCancel(t *testing.T) {
	tc := newTestController()
	ctx := context.Background()
	ctxRun, cancel := context.WithCancel(ctx)

	done := make(chan error)
	go func() {
		done <- tc.Run(ctxRun, 1)
	}()

	ctxT, cancelT := context.WithTimeout(ctx, 30*time.Second)
	select {
	case <-ctx.Done():
		assert.NilError(t, ctxT.Err())
	case <-tc.Ready():
	case <-tc.Done():
	}
	assert.NilError(t, tc.Err())

	cancelT()

	cancel()

	ctxT, cancelT = context.WithTimeout(ctx, 30*time.Second)
	defer cancelT()

	select {
	case <-ctxT.Done():
		assert.NilError(t, ctxT.Err(), "timeout waiting for Run() to exit")
	case err := <-done:
		assert.NilError(t, err)
	}
	assert.NilError(t, tc.Err())
}

func TestCompareResourceVersion(t *testing.T) {
	p1 := &corev1.Pod{
		ObjectMeta: metav1.ObjectMeta{
			ResourceVersion: "1",
		},
	}
	p2 := &corev1.Pod{
		ObjectMeta: metav1.ObjectMeta{
			ResourceVersion: "2",
		},
	}
	assert.Assert(t, podsEffectivelyEqual(p1, p2))
}

func TestCompareStatus(t *testing.T) {
	p1 := &corev1.Pod{
		Status: corev1.PodStatus{
			Phase: corev1.PodRunning,
		},
	}
	p2 := &corev1.Pod{
		Status: corev1.PodStatus{
			Phase: corev1.PodFailed,
		},
	}
	assert.Assert(t, podsEffectivelyEqual(p1, p2))
}

func TestCompareLabels(t *testing.T) {
	p1 := &corev1.Pod{
		ObjectMeta: metav1.ObjectMeta{
			Labels: map[string]string{
				"foo": "bar1",
			},
		},
	}
	p2 := &corev1.Pod{
		ObjectMeta: metav1.ObjectMeta{
			Labels: map[string]string{
				"foo": "bar2",
			},
		},
	}
	assert.Assert(t, !podsEffectivelyEqual(p1, p2))
}

repository: riccardoroccaro/liqo

repo_name: riccardoroccaro/liqo

extension: go


text:
const api = require('./api')
const { Params } = require('./params.js')

function get (agent, params) {
  params = new Params(params)
  const path = params.string('path', api.path.remote(agent, params))
  params.assertEmpty()

  const request = agent.get(path)

  return {
    then (resolve) {
      resolve(request.then(api.response.verify(api.response.remote.success)))
    },
    fails (error) {
      return request.then(api.response.verify(api.response.remote.failure(error)))
    },
    notFound (error) {
      return request.then(api.response.verify(api.response.remote.notFound(error)))
    },
    query (q) {
      request.query(q)
      return this
    },
    set (header, value) {
      request.set(header, value)
      return this
    },
    unverified () {
      return request
    },
  }
}

function add (agent, query, params) {
  params = new Params(params)
  const path = params.string('path', api.path.remote(agent, params))
  params.assertEmpty()

  const request = agent.post(path).send(query)

  return {
    then (resolve) {
      resolve(request.then(api.response.verify(api.response.remote.success)))
    },
    fails (error) {
      return request.then(api.response.verify(api.response.remote.failure(error)))
    },
    set (header, value) {
      request.set(header, value)
      return this
    },
    unverified () {
      return request
    },
  }
}

function update (agent, query, params) {
  params = new Params(params)
  const path = params.string('path', api.path.remote(agent, params))
  params.assertEmpty()

  const request = agent.put(path).send(query)

  return {
    then (resolve) {
      resolve(request.then(api.response.verify(api.response.remote.success)))
    },
    fails (error) {
      return request.then(api.response.verify(api.response.remote.failure(error)))
    },
    set (header, value) {
      request.set(header, value)
      return this
    },
    unverified () {
      return request
    },
  }
}

function delete_ (agent, query, params) {
  params = new Params(params)
  const path = params.string('path', api.path.remote(agent, params))
  params.assertEmpty()

  const request = agent.delete(path).query(query).send()

  return {
    then (resolve) {
      resolve(request.then(api.response.verify(api.response.remote.success)))
    },
    fails (error) {
      return request.then(api.response.verify(api.response.remote.failure(error)))
    },
    set (header, value) {
      request.set(header, value)
      return this
    },
    unverified () {
      return request
    },
  }
}

module.exports = {
  get,
  add,
  update,
  delete: delete_,
}

repository: terminusdb/terminusdb

repo_name: terminusdb/terminusdb

branch_name: refs/heads/main

gha_language: Prolog

extension: js


text:
@article{Rohr_2010, title={Combining density-functional theory and density-matrix-functional theory}, volume={82}, ISSN={1094-1622}, url={http://dx.doi.org/10.1103/PhysRevA.82.052502}, DOI={10.1103/physreva.82.052502}, number={5}, journal={Phys. Rev. A}, publisher={American Physical Society (APS)}, author={Rohr, Daniel R. and Toulouse, Julien and Pernal, Katarzyna}, year={2010}, month={Nov}}
 @article{Yasuda_2001, title={Correlation energy functional in the density-matrix functional theory}, volume={63}, ISSN={1094-1622}, url={http://dx.doi.org/10.1103/PhysRevA.63.032517}, DOI={10.1103/physreva.63.032517}, number={3}, journal={Phys. Rev. A}, publisher={American Physical Society (APS)}, author={Yasuda, Koji}, year={2001}, month={Feb}}
 @article{Coleman_1963, title={Structure of Fermion Density Matrices}, volume={35}, ISSN={0034-6861}, url={http://dx.doi.org/10.1103/RevModPhys.35.668}, DOI={10.1103/revmodphys.35.668}, number={3}, journal={Rev. Mod. Phys.}, publisher={American Physical Society (APS)}, author={Coleman, A.}, year={1963}, month={Jul}, pages={668–686}}
 @article{Lude_a_2013, title={Functional <i>N</i>-Representability in 2-Matrix, 1-Matrix, and Density Functional Theories}, volume={04}, ISSN={2153-120X}, url={http://dx.doi.org/10.4236/jmp.2013.43A055}, DOI={10.4236/jmp.2013.43a055}, number={03}, journal={JMP}, publisher={Scientific Research Publishing, Inc,}, author={Ludeña, Eduardo V.}, year={2013}, pages={391–400}}
 @article{Baldsiefen_2013, title={Minimization procedure in reduced density matrix functional theory by means of an effective noninteracting system}, volume={1003}, ISSN={2210-271X}, url={http://dx.doi.org/10.1016/j.comptc.2012.09.001}, DOI={10.1016/j.comptc.2012.09.001}, journal={Computational and Theoretical Chemistry}, publisher={Elsevier BV}, author={Baldsiefen, Tim and Gross, E.K.U.}, year={2013}, month={Jan}, pages={114–122}}
 @article{M_ller_1984, title={Explicit approximate relation between reduced two- and one-particle density matrices}, volume={105}, ISSN={0375-9601}, url={http://dx.doi.org/10.1016/0375-9601(84)91034-X}, DOI={10.1016/0375-9601(84)91034-x}, number={9}, journal={Physics Letters A}, publisher={Elsevier BV}, author={Müller, A.M.K.}, year={1984}, month={Nov}, pages={446–452}}
 @article{Mazziotti_2012, title={Significant conditions for the two-electron reduced density matrix from the constructive solution of N representability}, volume={85}, ISSN={1094-1622}, url={http://dx.doi.org/10.1103/PhysRevA.85.062507}, DOI={10.1103/physreva.85.062507}, number={6}, journal={Phys. Rev. A}, publisher={American Physical Society (APS)}, author={Mazziotti, David A.}, year={2012}, month={Jun}}
 @article{Nguyen_Dang_1985, title={Variation of the energy functional of the reduced first-order density operator}, volume={120}, ISSN={0166-1280}, url={http://dx.doi.org/10.1016/0166-1280(85)85114-9}, DOI={10.1016/0166-1280(85)85114-9}, journal={Journal of Molecular Structure: THEOCHEM}, publisher={Elsevier BV}, author={Nguyen-Dang, T.Tung and Ludena, Eduardo V. and Tal, Y.}, year={1985}, month={Feb}, pages={247–264}}
 @article{Mazziotti_2012_a, title={Structure of Fermionic Density Matrices: Complete N-Representability Conditions}, volume={108}, ISSN={1079-7114}, url={http://dx.doi.org/10.1103/PhysRevLett.108.263002}, DOI={10.1103/physrevlett.108.263002}, number={26}, journal={Physical Review Letters}, publisher={American Physical Society (APS)}, author={Mazziotti, David A.}, year={2012}, month={Jun}}
 @article{Nagy_2002, title={Density-matrix functional theory}, volume={66}, ISSN={1094-1622}, url={http://dx.doi.org/10.1103/PhysRevA.66.022505}, DOI={10.1103/physreva.66.022505}, number={2}, journal={Phys. Rev. A}, publisher={American Physical Society (APS)}, author={Nagy, Á.}, year={2002}, month={Aug}}
 @article{Lathiotakis_2014, title={Local reduced-density-matrix-functional theory: Incorporating static correlation effects in Kohn-Sham equations}, volume={90}, ISSN={1094-1622}, url={http://dx.doi.org/10.1103/PhysRevA.90.032511}, DOI={10.1103/physreva.90.032511}, number={3}, journal={Phys. Rev. A}, publisher={American Physical Society (APS)}, author={Lathiotakis, Nektarios N. and Helbig, Nicole and Rubio, Angel and Gidopoulos, Nikitas I.}, year={2014}, month={Sep}}
 @article{Ayers_2007, title={Necessary and sufficient conditions for the N-representability of density functionals}, volume={75}, ISSN={1094-1622}, url={http://dx.doi.org/10.1103/PhysRevA.75.022514}, DOI={10.1103/physreva.75.022514}, number={2}, journal={Phys. Rev. A}, publisher={American Physical Society (APS)}, author={Ayers, Paul and Liu, Shubin}, year={2007}, month={Feb}}
 @article{Cance_s_2008, title={Projected gradient algorithms for Hartree-Fock and density matrix functional theory calculations}, volume={128}, ISSN={0021-9606}, url={http://dx.doi.org/10.1063/1.2888550}, DOI={10.1063/1.2888550}, number={13}, journal={The Journal of Chemical Physics}, publisher={AIP Publishing}, author={Cancès, Eric and Pernal, Katarzyna}, year={2008}, pages={134108}}
 @article{Kollmar_2003, title={A new approach to density matrix functional theory}, volume={119}, ISSN={0021-9606}, url={http://dx.doi.org/10.1063/1.1590635}, DOI={10.1063/1.1590635}, number={9}, journal={The Journal of Chemical Physics}, publisher={AIP Publishing}, author={Kollmar, Christian and Heß, Bernd A.}, year={2003}, pages={4655}}

repository: hpc-app/nwchem

repo_name: hpc-app/nwchem

gha_license_id: NOASSERTION

gha_language: Fortran


text:
@article{scott_order_2016,
 abstract = {We examine the careers of a nationally representative US cohort of young adults using sequence analysis and information-theoretic techniques to describe these careers’ structure and how this structure might inform differences in wage mobility.  We operationalise the career as a sequence of industry-occupation pairs observed quarterly.  We investigate how the content of these pairs and their organisation over time relate to future mobility.  We perform the analysis across three different mobility groups, one of which is characterised by persistent low-wage work.  Contrary to what one might expect, low-wage work is not typified by a lack of structure, even in many of the careers in which the worker is weakly attached to the labour market.  Using clustering techniques customised to this problem, we build a typology of careers within three groups of workers defined by their wage mobility.  We find significant variation within, as well as similarity across the three groups, enhancing our understanding of careers with different levels of mobility.},
 author = {Scott, Marc and Zeidenberg, Matthew},
 copyright = {Copyright (c) 2016 Longitudinal and Life Course Studies},
 doi = {10.14301/llcs.v7i4.358},
 file = {Full Text PDF:C\:\\Users\\mzeid\\Zotero\\storage\\5SJ4UCUG\\Scott and Zeidenberg - 2016 - Order or chaos Understanding career mobility usin.pdf:application/pdf},
 issn = {1757-9597},
 journal = {Longitudinal and Life Course Studies},
 keywords = {clustering categorical data, information theory, intragenerational mobility, national longitudinal survey, optimal matching},
 language = {en},
 month = {October},
 number = {4},
 pages = {320--346},
 shorttitle = {Order or chaos?},
 title = {Order or chaos? Understanding career mobility using categorical clustering and information theory},
 url = {http://www.llcsjournal.org/index.php/llcs/article/view/358},
 urldate = {2019-11-26},
 volume = {7},
 year = {2016}
}

license: MIT

repository: mzeidenberg/academic-kickstart

repo_name: mzeidenberg/academic-kickstart


text:
/*
 * NiFi Rest Api
 *
 * The Rest Api provides programmatic access to command and control a NiFi instance in real time. Start and                                              stop processors, monitor queues, query provenance data, and more. Each endpoint below includes a description,                                             definitions of the expected input and output, potential response codes, and the authorizations required                                             to invoke each service.
 *
 * API version: 1.13.2
 * Contact: dev@nifi.apache.org
 */

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package nifi

import (
	"encoding/json"
)

// VersionedFlow struct for VersionedFlow
type VersionedFlow struct {
	Link *JaxbLink `json:"link,omitempty"`
	// An ID to uniquely identify this object.
	Identifier *string `json:"identifier,omitempty"`
	// The name of the item.
	Name string `json:"name"`
	// A description of the item.
	Description *string `json:"description,omitempty"`
	// The identifier of the bucket this items belongs to. This cannot be changed after the item is created.
	BucketIdentifier string `json:"bucketIdentifier"`
	// The name of the bucket this items belongs to.
	BucketName *string `json:"bucketName,omitempty"`
	// The timestamp of when the item was created, as milliseconds since epoch.
	CreatedTimestamp *int64 `json:"createdTimestamp,omitempty"`
	// The timestamp of when the item was last modified, as milliseconds since epoch.
	ModifiedTimestamp *int64 `json:"modifiedTimestamp,omitempty"`
	// The type of item.
	Type        string       `json:"type"`
	Permissions *Permissions `json:"permissions,omitempty"`
	// The number of versions of this flow.
	VersionCount *int64        `json:"versionCount,omitempty"`
	Revision     *RevisionInfo `json:"revision,omitempty"`
}

// NewVersionedFlow instantiates a new VersionedFlow object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewVersionedFlow(name string, bucketIdentifier string, type_ string) *VersionedFlow {
	this := VersionedFlow{}
	this.Name = name
	this.BucketIdentifier = bucketIdentifier
	this.Type = type_
	return &this
}

// NewVersionedFlowWithDefaults instantiates a new VersionedFlow object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewVersionedFlowWithDefaults() *VersionedFlow {
	this := VersionedFlow{}
	return &this
}

// GetLink returns the Link field value if set, zero value otherwise.
func (o *VersionedFlow) GetLink() JaxbLink {
	if o == nil || o.Link == nil {
		var ret JaxbLink
		return ret
	}
	return *o.Link
}

// GetLinkOk returns a tuple with the Link field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetLinkOk() (*JaxbLink, bool) {
	if o == nil || o.Link == nil {
		return nil, false
	}
	return o.Link, true
}

// HasLink returns a boolean if a field has been set.
func (o *VersionedFlow) HasLink() bool {
	if o != nil && o.Link != nil {
		return true
	}

	return false
}

// SetLink gets a reference to the given JaxbLink and assigns it to the Link field.
func (o *VersionedFlow) SetLink(v JaxbLink) {
	o.Link = &v
}

// GetIdentifier returns the Identifier field value if set, zero value otherwise.
func (o *VersionedFlow) GetIdentifier() string {
	if o == nil || o.Identifier == nil {
		var ret string
		return ret
	}
	return *o.Identifier
}

// GetIdentifierOk returns a tuple with the Identifier field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetIdentifierOk() (*string, bool) {
	if o == nil || o.Identifier == nil {
		return nil, false
	}
	return o.Identifier, true
}

// HasIdentifier returns a boolean if a field has been set.
func (o *VersionedFlow) HasIdentifier() bool {
	if o != nil && o.Identifier != nil {
		return true
	}

	return false
}

// SetIdentifier gets a reference to the given string and assigns it to the Identifier field.
func (o *VersionedFlow) SetIdentifier(v string) {
	o.Identifier = &v
}

// GetName returns the Name field value
func (o *VersionedFlow) GetName() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Name
}

// GetNameOk returns a tuple with the Name field value
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetNameOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Name, true
}

// SetName sets field value
func (o *VersionedFlow) SetName(v string) {
	o.Name = v
}

// GetDescription returns the Description field value if set, zero value otherwise.
func (o *VersionedFlow) GetDescription() string {
	if o == nil || o.Description == nil {
		var ret string
		return ret
	}
	return *o.Description
}

// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetDescriptionOk() (*string, bool) {
	if o == nil || o.Description == nil {
		return nil, false
	}
	return o.Description, true
}

// HasDescription returns a boolean if a field has been set.
func (o *VersionedFlow) HasDescription() bool {
	if o != nil && o.Description != nil {
		return true
	}

	return false
}

// SetDescription gets a reference to the given string and assigns it to the Description field.
func (o *VersionedFlow) SetDescription(v string) {
	o.Description = &v
}

// GetBucketIdentifier returns the BucketIdentifier field value
func (o *VersionedFlow) GetBucketIdentifier() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.BucketIdentifier
}

// GetBucketIdentifierOk returns a tuple with the BucketIdentifier field value
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetBucketIdentifierOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.BucketIdentifier, true
}

// SetBucketIdentifier sets field value
func (o *VersionedFlow) SetBucketIdentifier(v string) {
	o.BucketIdentifier = v
}

// GetBucketName returns the BucketName field value if set, zero value otherwise.
func (o *VersionedFlow) GetBucketName() string {
	if o == nil || o.BucketName == nil {
		var ret string
		return ret
	}
	return *o.BucketName
}

// GetBucketNameOk returns a tuple with the BucketName field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetBucketNameOk() (*string, bool) {
	if o == nil || o.BucketName == nil {
		return nil, false
	}
	return o.BucketName, true
}

// HasBucketName returns a boolean if a field has been set.
func (o *VersionedFlow) HasBucketName() bool {
	if o != nil && o.BucketName != nil {
		return true
	}

	return false
}

// SetBucketName gets a reference to the given string and assigns it to the BucketName field.
func (o *VersionedFlow) SetBucketName(v string) {
	o.BucketName = &v
}

// GetCreatedTimestamp returns the CreatedTimestamp field value if set, zero value otherwise.
func (o *VersionedFlow) GetCreatedTimestamp() int64 {
	if o == nil || o.CreatedTimestamp == nil {
		var ret int64
		return ret
	}
	return *o.CreatedTimestamp
}

// GetCreatedTimestampOk returns a tuple with the CreatedTimestamp field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetCreatedTimestampOk() (*int64, bool) {
	if o == nil || o.CreatedTimestamp == nil {
		return nil, false
	}
	return o.CreatedTimestamp, true
}

// HasCreatedTimestamp returns a boolean if a field has been set.
func (o *VersionedFlow) HasCreatedTimestamp() bool {
	if o != nil && o.CreatedTimestamp != nil {
		return true
	}

	return false
}

// SetCreatedTimestamp gets a reference to the given int64 and assigns it to the CreatedTimestamp field.
func (o *VersionedFlow) SetCreatedTimestamp(v int64) {
	o.CreatedTimestamp = &v
}

// GetModifiedTimestamp returns the ModifiedTimestamp field value if set, zero value otherwise.
func (o *VersionedFlow) GetModifiedTimestamp() int64 {
	if o == nil || o.ModifiedTimestamp == nil {
		var ret int64
		return ret
	}
	return *o.ModifiedTimestamp
}

// GetModifiedTimestampOk returns a tuple with the ModifiedTimestamp field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetModifiedTimestampOk() (*int64, bool) {
	if o == nil || o.ModifiedTimestamp == nil {
		return nil, false
	}
	return o.ModifiedTimestamp, true
}

// HasModifiedTimestamp returns a boolean if a field has been set.
func (o *VersionedFlow) HasModifiedTimestamp() bool {
	if o != nil && o.ModifiedTimestamp != nil {
		return true
	}

	return false
}

// SetModifiedTimestamp gets a reference to the given int64 and assigns it to the ModifiedTimestamp field.
func (o *VersionedFlow) SetModifiedTimestamp(v int64) {
	o.ModifiedTimestamp = &v
}

// GetType returns the Type field value
func (o *VersionedFlow) GetType() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Type
}

// GetTypeOk returns a tuple with the Type field value
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetTypeOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Type, true
}

// SetType sets field value
func (o *VersionedFlow) SetType(v string) {
	o.Type = v
}

// GetPermissions returns the Permissions field value if set, zero value otherwise.
func (o *VersionedFlow) GetPermissions() Permissions {
	if o == nil || o.Permissions == nil {
		var ret Permissions
		return ret
	}
	return *o.Permissions
}

// GetPermissionsOk returns a tuple with the Permissions field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetPermissionsOk() (*Permissions, bool) {
	if o == nil || o.Permissions == nil {
		return nil, false
	}
	return o.Permissions, true
}

// HasPermissions returns a boolean if a field has been set.
func (o *VersionedFlow) HasPermissions() bool {
	if o != nil && o.Permissions != nil {
		return true
	}

	return false
}

// SetPermissions gets a reference to the given Permissions and assigns it to the Permissions field.
func (o *VersionedFlow) SetPermissions(v Permissions) {
	o.Permissions = &v
}

// GetVersionCount returns the VersionCount field value if set, zero value otherwise.
func (o *VersionedFlow) GetVersionCount() int64 {
	if o == nil || o.VersionCount == nil {
		var ret int64
		return ret
	}
	return *o.VersionCount
}

// GetVersionCountOk returns a tuple with the VersionCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetVersionCountOk() (*int64, bool) {
	if o == nil || o.VersionCount == nil {
		return nil, false
	}
	return o.VersionCount, true
}

// HasVersionCount returns a boolean if a field has been set.
func (o *VersionedFlow) HasVersionCount() bool {
	if o != nil && o.VersionCount != nil {
		return true
	}

	return false
}

// SetVersionCount gets a reference to the given int64 and assigns it to the VersionCount field.
func (o *VersionedFlow) SetVersionCount(v int64) {
	o.VersionCount = &v
}

// GetRevision returns the Revision field value if set, zero value otherwise.
func (o *VersionedFlow) GetRevision() RevisionInfo {
	if o == nil || o.Revision == nil {
		var ret RevisionInfo
		return ret
	}
	return *o.Revision
}

// GetRevisionOk returns a tuple with the Revision field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *VersionedFlow) GetRevisionOk() (*RevisionInfo, bool) {
	if o == nil || o.Revision == nil {
		return nil, false
	}
	return o.Revision, true
}

// HasRevision returns a boolean if a field has been set.
func (o *VersionedFlow) HasRevision() bool {
	if o != nil && o.Revision != nil {
		return true
	}

	return false
}

// SetRevision gets a reference to the given RevisionInfo and assigns it to the Revision field.
func (o *VersionedFlow) SetRevision(v RevisionInfo) {
	o.Revision = &v
}

func (o VersionedFlow) MarshalJSON() ([]byte, error) {
	toSerialize := map[string]interface{}{}
	if o.Link != nil {
		toSerialize["link"] = o.Link
	}
	if o.Identifier != nil {
		toSerialize["identifier"] = o.Identifier
	}
	if true {
		toSerialize["name"] = o.Name
	}
	if o.Description != nil {
		toSerialize["description"] = o.Description
	}
	if true {
		toSerialize["bucketIdentifier"] = o.BucketIdentifier
	}
	if o.BucketName != nil {
		toSerialize["bucketName"] = o.BucketName
	}
	if o.CreatedTimestamp != nil {
		toSerialize["createdTimestamp"] = o.CreatedTimestamp
	}
	if o.ModifiedTimestamp != nil {
		toSerialize["modifiedTimestamp"] = o.ModifiedTimestamp
	}
	if true {
		toSerialize["type"] = o.Type
	}
	if o.Permissions != nil {
		toSerialize["permissions"] = o.Permissions
	}
	if o.VersionCount != nil {
		toSerialize["versionCount"] = o.VersionCount
	}
	if o.Revision != nil {
		toSerialize["revision"] = o.Revision
	}
	return json.Marshal(toSerialize)
}

type NullableVersionedFlow struct {
	value *VersionedFlow
	isSet bool
}

func (v NullableVersionedFlow) Get() *VersionedFlow {
	return v.value
}

func (v *NullableVersionedFlow) Set(val *VersionedFlow) {
	v.value = val
	v.isSet = true
}

func (v NullableVersionedFlow) IsSet() bool {
	return v.isSet
}

func (v *NullableVersionedFlow) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableVersionedFlow(val *VersionedFlow) *NullableVersionedFlow {
	return &NullableVersionedFlow{value: val, isSet: true}
}

func (v NullableVersionedFlow) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableVersionedFlow) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}

repository: simingweng/nifi-go-client

repo_name: simingweng/nifi-go-client

gha_language: Shell


text:
# Recipe for ti-linux-kernel, with some customization to enable
# power management features on settings for AM335x/Beaglebone

inherit kernel
require recipes-kernel/linux/linux-yocto.inc

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-4.1:"

# Add run-time dependency for PM firmware to the rootfs
DEPENDS = " amx3-cm3"

KERNEL_DEVICETREE_ti33x = "am335x-boneblack.dtb"

# Select 4.1 because later versions seem to have lost some
# features
LINUX_VERSION ?= "4.1"

COMPATIBLE_MACHINE = "beaglebone"

S = "${WORKDIR}/git"

BRANCH = "ti-linux-4.1.y"

SRCREV = "b56fa3bd73d45ef31478b7e3ab97570a0dd79c44"
PV = "4.1.37+git${SRCPV}"

# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
MACHINE_KERNEL_PR_append = "a"
PR = "${MACHINE_KERNEL_PR}"

KERNEL_GIT_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
KERNEL_GIT_PROTOCOL = "git"
SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
            file://defconfig"

# Copy the PMIC firmware into the kernel source so that it can be
# built in to the kernel image.
# This is not an elegant solution; but it works
do_compile_prepend() {
	cp ${STAGING_DIR_HOST}/lib/firmware/am335x-pm-firmware.elf ${STAGING_KERNEL_DIR}/firmware
	cp ${STAGING_DIR_HOST}/lib/firmware/am335x-bone-scale-data.bin ${STAGING_KERNEL_DIR}/firmware
}

repository: alokprasad/books-src

repo_name: alokprasad/books-src

extension: bb


text:
@article{2020ApJ...889...24Z,
 abstract = {Cosmic ray (CR) identification and replacement are critical components
of imaging and spectroscopic reduction pipelines involving
solid-state detectors. We present deepCR, a deep-learning-based
framework for CR identification and subsequent image inpainting
based on the predicted CR mask. To demonstrate the effectiveness
of this framework, we train and evaluate models on Hubble Space
Telescope (HST) ACS/WFC images of sparse extragalactic fields,
globular clusters, and resolved galaxies. We demonstrate that at
a false-positive rate of 0.5%, deepCR achieves close to 100%
detection rates in both extragalactic and globular cluster
fields, and 91% in resolved galaxy fields, which is a
significant improvement over the current state-of-the-art method
LACosmic. Compared with a multicore CPU implementation of
LACosmic, deepCR CR mask predictions run up to 6.5 times faster
on a CPU and 90 times faster on a single GPU. For image
inpainting, the mean squared errors of deepCR predictions are 20
times lower in globular cluster fields, 5 times lower in
resolved galaxy fields, and 2.5 times lower in extragalactic
fields, compared with the best performing nonneural technique
tested. We present our framework and the trained models as an
open-source Python project , with a simple-to-use API. To
facilitate reproducibility of the results we also provide a
benchmarking codebase .},
 adsnote = {Provided by the SAO/NASA Astrophysics Data System},
 adsurl = {https://ui.adsabs.harvard.edu/abs/2020ApJ...889...24Z},
 archiveprefix = {arXiv},
 author = {Zhang, Keming and Bloom, Joshua S.},
 doi = {10.3847/1538-4357/ab3fa6},
 eid = {24},
 eprint = {1907.09500},
 journal = {\apj},
 keywords = {Astrophysics - Instrumentation and Methods for Astrophysics, Computer Science - Computer Vision and Pattern Recognition},
 month = {January},
 number = {1},
 pages = {24},
 primaryclass = {astro-ph.IM},
 title = {deepCR: Cosmic Ray Rejection with Deep Learning},
 volume = {889},
 year = {2020}
}

repository: profjsb/my-content

repo_name: profjsb/my-content

gha_license_id: MIT

gha_language: TeX


text:
LICENSE = "MIT"
LIC_FILES_CHKSUM ?= "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

include recipes-core/images/core-image-minimal.bb

IMAGE_INSTALL += " \
	cpufrequtils \
	cxxscore-clang-o2 \
	cxxscore-clang-o3 \
	cxxscore-clang-os \
	cxxscore-gcc-o2 \
	cxxscore-gcc-o3 \
	cxxscore-gcc-os \
	cxxscore-runner \
	htop \
	kernel-modules \
	mc \
	util-linux \
"
set_default_machineid() {
    echo "76465eef8ce3465699b148cfc37548d0" > ${IMAGE_ROOTFS}/etc/machine-id
}

set_local_timezone() {
    ln -sf /usr/share/zoneinfo/Europe/Warsow ${IMAGE_ROOTFS}/etc/localtime
}

disable_bootlogd() {
    echo BOOTLOGD_ENABLE=no > ${IMAGE_ROOTFS}/etc/default/bootlogd
}

ROOTFS_POSTPROCESS_COMMAND += " \
    set_local_timezone ; \
    disable_bootlogd ; \
    set_default_machineid ; \
 "


text:
@inproceedings{lesieur_phase_2015,
 abstract = {We study optimal estimation for sparse principal component analysis when the number of non-zero elements is small but on the same order as the dimension of the data. We employ approximate message passing (AMP) algorithm and its state evolution to analyze what is the information theoretically minimal mean-squared error and the one achieved by AMP in the limit of large sizes. For a special case of rank one and large enough density of non-zeros Deshpande and Montanari [1] proved that AMP is asymptotically optimal. We show that both for low density and for large rank the problem undergoes a series of phase transitions suggesting existence of a region of parameters where estimation is information theoretically possible, but AMP (and presumably every other polynomial algorithm) fails. The analysis of the large rank limit is particularly instructive.},
 author = {Lesieur, T. and Krzakala, F. and Zdeborová, L.},
 booktitle = {2015 IEEE International Symposium on Information Theory (ISIT)},
 doi = {10.1109/ISIT.2015.7282733},
 file = {IEEE Xplore Abstract Record:/Users/florentkrzakala/Zotero/storage/ULSPB7M6/7282733.html:text/html;Submitted Version:/Users/florentkrzakala/Zotero/storage/QT45YCEL/Lesieur et al. - 2015 - Phase transitions in sparse PCA.pdf:application/pdf},
 keywords = {approximate message passing, Approximation algorithms, Estimation, information theoretically minimal mean-squared error, information theory, Mathematical model, mean square error methods, message passing, Message passing, Noise, non-zero elements, PCA, phase transitions, principal component analysis, Principal component analysis, Sparse matrices},
 month = {June},
 pages = {1635--1639},
 title = {Phase transitions in sparse PCA},
 year = {2015}
}

repository: krzakala/academic-kickstart

repo_name: krzakala/academic-kickstart


text:
inherit esw_examples features_check

REQUIRED_DISTRO_FEATURES = "xxvethernet"

ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/xxvethernet/examples/"

repository: fullstackfpga/meta-xilinx

repo_name: fullstackfpga/meta-xilinx


text:
package endpoints

import (
	"fmt"
	"time"
	"net/http"
	"github.com/YagoCarballo/kumquat-academy-api/database/models"
	"github.com/YagoCarballo/kumquat-academy-api/tools"
	"mime/multipart"
	"os"
)

// CRUD

func CreateLecture(moduleCode, location, topic, description string, start, end time.Time, canceled bool, lectureSlotId *uint32) (int, map[string]interface{}) {
	module, err := models.DBModule.FindModuleWithCode(moduleCode)
	if err != nil {
		return http.StatusExpectationFailed, map[string]interface{}{
			"error": "Unknown",
			"message": "Error reading the module",
		}
	}

	lecture, err := models.DBLecture.CreateLecture(module.ModuleID, location, topic, description, start, end, canceled, lectureSlotId)
	if err != nil {
		return http.StatusExpectationFailed, map[string]interface{}{
			"error": "Unknown",
			"message": "Error creating the lecture.",
		}
	}

	return http.StatusCreated, map[string]interface{}{
		"lecture": lecture,
	}
}

func GetLecture(lectureId uint32) (int, map[string]interface{}) {
	lecture, err := models.DBLecture.ReadLecture(lectureId)
	if err != nil || lecture == nil {
		return http.StatusNotFound, map[string]interface{}{
			"error": "NotFound",
			"message": "Lecture not found.",
		}
	}

	return http.StatusOK, map[string]interface{}{
		"lecture": lecture,
	}
}

func UpdateLecture(lectureId uint32, moduleCode, location, topic, description string, start, end time.Time, canceled bool, lectureSlotId *uint32) (int, map[string]interface{}) {
	module, err := models.DBModule.FindModuleWithCode(moduleCode)
	if err != nil {
		return http.StatusExpectationFailed, map[string]interface{}{
			"error": "Unknown",
			"message": "Error reading the module",
		}
	}

	lecture, err := models.DBLecture.UpdateLecture(lectureId, module.ModuleID, location, topic, description, start, end, canceled, lectureSlotId)
	if err != nil || lecture == nil {
		return http.StatusExpectationFailed, map[string]interface{}{
			"error": "Unknown",
			"message": "Lecture not updated.",
		}
	}

	return http.StatusOK, map[string]interface{}{
		"lecture": lecture,
	}
}

func DeleteLecture(lectureId uint32) (int, map[string]interface{}) {
	rows, err := models.DBLecture.DeleteLecture(lectureId)
	if err != nil || rows <= 0 {
		return http.StatusExpectationFailed, map[string]interface{}{
			"error": "Unknown",
			"message": "Error deleting the Lecture",
		}
	}

	return http.StatusAccepted, map[string]interface{}{
		"message": fmt.Sprintf("Lecture %d removed.", lectureId),
	}
}

func FindLecturesForModule(moduleId string) (int, map[string]interface{}) {
	lectures, err := models.DBLecture.FindLecturesForModule(moduleId)
	if err != nil {
		return http.StatusNotFound, map[string]interface{}{
			"error": "Unknown",
			"message": "Error fetching the lectures.",
		}
	}

	return http.StatusOK, map[string]interface{}{
		"lectures": lectures,
	}
}

func FindLectureWeeksForModule(moduleId string) (int, map[string]interface{}) {
	lectures, err := models.DBLecture.FindLecturesWeeksForModule(moduleId)
	if err != nil {
		return http.StatusNotFound, map[string]interface{}{
			"error": "Unknown",
			"message": "Error fetching the lectures.",
		}
	}

	return http.StatusOK, map[string]interface{}{
		"lectures": lectures,
	}
}

func FindLectureWeeksAndSlotsForModule(moduleCode string) (int, map[string]interface{}) {
	// Create the Weeks Array
	weeks := []map[string]interface{}{}

	// Get the GMT Timezone to use as base
	gmt := time.FixedZone("GMT", 0)

	// Get the Module Information
	levelModule, err := models.DBModule.FindModuleWithCode(moduleCode)
	if err != nil {
		return http.StatusNotFound, map[string]interface{}{
			"error": "Unknown",
			"message": "Error fetching the module",
		}
	}

	// Get Lecture Slots
	lectureSlots, err := models.DBLectureSlot.FindLectureSlotsForModule(moduleCode)
	if err != nil {
		return http.StatusNotFound, map[string]interface{}{
			"error": "Unknown",
			"message": "Error fetching the lecture slots.",
		}
	}

	// Get the duration of the Day
	dayDuration, err := time.ParseDuration("23h59m")
	if err != nil {
		return http.StatusNotFound, map[string]interface{}{
			"error": "Unknown",
			"message": "Error parsing dates.",
		}
	}

	// Get the Module Start Date
	startYear, startWeek := levelModule.Start.ISOWeek()
	parsedStart := tools.FirstDayOfISOWeek(startYear, startWeek, gmt)

	// Get the Course End Year
	endYear, endWeek := levelModule.Start.AddDate(0, 0, int(levelModule.Module.Duration * 7)).ISOWeek()
	parsedEnd := tools.FirstDayOfISOWeek(endYear, endWeek, gmt).AddDate(0, 0, 6)

	// Loop through each week
	count := 0
	for current := parsedStart; current.Before(parsedEnd); current = current.AddDate(0, 0, 7) {
		count++;

		// Get the start of the Day and end of the Day
		weekStart := current
		weekEnd := current.AddDate(0, 0, 6).Add(dayDuration)

		// Get the lectures for the week and group them into week days
		lectures, _ := models.DBLecture.FindLecturesForModuleInRange(moduleCode, &weekStart, &weekEnd, -1);
		lecturesMap := models.GroupLecturesInWeeks(&lectures)

		weeks = append(weeks, map[string]interface{}{
			"week": count,
			"start": weekStart,
			"end": weekEnd,
			"lectures": lecturesMap,
		})

		// Once the duration is reached, Stop
		if count >= int(levelModule.Module.Duration) {
			break;
		}
	}

	return http.StatusOK, map[string]interface{}{
		"slots": lectureSlots,
		"weeks": weeks,
	}
}

func UploadLectureAttachments(lectureId uint32, file multipart.File, header *multipart.FileHeader) (int, FileResponseMessage) {
	status, response := UploadFile(file, header)
	if status != http.StatusOK {
		return http.StatusExpectationFailed, FileResponseMessage{
			Error: "Unknown",
			Message: "Error uploading the file.",
		}
	}

	count, err := models.DBLecture.AddAttachmentToLecture(lectureId, response.Attachment.ID)
	if err != nil || count <= 0 {
		return http.StatusExpectationFailed, FileResponseMessage{
			Error: "Unknown",
			Message: "Error adding the attachment to the lecture.",
		}
	}

	return status, response
}

func RemoveLectureAttachments(lectureId, attachmentId uint32) (int, map[string]interface{}) {
	var err error

	attachment, _ := models.DBAttachment.ReadAttachment(attachmentId)
	if attachment != nil {
		serverSettings := tools.GetSettings().Server
		path := fmt.Sprintf("%s/%s", serverSettings.UploadsPath, attachment.Url)
		os.Remove(path)
	}

	count, err := models.DBLecture.RemoveAttachmentFromLecture(lectureId, attachmentId)
	if err != nil {
		return http.StatusExpectationFailed, map[string]interface{}{
			"error": "Unknown",
			"message": "Error deleting the attachment from the lecture.",
		}
	}

	if count <= 0 {
		return http.StatusNotFound, map[string]interface{}{
			"error": "NotFound",
			"message": "An attachment with that Id was not found inside the lecture.",
		}
	}

	return http.StatusOK, map[string]interface{}{
		"message": "Attachment removed.",
	}
}

func FindLectureWeeksForUser(userId uint32) (int, map[string]interface{}) {
	// Get the GMT Timezone to use as base
	gmt := time.FixedZone("GMT", 0)

	// Get the start of the current Week
	startYear, startWeek := time.Now().ISOWeek()
	parsedStart := tools.FirstDayOfISOWeek(startYear, startWeek, gmt)

	// Get the end of the current Week
	parsedEnd := parsedStart.AddDate(0, 0, 6)

	// Get the lectures for the week and group them into week days
	lectures, _ := models.DBLecture.FindLecturesForUserInRange(userId, &parsedStart, &parsedEnd, -1);
	lecturesMap := models.GroupLecturesInWeeks(&lectures)

	return http.StatusOK, map[string]interface{}{
		"schedule": lecturesMap,
	}
}

repository: YagoCarballo/kumquat-academy-api

repo_name: YagoCarballo/kumquat-academy-api