text:
Home Tests Datsun Go First Look Review – Ready to Go
Datsun Go First Look Review – Ready to Go
Snapshot: The Datsun Go is a nifty performer and is well loaded at the price point it wants to come in but airbags and ABS are not even on the options list. Pricing will be cruicial to its success
The Datsun brand name, owned by Nissan is now back in India and it is going to lead a revolution in the small car industry. At least, that is what the 'Go', a new small car from the resurgent Datsun brand, promises! Interestingly, the Datsun Go has been designed specifically for India and hopes to attract a new set of consumers – the young, trendy and hip Indian who is upto 33 years old and is looking for his first small big car – literally a person on the move. From the first indications, they seem to have succeeded, though at this point it would be premature to pass judgement on the 'Go.'
For those of you who think the name is weird, it comes with a purpose. The first Datsun, back in the early 20th century in Japan was called the 'DAT-GO' and at that time it stood for values of aspiration and trustworthiness and brought mobility to a whole lot of people who had previously only dreamt of motorized transport. With this car, Datsun along with parent company Nissan hopes that a new wave of customers will eagerly adopt this car as family. The 'Go' will be manufactured at Renault-Nissan's plant in Chennai, and as per the company they have started manufacture in January of this year and hope to do a formal launch by the latter half of this month.
When designing the car, the designers started with a clean sheet of paper. The brief was simple: the design should be unique and modern but at the same time it should have a distinct brand identity, in sync with the Datsun philosophy. One of the biggest elements in the front hence designed has been the 'D-cut grille.' Chrome-plated with a honeycomb mesh, it looks like a large 'D' from the front. Keeping Indian traffic and road conditions in mind, the bumpers are reinforced. Then there are the large headlamps, which give an excellent illumination and beam spread, a feature very useful on our pothole-ridden roads. Prominent shoulder lines run on the sides, right upto the rear combination lamps, which by themselves are very pretty. The rear hatch lid is also very smart, and there is a lot of useful space inside.
What is also nice about the car is the excellent ground clearance of 170mm, which ensures that it does not ground even on the worst of speedbreakers. It looks good, and it looks premium – almost like a vehicle worth at least 50k more than the asking price! At 769 kg, the 'Go' is also a very light car, and this payoff can be seen in the performance and fuel economy figures.
The interiors follow the same philosophy as the rest of the car – they are light, airy and functional. The instrumentation of the car is unique – unlike conventional gear-change indicators, the speedo dial has gear markings on appropriate gear change areas. Couple this to a smart on-board computer, and you will see exactly why the 'Go' represents value for money. The only point of criticism here is the bar graph tachometer, which is really small and seems to be more of a gimmick than an actual utility item. Interestingly, the engine is shown to be running out of breath at 5,500RPM on the display!
By far the best part of the design is that the front seat is like a bench seat. The gear lever and the push/pull type handbrake are mounted on the centre console, thereby freeing up the centre area. The advantage here is that too many times, we have all been stuck at parking lots, where someone parks so close to your parking door that you cannot get in. In this case, just get in from the other side, and you can make it comfortably to the drivers' seat without twisting, turning or trying to contour your body profile. The centre area can also be used to keep stuff like bags etc. There is a 12-volt supply socket as well, to help you charge a mobile phone etc.
Another feature, which was really appealing, was the mobile docking system (MDS). For those of you who like to think out of the box, the MDS is a nifty idea. It consists of a basic stereo, which has a mobile holder. An Aux-in port takes care of sound connectivity and a USB port the charging part. Sound is basic, tinny without much feel or warmth, but on the positive side one can use Google maps to navigate, use internet radio for music and all other functions of a smartphone. If however the stuff is not to your liking, then the standard 1-DIN slot will accept any standard stereo.
Other trim parts in the interiors have clearly come from the Nissan parts bin – whether it is the design of the air-con vents, the seat fabric, the door trims or various other parts of interior trim. The rear seats have decent legroom and headroom so even taller people will not have a problem sitting comfortably. To the credit of Datsun, the entire floor area is fully carpeted. There are also a lot of other cubbyholes for storing stuff, including generously sized bottle-holders, which can hold 1.5-litre bottles. This easily makes up for the absence of a regular glovebox.
There are other nifty features too – an intelligent wiper system which can vary itself based on the speed of the vehicle and 'follow-me-home' headlights where you can pull the indicator lever to leave the headlamps on for a fixed interval of time.
From the word 'Go,' the brief was very clear to Datsun engineers. They had to use a powerplant, which was fuel-efficient as well as powerful. Normally these two would never go together; hence the Datsun engineers had their work cut out. The three cylinder 1.2-litre doing duty in the Micra Active was chosen, as it's a lightweight engine and has a good power versus fuel-economy relationship. Performance is sprightly. With only 68 bhp on tap, the 'Go' seems to be underpowered but real world statistics show that the 'Go' is quite a runner, with the 0-100 sprint coming up in a shade over 13 seconds – that is very good. The engine itself is very advanced with extensive use of aluminum and counter-balancers to remove vibration.
Power is transmitted via a 5-speed gearbox to the front wheels. The feel is average, with downshifts being a little more cumbersome than upshifts. This is especially noticeable when shifting from 5th to 4th and 3rd to 2nd. It's a box that does not like to be hurried and the clutch is also a tad heavy, meaning long drives in bumper-to-bumper traffic could be tiring.
A combination of a light engine with a lightweight body means that apart from straight-line performance, fuel economy figures are also very good and as per Automotive Research Association of India (ARAI), the 'Go' gives around 20.6 kmpl, which is the best in its segment. This is one petrol car with diesel engine fuel efficiency figures!
Braking and Safety
Braking is conventional, with a ventilated disc in the front and drums at the rear. Stopping distances were good and braking performance is strong, though no passive safety measures like anti-lock braking system (ABS) or its derivatives are present. Airbags are not even an option on the car.
The Datsun 'Go' is a vehicle that was built for India, rather than adapted to Indian conditions. Currently, its value propositioning looks great and it is a great vehicle to drive as well. What would be crucial to the market is its pricing and this is where Datsun will have to get its figures right. The company is talking about a sub 4-lakh rupees price for the car, and if it makes a base version available below Rs. 3.25 lakh, it will have its day made. Over that the choices are larger and more established players are ruling the roost. Will Datsun make it? Judgement day is not far away.
The two biggest competitors that the Datsun 'Go' will have to face are the Hyundai Eon and the Maruti Suzuki Alto 800. The Hyundai Eon is a very good-looking vehicle and being a Hyundai, is loaded with features. It even has the option of a driver's side airbag, which the Datsun 'Go' does without. However, the Eon has a smaller 814cc engine, which does not offer the drivability and the linear power delivery of the 'Go.' The Eon starts retailing at Rs. 2.86 lakh, ex-showroom, Delhi for the D-Lite model. The other competitor to the 'Go' is the Alto 800, which is currently the market leader in the segment. Styled a bit oddly, it is nevertheless quite a fuel-efficient thing albeit with an 800cc engine. The Alto 800 also has an option of a driver's airbag and yes, a proper glovebox! The Alto 800 price starts at Rs. 2.95 lakh for the power steering variant.
Previous articleHyundai Elantra Diesel Road Test Review
Next articleCheck and maintain your car's engine oil level
Hyundai Grand i10 NIOS – Expert Review
Maruti Suzuki XL6 – Expert review
Porsche Boxster 718 Expert review


The latest (June 7; vol. 1 no. 16) edition of Seven Oaks, the progressive Canadian magazine dedicated to "social justice, world peace, gender and racial equality" among other causes, featured Michigan State University ethicist Alice Dreger in its "Seven Questions" corner. Interviewer Stephen Hui asks such fabulous questions, including "What sparked your involvement with intersex people's efforts to reform the medical establishment and society's treatment of them?" and "How have [pop culture] representations of helped or hindered progress?" Visit Seven Oaks magazine for the full article.


