Rheolef  7.2
an efficient C++ finite element environment
test

test-function in variational formulation

Description

This class, and its associated trial one, is used for test and trial functions involved in variational formulations. Variational formulations are specified by expressions of the C++ language.

A test function is the formal argument involved in the expression for the integrate function:

    geo omega ("circle");
    space Xh (omega, "P1");
    test v (Xh);
    field lh = integrate (omega, 2*v);

For a bilinear form, the test function represents its second formal argument, while its first one is referred to as the trial one:

    trial u (Xh);
    test  v (Xh);
    form a = integrate (omega, dot(grad(u),grad(v)));

Implementation

This documentation has been generated from file main/lib/test.h

The test and trial classes are simply aliases to the test_basic class:

typedef test_basic<Float,rheo_default_memory_model,details::vf_tag_01> test;
typedef test_basic<Float,rheo_default_memory_model,details::vf_tag_10> trial;
test_basic< Float, rheo_default_memory_model, details::vf_tag_10 > trial
Definition: test.h:327
test_basic< Float, rheo_default_memory_model, details::vf_tag_01 > test
Definition: test.h:324

The test_basic class provides an interface, via the smart_pointer class family, to a data container:

template <class T, class M, class VfTag>
class test_basic : public smart_pointer<test_rep<T,M> > {
public :
// typedefs:
using rep = test_rep<T,M>;
using base = smart_pointer<rep>;
using size_type = typename rep::size_type;
using memory_type = typename rep::memory_type;
using value_type = typename rep::value_type;
using scalar_type = typename rep::scalar_type;
using float_type = typename rep::float_type;
using geo_type = typename rep::geo_type;
using space_type = typename rep::space_type;
using diff_type = typename rep::diff_type;
using vf_tag_type = VfTag;
using self_type = test_basic<T,M,VfTag>;
using dual_self_type = test_basic<T,M,vf_dual_tag_type>;
// allocator/deallocator:
explicit test_basic (const space_type& V) : base(new_macro(rep(V))) {}
// accessors:
const space_type& get_vf_space() const { return base::data().get_vf_space(); }
space_constant::valued_type valued_tag() const { return base::data().valued_tag(); }
size_type n_derivative() const { return base::data().n_derivative(); }
size_type size() const { return get_vf_space().size(); }
details::test_component<T,M,VfTag> operator[] (size_type i_comp) const;
field::size_type size_type
Definition: branch.cc:430
VfTag vf_tag_type
Definition: test.h:222
typename rep::memory_type memory_type
Definition: test.h:214
size_type size() const
Definition: test.h:238
typename rep::diff_type diff_type
Definition: test.h:220
test_basic< T, M, vf_dual_tag_type > dual_self_type
Definition: test.h:225
typename rep::value_type value_type
Definition: test.h:215
test_rep< T, M > rep
Definition: test.h:211
test_basic< T, M, VfTag > self_type
Definition: test.h:224
static const space_constant::valued_type valued_hint
Definition: test.h:234
size_type n_derivative() const
Definition: test.h:236
details::test_component< T, M, VfTag > operator[](size_type i_comp) const
typename rep::float_type float_type
Definition: test.h:217
smart_pointer< rep > base
Definition: test.h:212
typename rep::space_type space_type
Definition: test.h:219
typename rep::geo_type geo_type
Definition: test.h:218
typename details::dual_vf_tag< VfTag >::type vf_dual_tag_type
Definition: test.h:223
test_basic(const space_type &V)
Definition: test.h:229
typename rep::is_elementwise is_elementwise
Definition: test.h:221
typename rep::scalar_type scalar_type
Definition: test.h:216
space_constant::valued_type valued_tag() const
Definition: test.h:235
const space_type & get_vf_space() const
Definition: test.h:233
undeterminated_basic< T > value_type
Definition: test.h:99
static const space_constant::valued_type valued_hint
Definition: test.h:116
geo_basic< float_type, M > geo_type
Definition: test.h:102
details::differentiate_option::type diff_type
Definition: test.h:104
space_basic< float_type, M > space_type
Definition: test.h:103
std::true_type is_elementwise
Definition: test.h:105
typename float_traits< T >::type float_type
Definition: test.h:101
std::size_t size_type
Definition: test.h:97
};