Revision 5f8d2b0031527aa8309599ab2429ec62e423b88d authored by Dmitry Yu. Naumov on 08 November 2021, 09:21:04 UTC, committed by Dmitry Yu. Naumov on 08 November 2021, 09:21:04 UTC
mention plane strain in smalldef verification example (tiny change)

It is customary in geomechanics to use plane strain assumptions for modeling mechanics in 2D.
However, users with another background than geosciences should be able find somewhere in the documentation (search function) which assumptions are made.
Topically this belongs to mechanics, so the best place for this hint seems the first benchmark example of the small deformation process, which is the verification.

See merge request ogs/ogs!3873
2 parent s b07d415 + 66570a2
Raw File
StationBorehole.h
/**
 * \file
 * \author Karsten Rink
 * \date   2013-03-18
 * \brief  Definition of the StationBorehole class.
 *
 * \copyright
 * Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#pragma once

#include "Station.h"

#include <list>
#include <string>
#include <vector>

namespace GeoLib
{
/**
 * \brief A borehole as a geometric object.
 *
 * A borehole inherits Station but has some additional information such as a
 * date, a borehole profile, etc.
 */
class StationBorehole : public Station
{
public:
    /** constructor initialises the borehole with the given coordinates */
    explicit StationBorehole(double x,
                             double y,
                             double z,
                             double const depth,
                             const std::string& name,
                             int date);
    ~StationBorehole() override;

    /// Creates a new borehole object based on the given parameters.
    static StationBorehole* createStation(const std::string& name,
                                          double x,
                                          double y,
                                          double z,
                                          double depth,
                                          const std::string& date = "");

    // Returns the depth of the borehole
    double getDepth() const { return _depth; }

    /// Returns the date entry for the borehole
    double getDate() const { return _date; }

    /// Returns a reference to a vector of Points representing the stratigraphy
    /// of the borehole (incl. the station-point itself)
    const std::vector<Point*>& getProfile() const { return _profilePntVec; }

    /// Returns a reference to a vector of soil names for the stratigraphy of
    /// the borehole
    const std::vector<std::string>& getSoilNames() const { return _soilName; }

    /// Sets the depth of the borehole
    void setDepth(double depth) { _depth = depth; }

    /// Add a soil layer to the boreholes stratigraphy.
    void addSoilLayer(double thickness, const std::string& soil_name);

    /**
     * Add a soil layer to the boreholes stratigraphy.
     * Note: The given coordinates always mark THE END of the soil layer. The
     * reason behind this is that the beginning of the first layer is identical
     * with the position of the borehole. For each layer following the beginning
     * is already given by the end of the last layer. This also saves a separate
     * entry in the profile vector for the end of the borehole which in the
     * given notation is just the coordinate given for the last soil layer (i.e.
     * the end of that layer).
     */
    void addSoilLayer(double x,
                      double y,
                      double z,
                      const std::string& soil_name);

private:
    double _depth{0};  // depth of the borehole
    int _date{0};      // date when the borehole has been drilled

    /// Contains the names for all the soil layers
    std::vector<std::string> _soilName;

    /// Contains the points for the lower boundaries of all layers
    std::vector<Point*> _profilePntVec;
};

bool isBorehole(GeoLib::Point const* pnt);

}  // namespace GeoLib
back to top