text:
Animals in Song - Elizabeth Mitchell: Animal Songs for Children
Designed by: Anna Maria Walisser
Students will learn the process of telling a story through song, while learning basic musical skills like rhythm, beat, movement, dance, singing on pitch, and call-and-response format. The featured songs are "Froggie Went a Courtin," "Arm and Arm," and "The Little Bird," from Elizabeth Mitchell's album Blue Clouds.
Suggested Grade Levels: Pre-K, K-2
Culture Group: American
Genre: Folk, Children's Music
Instruments: Voice, Rhythm Sticks, and Clapping Hands
Co-Curricular Areas: Science (Animals, Biology)
National Standards: 1, 2, 6, 8, 9
Practice keeping a steady beat and copying rhythm
Learn Call and Response Format
Gain an understanding of music and movement
Connect song to story and story to song
Exercise fine motor and phonics skill by writing and drawing about songs learned
Create written stories and simple songs
"Froggie Went A Courtin" from Blue Clouds by Elizabeth Mitchell
"The Little Bird" from Blue Clouds by Elizabeth Mitchell
"Arm in Arm" from Blue Clouds by Elizabeth Mitchell
American Indian Eagle Dance video from Smithsonian Folkways
Lesson Segments:
Froggie Went A Courtin – Movement, Rhythm and Beat (National Standards 1, 6, 8)
Arm and Arm – The Octopus – Dance and Call and Response (National Standards 1, 6, 8, 9)
The Little Bird – Instrumentation and Call and Response (National Standards 1, 2, 6)
"Froggie Went a-Courtin'"
from Blue Clouds (2012) | SFW45065
"The Little Bird"
" Arm in Arm"
Lesson Segment 1: Froggie Went A Courtin – Movement, Rhythm and Beat
Animals, Story and Movement
Ask the students what their favorite animal is. Invite individual students to demonstrate the movement of that particular animal.
Tell the students about the story "Froggie Went A Courtin"
It is an English language folk song – folk songs were among the original genres of songs in England.
The song is said to have been written for courtship. Courtship is another word for dating.
In this song, the courtship is between a Frog and a Mouse.
Ask the students to listen to the song and try to remember all of the different animals and bugs that are mentioned in the song.
After the students listen to the song, ask them what the different animals are: Frog, Mouse, Owl, Bat, Bumblebee, Rat, Moth, Goose, Ant. Discuss the different movements each animal makes – be sure to distinguish between each animal. For example, distinguish the difference between the flight patterns of an owl as opposed to that of a bat or a bumblebee.
Listen to the song again. Whenever Elizabeth sings about a new animal, encourage the students to move the way that animal moves.
Rhythm and Beat – The Heart Beat
Explain to students that movement is an important part of song. In the past, dance and song were always connected together. In some cultures there is still rarely dancing without music, or music without dancing.
Play the song again. This time, instead of having the students act as animals, have them march to the beat.
Discuss with students the importance of beat and rhythm in music. It often helps to explain to the students that music has a heartbeat, much like people do.
Then, draw a picture of four hearts in a row. Write a number one in the first heart, a number two in the second heart, a number three in the third heart, and a number four in the fourth heart.
Play the song again. Point to the beats as they pass in the song. Have the students say the numbers of the beats as they pass.
Start having the students clap along with the beat. If they are struggling with clapping have them continue to say the notes allowed or walk to the beat.
Encourage the students to sing along to the chorus of the song as they clap. Listen for pitch accuracy. If the students are struggling with singing and clapping, have them start off by singing and then add the clapping or walking to the beat motions.
Extension: Depending on the skill level of the students, have them either draw or draw and write a caption for or a sentence about the story of "Froggie Went a Courtin."
Assessment: Take note of each student's ability to pay attention to the lesson and ability to stay on the beat. Give praise when warranted and/or discuss with the class ways to make the future lessons smoother and more productive.
Lesson Segment 2: Arm and Arm – The Octopus – Dance and Call and Response
Video: Eagle Dance
Animals in Dance and Song
Discuss with students what they remember from the last lesson. Highlight the importance of dance and movement in song as well as reminding them of music's "heartbeat."
Explain to students the historic importance of animals in dance and songs. In Indian culture, animals were often represented in dance and dance was often accompanied by song.
Shows students part of the Smithsonian Folkways video of the Eagle dance.
Ask them what animal the men in the video are representing.
Tell students that we are now going to listen to the video "Arm and Arm." Ask them to remember the kind of animal that is sung about in the song.
Ask the students how many arms an octopus has. Once they correctly guess eight, ask them how many arms a child has. Then ask them how many students there would need to be to make the same number of arms as an octopus. (Four students)
Have the students get into groups of four. When Elizabeth sings the chorus, "arm and arm and arm and arm," demonstrate for the students how to "swing your partner" by linking arms and passing partners between the group of four.
Perform "Arm and Arm" with the teacher singing the call with Elizabeth Mitchell and prompting the students to sing the response with the children on the track.
If you are comfortable, sing without the track.
Make sure that students sing in a bright head tone and encourage pitch accuracy.
Have students dance and sing along with the track.
Extension: Have students chose other animals and sing the song "arm and arm," replacing octopus with a different animals and "arm" with "wing," "fin," etc., if need be.
Assessment: Take note of each student's ability to pay attention to the lesson, sing on pitch, and follow the call and response structure in order to know what elements to focus on subsequent lessons.
Lesson Segment 3: The Little Bird – Bird – Instrumentation and Call and Response
Ask the students if they have ever played any instruments or if they have ever seen any instruments. Have them demonstrate with motions how to play the instruments.
Play "The Little Bird" for the students. Ask them to try to figure out which instruments are played in the song. (Vocals, Glockenspiel, Percussion (rattle/shaker), Guitar)
Play "The Little Bird" again. Point out the different instruments. It helps if you are able to hum what the instruments are playing, or clap what the percussion is doing.
Show the students pictures of the instruments. Demonstrate to them how the instruments are played and have them imitate the motions of the various instruments throughout the song.
Sing along – perform "The Little Bird" with the teacher singing the call and prompting students to sing the response.
Switch roles and play and song through again with students singing the call and the teacher singing the response.
Watch to make sure the students stay on pitch and sing in a nice, bright head tone.
Extension: If you have hand rhythm instruments such as maracas, drums, shakers, rattlers, have the students shake or tap the instruments along with the percussion of the song.
Assessment: Take note of the student's ability to pay attention to the lesson, clap the rhythm, follow call and answer, and stay on pitch in order to know what elements to focus on subsequent lessons.
Lesson Segment 4: Linking it All Together
Ask students to write their own song about their favorite animal. You can chose a melody from one of Elizabeth Mitchell's songs, or you can be creative and invite the students to create their own melody. See if a few of the students will sing their songs for the class as a kind of "show and tell." If students seem nervous, it might help for you to sing their song with them. Encourage the class to learn the song and sing along.
If students seem too nervous to sing in front of the class, see if they will write a few lines of a story. You can then turn the story into a song, or you can have them read the story out loud to the class.
Blue Clouds
Arm in Arm
The Sounding Joy: Christmas Songs In and Out of the Ruth Crawford ...
You Are My Little Bird
Little Seed: Songs for Children by Woody Guthrie

redpajama_set_name: RedPajamaCommonCrawl


Haven't been on the Tube for a while. But I finally upgraded my vlogging camera! So I thought I would take this opportunity to get back into the groove and start vlogging again. Especially since now school is nearing it's end and summer is fast approaching. I think it's time to revisit my love for vlogging!
I've actually been working on a lookbook for you guys with one of my good friends, Thomas. But that project had to be paused because I've been a total nutjob running around with my head cut off trying to balance school, my internship, my part-time job, and (what's left) of my social life. However, I'm done my internship this week and my last exam is next week so I promise I'll finish up that project for you soon and get on with starting another!
Have definitely put the most thought and effort into this upcoming lookbook than any of my videos EVER so I really hope you like it!
For now, click play below to watch my Update Vlog! I talk about where I get my lash extensions done in Vancouver, packing for my upcoming trip, and my new camera!


Study Writing is an ideal reference book for EAP students who want to write better academic essays, projects, research articles or theses.
* introducing key concepts in academic writing, such as the role of generalizations and definitions, and their application.
* exploring the use of information structures, including those used to develop and present an argument.
* familiarizing learners with the characteristics of academic genre and analysing the grammar and vocabulary associated with them.
* encouraging students to seek feedback on their own writing and analyse expert writers' texts in order to become more reflective and effective writers.
This second edition has been updated to reflect modern thinking in the teaching of writing. It includes more recent texts in the disciplines presented and takes into account new media and the growth of online resources.
Get your students thinking critically. A six-level skills-based English course.


text:
Euralarm publishes list of major Priorities and Challenges for 2019-2024
By : Brian Sims
Tag: Artificial Intelligence, Cyber Security, Defence, Digitalisation, EU, Euralarm, European Union, Fire Safety, Internet of Things, Pro-Activ Publications, Protection, Risk, Risk Xtra, security, Single Market, TheSecurityLion
Euralarm, the association representing the fire safety and security industries, has presented its Priorities and Challenges for 2019-2024. 'Working Together for a Safer and More Secure Future' is the name of the document that describes areas of co-operation to achieve a safer and more secure society for Europe and build an industry that contributes towards sustainable growth on the continent.
One of the most basic requirements for each of us is defence against harm, no matter what form it takes. Without protective measures, the individuals that make up society are at risk. For decades, the fire safety and security industries have worked diligently to develop solutions designed to prevent and limit the consequences from threats such as fire, theft, property damage and others. In collaboration with public authorities, policy-makers, standards and certification bodies and industry associations, the industry works to address society's needs for safety and security in Europe and, indeed, globally.
The members of the European fire safety and security industry want to contribute to driving sustainable growth that will strengthen the European Union's Single Market, attract investment to Europe and expand global markets for European companies.
To do this, Euralarm's members are always assessing the opportunities and the challenges that they're facing to identify the priorities that will allow Europe to advance as a prosperous, safe society and global actor.
The association's priorities for 2019 to 2024 are as follows:
*develop a strong Single Market and expanding global markets for quality products and services
*raise standards for industry professionals through training and qualification
*turn emerging technologies into sustainable solutions
*advance knowledge and innovation
Euralarm aims to accomplish this by focusing on market-oriented standards for products and services and on a pan-European testing and certification of products. Accomplishing the priorities also requires a strong focus on training and qualifications, digitalisation including cyber security, the Internet of Things and Artificial Intelligence as well as partnering with research bodies.
*Copies of 'Working Together for a Safer and More Secure Future' can be downloaded via the Euralarm website
Brian Sims BA (Hons) Hon FSyI, Editor, Risk UK (Pro-Activ Publications) Beginning his career in professional journalism at The Builder Group in March 1992, Brian was appointed Editor of Security Management Today in November 2000 having spent eight years in engineering journalism across two titles: Building Services Journal and Light & Lighting. In 2005, Brian received the BSIA Chairman's Award for Promoting The Security Industry and, a year later, the Skills for Security Special Award for an Outstanding Contribution to the Security Business Sector. In 2008, Brian was The Security Institute's nomination for the Association of Security Consultants' highly prestigious Imbert Prize and, in 2013, was a nominated finalist for the Institute's George van Schalkwyk Award. An Honorary Fellow of The Security Institute, Brian serves as a Judge for the BSIA's Security Personnel of the Year Awards and the Securitas Good Customer Award. Between 2008 and 2014, Brian pioneered the use of digital media across the security sector, including webinars and Audio Shows. Brian's actively involved in 50-plus security groups on LinkedIn and hosts the popular Risk UK Twitter site. Brian is a frequent speaker on the conference circuit. He has organised and chaired conference programmes for both IFSEC International and ASIS International and has been published in the national media. Brian was appointed Editor of Risk UK at Pro-Activ Publications in July 2014 and as Editor of The Paper (Pro-Activ Publications' dedicated business newspaper for security professionals) in September 2015. Brian was appointed Editor of Risk Xtra at Pro-Activ Publications in May 2018.
Convicted Shropshire security boss ordered to pay £3,608.21 from proceeds of crime
FIA publishes Wave 11 of Market Conditions Survey for fire business sector
Site hosting stolen credentials taken down in wake of international operation


text:
package org.medipi.devices;

import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Optional;
import javafx.application.Platform;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import org.medipi.ui.MajorButtonTile;
import org.medipi.MediPi;

/**
 * Element Class
 *
 * This is the primary abstract class which is the fundamental building block of
 * all Elements.
 *
 *
 * These elements are represented on the Dashboard screen with tiles and when
 * clicked, these tiles call the Element window. Each Element window uses the
 * whole screen except for the permanent banner at the top. Depending on
 * subsequent abstract classes and the concrete class, an Element can control
 * messages from the clinician, Transmission of data to the clinician or an
 * instance of a medical device. All Elements consist of this class and one or
 * more other abstract classes defining functionality of the Element. The last
 * class in the chain is a concrete class (which for example in the case of the
 * medical devices interacts with the USB enabled device itself)
 *
 * @author rick@robinsonhq.com
 */
public abstract class Element {

    private String classToken;

    /**
     * Reference to main class
     */
    protected MediPi medipi;

    /**
     * The main Element Window
     */
    protected BorderPane window = new BorderPane();

    /**
     * The bottom banner containing buttons
     */
    protected BorderPane bottom = new BorderPane();

    /**
     * The left button (1) on the bottom banner
     */
    protected Button button1 = new Button();

    /**
     * The right button (3) on the bottom banner
     */
    protected Button button3 = null;

    /**
     * The centre button (2) on the bottom banner
     */
    protected Button button2 = null;
    protected Label b2Label = new Label();

    /**
     * when this Element is called this defines if it is being called as part of
     * a scheduled chain of measurements
     */
    protected BooleanProperty isThisElementPartOfAScheduleExecution = new SimpleBooleanProperty(false);

    protected ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS);
    protected boolean confirm = false;
    protected BooleanProperty showTile;
    private HBox b2hb = new HBox();

    /**
     * Constructor for the Class
     */
    public Element() {

        window.setBottom(bottom);
        window.setId("background-colour");

        //bind the visibility property so that when not visible the panel doesnt take any space
        window.managedProperty().bind(window.visibleProperty());
        // set up the bottom button banner
        bottom.setMinHeight(50);
        bottom.setMaxHeight(50);
        bottom.setPadding(new Insets(0, 10, 10, 10));
        progressIndicator.setMinSize(40, 40);
        progressIndicator.setMaxSize(40, 40);
        progressIndicator.setVisible(false);
        progressIndicator.managedProperty().bind(progressIndicator.visibleProperty());
    }

    /**
     * Setter for main MediPi Class
     *
     * @param m reference to MediPi
     */
    public void setMediPi(MediPi m) {
        medipi = m;
    }

    /**
     * Allows the device window and the buttons added by this class to be
     * retrieved and placed into a calling window
     *
     * @return a node representing the specified device window and the bottom
     * button banner
     */
    public Node getWindowComponent() {
        return window;
    }

    ;
    /**
     * Allows the device window to be made visible or invisible
     *
     */
    public void hideDeviceWindow() {
        window.setVisible(false);
    }

    /**
     * setter for this Element's Class Token
     *
     * @param token
     */
    public void setClassToken(String token) {
        classToken = token;
    }

    /**
     * getter for this Element's Class Token
     *
     * @return this Element's class token
     */
    public String getClassTokenName() {
        return classToken;
    }

    /**
     * Allows the device window to be made visible or invisible.
     *
     */
    public void callDeviceWindow() {
        // == null : normal mode when no schedule is being run
        ImageView iw = medipi.utils.getImageView("medipi.images.arrow", 20, 20);
        iw.setRotate(180);
        Button b1 = new Button("Back", iw);
        b1.setId("button-back");
        b1.setAlignment(Pos.CENTER_RIGHT);
        b1.setOnAction((ActionEvent t) -> {
            if (confirmation()) {
                medipi.callDashboard();
            }
        });
        // This dummy button is present to allow binding against it for disabling the next button in schedule mode
        Button b3 = new Button("Dummy");
        b3.setVisible(false);
        isThisElementPartOfAScheduleExecution.set(false);
        setButton1(b1);
        setButton3(b3);
        medipi.hideAllWindows();
        window.setVisible(true);
    }

    /**
     * Allows the device window to be made visible or invisible. This is a
     * recursive class which calls itself as many times as ElementClass Tokens
     * there are in the chain
     *
     * @param fwdClassTokenChain an array list of Element Class Tokens defining
     * the order of the scheduled measurements
     */
    public void callDeviceWindow(ArrayList<String> bckClassTokenChain, ArrayList<String> fwdClassTokenChain) {
        // as part of a scheduled list of element Class Tokens
        // The Cancel Schedule button doesn't get disabled when any of the
        // Element tasks are in operation - should these be stopped if cancel
        // is activated?
        //where there are >1 scheduled elements left to call

        if (bckClassTokenChain.isEmpty()) {
            // first token
            ImageView iw = medipi.utils.getImageView("medipi.images.arrow", 20, 20);
            iw.setRotate(180);
            Button b1 = new Button("Back", iw);
            b1.setId("button-back");
            b1.setAlignment(Pos.CENTER_RIGHT);
            b1.setOnAction((ActionEvent t) -> {
                if (confirmation()) {
                    medipi.getScheduler().callDeviceWindow();
                    medipi.getScheduler().runningProperty().set(false);
                }
            });
            isThisElementPartOfAScheduleExecution.set(true);
            Button b3 = makeNextButton(fwdClassTokenChain, bckClassTokenChain);
            setButton1(b1);
            setButton3(b3);
        } else if (fwdClassTokenChain.isEmpty()) {
            // Last token
            isThisElementPartOfAScheduleExecution.set(true);
            Button b1 = makeBackButton(bckClassTokenChain, fwdClassTokenChain);
            setButton1(b1);
            setButton3(null);
        } else {

            Button b1 = makeBackButton(bckClassTokenChain, fwdClassTokenChain);

            Button b3 = makeNextButton(fwdClassTokenChain, bckClassTokenChain);

            isThisElementPartOfAScheduleExecution.set(true);
            setButton3(b3);
            setButton1(b1);

        }

        medipi.hideAllWindows();
        window.setVisible(true);
    }

    private Button makeNextButton(ArrayList<String> fwdClassTokenChain, ArrayList<String> bckClassTokenChain) {
        Button b3 = new Button("Next", medipi.utils.getImageView("medipi.images.arrow", 20, 20));
        b3.setId("button-next");
        b3.setAlignment(Pos.CENTER);
        b3.setOnAction((ActionEvent t) -> {
            if (confirmation()) {
                String nextDevice = fwdClassTokenChain.get(0);
                ArrayList<String> remainingDevices = new ArrayList(fwdClassTokenChain.subList(1, fwdClassTokenChain.size()));
                ArrayList<String> previousDevices = bckClassTokenChain;
                previousDevices.add(getClassTokenName());
                Element e = medipi.getElement(nextDevice);
                e.callDeviceWindow(previousDevices, remainingDevices);
                //NEED TO DO SOMETHING TO RE_IMPLEMENT ADDITION OF SCHEDULER METADATA MEASURED
                if (Device.class.isAssignableFrom(Element.this.getClass())) {
                    Device d = (Device) Element.this;
                    if (d.hasDataProperty().get()) {
                        medipi.getScheduler().addScheduleData(Scheduler.MEASURED, Instant.now(), new ArrayList<>(Arrays.asList(getClassTokenName())));
                    }
                }
            }
        });
        return b3;
    }

    private Button makeBackButton(ArrayList<String> bckClassTokenChain, ArrayList<String> fwdClassTokenChain) {
        //where there are >1 scheduled elements left to call

        ImageView iw = medipi.utils.getImageView("medipi.images.arrow", 20, 20);
        iw.setRotate(180);
        Button b1 = new Button("Back", iw);
        b1.setId("button-back");
        b1.setAlignment(Pos.CENTER_RIGHT);
        b1.setOnAction((ActionEvent t) -> {
            if (confirmation()) {
                String prevDevice = bckClassTokenChain.get(bckClassTokenChain.size() - 1);
                ArrayList<String> remainingDevices = fwdClassTokenChain;
                remainingDevices.add(0, getClassTokenName());
                ArrayList<String> previousDevices = new ArrayList(bckClassTokenChain.subList(0, bckClassTokenChain.size() - 1));
                Element e = medipi.getElement(prevDevice);
                e.callDeviceWindow(previousDevices, remainingDevices);
            }
        });
        return b1;
    }

    private boolean confirmation() {
        if (confirm) {
            Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "", ButtonType.YES, ButtonType.NO);
            alert.setTitle(getSpecificDeviceDisplayName());
            alert.setHeaderText(null);
            alert.getDialogPane().setMaxSize(400, 300);
            alert.getDialogPane().getStylesheets().add("file:///" + medipi.getCssfile());
            alert.getDialogPane().setId("message-box");
            Text text = new Text("Confirm that the input value from " + getSpecificDeviceDisplayName() + " is correct?");
            text.setWrappingWidth(400);
            alert.setX(50);
            alert.setY(150);
            alert.getDialogPane().setContent(text);

            Optional<ButtonType> result = alert.showAndWait();
            if (result.get() == ButtonType.YES) {
                return true;
            }
            return false;

        } else {
            return true;
        }
    }

    /**
     * Set the centre button (2) on the bottom panel.
     *
     * Not very happy with this - it's clunky and needs rethinking
     *
     * @param b node which could contain a button or a HBox containing >1 node.
     * To be added to the left hand node of the bottom panel
     */
    protected void setButton2(Button b) {
        bottom.getChildren().remove(b2hb);
        if (b != null) {
            button2 = b;
            b2hb = new HBox();
            b2hb.setMinWidth(400);
            b2hb.setSpacing(10);
            b2hb.getChildren().addAll(
                    button2,
                    b2Label,
                    progressIndicator);
            b2hb.setAlignment(Pos.CENTER_LEFT);
            b2hb.setPadding(new Insets(0, 10, 0, 50));
            bottom.setCenter(b2hb);
        }
    }

    public void setButton2Name(String name) {
        setButton2Name(name, null);
    }

    public void setB2Label(String name) {
        if (Platform.isFxApplicationThread()) {
            b2Label.setText(name);
            b2Label.setId("element-text");
        } else {
            Platform.runLater(() -> {
                b2Label.setText(name);
                b2Label.setId("element-text");
            });
        }
    }

    public void setButton2Name(String name, Node graphic) {
        if (Platform.isFxApplicationThread()) {
            button2.setText(name);
            button2.setGraphic(graphic);
        } else {
            Platform.runLater(() -> {
                button2.setText(name);
                button2.setGraphic(graphic);
            });
        }
    }

    /**
     * Set the Left hand button (1) on the bottom panel.
     *
     * Not very happy with this - it's clunky and needs rethinking
     *
     * @param b button to be added to the left node of the bottom panel
     */
    protected void setButton1(Button b) {
        bottom.getChildren().remove(button1);
        if (b != null) {
            button1 = b;
            bottom.setLeft(button1);
            button1.setAlignment(Pos.CENTER_LEFT);
        }
    }

    /**
     * Set the Right hand button (3) on the bottom panel.
     *
     * Not very happy with this - it's clunky and needs rethinking
     *
     * @param b button to be added to the Right hand node of the bottom panel
     */
    protected void setButton3(Button b) {
        bottom.getChildren().remove(button3);
        if (b != null) {
            button3 = b;
            button3.setAlignment(Pos.CENTER_RIGHT);
            bottom.setRight(button3);
        }
    }

    /**
     * getter for this Element's image
     *
     * @return and imageView for this Element
     */
    public ImageView getImage() {
        return medipi.utils.getImageView(MediPi.ELEMENTNAMESPACESTEM + classToken + ".image", null, null, false);
    }

    /**
     * setter for this Element's title
     *
     *
     */
    public void setElementTitle() {
        Label title = new Label(this.getSpecificDeviceDisplayName());
        title.setId("element-title");
        window.setTop(title);
    }

    /**
     * Abstract initiation method called for this Element
     *
     * @return boolean of its success
     * @throws Exception which gets caught in MediPi class and results in
     * MediPiMessageBox
     */
    public abstract String init() throws Exception;

    /**
     * Abstract getter for the Element Name
     *
     * @return String representation of the Element's Name
     */
    public abstract String getSpecificDeviceDisplayName();

    /**
     * Abstract method to get the dashboard tile
     *
     * @return the tile for inserting in the home Dashboard view
     * @throws Exception
     */
    public abstract MajorButtonTile getDashboardTile() throws Exception;

    /**
     * method to get the generic Type of the device e.g."Blood Pressure"
     *
     * @return generic type of device
     */
    public abstract String getGenericDeviceDisplayName();

}

redpajama_set_name: RedPajamaGithub


text:
package Scarif_stable;

import battlecode.common.RobotType;

public class Message {

    static int msg = 0;

    //Digits of information
    static final int ENEMY_TYPE = 10000;
    static final int ENEMY_NUMBER = 1000;
    static final int ALERT_LEVEL = 100;
    static final int ARCHON_PRESENT = 10;
    static final int MESSAGE_TYPE = 1;

    //Types of message
    static final int SIT_REP = 0;
    static final int SPOT_REP = 1;
    static final int CONTACT_REP = 2;
    static final int TARGET_REP = 3;

    /*
    Message construct could be compressed even further, but we didn't see the need to compress it down to each bit of data.
    As strategies become progressively complicated, further compression of data down to the bits may be necessary.

    Format (for each digit - 5 message digits):
        ENEMY TYPE | NUMBER OF ENEMIES | ALERT LEVEL (broad sum of all enemies in area) | ARCHON PRESENT (boolean) | MESSAGE TYPE

    Why not use all 9 digits available in an INT?
    First 4 digits in the integer is reserved for HEARTBEAT
        --> Round number in which the message was written
        --> Tests for the validity of the message (written too early and it expires)
    */
    public Message(){
        //Ready to receive information and compress into message
        msg = 0;
    }

    public Message(int message){
        msg = message;
    }

    public int getRawMsg(){
        return msg;
    }

    public void writeRawMsg(int message){
        msg = message;
    }

    public RobotType getEnemy(){
        int sensed_robot = msg/ENEMY_TYPE;
        if (sensed_robot == BasePlayer.robotType(RobotType.ARCHON)){
            return RobotType.ARCHON;
        }
        else if (sensed_robot == BasePlayer.robotType(RobotType.GARDENER)){
            return RobotType.GARDENER;
        }
        else if (sensed_robot == BasePlayer.robotType(RobotType.SCOUT)){
            return RobotType.SCOUT;
        }
        else if (sensed_robot == BasePlayer.robotType(RobotType.SOLDIER)){
            return RobotType.SOLDIER;
        }
        else if (sensed_robot == BasePlayer.robotType(RobotType.TANK)){
            return RobotType.TANK;
        }
        else return null;
    }

    public void writeEnemy(RobotType robot){
        switch(robot){
            case ARCHON:
                msg += BasePlayer.robotType(RobotType.ARCHON)*ENEMY_TYPE;
                break;
            case GARDENER:
                msg += BasePlayer.robotType(RobotType.GARDENER)*ENEMY_TYPE;
                break;
            case SCOUT:
                msg += BasePlayer.robotType(RobotType.SCOUT)*ENEMY_TYPE;
                break;
            case SOLDIER:
                msg += BasePlayer.robotType(RobotType.SOLDIER)*ENEMY_TYPE;
                break;
            case TANK:
                msg += BasePlayer.robotType(RobotType.TANK)*ENEMY_TYPE;
                break;
        }
        return;
    }

    public int getNumberOfEnemies(){
        return (msg - (msg/ENEMY_TYPE)*ENEMY_TYPE)/ENEMY_NUMBER;
    }

    public void writeNumberOfEnemies(int num){
        msg += num*ENEMY_NUMBER;
    }

    public int getAlertLevel(){
        int digit_1 = (msg/ENEMY_TYPE);
        int digit_2 = (msg%ENEMY_TYPE)/ENEMY_NUMBER;
        int digit_3 = (msg%ENEMY_NUMBER)/ALERT_LEVEL;
        System.out.println(digit_1);
        System.out.println(digit_2);
        System.out.println(digit_3);
        return digit_3;
    }

    public void writeAlertLevel(int alert){
        msg += alert*ALERT_LEVEL;
    }

    public int getArchonPresent(){
        int digit_4 = (msg%ALERT_LEVEL)/ARCHON_PRESENT;
        return digit_4;
    }

    public void writeArchonPresent(int archon_present){
        msg += archon_present*ARCHON_PRESENT;
    }

    public int getMessageType(){
        int digit_5 = (msg%ARCHON_PRESENT)/MESSAGE_TYPE;
        return digit_5;
    }

    public void writeMessageType(int type){
        msg += type*MESSAGE_TYPE;
    }

}


Purchasing real estate will require the services of a reputable real estate law firm. In Hartford County, call the law office of Jeffrey T Walsh & Associates PC. Walsh & Associates is a full service real estate firm offering a broad selection of real estate transactional services and representation. Walsh & Associates are experienced real estate lawyers serving the Greater Hartford and Manchester Connecticut metro area. Our firm possesses knowledge of the law that enables us to deliver services effectively and efficiently to clients in a wide variety of important real estate matters.
Walsh & Associates represents Buyers and Sellers in all stages of real estate purchases. The Firm has experience in working with opposing counsel and lenders in reinstating mortgage loans in default. Such reinstatement may include lump sum payment to bring the loan current, partial payment plus agreement to repay deficiency over time, or, entire deficiency being added at end of loan term. The State and Federal Government have enacted legislation designed to force mediation and/or allow for reinstatement, piggyback financing, or refinancing after market value adjustments. Although these programs are constantly changing, the Firm is well versed in the new workout opportunities currently available and we are working to learn and explore the complexities of such new legislation and, specifically, its implementation. We are also experienced in foreclosures and short sales.
Before you intend to sell real estate or purchase property in eastern Connecticut, talk to Jeffrey T Walsh & Associates PC. Attorney Walsh and his staff are happy to answer your questions and concerns early in the purchasing process. From helping to draft your purchase contract and/or to review contracts prepared by others, we are thorough and professional. We are part of your team and show our commitment to your satisfaction at every stage of the purchasing and closing process. Contact our office today to learn more about how we can help you navigate the Connecticut real estate market. Our office can facilitate a quick, seamless sale. Our service area includes northeastern Connecticut, Hartford County and Tolland County. If you are looking into REO lawyers to represent you in your next transaction, simply call Jeffrey T Walsh & Associates PC at (860)-649-1700.


Read more about How can I filter spam sent to my domain email address?
Read more about How do I setup domain email forwarding for my cPanel hosted domain?
Read more about How do I check webmail for my cPanel hosted domain?
Read more about How do I get access to cPanel if my domain has expired or being hosted by a third party provider?
Read more about What is cPanel?


Theater Security Cooperation (TSC) programs promote regional stability, facilitate access and develop coalition capabilities and capacity. TSC activities include multinational exercises, military-to-military exchanges, humanitarian assistance and others. Through TSC, United States Army, Europe (USAREUR) is on point for our nation in building tomorrow's coalitions and preparing allied and partner armies for current and future coalition operations.
Multinational exercises are one of USAREUR's most visible TSC activities, improving interoperability for joint and combined force operations, enhancing our allies' contributions to contingency operations, and expanding relationships and partner capacity. America's allies across Europe and Eurasia regularly send elements to train with U.S. Army units at USAREUR's world-class training facilities; among these are the Joint Multinational Readiness Center at Hohenfels and the Grafenwoehr Training Area. USAREUR has also dispatched its warriors as training teams to prepare coalition units for Operations Iraqi Freedom and Enduring Freedom. USAREUR has extended educational opportunities to senior non-commissioned officers (NCO) of allied and partner armies to assist in the generation and growth of their professional NCO Corps. USAREUR has also pioneered unique TSC events such as the annual Conference of European Armies, bringing together Army chiefs of staff and equivalents from the U.S. and 42 other countries. The Conference of European Armies for non-commissioned officers provides a similar forum annually for senior U.S., allied, and partner nation NCOs.
USAREUR is increasing the exportable training capabilities of the Joint Multinational Training Command enabling replication of realistic training for American and coalition forces at locations across Europe. However, the most critical multinational training events that USAREUR facilitates are mission rehearsal exercises to prepare our allies and partners for combat operations in Iraq and Afghanistan. Joint Task Force-East rotations in Romania and Bulgaria provide invaluable TSC opportunities. USAREUR continues to assist senior leaders from our allied and partner armies in developing tactics for the complex asymmetric battlefields that characterize 21st century warfare.
The war on terrorism is a coalition endeavor of the highest order. It has global security implications. By building the capabilities and capacity of our traditional allies and new partner forces today, the United States is increasing the aggregate capabilities of the international community to defeat terrorists and deny safe haven and to stem fundamentalist extremism and other threats.
"The average Soldier makes 3.4 visits to their primary health provider every year. Each one of those visits is a chance for doctors to detect any behavioral health problems and get Soldiers the treatment they need."


text:
\section{Introduction}
We introduce a new Waveform Relaxation (WR) method based on the Dirichlet-Neumann algorithm and present convergence results for it in one space dimension. To solve time-dependent problems in parallel, one can either discretize in time to obtain a sequence of steady problems to which the domain decomposition algorithms are applied, or apply WR to the large system of ordinary differential equations (ODEs) obtained from spatial discretization. The credit of WR method goes to Picard \cite{mandalb_mini15_Picard} and Lindel\" of \cite{mandalb_mini15_Lind} for the solution of ODEs in the late 19th century. Lelarasmee, Ruehli and Sangiovanni-Vincentelli \cite{mandalb_mini15_LelRue} were the first to introduce the WR as a parallel method for the solution of ODEs. The main advantage of the WR method is that one can use different time steps in different space-time subdomains. The authors of \cite{mandalb_mini15_GanStu} and \cite{mandalb_mini15_GilKel} then generalized WR methods for
ODEs to solve time-dependent PDEs. Gander and Stuart \cite{mandalb_mini15_GanStu} showed
linear convergence of overlapping Schwarz WR iteration for the heat equation
on unbounded time intervals with a rate depending on the size of the overlap;
Giladi and Keller \cite{mandalb_mini15_GilKel} proved superlinear convergence of the Schwarz WR method with overlap for the convection-diffusion equation on bounded time intervals.

The Dirichlet-Neumann method, which belongs to the class of substructuring
methods, is based on a non-overlapping spatial domain decomposition.
The iteration involves subdomain solves with Dirichlet boundary conditions,
followed by subdomain solves with Neumann boundary conditions. The
Dirichlet-Neumann algorithm was first considered for elliptic problems
by P. E. Bj\o rstad \& O. Widlund \cite{mandalb_mini15_BjPetter} and further discussed in \cite{mandalb_mini15_BramPas},
\cite{mandalb_mini15_MarQuar02} and \cite{mandalb_mini15_MarQuar01}. In this paper, we propose the Dirichlet-Neumann Waveform Relaxation (DNWR) method, a new Dirichlet-Neumann analogue of WR for the time-dependent problems.
For presentation purposes, we derive our results for two subdomains in one spatial dimension. We discuss the method in the continuous setting to ensure the understanding of the asymptotic behavior of the method in the case of fine grids.

We consider the following initial boundary value problem (IBVP) for the heat equation as our guiding example on a bounded domain $\Omega\subset\mathbb{R},0<t<T$,
 \begin{equation}
\begin{array}{rcll}
\frac{\partial u}{\partial t} & = & \Delta u+f(x,t), & x\in\Omega,0<t<T,\\
u(x,0) & = & u_{0}(x), & x\in\Omega,\\
u(x,t) & = & g(x,t), & x\in\partial\Omega,0<t<T.
\end{array}
\label{mandalb_mini_eq:model}
\end{equation}

 \section{The Dirichlet-Neumann Waveform Relaxation algorithm}

To define the Dirichlet-Neumann iterative method for
the model problem (\ref{mandalb_mini_eq:model}) on the domain $(-b,a)\times(0,T)$, we split the spatial domain $\Omega=(-b,a)$ into two non-overlapping
subdomains, the Dirichlet subdomain $\Omega_{1}=(-b,0)$ and the Neumann subdomain
$\Omega_{2}=(0,a)$, for $0<a,b<\infty$. The Dirichlet-Neumann Waveform Relaxation
algorithm consists of the following steps: given an initial guess $h^{0}(t),t\in(0,T)$
along the interface $\Gamma=\left\{ x=0\right\} $ and for $k=0,1,2,\ldots$,
do
\begin{equation}\label{mandalb_mini_eq:dnalgo1}
\begin{cases}
\partial_{t}u_{1}^{k+1}-\partial_{xx}u_{1}^{k+1}=f(x,t), & x\in\Omega_{1},\\
u_{1}^{k+1}(x,0)=u_{0}(x),  &x\in\Omega_{1},\\
u_{1}^{k+1}(-b,t)=g(-b,t),\\
u_{1}^{k+1}(0,t)=h^{k}(t),
\end{cases}
\begin{cases}
\partial_{t}u_{2}^{k+1}-\partial_{xx}u_{2}^{k+1}=f(x,t), & x\in\Omega_{2},\\
u_{2}^{k+1}(x,0)=u_{0}(x), & x\in\Omega_{2},\\
\partial_{x}u_{2}^{k+1}(0,t)=\partial_{x}u_{1}^{k+1}(0,t),\\
u_{2}^{k+1}(a,t)=g(a,t),
\end{cases}
\end{equation}
with the updating condition
\begin{equation}\label{mandalb_mini_eq:dnalgo2}
h^{k+1}(t)=\theta u_{2}^{k+1}(0,t)+(1-\theta)h^{k}(t),
\end{equation}
$\theta$ being a positive relaxation parameter. The parameter $\theta$
is chosen in $(0,1]$ to accelerate convergence. As the main goal of the analysis is to study how the error $h^{k}(t)-u(0,t)$ converges to zero, by linearity it suffices to consider the homogeneous
problem, $f(x,t)=0$, $g(x,t)=0$, $u_0(x)=0$ in (1), and examine how $h^{k}(t)$
goes to zero as $k\rightarrow\infty$.

\section{Convergence analysis and main results}

We analyze the DNWR algorithm using the Laplace transform method. The Laplace transform of a function $w(t)$, defined for all real numbers $t\in[0,\infty)$, is the function $\hat{w}(s)$, defined by
\[
\hat{w}(s)=\mathcal{L}\left\{ w(t)\right\} :=\int_{0}^{\infty}e^{-st}w(t)\, dt,
\]
(if the integral exists) $s$ being a complex variable. If $\mathcal{L}\left\{ w(t)\right\} =\hat{w}(s)$, then the inverse Laplace transform of $\hat{w}(s)$ is denoted by
\[
\mathcal{L}^{-1}\left\{ \hat{w}(s)\right\} :=w(t),\qquad t\geq0,
\]
which maps the Laplace transform of a function back to the original function. For more information on Laplace transforms, see \cite{mandalb_mini15_Church,mandalb_mini15_Oberhett}. We use hats to denote the Laplace transform of a function in time in the rest of the paper.
\vspace{0.2cm}\\
{\bf Analysis by Laplace transforms.} Applying a Laplace transform in time to (\ref{mandalb_mini_eq:dnalgo1}) and solving the
resulting ODEs yields the solutions:
 $\hat{u}_{1}^{k+1}(x,s)=\frac{\hat{h}^{k}(s)}{\sinh(b\sqrt{s})}\sinh\left\{ (x+b)\sqrt{s}\right\} $
and $\hat{u}_{2}^{k+1}(x,s)=\hat{h}^{k}(s)\frac{\coth(b\sqrt{s})}{\cosh(a\sqrt{s})}\sinh\{(x-a)\sqrt{s}\}.$
Now, evaluating $\hat{u}_{2}^{k+1}(x,s)$ at $x=0$ and inserting
it into the transformed updating condition (\ref{mandalb_mini_eq:dnalgo2}), we get for $k=0,1,2,\ldots$
$\hat{h}^{k+1}(s)=\left\{ 1-\theta-\theta\tanh(a\sqrt{s})\coth(b\sqrt{s})\right\} \hat{h}^{k}(s).$
Therefore, by induction we get
\begin{equation}\label{mandalb_mini_eq:update1}
\hat{h}^{k}(s)=\left\{ 1-\theta-\theta\tanh(a\sqrt{s})\coth(b\sqrt{s})\right\} ^{k}\hat{h}^{0}(s),\quad k=1,2,3,...
\end{equation}
\begin{theorem}
For the symmetric case, $a=b$ in (\ref{mandalb_mini_eq:dnalgo1})-(\ref{mandalb_mini_eq:dnalgo2}), the DNWR algorithm
converges linearly for $0<\theta<1$. Moreover, for $\theta=0.5$, it converges to the
exact solution in two iterations, independent of the size of the time window.\end{theorem}
\begin{proof}
For $a=b$, the equation (\ref{mandalb_mini_eq:update1}) reduces
to $\hat{h}^{k}(s)=(1-2\theta)^{k}\hat{h}^{0}(s),$ which upon back
transforming gives $h^{k}(t)=(1-2\theta)^{k}h^{0}(t)$. Thus, the convergence is linear for $\theta\neq0.5$. On the other hand, for $\theta=0.5$, $h^{1}(t)=0$. Therefore, one more iteration produces the desired solution on the whole domain.$\hfill\qed$
\end{proof}

The main area of concern for the rest of the paper is the analysis of the DNWR algorithm for $a\neq b$. If we define
$$G(s):=\tanh(a\sqrt{s})\coth(b\sqrt{s})-1=\frac{\sinh((a-b)\sqrt{s})}{\cosh(a\sqrt{s})\sinh(b\sqrt{s})},$$
then the recurrence relation (\ref{mandalb_mini_eq:update1}) reduces to
\begin{equation}\label{mandalb_mini_eq:updatefinal}
\hat{h}^{k}(s)=\begin{cases}
\left\{ q(\theta)-\theta G(s)\right\} ^{k}\hat{h}^{0}(s), & \theta\neq1/2\\
(-1)^{k}2^{-k}G^{k}(s)\hat{h}^{0}(s), & \theta=1/2,
\end{cases}
\end{equation}
where $q(\theta)=1-2\theta.$ Note that for $\textrm{Re}(s)>0,$ $G(s)$
is\footnote {Assuming $s=re^{i\vartheta}$, $z=\sqrt{s}$, we can write for $b\geq a$,
$\bigl|s^{p}G(s)\bigr|\leq\bigl|\frac{s^{p}}{\cosh(az)}\bigr|\leq\frac{2r^{p}}{|e^{a\sqrt{r/2}}-e^{-a\sqrt{r/2}}|}\rightarrow0$,
as $r\rightarrow\infty$; and for $a>b$, $\bigl|s^{p}G(s)\bigr|\leq\bigl|\frac{s^{p}}{\sinh(bz)}\bigr|\leq\frac{2r^{p}}{|e^{b\sqrt{r/2}}-e^{-b\sqrt{r/2}}|}\rightarrow0$, as $r\rightarrow\infty$
} $\mathcal{O}(s^{-p})$ for every positive $p$. Therefore, by \cite[p.~178]{mandalb_mini15_Church}, $G(s)$ is
the Laplace transform of an analytic function $F_{1}(t)$ (in fact this
is the motivation in defining $G$). In general, define $F_{k}(t):=\mathcal{L}^{-1}\left\{ G^{k}(s)\right\} $ for $k=1,2,3,\ldots$. For $\theta$ not equal to $1/2$, $h^{k}$ cannot be expressed as a simple convolution of $h^{0}$ and an analytic function; thus, different techniques are required to analyze its behavior. This case will be treated in a future paper.
 For $\theta=1/2$ and $t\in(0,T)$ we get from (\ref{mandalb_mini_eq:updatefinal})
\begin{equation}\label{mandalb_mini_eq:boundstep}
\bigl|h^{k}(t)\bigr|=\biggl|2^{-k}\int_{0}^{t}(-1)^{k}h^{0}(t-\tau)F_{k}(\tau)d\tau\biggr|\leq2^{-k}\parallel h^{0}\parallel_{L^{\infty}(0,T)}\int_{0}^{T}\Bigl|F_{k}(\tau)\Bigr|d\tau.
\end{equation}
So, we need to bound $\int_{0}^{T}\bigl|F_{k}(\tau)\bigr|d\tau$
to get an $L^{\infty}$ convergence estimate. We concentrate
on showing that $F_{1}(t)$ does not change signs both for the case $b<a$, in which $F_{1}(t)\geq0$, and for $b\geq a$, for which $F_{1}(t)\leq0$. Before we proceed further with the proof we need the following lemmas.
\begin{lemma}
Let, $w(t)$ be a continuous and $L^{1}$-integrable function on $(0,\infty)$
with $w(t)\geq0$ for all $t\geq0$. Assume $W(s)=\mathcal{L}\left\{ w(t)\right\} $.
Then, for $\tau>0,$
\[
\int_{0}^{\tau}|w(t)|dt\leq{\displaystyle \lim_{s\rightarrow0+}}W(s).
\]
\end{lemma}
\begin{proof}
Using the definition of Laplace transform, we have
\begin{align*}
\int_{0}^{\tau}|w(t)|dt =\int_{0}^{\tau}w(t)dt &\leq\int_{0}^{\infty}w(t)dt\\
=\int_{0}^{\infty}{\displaystyle \lim_{s\rightarrow0+}}e^{-st}w(t)dt&={\displaystyle \lim_{s\rightarrow0+}}\int_{0}^{\infty}e^{-st}w(t)dt \;\mbox{(by Dominated Conv. Theorem)}\\
&={\displaystyle \lim_{s\rightarrow0+}}W(s).\quad\quad\quad\quad\quad\quad\quad\qed
\end{align*}
\end{proof}
\begin{lemma}
Let $\beta>\alpha\geq0$ and $s$ be a complex variable. Then, for
$t\in(0,\infty)$
\[
\varphi(t):=\mathcal{L}^{-1}\left\{ \frac{\sinh(\alpha\sqrt{s})}{\sinh(\beta\sqrt{s})}\right\} \geq0\;;\;\:\psi(t):=\mathcal{L}^{-1}\left\{ \frac{\cosh(\alpha\sqrt{s})}{\cosh(\beta\sqrt{s})}\right\} \geq0.
\]
\end{lemma}
\begin{proof}
First, let us consider the following IBVP for the heat equation on $(0,\beta)$: $u_{t}-u_{xx}=0,\, u(x,0)=0,\: u(0,t)=0,\: u(\beta,t)=g(t).$ Therefore, for $g$ non-negative, $u(\alpha,t)$ is also non-negative for all
$t>0$, thanks to the maximum principle. Now using the Laplace transform method, we get the solution along $x=\alpha$
as
\[
\hat{u}(\alpha,s)=\hat{g}(s)\frac{\sinh(\alpha\sqrt{s})}{\sinh(\beta\sqrt{s})}\quad\Longrightarrow\quad u(\alpha,t)=\int_{0}^{t}g(t-\tau)\varphi(\tau)d\tau.
\]
We prove the result by contradiction: suppose $\varphi(t_{0})<0$ for some $t_{0}>0$. Then
by continuity of $\varphi$, there exists $\delta>0$ such that $\varphi(\tau)<0,$
for $\tau\in(t_{0}-\delta,t_{0}+\delta)$. Now for $t>t_0+\delta$, we choose $g$ as
\[
g(\varsigma)=\begin{cases}
1, & \varsigma\in\left(t-t_{0}-\delta,t-t_{0}+\delta\right)\\
0, & \textrm{else}.
\end{cases}
\]
Then $u(\alpha,t)=\int_{t_{0}-\delta}^{t_{0}+\delta}g(t-\tau)\varphi(\tau)d\tau=\int_{t_{0}-\delta}^{t_{0}+\delta}\varphi(\tau)d\tau<0$,
a contradiction. This proves $\varphi$ to be non-negative. For $\psi$, applying the Laplace transform method to the IBVP for the heat equation $u_{t}-u_{xx}=0,\: u(x,0)=0,\: u(-\beta,t)=g(t),\: u(\beta,t)=g(t)$ yields the solution along $x=\alpha$ as: $\hat{u}(\alpha,s)=\hat{g}(s)\frac{\cosh(\alpha\sqrt{s})}{\cosh(\beta\sqrt{s})}$. Thus, a similar argument as in the first case proves that $\psi$ is also non-negative.$\hfill\qed$
\end{proof}

\begin{theorem}
\textbf{(Linear convergence bound for the Heat equation)} Let $\theta=1/2$. For
$T>0$, the error of the Dirichlet-Neumann Waveform Relaxation (DNWR)
algorithm satisfies
\[
\parallel h^{k}\parallel_{L^{\infty}(0,T)}\leq\left(\frac{|b-a|}{2b}\right)^{k}\parallel h^{0}\parallel_{L^{\infty}(0,T)}.
\] We therefore have a contraction if $a<3b.$
\end{theorem}
\begin{proof}
By virtue of (\ref{mandalb_mini_eq:boundstep}), it is sufficient to bound $\int_{0}^{T}\bigl|F_{k}(\tau)\bigr|d\tau$ for both $b\geq a$ and $a>b$, where $F_{k}(t)=\mathcal{L}^{-1}\left\{ G^{k}(s)\right\} $.
Suppose $b\geq a>0.$ We have $\mathcal{L}\left\{-F_1(t)\right\} =\frac{\sinh((b-a)\sqrt{s})}{\sinh(b\sqrt{s})}\cdot \frac{1}{\cosh(a\sqrt{s})}.$
So by Lemma 2 and the fact that the convolution
of two positive functions is positive, $-F_{1}(t)$ is positive. Thus, by induction and with the same arguments,
$(-1)^{k}F_{k}(t)\geq0$ for all $t$. Therefore by Lemma 1
\begin{equation}\label{mandalb_mini_eq:linbnd1}
\int_{0}^{T}\bigl|(-1)^{k}F_{k}(\tau)\bigr|d\tau\leq{\displaystyle \lim_{s\rightarrow0+}}(-1)^{k}G^{k}(s)=\left(\frac{b-a}{b}\right)^{k}.
\end{equation}
Now let $a>b>0$. We claim that $F_{1}(t)$ is positive.
If $a-b\leq b$, then we get the positivity by Lemma 2. If
this is not the case, then take the integer $m=\lfloor a/b \rfloor$ so that $mb<a\leq(m+1)b$. Then, recursively applying the identity
$$\frac{\sinh((a-jb)\sqrt{s})}{\sinh(b\sqrt{s})}=\frac{\sinh((a-(j+1)b)\sqrt{s})}{\sinh(b\sqrt{s})}\cosh(b\sqrt{s})+\cosh((a-(j+1)b)\sqrt{s})$$ for $j=1,\ldots,m-1$, we obtain
\begin{multline*}
\frac{\sinh((a-b)\sqrt{s})}{\cosh(a\sqrt{s})\sinh(b\sqrt{s})}=\frac{\sinh((a-mb)\sqrt{s})}{\sinh(b\sqrt{s})}.\frac{\cosh^{m-1}(b\sqrt{s})}{\cosh(a\sqrt{s})}\\
+{\displaystyle \sum_{j=0}^{m-2}}\frac{\cosh^{j}(b\sqrt{s})\cosh\left((a-(j+2)b)\sqrt{s}\right)}{\cosh(a\sqrt{s})}.
\end{multline*}
Applying the binomial theorem to $\cosh\theta=\left(e^{\theta}+e^{-\theta}\right)/2$
we have the power-reduction formula
\[
\cosh^{n}\theta=\begin{cases}
\frac{2}{2^{n}}{\displaystyle \sum_{l=0}^{\frac{n-1}{2}}}\binom{n}{l}\cosh\left((n-2l)\theta\right), & n\:\:\textrm{odd},\\
\frac{1}{2^{n}}\binom{n}{n/2}+\frac{2}{2^{n}}{\displaystyle \sum_{l=0}^{\frac{n}{2}-1}}\binom{n}{l}\cosh\left((n-2l)\theta\right), & n\:\:\textrm{even},
\end{cases}
\]
so that we can write $\cosh^{n}\theta={\displaystyle \sum_{l=0}^{n}}A_{l}^{n}\cosh\left(l\theta\right)$
with ${\displaystyle \sum_{l=0}^{n}}A_{l}^{n}=1$ and $A_{l}^{n}\geq 0$. Therefore, we have
\begin{multline*}
G(s)=\frac{\sinh((a-b)\sqrt{s})}{\cosh(a\sqrt{s})\sinh(b\sqrt{s})}=\frac{\sinh((a-mb)\sqrt{s})}{\sinh(b\sqrt{s})}{\displaystyle \sum_{l=0}^{m-1}}A_{l}^{m-1}\frac{\cosh(lb\sqrt{s})}{\cosh(a\sqrt{s})}\\
+{\displaystyle \sum_{j=0}^{m-2}}{\displaystyle \sum_{l=0}^{j}}\frac{A_{l}^{j}}{2}\left\{ \frac{\cosh\left((a-(j+l+2)b)\sqrt{s}\right)}{\cosh(a\sqrt{s})}+\frac{\cosh\left((a-(j-l+2)b)\sqrt{s}\right)}{\cosh(a\sqrt{s})}\right\} ,
\end{multline*}
where $\cosh^{j}\theta={\displaystyle \sum_{l=0}^{j}}A_{l}^{j}\cosh\left(l\theta\right)$. Note that $a-mb\leq b$, $(j-l+2)b\leq mb<a$ and $\left|a-(j+l+2)b\right|< a$
for $0\leq j,l\leq m-2$ and $\cosh$ is an even function. Thus by Lemma 2, each
term in the above expression is the Laplace transform of a positive
function. Hence $F_{1}(t)$ is positive, and therefore the convolution of $k$ $F_{1}$'s (i.e. $F_{k}(t)$) is also positive.
We have ${\displaystyle \lim_{s\rightarrow0+}}G(s)={\displaystyle \lim_{s\rightarrow0+}}\frac{\sinh((a-b)\sqrt{s})}{\cosh(a\sqrt{s})\sinh(b\sqrt{s})}=\frac{a-b}{b},$ and so by Lemma 1
\begin{equation}\label{mandalb_mini_eq:linbnd2}
\int_{0}^{T}\bigl|F_{k}(\tau)\bigr|d\tau=\int_{0}^{T}F_{k}(\tau)d\tau\leq{\displaystyle \lim_{s\rightarrow0+}}G^{k}(s)=\left({\displaystyle \lim_{s\rightarrow0+}}G(s)\right)^{k}=\left(\frac{a-b}{b}\right)^{k}.
\end{equation}
The result follows by inserting the estimates (\ref{mandalb_mini_eq:linbnd1}) and (\ref{mandalb_mini_eq:linbnd2}) into (\ref{mandalb_mini_eq:boundstep}). $\hfill\qed$
\end{proof}
\section{Numerical Experiments}
We perform experiments to measure the actual convergence rate of the DNWR algorithm for the problem
\[
\begin{cases}
\frac{\partial u}{\partial t}-\frac{\partial^{2}u}{\partial x^{2}}=-e^{-t-x^{2}}, & x\in(-3,2),\\
u(x,0)=e^{-2x}, & x\in(-3,2),\\
u(-3,t)=e^{-2t}=u(2,t), & t>0.
\end{cases}
\]
To solve the equation using the Dirichlet-Neumann algorithm, we discretize
the Laplacian using centered finite differences in space and backward Euler
in time on a grid with $\Delta x=2\times 10^{-2}$
and $\Delta t=4\times 10^{-4}$. For the numerical experiments
we split the spatial domain into two non-overlapping subdomains $\left[-3,0\right]$
and $\left[0,2\right]$, so that $b=3$ and $a=2$ in
(\ref{mandalb_mini_eq:dnalgo1})-(\ref{mandalb_mini_eq:dnalgo2}). Thus this is the case when the Dirichlet subdomain is bigger than the Neumann subdomain. The numerical results are similar for the case when the Neumann domain is larger than the Dirichlet one. We test the algorithm by choosing  $h^{0}(t)=t$, $t\in (0,T]$ as an initial guess. Figure 1 gives the error reduction curves for different values of the parameter $\theta$ for $T=2$ in $(a)$ and $T=200$ in $(b)$. Note that, for a small time window, we get linear convergence for all the parameters, except for $\theta=0.5$ which corresponds to superlinear convergence.
\begin{figure}[H]\begin{centering}
\mbox{\subfigure[Short time window]{\includegraphics[width=5.8cm,height=3.5cm]{mandalb_mini15_figure1}}\quad
\subfigure[Large time window]{\includegraphics[width=5.8cm,height=3.5cm]{mandalb_mini15_figure2}}}
\par\end{centering}
\caption{Convergence for various parameters; left: short time window, right: large time window.}
\end{figure}
\noindent For a large time window, we always observe linear convergence. We now plot the linear bound for the convergence rate in case of $\theta=1/2$ as shown in Theorem 2. The theorem provides a $T$-independent theoretical bound of the error for this special relaxation parameter and this is also valid for large time windows. Eventually, a more refined analysis will give a superlinear bound shown in (\ref{mandalb_mini_eq:supbnd1})-(\ref{mandalb_mini_eq:supbnd2}), dependent on $T$ and the lengths of the subdomains (see \cite{mandalb_mini15_GKM}). Figure 2 gives a comparison between the theoretical error for the continuous model problem (calculated using inverse Laplace transforms), numerical error for the
discretized problem, linear bound and the superlinear bound for $a=2,b=3$ and various $T$'s. We can observe that the error curves seem to approach the linear bound as $T$ increases.
 \begin{figure}[H]\begin{centering}
\mbox{\subfigure{\includegraphics[width=6.1cm,height=4.1cm]{mandalb_mini15_figure3}}\quad
\subfigure{\includegraphics[width=6.1cm,height=4.1cm]{mandalb_mini15_figure4}}}
\par\end{centering}
\caption{Bounds for various times, $b\geq a$; in particular $a<3b$. Left: $T=2$, right: $T=200$ }
\end{figure}

\section{Conclusions and further results}
We proved convergence of the proposed DNWR algorithm in the symmetric case. For unequal
subdomain lengths and for a particular choice of relaxation parameter, we presented a linear error estimate that is valid for both bounded and unbounded time intervals. In fact, Figure 2 suggests that the method converges superlinearly.
\begin{wrapfigure}{r}{0.5\textwidth}
  \vspace{-20pt}
  \begin{center}
    \includegraphics[width=0.5\textwidth]{mandalb_mini15_figure5}
  \end{center}
  \vspace{-20pt}
  \centering \caption{$F_k(t), k=1,2,3.$}
  \vspace{-10pt}
\end{wrapfigure}
 To prove this, one has to consider two different cases: Dirchlet subdomain bigger than Neumann subdomain ($b\geq a$) and the other way around. Figure 3 shows $F_{k}(t)$ for $k=1,2,3$; we see that the curves shift to the right and at the same time, the peak decreases as $k$ increases. So, if one only considers a small time window, the peak will eventually exit the time window for $k$ large enough and its contribution will be vanishingly small in the expression (\ref{mandalb_mini_eq:updatefinal}). This is the intuitive idea to get superlinear convergence for $\theta=1/2$ in small time windows. A detailed analysis, which is too long for this short paper, in \cite{mandalb_mini15_GKM} leads to the following superlinear convergence estimates for the small time window $(0,T)$:
\begin{equation}\label{mandalb_mini_eq:supbnd1}
\parallel h^{k}\parallel_{L^{\infty}(0,T)}\leq\left(\frac{b-a}{b}\right)^{k}\textrm{erfc}\left(\frac{ka}{2\sqrt{T}}\right)\parallel h^{0}\parallel_{L^{\infty}(0,T)}, \quad \mbox{for}\; b\geq a,
\end{equation}
and \begin{equation}\label{mandalb_mini_eq:supbnd2}\parallel h^{2k}\parallel_{L^{\infty}(0,T)}\leq\left\{ \frac{\sqrt{2}}{1-e^{-\frac{2k+1}{\sigma}}}\right\} ^{2k}e^{-k^{2}/\sigma}\parallel h^{0}\parallel_{L^{\infty}(0,T)}, \quad \mbox{for} \; b<a,
\end{equation}
where $\sigma=T/b^{2}.$ We are also working on a generalization of the algorithm to higher dimensions.
\begin{acknowledgement}
I would like to express my gratitude to Prof. Martin J. Gander and Dr. Felix Kwok for their constant support and stimulating suggestions.
\end{acknowledgement}

\nocite{*}

redpajama_set_name: RedPajamaArXiv